Accepting request 639816 from home:jfehlig:branches:Virtualization

- Update to libvirt 4.8.0
  - Many incremental improvements and bug fixes, see
    http://libvirt.org/news.html
  - Dropped patches:
    60b4fd90-libxl-rm-vm-finish-phase.patch,
    e39c66d3-libxl-fix-p2p-migration.patch,
    47da84e0-libxl-fix-job-handling-migsrc.patch,
    0149464a-libxl-fix-job-handling-migdst.patch,
    5ea2abb3-libxl-join-mig-rcv-thread.patch

OBS-URL: https://build.opensuse.org/request/show/639816
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=709
This commit is contained in:
James Fehlig 2018-10-03 20:24:42 +00:00 committed by Git OBS Bridge
parent 938c7e0e48
commit ce630fa7e7
39 changed files with 244 additions and 813 deletions

View File

@ -18,10 +18,10 @@ them.
create mode 100644 src/conf/domain_stats.c
create mode 100644 src/conf/domain_stats.h
Index: libvirt-4.7.0/src/conf/domain_stats.c
Index: libvirt-4.8.0/src/conf/domain_stats.c
===================================================================
--- /dev/null
+++ libvirt-4.7.0/src/conf/domain_stats.c
+++ libvirt-4.8.0/src/conf/domain_stats.c
@@ -0,0 +1,139 @@
+/*
+ * domain_stats.c: domain stats extraction helpers
@ -162,10 +162,10 @@ Index: libvirt-4.7.0/src/conf/domain_stats.c
+}
+
+#undef STATS_ADD_NET_PARAM
Index: libvirt-4.7.0/src/conf/domain_stats.h
Index: libvirt-4.8.0/src/conf/domain_stats.h
===================================================================
--- /dev/null
+++ libvirt-4.7.0/src/conf/domain_stats.h
+++ libvirt-4.8.0/src/conf/domain_stats.h
@@ -0,0 +1,64 @@
+/*
+ * domain_stats.h: domain stats extraction helpers
@ -231,11 +231,11 @@ Index: libvirt-4.7.0/src/conf/domain_stats.h
+ int *maxparams);
+
+#endif /* __DOMAIN_STATS_H */
Index: libvirt-4.7.0/src/libvirt_private.syms
Index: libvirt-4.8.0/src/libvirt_private.syms
===================================================================
--- libvirt-4.7.0.orig/src/libvirt_private.syms
+++ libvirt-4.7.0/src/libvirt_private.syms
@@ -650,6 +650,9 @@ virDomainConfNWFilterInstantiate;
--- libvirt-4.8.0.orig/src/libvirt_private.syms
+++ libvirt-4.8.0/src/libvirt_private.syms
@@ -653,6 +653,9 @@ virDomainConfNWFilterInstantiate;
virDomainConfNWFilterTeardown;
virDomainConfVMNWFilterTeardown;
@ -245,7 +245,7 @@ Index: libvirt-4.7.0/src/libvirt_private.syms
# conf/interface_conf.h
virInterfaceDefFormat;
@@ -1540,6 +1543,7 @@ virCgroupGetMemoryUsage;
@@ -1541,6 +1544,7 @@ virCgroupGetMemoryUsage;
virCgroupGetMemSwapHardLimit;
virCgroupGetMemSwapUsage;
virCgroupGetPercpuStats;
@ -253,11 +253,11 @@ Index: libvirt-4.7.0/src/libvirt_private.syms
virCgroupHasController;
virCgroupHasEmptyTasks;
virCgroupKillPainfully;
Index: libvirt-4.7.0/src/qemu/qemu_driver.c
Index: libvirt-4.8.0/src/qemu/qemu_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/qemu/qemu_driver.c
+++ libvirt-4.7.0/src/qemu/qemu_driver.c
@@ -74,6 +74,7 @@
--- libvirt-4.8.0.orig/src/qemu/qemu_driver.c
+++ libvirt-4.8.0/src/qemu/qemu_driver.c
@@ -69,6 +69,7 @@
#include "virarptable.h"
#include "viruuid.h"
#include "domain_conf.h"
@ -265,7 +265,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
#include "domain_audit.h"
#include "node_device_conf.h"
#include "virpci.h"
@@ -19641,21 +19642,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
@@ -19674,21 +19675,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
int *maxparams,
unsigned int privflags ATTRIBUTE_UNUSED)
{
@ -288,7 +288,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
}
@@ -19678,37 +19665,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
@@ -19711,37 +19698,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
unsigned int privflags ATTRIBUTE_UNUSED)
{
qemuDomainObjPrivatePtr priv = dom->privateData;
@ -327,7 +327,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
}
static int
@@ -19888,44 +19845,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
@@ -19921,44 +19878,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
return ret;
}
@ -372,7 +372,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
static int
qemuDomainGetStatsInterface(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
virDomainObjPtr dom,
@@ -19933,68 +19852,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
@@ -19966,68 +19885,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
int *maxparams,
unsigned int privflags ATTRIBUTE_UNUSED)
{
@ -442,7 +442,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
#define QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, num, name, value) \
do { \
char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \
@@ -20227,10 +20087,10 @@ qemuDomainGetStatsBlockExportHeader(virD
@@ -20260,10 +20120,10 @@ qemuDomainGetStatsBlockExportHeader(virD
{
int ret = -1;
@ -455,7 +455,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
if (src->id)
QEMU_ADD_BLOCK_PARAM_UI(records, nrecords, recordnr, "backingIndex",
src->id);
@@ -20370,7 +20230,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
@@ -20403,7 +20263,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
* after the iteration than it is to iterate twice; but we still
* want count listed first. */
count_index = record->nparams;
@ -464,7 +464,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
for (i = 0; i < dom->def->ndisks; i++) {
if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats, nodestats,
@@ -20395,10 +20255,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
@@ -20428,10 +20288,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
#undef QEMU_ADD_BLOCK_PARAM_ULL
@ -475,11 +475,11 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
static int
qemuDomainGetStatsPerfOneEvent(virPerfPtr perf,
virPerfEventType type,
Index: libvirt-4.7.0/src/util/vircgroup.c
Index: libvirt-4.8.0/src/util/vircgroup.c
===================================================================
--- libvirt-4.7.0.orig/src/util/vircgroup.c
+++ libvirt-4.7.0/src/util/vircgroup.c
@@ -4037,6 +4037,44 @@ virCgroupControllerAvailable(int control
--- libvirt-4.8.0.orig/src/util/vircgroup.c
+++ libvirt-4.8.0/src/util/vircgroup.c
@@ -2628,6 +2628,44 @@ virCgroupControllerAvailable(int control
return ret;
}
@ -521,14 +521,13 @@ Index: libvirt-4.7.0/src/util/vircgroup.c
+ return 0;
+}
+
#else /* !VIR_CGROUP_SUPPORTED */
#else /* !__linux__ */
bool
@@ -4799,6 +4837,14 @@ virCgroupControllerAvailable(int control
{
return false;
@@ -2637,6 +2675,15 @@ virCgroupAvailable(void)
}
+
+int
+virCgroupGetStatsCpu(virCgroupPtr cgroup,
+ virDomainStatsRecordPtr record,
@ -536,14 +535,16 @@ Index: libvirt-4.7.0/src/util/vircgroup.c
+{
+ return 0;
+}
#endif /* !VIR_CGROUP_SUPPORTED */
Index: libvirt-4.7.0/src/util/vircgroup.h
+
+
int
virCgroupNewPartition(const char *path ATTRIBUTE_UNUSED,
bool create ATTRIBUTE_UNUSED,
Index: libvirt-4.8.0/src/util/vircgroup.h
===================================================================
--- libvirt-4.7.0.orig/src/util/vircgroup.h
+++ libvirt-4.7.0/src/util/vircgroup.h
@@ -286,4 +286,9 @@ int virCgroupSetOwner(virCgroupPtr cgrou
--- libvirt-4.8.0.orig/src/util/vircgroup.h
+++ libvirt-4.8.0/src/util/vircgroup.h
@@ -287,4 +287,9 @@ int virCgroupSetOwner(virCgroupPtr cgrou
int virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller);
bool virCgroupControllerAvailable(int controller);
@ -553,10 +554,10 @@ Index: libvirt-4.7.0/src/util/vircgroup.h
+ int *maxparams);
+
#endif /* __VIR_CGROUP_H__ */
Index: libvirt-4.7.0/src/conf/Makefile.inc.am
Index: libvirt-4.8.0/src/conf/Makefile.inc.am
===================================================================
--- libvirt-4.7.0.orig/src/conf/Makefile.inc.am
+++ libvirt-4.7.0/src/conf/Makefile.inc.am
--- libvirt-4.8.0.orig/src/conf/Makefile.inc.am
+++ libvirt-4.8.0/src/conf/Makefile.inc.am
@@ -20,6 +20,8 @@ DOMAIN_CONF_SOURCES = \
conf/domain_audit.h \
conf/domain_nwfilter.c \

View File

@ -19,11 +19,11 @@ reworking this patch and submitting it to upstream libvirt.
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
Index: libvirt-4.8.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
@@ -5119,6 +5119,97 @@ libxlDomainMemoryStats(virDomainPtr dom,
--- libvirt-4.8.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.8.0/src/libxl/libxl_driver.c
@@ -5253,6 +5253,97 @@ libxlDomainMemoryStats(virDomainPtr dom,
#undef LIBXL_SET_MEMSTAT
@ -121,7 +121,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
static int
libxlDomainGetJobInfo(virDomainPtr dom,
virDomainJobInfoPtr info)
@@ -6497,6 +6588,7 @@ static virHypervisorDriver libxlHypervis
@@ -6635,6 +6726,7 @@ static virHypervisorDriver libxlHypervis
#endif
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */

View File

@ -9,11 +9,11 @@ them using the existing API.
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 138 insertions(+)
Index: libvirt-4.7.0/src/lxc/lxc_driver.c
Index: libvirt-4.8.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/lxc/lxc_driver.c
+++ libvirt-4.7.0/src/lxc/lxc_driver.c
@@ -79,6 +79,7 @@
--- libvirt-4.8.0.orig/src/lxc/lxc_driver.c
+++ libvirt-4.8.0/src/lxc/lxc_driver.c
@@ -78,6 +78,7 @@
#include "viraccessapichecklxc.h"
#include "virhostdev.h"
#include "netdev_bandwidth_conf.h"
@ -21,7 +21,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
#define VIR_FROM_THIS VIR_FROM_LXC
@@ -5411,6 +5412,142 @@ lxcDomainHasManagedSaveImage(virDomainPt
@@ -5410,6 +5411,142 @@ lxcDomainHasManagedSaveImage(virDomainPt
return ret;
}
@ -164,7 +164,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
/* Function Tables */
static virHypervisorDriver lxcHypervisorDriver = {
@@ -5506,6 +5643,7 @@ static virHypervisorDriver lxcHypervisor
@@ -5505,6 +5642,7 @@ static virHypervisorDriver lxcHypervisor
.nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */
.nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */
.domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */

View File

@ -1,239 +0,0 @@
commit 0149464afc7100f048a2468e40e84b6a50aeb3a3
Author: Jim Fehlig <jfehlig@suse.com>
Date: Wed Aug 29 11:11:00 2018 -0600
libxl: fix job handling across migration phases on dst
The libxlDomainMigrationDst* functions are a bit flawed in their
handling of modify jobs. A job begins when the destination host
begins receiving the incoming VM and ends after the VM is started.
The finish phase contains another BeginJob/EndJob sequence.
This patch changes the logic to begin a job for the incoming VM
in the prepare phase and end the job in the finish phase.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
@@ -6020,15 +6020,8 @@ libxlDomainMigrateFinish3Params(virConne
return NULL;
}
- if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0) {
- virDomainObjEndAPI(&vm);
- return NULL;
- }
-
ret = libxlDomainMigrationDstFinish(dconn, vm, flags, cancelled);
- libxlDomainObjEndJob(driver, vm);
-
virDomainObjEndAPI(&vm);
return ret;
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -266,9 +266,6 @@ libxlDoMigrateDstReceive(void *opaque)
size_t i;
virObjectRef(vm);
- virObjectLock(vm);
- if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
- goto cleanup;
/*
* Always start the domain paused. If needed, unpause in the
@@ -288,10 +285,6 @@ libxlDoMigrateDstReceive(void *opaque)
args->nsocks = 0;
VIR_FORCE_CLOSE(recvfd);
virObjectUnref(args);
-
- libxlDomainObjEndJob(driver, vm);
-
- cleanup:
virDomainObjEndAPI(&vm);
}
@@ -583,6 +576,13 @@ libxlDomainMigrationDstPrepareTunnel3(vi
goto error;
*def = NULL;
+ /*
+ * Unless an error is encountered in this function, the job will
+ * be terminated in the finish phase.
+ */
+ if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
+ goto error;
+
priv = vm->privateData;
if (taint_hook) {
@@ -595,18 +595,18 @@ libxlDomainMigrationDstPrepareTunnel3(vi
* stream -> pipe -> recvfd of libxlDomainStartRestore
*/
if (pipe(dataFD) < 0)
- goto error;
+ goto endjob;
/* Stream data will be written to pipeIn */
if (virFDStreamOpen(st, dataFD[1]) < 0)
- goto error;
+ goto endjob;
dataFD[1] = -1; /* 'st' owns the FD now & will close it */
if (libxlMigrationDstArgsInitialize() < 0)
- goto error;
+ goto endjob;
if (!(args = virObjectNew(libxlMigrationDstArgsClass)))
- goto error;
+ goto endjob;
args->conn = virObjectRef(dconn);
args->vm = virObjectRef(vm);
@@ -620,12 +620,15 @@ libxlDomainMigrationDstPrepareTunnel3(vi
if (virThreadCreate(&thread, false, libxlDoMigrateDstReceive, args) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("Failed to create thread for receiving migration data"));
- goto error;
+ goto endjob;
}
ret = 0;
goto done;
+ endjob:
+ libxlDomainObjEndJob(driver, vm);
+
error:
libxlMigrationCookieFree(mig);
VIR_FORCE_CLOSE(dataFD[1]);
@@ -679,6 +682,13 @@ libxlDomainMigrationDstPrepare(virConnec
goto error;
*def = NULL;
+ /*
+ * Unless an error is encountered in this function, the job will
+ * be terminated in the finish phase.
+ */
+ if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
+ goto error;
+
priv = vm->privateData;
if (taint_hook) {
@@ -689,27 +699,27 @@ libxlDomainMigrationDstPrepare(virConnec
/* Create socket connection to receive migration data */
if (!uri_in) {
if ((hostname = virGetHostname()) == NULL)
- goto error;
+ goto endjob;
if (STRPREFIX(hostname, "localhost")) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("hostname on destination resolved to localhost,"
" but migration requires an FQDN"));
- goto error;
+ goto endjob;
}
if (virPortAllocatorAcquire(driver->migrationPorts, &port) < 0)
- goto error;
+ goto endjob;
priv->migrationPort = port;
if (virAsprintf(uri_out, "tcp://%s:%d", hostname, port) < 0)
- goto error;
+ goto endjob;
} else {
if (!(STRPREFIX(uri_in, "tcp://"))) {
/* not full URI, add prefix tcp:// */
char *tmp;
if (virAsprintf(&tmp, "tcp://%s", uri_in) < 0)
- goto error;
+ goto endjob;
uri = virURIParse(tmp);
VIR_FREE(tmp);
} else {
@@ -720,20 +730,20 @@ libxlDomainMigrationDstPrepare(virConnec
virReportError(VIR_ERR_INVALID_ARG,
_("unable to parse URI: %s"),
uri_in);
- goto error;
+ goto endjob;
}
if (uri->server == NULL) {
virReportError(VIR_ERR_INVALID_ARG,
_("missing host in migration URI: %s"),
uri_in);
- goto error;
+ goto endjob;
}
hostname = uri->server;
if (uri->port == 0) {
if (virPortAllocatorAcquire(driver->migrationPorts, &port) < 0)
- goto error;
+ goto endjob;
priv->migrationPort = port;
} else {
@@ -741,7 +751,7 @@ libxlDomainMigrationDstPrepare(virConnec
}
if (virAsprintf(uri_out, "tcp://%s:%d", hostname, port) < 0)
- goto error;
+ goto endjob;
}
snprintf(portstr, sizeof(portstr), "%d", port);
@@ -751,14 +761,14 @@ libxlDomainMigrationDstPrepare(virConnec
&socks, &nsocks) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("Fail to create socket for incoming migration"));
- goto error;
+ goto endjob;
}
if (libxlMigrationDstArgsInitialize() < 0)
- goto error;
+ goto endjob;
if (!(args = virObjectNew(libxlMigrationDstArgsClass)))
- goto error;
+ goto endjob;
args->conn = virObjectRef(dconn);
args->vm = virObjectRef(vm);
@@ -786,11 +796,14 @@ libxlDomainMigrationDstPrepare(virConnec
}
if (!nsocks_listen)
- goto error;
+ goto endjob;
ret = 0;
goto done;
+ endjob:
+ libxlDomainObjEndJob(driver, vm);
+
error:
for (i = 0; i < nsocks; i++) {
virNetSocketClose(socks[i]);
@@ -1354,6 +1367,8 @@ libxlDomainMigrationDstFinish(virConnect
virDomainObjListRemove(driver->domains, vm);
}
+ /* EndJob for corresponding BeginJob in prepare phase */
+ libxlDomainObjEndJob(driver, vm);
virObjectEventStateQueue(driver->domainEventState, event);
virObjectUnref(cfg);
return dom;

View File

@ -1,88 +0,0 @@
commit 47da84e09044e5af914a64469d06adef34279964
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Aug 28 17:30:18 2018 -0600
libxl: fix job handling across migration phases on src
The libxlDomainMigrationSrc* functions are a bit flawed in their
handling of modify jobs. A job begins at the start of the begin
phase but ends before the phase completes. No job is running for
the remaining phases of migration on the source host.
Change the logic to keep the job running after a successful begin
phase, and end the job in the confirm phase. The job must also end
in the perform phase in the case of error since confirm phase would
not be executed.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -399,6 +399,11 @@ libxlDomainMigrationSrcBegin(virConnectP
virDomainDefPtr def;
char *xml = NULL;
+ /*
+ * In the case of successful migration, a job is started here and
+ * terminated in the confirm phase. Errors in the begin or perform
+ * phase will also terminate the job.
+ */
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
goto cleanup;
@@ -428,6 +433,9 @@ libxlDomainMigrationSrcBegin(virConnectP
goto endjob;
xml = virDomainDefFormat(def, cfg->caps, VIR_DOMAIN_DEF_FORMAT_SECURE);
+ /* Valid xml means success! EndJob in the confirm phase */
+ if (xml)
+ goto cleanup;
endjob:
libxlDomainObjEndJob(driver, vm);
@@ -1169,6 +1177,14 @@ libxlDomainMigrationSrcPerformP2P(libxlD
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
dname, uri_str, flags);
+ if (ret < 0) {
+ /*
+ * Confirm phase will not be executed if perform fails. End the
+ * job started in begin phase.
+ */
+ libxlDomainObjEndJob(driver, vm);
+ }
+
cleanup:
orig_err = virSaveLastError();
virObjectUnlock(vm);
@@ -1232,11 +1248,17 @@ libxlDomainMigrationSrcPerform(libxlDriv
ret = libxlDoMigrateSrcSend(driver, vm, flags, sockfd);
virObjectLock(vm);
- if (ret < 0)
+ if (ret < 0) {
virDomainLockProcessResume(driver->lockManager,
"xen:///system",
vm,
priv->lockState);
+ /*
+ * Confirm phase will not be executed if perform fails. End the
+ * job started in begin phase.
+ */
+ libxlDomainObjEndJob(driver, vm);
+ }
cleanup:
VIR_FORCE_CLOSE(sockfd);
@@ -1386,6 +1408,8 @@ libxlDomainMigrationSrcConfirm(libxlDriv
ret = 0;
cleanup:
+ /* EndJob for corresponding BeginJob in begin phase */
+ libxlDomainObjEndJob(driver, vm);
virObjectEventStateQueue(driver->domainEventState, event);
virObjectUnref(cfg);
return ret;

View File

@ -1,87 +0,0 @@
commit 5ea2abb3bfd552175dc2dfcc295fde3fbf17fc37
Author: Jim Fehlig <jfehlig@suse.com>
Date: Fri Aug 24 15:38:14 2018 -0600
libxl: join with thread receiving migration data
It is possible the incoming VM is not fully started when the finish
phase of migration is executed. In libxlDomainMigrationDstFinish,
wait for the thread receiving the VM to complete before executing
finish phase tasks.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-4.7.0/src/libxl/libxl_domain.h
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_domain.h
+++ libvirt-4.7.0/src/libxl/libxl_domain.h
@@ -65,6 +65,7 @@ struct _libxlDomainObjPrivate {
/* console */
virChrdevsPtr devs;
libxl_evgen_domain_death *deathW;
+ virThreadPtr migrationDstReceiveThr;
unsigned short migrationPort;
char *lockState;
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -297,9 +297,9 @@ libxlMigrateDstReceive(virNetSocketPtr s
libxlMigrationDstArgs *args = opaque;
virNetSocketPtr *socks = args->socks;
size_t nsocks = args->nsocks;
+ libxlDomainObjPrivatePtr priv = args->vm->privateData;
virNetSocketPtr client_sock;
int recvfd = -1;
- virThread thread;
size_t i;
/* Accept migration connection */
@@ -318,7 +318,10 @@ libxlMigrateDstReceive(virNetSocketPtr s
* the migration data
*/
args->recvfd = recvfd;
- if (virThreadCreate(&thread, false,
+ VIR_FREE(priv->migrationDstReceiveThr);
+ if (VIR_ALLOC(priv->migrationDstReceiveThr) < 0)
+ goto fail;
+ if (virThreadCreate(priv->migrationDstReceiveThr, true,
libxlDoMigrateDstReceive, args) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("Failed to create thread for receiving migration data"));
@@ -557,7 +560,6 @@ libxlDomainMigrationDstPrepareTunnel3(vi
libxlDriverPrivatePtr driver = dconn->privateData;
virDomainObjPtr vm = NULL;
libxlMigrationDstArgs *args = NULL;
- virThread thread;
bool taint_hook = false;
libxlDomainObjPrivatePtr priv = NULL;
char *xmlout = NULL;
@@ -617,7 +619,10 @@ libxlDomainMigrationDstPrepareTunnel3(vi
args->nsocks = 0;
mig = NULL;
- if (virThreadCreate(&thread, false, libxlDoMigrateDstReceive, args) < 0) {
+ VIR_FREE(priv->migrationDstReceiveThr);
+ if (VIR_ALLOC(priv->migrationDstReceiveThr) < 0)
+ goto error;
+ if (virThreadCreate(priv->migrationDstReceiveThr, true, libxlDoMigrateDstReceive, args) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("Failed to create thread for receiving migration data"));
goto endjob;
@@ -1291,6 +1296,13 @@ libxlDomainMigrationDstFinish(virConnect
virObjectEventPtr event = NULL;
virDomainPtr dom = NULL;
+ if (priv->migrationDstReceiveThr) {
+ virObjectUnlock(vm);
+ virThreadJoin(priv->migrationDstReceiveThr);
+ virObjectLock(vm);
+ VIR_FREE(priv->migrationDstReceiveThr);
+ }
+
virPortAllocatorRelease(priv->migrationPort);
priv->migrationPort = 0;

View File

@ -1,44 +0,0 @@
commit 60b4fd90213135be0e471756d3d95c68eb3e8f59
Author: Jim Fehlig <jfehlig@suse.com>
Date: Fri Aug 24 14:55:03 2018 -0600
libxl: migration: defer removing VM until finish phase
If for any reason the restore of a VM fails on the destination host
in a migration operation, the VM is removed (if not persistent) from
the virDomainObjList, meaning it is no longer available for additional
cleanup or processing in the finish phase. Defer removing the VM from
the virDomainObjList until the finish phase, which already contains
logic to remove the VM.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -264,7 +264,6 @@ libxlDoMigrateDstReceive(void *opaque)
libxlDriverPrivatePtr driver = args->conn->privateData;
int recvfd = args->recvfd;
size_t i;
- int ret;
virObjectRef(vm);
virObjectLock(vm);
@@ -274,12 +273,10 @@ libxlDoMigrateDstReceive(void *opaque)
/*
* Always start the domain paused. If needed, unpause in the
* finish phase, after transfer of the domain is complete.
+ * Errors and cleanup are also handled in the finish phase.
*/
- ret = libxlDomainStartRestore(driver, vm, true, recvfd,
- args->migcookie->xenMigStreamVer);
-
- if (ret < 0 && !vm->persistent)
- virDomainObjListRemove(driver->domains, vm);
+ libxlDomainStartRestore(driver, vm, true, recvfd,
+ args->migcookie->xenMigStreamVer);
/* Remove all listen socks from event handler, and close them. */
for (i = 0; i < nsocks; i++) {

View File

@ -1,7 +1,7 @@
Index: libvirt-4.7.0/examples/apparmor/libvirt-lxc
Index: libvirt-4.8.0/examples/apparmor/libvirt-lxc
===================================================================
--- libvirt-4.7.0.orig/examples/apparmor/libvirt-lxc
+++ libvirt-4.7.0/examples/apparmor/libvirt-lxc
--- libvirt-4.8.0.orig/examples/apparmor/libvirt-lxc
+++ libvirt-4.8.0/examples/apparmor/libvirt-lxc
@@ -2,39 +2,15 @@
#include <abstractions/base>

View File

@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
src/qemu/qemu_driver.c | 7 +++++++
1 file changed, 7 insertions(+)
Index: libvirt-4.7.0/src/qemu/qemu_driver.c
Index: libvirt-4.8.0/src/qemu/qemu_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/qemu/qemu_driver.c
+++ libvirt-4.7.0/src/qemu/qemu_driver.c
@@ -17511,6 +17511,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
--- libvirt-4.8.0.orig/src/qemu/qemu_driver.c
+++ libvirt-4.8.0/src/qemu/qemu_driver.c
@@ -17503,6 +17503,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
goto endjob;
}

View File

@ -1,115 +0,0 @@
commit e39c66d3ce3e65170a1db1324eb1fb8e57d82ecb
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Aug 28 17:13:54 2018 -0600
libxl: fix logic in P2P migration
libxlDoMigrateSrcP2P() performs all phases of the migration
protocol for peer-to-peer migration. Unfortunately the logic
was a bit flawed since it is possible to skip the confirm
phase after a successfull begin and prepare phase. Fix the
logic to always call the confirm phase after a successful begin
and perform. Skip the confirm phase if begin or perform fail.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -972,21 +972,13 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
char *cookieout = NULL;
int cookieoutlen;
bool cancelled = true;
+ bool notify_source = true;
virErrorPtr orig_err = NULL;
int ret = -1;
/* For tunnel migration */
virStreamPtr st = NULL;
struct libxlTunnelControl *tc = NULL;
- dom_xml = libxlDomainMigrationSrcBegin(sconn, vm, xmlin,
- &cookieout, &cookieoutlen);
- if (!dom_xml)
- goto cleanup;
-
- if (virTypedParamsAddString(&params, &nparams, &maxparams,
- VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
- goto cleanup;
-
if (dname &&
virTypedParamsAddString(&params, &nparams, &maxparams,
VIR_MIGRATE_PARAM_DEST_NAME, dname) < 0)
@@ -997,6 +989,19 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
VIR_MIGRATE_PARAM_URI, uri) < 0)
goto cleanup;
+ dom_xml = libxlDomainMigrationSrcBegin(sconn, vm, xmlin,
+ &cookieout, &cookieoutlen);
+ /*
+ * If dom_xml is non-NULL the begin phase has succeeded, and the
+ * confirm phase must be called to cleanup the migration operation.
+ */
+ if (!dom_xml)
+ goto cleanup;
+
+ if (virTypedParamsAddString(&params, &nparams, &maxparams,
+ VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
+ goto confirm;
+
/* We don't require the destination to have P2P support
* as it looks to be normal migration from the receiver perpective.
*/
@@ -1006,7 +1011,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
virObjectUnlock(vm);
if (flags & VIR_MIGRATE_TUNNELLED) {
if (!(st = virStreamNew(dconn, 0)))
- goto cleanup;
+ goto confirm;
ret = dconn->driver->domainMigratePrepareTunnel3Params
(dconn, st, params, nparams, cookieout, cookieoutlen, NULL, NULL, destflags);
} else {
@@ -1016,7 +1021,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
virObjectLock(vm);
if (ret == -1)
- goto cleanup;
+ goto confirm;
if (!(flags & VIR_MIGRATE_TUNNELLED)) {
if (uri_out) {
@@ -1038,8 +1043,10 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
else
ret = libxlDomainMigrationSrcPerform(driver, vm, NULL, NULL,
uri_out, NULL, flags);
- if (ret < 0)
+ if (ret < 0) {
+ notify_source = false;
orig_err = virSaveLastError();
+ }
cancelled = (ret < 0);
@@ -1067,12 +1074,15 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
if (!orig_err)
orig_err = virSaveLastError();
- VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
- ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
-
- if (ret < 0)
- VIR_WARN("Guest %s probably left in 'paused' state on source",
- vm->def->name);
+ confirm:
+ if (notify_source) {
+ VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
+ ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
+
+ if (ret < 0)
+ VIR_WARN("Guest %s probably left in 'paused' state on source",
+ vm->def->name);
+ }
cleanup:
if (flags & VIR_MIGRATE_TUNNELLED) {

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:92c279f7321624ac5a37a81f8bbe8c8d2a16781da04c63c99c92d3de035767e4
size 14813352

View File

@ -1,10 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJbjW0tAAoJEBVYiyZZa+pdVjgIAM1W7JkjCuOexxKUr+tQnKwU
zyPHPP65VvZJs2lF3yvF+0NY3roQTCkVNoxiA9rwu2TEay3mTFxF5N9jypNu4kDs
cuPgJSW8U68XUvDIeebNKEegxSWDJfND8ARr7OoMKSeaU09mUk3eNXwCQ7LEqU9r
iXyRcIzZWuaW+HBMI5PprvE00yow3EFrSWFptmf8X4W5pIK1CVU1Lj6b6XKssPam
WK72M9CJrulvtN+SnuoF3dB7FbARstevR5dtdREY9KdT2xEEOj3f8c/JEYCLZkZV
HH/9tflDeQcplTEkHoFEj0aIJ3bS9OQqjghCZWerJDxlFrRxWySbclsCpF0jQxA=
=YpT0
-----END PGP SIGNATURE-----

3
libvirt-4.8.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c2fd7112d6689fbb4d700b31c01aadd8a0eb275e127dc959cdc166f5f60b3032
size 14739652

10
libvirt-4.8.0.tar.xz.asc Normal file
View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJbsjv9AAoJEBVYiyZZa+pdHs8H/2Vq5LT4yMFlSA6gephfgPkV
+I8lITiZleJuQLDN73iUrUvCw2rOY0B5s0TRAwUIdh4t0dtszJt2X+MsaLY+n3dB
19WZSTGtwOy/gd5NNPz8ua2Z4KH1DPcme2pMkqurwsmu+6FBnl+gVZYZeZm4S1gl
C/8JZu/5VDCbN/HDgQQ1fGlgSZZZ5JwLoHF6USg3GDEOO20B4LUeOiy5Vgp/B8+T
7C0Jf4KS6rsH5HXw63ATrTWO/XYbDeoVYXgWe9tugsyVO8mzoF/Odu49Pkc2Kzp5
Sdod9MsAIFgZLKNCw3izCaCpf2Xdwwz7D3wF7BIdKsVgUfX52Xk84/YwyHT2O2Q=
=w6sZ
-----END PGP SIGNATURE-----

View File

@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
From: <ro@suse.de>
Index: libvirt-4.7.0/src/cpu_map/ppc64_POWER8.xml
Index: libvirt-4.8.0/src/cpu_map/ppc64_POWER8.xml
===================================================================
--- libvirt-4.7.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-4.7.0/src/cpu_map/ppc64_POWER8.xml
--- libvirt-4.8.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-4.8.0/src/cpu_map/ppc64_POWER8.xml
@@ -4,5 +4,7 @@
<pvr value='0x004b0000' mask='0xffff0000'/>
<pvr value='0x004c0000' mask='0xffff0000'/>

View File

@ -1,7 +1,7 @@
Index: libvirt-4.7.0/configure.ac
Index: libvirt-4.8.0/configure.ac
===================================================================
--- libvirt-4.7.0.orig/configure.ac
+++ libvirt-4.7.0/configure.ac
--- libvirt-4.8.0.orig/configure.ac
+++ libvirt-4.8.0/configure.ac
@@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH
LIBVIRT_ARG_LIBXML
LIBVIRT_ARG_MACVTAP
@ -26,11 +26,11 @@ Index: libvirt-4.7.0/configure.ac
LIBVIRT_RESULT_NLS
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL
Index: libvirt-4.7.0/tools/virsh.c
Index: libvirt-4.8.0/tools/virsh.c
===================================================================
--- libvirt-4.7.0.orig/tools/virsh.c
+++ libvirt-4.7.0/tools/virsh.c
@@ -575,6 +575,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
--- libvirt-4.8.0.orig/tools/virsh.c
+++ libvirt-4.8.0/tools/virsh.c
@@ -570,6 +570,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
vshPrint(ctl, " netcf");
@ -39,10 +39,10 @@ Index: libvirt-4.7.0/tools/virsh.c
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
Index: libvirt-4.7.0/src/interface/interface_backend_netcf.c
Index: libvirt-4.8.0/src/interface/interface_backend_netcf.c
===================================================================
--- libvirt-4.7.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-4.7.0/src/interface/interface_backend_netcf.c
--- libvirt-4.8.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-4.8.0/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@
#include <config.h>
@ -126,10 +126,10 @@ Index: libvirt-4.7.0/src/interface/interface_backend_netcf.c
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
return -1;
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
Index: libvirt-4.7.0/src/interface/interface_driver.c
Index: libvirt-4.8.0/src/interface/interface_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/interface/interface_driver.c
+++ libvirt-4.7.0/src/interface/interface_driver.c
--- libvirt-4.8.0.orig/src/interface/interface_driver.c
+++ libvirt-4.8.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@ -147,10 +147,10 @@ Index: libvirt-4.7.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
Index: libvirt-4.7.0/m4/virt-netcontrol.m4
Index: libvirt-4.8.0/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
+++ libvirt-4.7.0/m4/virt-netcontrol.m4
+++ libvirt-4.8.0/m4/virt-netcontrol.m4
@@ -0,0 +1,39 @@
+dnl The libnetcontrol library
+dnl
@ -191,10 +191,10 @@ Index: libvirt-4.7.0/m4/virt-netcontrol.m4
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
+ LIBVIRT_RESULT_LIB([NETCONTROL])
+])
Index: libvirt-4.7.0/src/interface/Makefile.inc.am
Index: libvirt-4.8.0/src/interface/Makefile.inc.am
===================================================================
--- libvirt-4.7.0.orig/src/interface/Makefile.inc.am
+++ libvirt-4.7.0/src/interface/Makefile.inc.am
--- libvirt-4.8.0.orig/src/interface/Makefile.inc.am
+++ libvirt-4.8.0/src/interface/Makefile.inc.am
@@ -4,6 +4,7 @@ INTERFACE_DRIVER_SOURCES = \
$(NULL)

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Tue Oct 2 19:55:14 UTC 2018 - jfehlig@suse.com
- Update to libvirt 4.8.0
- Many incremental improvements and bug fixes, see
http://libvirt.org/news.html
- Dropped patches:
60b4fd90-libxl-rm-vm-finish-phase.patch,
e39c66d3-libxl-fix-p2p-migration.patch,
47da84e0-libxl-fix-job-handling-migsrc.patch,
0149464a-libxl-fix-job-handling-migdst.patch,
5ea2abb3-libxl-join-mig-rcv-thread.patch
-------------------------------------------------------------------
Mon Sep 24 10:42:27 UTC 2018 - Jan Engelhardt <jengelh@inai.de>

View File

@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@ -185,7 +185,7 @@
Name: libvirt
Url: http://libvirt.org/
Version: 4.7.0
Version: 4.8.0
Release: 0
Summary: Library providing a virtualization API
License: LGPL-2.1-or-later
@ -339,11 +339,6 @@ Source6: libvirtd-relocation-server.xml
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
Patch0: 60b4fd90-libxl-rm-vm-finish-phase.patch
Patch1: e39c66d3-libxl-fix-p2p-migration.patch
Patch2: 47da84e0-libxl-fix-job-handling-migsrc.patch
Patch3: 0149464a-libxl-fix-job-handling-migdst.patch
Patch4: 5ea2abb3-libxl-join-mig-rcv-thread.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@ -906,11 +901,6 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1

View File

@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600
option, but domainReset can be implemented in the libxl driver by
forcibly destroying the domain and starting it again.
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
Index: libvirt-4.8.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
@@ -1344,6 +1344,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
--- libvirt-4.8.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.8.0/src/libxl/libxl_driver.c
@@ -1355,6 +1355,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
}
static int
@ -74,11 +74,11 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
libxlDomainDestroyFlags(virDomainPtr dom,
unsigned int flags)
{
@@ -6376,6 +6431,7 @@ static virHypervisorDriver libxlHypervis
@@ -6510,6 +6565,7 @@ static virHypervisorDriver libxlHypervis
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
.domainReboot = libxlDomainReboot, /* 0.9.0 */
+ .domainReset = libxlDomainReset, /* 1.2.16 */
.domainDestroy = libxlDomainDestroy, /* 0.9.0 */
.domainDestroyFlags = libxlDomainDestroyFlags, /* 0.9.4 */
.domainGetOSType = libxlDomainGetOSType, /* 0.9.0 */
#ifdef LIBXL_HAVE_DOMAIN_SUSPEND_ONLY

View File

@ -8,10 +8,10 @@ as the default <emulator>, instead of the qemu-xen one.
See FATE#320638 for details.
Index: libvirt-4.7.0/src/libxl/libxl_capabilities.c
Index: libvirt-4.8.0/src/libxl/libxl_capabilities.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_capabilities.c
+++ libvirt-4.7.0/src/libxl/libxl_capabilities.c
--- libvirt-4.8.0.orig/src/libxl/libxl_capabilities.c
+++ libvirt-4.8.0/src/libxl/libxl_capabilities.c
@@ -38,6 +38,7 @@
#include "libxl_capabilities.h"
#include "cpu/cpu_x86.h"

View File

@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
Index: libvirt-4.7.0/src/libxl/libxl_conf.c
Index: libvirt-4.8.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_conf.c
+++ libvirt-4.7.0/src/libxl/libxl_conf.c
@@ -837,6 +837,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
--- libvirt-4.8.0.orig/src/libxl/libxl_conf.c
+++ libvirt-4.8.0/src/libxl/libxl_conf.c
@@ -848,6 +848,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -38,7 +38,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
static char *
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
const char *username,
@@ -1085,6 +1109,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1096,6 +1120,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;

View File

@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
tools/virsh.pod | 8 ++++++++
6 files changed, 125 insertions(+), 6 deletions(-)
Index: libvirt-4.7.0/include/libvirt/libvirt-domain.h
Index: libvirt-4.8.0/include/libvirt/libvirt-domain.h
===================================================================
--- libvirt-4.7.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-4.7.0/include/libvirt/libvirt-domain.h
--- libvirt-4.8.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-4.8.0/include/libvirt/libvirt-domain.h
@@ -1015,6 +1015,31 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment"
@ -52,11 +52,11 @@ Index: libvirt-4.7.0/include/libvirt/libvirt-domain.h
/* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname,
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
Index: libvirt-4.8.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
@@ -5985,6 +5985,9 @@ libxlDomainMigratePerform3Params(virDoma
--- libvirt-4.8.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.8.0/src/libxl/libxl_driver.c
@@ -6119,6 +6119,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL;
const char *uri = NULL;
int ret = -1;
@ -66,7 +66,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
virReportUnsupportedError();
@@ -6001,6 +6004,18 @@ libxlDomainMigratePerform3Params(virDoma
@@ -6135,6 +6138,18 @@ libxlDomainMigratePerform3Params(virDoma
virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_DEST_NAME,
&dname) < 0 ||
@ -85,7 +85,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_URI,
&uri) < 0)
@@ -6015,11 +6030,11 @@ libxlDomainMigratePerform3Params(virDoma
@@ -6149,11 +6164,11 @@ libxlDomainMigratePerform3Params(virDoma
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
@ -99,10 +99,10 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
goto cleanup;
}
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
Index: libvirt-4.8.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
--- libvirt-4.8.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.8.0/src/libxl/libxl_migration.c
@@ -346,18 +346,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
static int
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
@ -264,10 +264,10 @@ Index: libvirt-4.7.0/src/libxl/libxl_migration.c
virObjectLock(vm);
if (ret < 0) {
Index: libvirt-4.7.0/src/libxl/libxl_migration.h
Index: libvirt-4.8.0/src/libxl/libxl_migration.h
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.h
+++ libvirt-4.7.0/src/libxl/libxl_migration.h
--- libvirt-4.8.0.orig/src/libxl/libxl_migration.h
+++ libvirt-4.8.0/src/libxl/libxl_migration.h
@@ -39,6 +39,10 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@ -312,11 +312,11 @@ Index: libvirt-4.7.0/src/libxl/libxl_migration.h
virDomainPtr
libxlDomainMigrationDstFinish(virConnectPtr dconn,
Index: libvirt-4.7.0/tools/virsh-domain.c
Index: libvirt-4.8.0/tools/virsh-domain.c
===================================================================
--- libvirt-4.7.0.orig/tools/virsh-domain.c
+++ libvirt-4.7.0/tools/virsh-domain.c
@@ -10425,6 +10425,22 @@ static const vshCmdOptDef opts_migrate[]
--- libvirt-4.8.0.orig/tools/virsh-domain.c
+++ libvirt-4.8.0/tools/virsh-domain.c
@@ -10450,6 +10450,22 @@ static const vshCmdOptDef opts_migrate[]
.type = VSH_OT_BOOL,
.help = N_("use TLS for migration")
},
@ -339,7 +339,7 @@ Index: libvirt-4.7.0/tools/virsh-domain.c
{.name = NULL}
};
@@ -10448,6 +10464,7 @@ doMigrate(void *opaque)
@@ -10473,6 +10489,7 @@ doMigrate(void *opaque)
unsigned long long ullOpt = 0;
int rv;
virConnectPtr dconn = data->dconn;
@ -347,7 +347,7 @@ Index: libvirt-4.7.0/tools/virsh-domain.c
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGINT);
@@ -10567,6 +10584,27 @@ doMigrate(void *opaque)
@@ -10592,6 +10609,27 @@ doMigrate(void *opaque)
goto save_error;
}
@ -375,10 +375,10 @@ Index: libvirt-4.7.0/tools/virsh-domain.c
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
goto out;
if (opt) {
Index: libvirt-4.7.0/tools/virsh.pod
Index: libvirt-4.8.0/tools/virsh.pod
===================================================================
--- libvirt-4.7.0.orig/tools/virsh.pod
+++ libvirt-4.7.0/tools/virsh.pod
--- libvirt-4.8.0.orig/tools/virsh.pod
+++ libvirt-4.8.0/tools/virsh.pod
@@ -1937,6 +1937,14 @@ Providing I<--tls> causes the migration
the migration of the domain. Usage requires proper TLS setup for both source
and target.

View File

@ -7,11 +7,11 @@ and npiv.
For more details, see bsc#954872 and FATE#319810
Index: libvirt-4.7.0/src/libxl/libxl_conf.c
Index: libvirt-4.8.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_conf.c
+++ libvirt-4.7.0/src/libxl/libxl_conf.c
@@ -837,6 +837,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
--- libvirt-4.8.0.orig/src/libxl/libxl_conf.c
+++ libvirt-4.8.0/src/libxl/libxl_conf.c
@@ -848,6 +848,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -37,7 +37,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
static void
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{
@@ -982,6 +1001,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
@@ -993,6 +1012,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{
@ -45,7 +45,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src);
@@ -997,7 +1017,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1008,7 +1028,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1;
} else {
@ -54,7 +54,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
return -1;
}
@@ -1110,6 +1130,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1121,6 +1141,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;
libxlDiskSetCacheMode(x_disk, l_disk->cachemode);

View File

@ -13,11 +13,11 @@ device with the same name that is being created.
src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+)
Index: libvirt-4.7.0/src/lxc/lxc_controller.c
Index: libvirt-4.8.0/src/lxc/lxc_controller.c
===================================================================
--- libvirt-4.7.0.orig/src/lxc/lxc_controller.c
+++ libvirt-4.7.0/src/lxc/lxc_controller.c
@@ -73,6 +73,7 @@
--- libvirt-4.8.0.orig/src/lxc/lxc_controller.c
+++ libvirt-4.8.0/src/lxc/lxc_controller.c
@@ -72,6 +72,7 @@
#include "rpc/virnetdaemon.h"
#include "virstring.h"
#include "virgettext.h"
@ -25,7 +25,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_controller.c
#define VIR_FROM_THIS VIR_FROM_LXC
@@ -1999,6 +2000,7 @@ static int virLXCControllerDeleteInterfa
@@ -1998,6 +1999,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1;
}
@ -33,11 +33,11 @@ Index: libvirt-4.7.0/src/lxc/lxc_controller.c
return ret;
}
Index: libvirt-4.7.0/src/lxc/lxc_driver.c
Index: libvirt-4.8.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/lxc/lxc_driver.c
+++ libvirt-4.7.0/src/lxc/lxc_driver.c
@@ -74,6 +74,7 @@
--- libvirt-4.8.0.orig/src/lxc/lxc_driver.c
+++ libvirt-4.8.0/src/lxc/lxc_driver.c
@@ -73,6 +73,7 @@
#include "virtime.h"
#include "virtypedparam.h"
#include "viruri.h"
@ -45,7 +45,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
#include "virstring.h"
#include "viraccessapicheck.h"
#include "viraccessapichecklxc.h"
@@ -3945,6 +3946,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
@@ -3944,6 +3945,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
case VIR_DOMAIN_NET_TYPE_NETWORK:
case VIR_DOMAIN_NET_TYPE_ETHERNET:
ignore_value(virNetDevVethDelete(veth));
@ -53,7 +53,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
break;
case VIR_DOMAIN_NET_TYPE_DIRECT:
@@ -4388,6 +4390,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
@@ -4387,6 +4389,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup;
}
@ -61,10 +61,10 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
break;
/* It'd be nice to support this, but with macvlan
Index: libvirt-4.7.0/src/lxc/lxc_process.c
Index: libvirt-4.8.0/src/lxc/lxc_process.c
===================================================================
--- libvirt-4.7.0.orig/src/lxc/lxc_process.c
+++ libvirt-4.7.0/src/lxc/lxc_process.c
--- libvirt-4.8.0.orig/src/lxc/lxc_process.c
+++ libvirt-4.8.0/src/lxc/lxc_process.c
@@ -51,6 +51,7 @@
#include "viratomic.h"
#include "virprocess.h"

View File

@ -17,11 +17,11 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
2 files changed, 8 insertions(+), 2 deletions(-)
Index: libvirt-4.7.0/src/network/bridge_driver.c
Index: libvirt-4.8.0/src/network/bridge_driver.c
===================================================================
--- libvirt-4.7.0.orig/src/network/bridge_driver.c
+++ libvirt-4.7.0/src/network/bridge_driver.c
@@ -1463,7 +1463,14 @@ networkDnsmasqConfContents(virNetworkObj
--- libvirt-4.8.0.orig/src/network/bridge_driver.c
+++ libvirt-4.8.0/src/network/bridge_driver.c
@@ -1458,7 +1458,14 @@ networkDnsmasqConfContents(virNetworkObj
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) {
virBufferAddLit(&configbuf, "dhcp-no-override\n");
@ -37,10 +37,10 @@ Index: libvirt-4.7.0/src/network/bridge_driver.c
}
if (ipdef->tftproot) {
Index: libvirt-4.7.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
Index: libvirt-4.8.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
===================================================================
--- libvirt-4.7.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-4.7.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
--- libvirt-4.8.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-4.8.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
@@ -10,7 +10,6 @@ bind-dynamic
interface=virbr1
dhcp-range=192.168.122.1,static

View File

@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
See bnc#894956
Index: libvirt-4.7.0/src/util/virarch.c
Index: libvirt-4.8.0/src/util/virarch.c
===================================================================
--- libvirt-4.7.0.orig/src/util/virarch.c
+++ libvirt-4.7.0/src/util/virarch.c
--- libvirt-4.8.0.orig/src/util/virarch.c
+++ libvirt-4.8.0/src/util/virarch.c
@@ -172,6 +172,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) {

View File

@ -1,7 +1,7 @@
Index: libvirt-4.7.0/examples/apparmor/libvirt-qemu
Index: libvirt-4.8.0/examples/apparmor/libvirt-qemu
===================================================================
--- libvirt-4.7.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-4.7.0/examples/apparmor/libvirt-qemu
--- libvirt-4.8.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-4.8.0/examples/apparmor/libvirt-qemu
@@ -221,3 +221,6 @@
# required for sasl GSSAPI plugin
/etc/gss/mech.d/ r,

View File

@ -8,11 +8,11 @@ Subject: [PATCH] support managed pci devices in xen driver
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
Index: libvirt-4.7.0/src/xenconfig/xen_common.c
Index: libvirt-4.8.0/src/xenconfig/xen_common.c
===================================================================
--- libvirt-4.7.0.orig/src/xenconfig/xen_common.c
+++ libvirt-4.7.0/src/xenconfig/xen_common.c
@@ -402,12 +402,19 @@ xenParsePCI(char *entry)
--- libvirt-4.8.0.orig/src/xenconfig/xen_common.c
+++ libvirt-4.8.0/src/xenconfig/xen_common.c
@@ -390,12 +390,19 @@ xenParsePCI(char *entry)
int busID;
int slotID;
int funcID;
@ -32,7 +32,7 @@ Index: libvirt-4.7.0/src/xenconfig/xen_common.c
if (!(nextkey = strchr(key, ':')))
return NULL;
if (virStrncpy(domain, key, (nextkey - key), sizeof(domain)) < 0) {
@@ -452,10 +459,30 @@ xenParsePCI(char *entry)
@@ -440,10 +447,30 @@ xenParsePCI(char *entry)
if (virStrToLong_i(func, NULL, 16, &funcID) < 0)
return NULL;
@ -64,10 +64,10 @@ Index: libvirt-4.7.0/src/xenconfig/xen_common.c
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
hostdev->source.subsys.u.pci.addr.domain = domainID;
hostdev->source.subsys.u.pci.addr.bus = busID;
Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
Index: libvirt-4.8.0/src/xenconfig/xen_sxpr.c
===================================================================
--- libvirt-4.7.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-4.7.0/src/xenconfig/xen_sxpr.c
--- libvirt-4.8.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-4.8.0/src/xenconfig/xen_sxpr.c
@@ -1057,6 +1057,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;

View File

@ -8,10 +8,10 @@ It was also noticed that the per-domain profiles need a libnl rule
to squelch a denial when starting confined domains.
Found while investigating bsc#1058847
Index: libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
Index: libvirt-4.8.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
===================================================================
--- libvirt-4.7.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+++ libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
--- libvirt-4.8.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+++ libvirt-4.8.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
@@ -17,7 +17,7 @@ profile virt-aa-helper /usr/{lib,lib64}/
owner @{PROC}/[0-9]*/status r,
@{PROC}/filesystems r,
@ -21,10 +21,10 @@ Index: libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
# for hostdev
/sys/devices/ r,
Index: libvirt-4.7.0/examples/apparmor/libvirt-qemu
Index: libvirt-4.8.0/examples/apparmor/libvirt-qemu
===================================================================
--- libvirt-4.7.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-4.7.0/examples/apparmor/libvirt-qemu
--- libvirt-4.8.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-4.8.0/examples/apparmor/libvirt-qemu
@@ -62,6 +62,7 @@
#/dev/fb* rw,

View File

@ -1,9 +1,9 @@
Adjust libvirt-guests service to conform to SUSE standards
Index: libvirt-4.7.0/tools/libvirt-guests.init.in
Index: libvirt-4.8.0/tools/libvirt-guests.init.in
===================================================================
--- libvirt-4.7.0.orig/tools/libvirt-guests.init.in
+++ libvirt-4.7.0/tools/libvirt-guests.init.in
--- libvirt-4.8.0.orig/tools/libvirt-guests.init.in
+++ libvirt-4.8.0/tools/libvirt-guests.init.in
@@ -4,27 +4,27 @@
# http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
#
@ -46,10 +46,10 @@ Index: libvirt-4.7.0/tools/libvirt-guests.init.in
+
exec @libexecdir@/libvirt-guests.sh "$@"
Index: libvirt-4.7.0/tools/libvirt-guests.sh.in
Index: libvirt-4.8.0/tools/libvirt-guests.sh.in
===================================================================
--- libvirt-4.7.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-4.7.0/tools/libvirt-guests.sh.in
--- libvirt-4.8.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-4.8.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@ -209,10 +209,10 @@ Index: libvirt-4.7.0/tools/libvirt-guests.sh.in
esac
-exit $RETVAL
+rc_exit
Index: libvirt-4.7.0/tools/libvirt-guests.sysconf
Index: libvirt-4.8.0/tools/libvirt-guests.sysconf
===================================================================
--- libvirt-4.7.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-4.7.0/tools/libvirt-guests.sysconf
--- libvirt-4.8.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-4.8.0/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests
+

View File

@ -3,10 +3,10 @@ Disable TLS by default
On SUSE distros, the default is for libvirtd to listen only on the
Unix Domain Socket. The libvirt client still provides remote access
via a SSH tunnel.
Index: libvirt-4.7.0/src/remote/libvirtd.conf
Index: libvirt-4.8.0/src/remote/libvirtd.conf
===================================================================
--- libvirt-4.7.0.orig/src/remote/libvirtd.conf
+++ libvirt-4.7.0/src/remote/libvirtd.conf
--- libvirt-4.8.0.orig/src/remote/libvirtd.conf
+++ libvirt-4.8.0/src/remote/libvirtd.conf
@@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.
@ -18,10 +18,10 @@ Index: libvirt-4.7.0/src/remote/libvirtd.conf
# Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the libvirtd process for this to
Index: libvirt-4.7.0/src/remote/remote_daemon_config.c
Index: libvirt-4.8.0/src/remote/remote_daemon_config.c
===================================================================
--- libvirt-4.7.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-4.7.0/src/remote/remote_daemon_config.c
--- libvirt-4.8.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-4.8.0/src/remote/remote_daemon_config.c
@@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
@ -31,10 +31,10 @@ Index: libvirt-4.7.0/src/remote/remote_daemon_config.c
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
Index: libvirt-4.7.0/src/remote/test_libvirtd.aug.in
Index: libvirt-4.8.0/src/remote/test_libvirtd.aug.in
===================================================================
--- libvirt-4.7.0.orig/src/remote/test_libvirtd.aug.in
+++ libvirt-4.7.0/src/remote/test_libvirtd.aug.in
--- libvirt-4.8.0.orig/src/remote/test_libvirtd.aug.in
+++ libvirt-4.8.0/src/remote/test_libvirtd.aug.in
@@ -2,7 +2,7 @@ module Test_libvirtd =
::CONFIG::

View File

@ -7,10 +7,10 @@ On SUSE distros, we promote libvirt and all the libvirt-based
tools. If a user installs libvirt on their SUSE Xen host, then
libvirt should be king and override xendomains. See bsc#1015348
Index: libvirt-4.7.0/src/remote/libvirtd.service.in
Index: libvirt-4.8.0/src/remote/libvirtd.service.in
===================================================================
--- libvirt-4.7.0.orig/src/remote/libvirtd.service.in
+++ libvirt-4.7.0/src/remote/libvirtd.service.in
--- libvirt-4.8.0.orig/src/remote/libvirtd.service.in
+++ libvirt-4.8.0/src/remote/libvirtd.service.in
@@ -17,6 +17,8 @@ After=local-fs.target
After=remote-fs.target
After=systemd-logind.service

View File

@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
Index: libvirt-4.7.0/src/remote/libvirtd.sysconf
Index: libvirt-4.8.0/src/remote/libvirtd.sysconf
===================================================================
--- libvirt-4.7.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-4.7.0/src/remote/libvirtd.sysconf
--- libvirt-4.8.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-4.8.0/src/remote/libvirtd.sysconf
@@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt
+

View File

@ -1,10 +1,10 @@
Adjust paths of OVMF firmwares on SUSE distros
Index: libvirt-4.7.0/src/qemu/qemu.conf
Index: libvirt-4.8.0/src/qemu/qemu.conf
===================================================================
--- libvirt-4.7.0.orig/src/qemu/qemu.conf
+++ libvirt-4.7.0/src/qemu/qemu.conf
@@ -769,10 +769,9 @@ security_default_confined = 0
--- libvirt-4.8.0.orig/src/qemu/qemu.conf
+++ libvirt-4.8.0/src/qemu/qemu.conf
@@ -768,10 +768,9 @@ security_default_confined = 0
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme.
#nvram = [
@ -18,11 +18,11 @@ Index: libvirt-4.7.0/src/qemu/qemu.conf
#]
# The backend to use for handling stdout/stderr output from
Index: libvirt-4.7.0/src/qemu/qemu_conf.c
Index: libvirt-4.8.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-4.7.0.orig/src/qemu/qemu_conf.c
+++ libvirt-4.7.0/src/qemu/qemu_conf.c
@@ -122,10 +122,9 @@ void qemuDomainCmdlineDefFree(qemuDomain
--- libvirt-4.8.0.orig/src/qemu/qemu_conf.c
+++ libvirt-4.8.0/src/qemu/qemu_conf.c
@@ -118,10 +118,9 @@ void qemuDomainCmdlineDefFree(qemuDomain
#ifndef DEFAULT_LOADER_NVRAM
# define DEFAULT_LOADER_NVRAM \
@ -36,11 +36,11 @@ Index: libvirt-4.7.0/src/qemu/qemu_conf.c
#endif
Index: libvirt-4.7.0/src/security/virt-aa-helper.c
Index: libvirt-4.8.0/src/security/virt-aa-helper.c
===================================================================
--- libvirt-4.7.0.orig/src/security/virt-aa-helper.c
+++ libvirt-4.7.0/src/security/virt-aa-helper.c
@@ -515,7 +515,8 @@ valid_path(const char *path, const bool
--- libvirt-4.8.0.orig/src/security/virt-aa-helper.c
+++ libvirt-4.8.0/src/security/virt-aa-helper.c
@@ -511,7 +511,8 @@ valid_path(const char *path, const bool
"/usr/share/ovmf/", /* for OVMF images */
"/usr/share/AAVMF/", /* for AAVMF images */
"/usr/share/qemu-efi/", /* for AAVMF images */

View File

@ -7,10 +7,10 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch,
etc.), but for now they are all lumped together in this
single patch.
Index: libvirt-4.7.0/src/qemu/qemu.conf
Index: libvirt-4.8.0/src/qemu/qemu.conf
===================================================================
--- libvirt-4.7.0.orig/src/qemu/qemu.conf
+++ libvirt-4.7.0/src/qemu/qemu.conf
--- libvirt-4.8.0.orig/src/qemu/qemu.conf
+++ libvirt-4.8.0/src/qemu/qemu.conf
@@ -414,11 +414,20 @@
# isolation, but it cannot appear in a list of drivers.
#

View File

@ -1,9 +1,9 @@
Adjust virtlockd sysconfig file to conform to SUSE standards
Index: libvirt-4.7.0/src/locking/virtlockd.sysconf
Index: libvirt-4.8.0/src/locking/virtlockd.sysconf
===================================================================
--- libvirt-4.7.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-4.7.0/src/locking/virtlockd.sysconf
--- libvirt-4.8.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-4.8.0/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+

View File

@ -1,9 +1,9 @@
Adjust virtlogd sysconfig file to conform to SUSE standards
Index: libvirt-4.7.0/src/logging/virtlogd.sysconf
Index: libvirt-4.8.0/src/logging/virtlogd.sysconf
===================================================================
--- libvirt-4.7.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-4.7.0/src/logging/virtlogd.sysconf
--- libvirt-4.8.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-4.8.0/src/logging/virtlogd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlogd
+

View File

@ -1,7 +1,7 @@
Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
Index: libvirt-4.8.0/src/xenconfig/xen_sxpr.c
===================================================================
--- libvirt-4.7.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-4.7.0/src/xenconfig/xen_sxpr.c
--- libvirt-4.8.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-4.8.0/src/xenconfig/xen_sxpr.c
@@ -387,7 +387,7 @@ xenParseSxprVifRate(const char *rate, un
static int
xenParseSxprDisks(virDomainDefPtr def,

View File

@ -6,10 +6,10 @@ and 'file'. This was implicitly done prior to commit 9673418c.
https://bugzilla.suse.com/show_bug.cgi?id=938228
Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
Index: libvirt-4.8.0/src/xenconfig/xen_sxpr.c
===================================================================
--- libvirt-4.7.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-4.7.0/src/xenconfig/xen_sxpr.c
--- libvirt-4.8.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-4.8.0/src/xenconfig/xen_sxpr.c
@@ -501,10 +501,11 @@ xenParseSxprDisks(virDomainDefPtr def,
omnipotent, we can revisit this, perhaps stat()'ing
the src file in question */