diff --git a/0001-Extract-stats-functions-from-the-qemu-driver.patch b/0001-Extract-stats-functions-from-the-qemu-driver.patch index 4b337da..f4d370a 100644 --- a/0001-Extract-stats-functions-from-the-qemu-driver.patch +++ b/0001-Extract-stats-functions-from-the-qemu-driver.patch @@ -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 \ diff --git a/0001-libxl-add-support-for-BlockResize-API.patch b/0001-libxl-add-support-for-BlockResize-API.patch index 752c13f..38ba92f 100644 --- a/0001-libxl-add-support-for-BlockResize-API.patch +++ b/0001-libxl-add-support-for-BlockResize-API.patch @@ -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 */ diff --git a/0002-lxc-implement-connectGetAllDomainStats.patch b/0002-lxc-implement-connectGetAllDomainStats.patch index 0e748f3..2fd93d8 100644 --- a/0002-lxc-implement-connectGetAllDomainStats.patch +++ b/0002-lxc-implement-connectGetAllDomainStats.patch @@ -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 */ diff --git a/0149464a-libxl-fix-job-handling-migdst.patch b/0149464a-libxl-fix-job-handling-migdst.patch deleted file mode 100644 index a38239b..0000000 --- a/0149464a-libxl-fix-job-handling-migdst.patch +++ /dev/null @@ -1,239 +0,0 @@ -commit 0149464afc7100f048a2468e40e84b6a50aeb3a3 -Author: Jim Fehlig -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 - ACKed-by: Michal Privoznik - -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; diff --git a/47da84e0-libxl-fix-job-handling-migsrc.patch b/47da84e0-libxl-fix-job-handling-migsrc.patch deleted file mode 100644 index b51df9e..0000000 --- a/47da84e0-libxl-fix-job-handling-migsrc.patch +++ /dev/null @@ -1,88 +0,0 @@ -commit 47da84e09044e5af914a64469d06adef34279964 -Author: Jim Fehlig -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 - ACKed-by: Michal Privoznik - -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; diff --git a/5ea2abb3-libxl-join-mig-rcv-thread.patch b/5ea2abb3-libxl-join-mig-rcv-thread.patch deleted file mode 100644 index a6d1153..0000000 --- a/5ea2abb3-libxl-join-mig-rcv-thread.patch +++ /dev/null @@ -1,87 +0,0 @@ -commit 5ea2abb3bfd552175dc2dfcc295fde3fbf17fc37 -Author: Jim Fehlig -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 - ACKed-by: Michal Privoznik - -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; - diff --git a/60b4fd90-libxl-rm-vm-finish-phase.patch b/60b4fd90-libxl-rm-vm-finish-phase.patch deleted file mode 100644 index bea2ce1..0000000 --- a/60b4fd90-libxl-rm-vm-finish-phase.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 60b4fd90213135be0e471756d3d95c68eb3e8f59 -Author: Jim Fehlig -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 - ACKed-by: Michal Privoznik - -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++) { diff --git a/apparmor-no-mount.patch b/apparmor-no-mount.patch index 4165a23..6e792ac 100644 --- a/apparmor-no-mount.patch +++ b/apparmor-no-mount.patch @@ -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 diff --git a/blockcopy-check-dst-identical-device.patch b/blockcopy-check-dst-identical-device.patch index c039213..5ee3992 100644 --- a/blockcopy-check-dst-identical-device.patch +++ b/blockcopy-check-dst-identical-device.patch @@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu 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; } diff --git a/e39c66d3-libxl-fix-p2p-migration.patch b/e39c66d3-libxl-fix-p2p-migration.patch deleted file mode 100644 index 78406f9..0000000 --- a/e39c66d3-libxl-fix-p2p-migration.patch +++ /dev/null @@ -1,115 +0,0 @@ -commit e39c66d3ce3e65170a1db1324eb1fb8e57d82ecb -Author: Jim Fehlig -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 - ACKed-by: Michal Privoznik - -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(¶ms, &nparams, &maxparams, -- VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0) -- goto cleanup; -- - if (dname && - virTypedParamsAddString(¶ms, &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(¶ms, &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) { diff --git a/libvirt-4.7.0.tar.xz b/libvirt-4.7.0.tar.xz deleted file mode 100644 index 8cc0223..0000000 --- a/libvirt-4.7.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:92c279f7321624ac5a37a81f8bbe8c8d2a16781da04c63c99c92d3de035767e4 -size 14813352 diff --git a/libvirt-4.7.0.tar.xz.asc b/libvirt-4.7.0.tar.xz.asc deleted file mode 100644 index da0b232..0000000 --- a/libvirt-4.7.0.tar.xz.asc +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEcBAABAgAGBQJbjW0tAAoJEBVYiyZZa+pdVjgIAM1W7JkjCuOexxKUr+tQnKwU -zyPHPP65VvZJs2lF3yvF+0NY3roQTCkVNoxiA9rwu2TEay3mTFxF5N9jypNu4kDs -cuPgJSW8U68XUvDIeebNKEegxSWDJfND8ARr7OoMKSeaU09mUk3eNXwCQ7LEqU9r -iXyRcIzZWuaW+HBMI5PprvE00yow3EFrSWFptmf8X4W5pIK1CVU1Lj6b6XKssPam -WK72M9CJrulvtN+SnuoF3dB7FbARstevR5dtdREY9KdT2xEEOj3f8c/JEYCLZkZV -HH/9tflDeQcplTEkHoFEj0aIJ3bS9OQqjghCZWerJDxlFrRxWySbclsCpF0jQxA= -=YpT0 ------END PGP SIGNATURE----- diff --git a/libvirt-4.8.0.tar.xz b/libvirt-4.8.0.tar.xz new file mode 100644 index 0000000..62dc76d --- /dev/null +++ b/libvirt-4.8.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2fd7112d6689fbb4d700b31c01aadd8a0eb275e127dc959cdc166f5f60b3032 +size 14739652 diff --git a/libvirt-4.8.0.tar.xz.asc b/libvirt-4.8.0.tar.xz.asc new file mode 100644 index 0000000..2d865e4 --- /dev/null +++ b/libvirt-4.8.0.tar.xz.asc @@ -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----- diff --git a/libvirt-power8-models.patch b/libvirt-power8-models.patch index 4b5963e..f6bd679 100644 --- a/libvirt-power8-models.patch +++ b/libvirt-power8-models.patch @@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML From: -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 @@ diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch index 007f9ad..98f55c3 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -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 @@ -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) diff --git a/libvirt.changes b/libvirt.changes index c96c2ac..cf2e219 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -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 diff --git a/libvirt.spec b/libvirt.spec index aaf983f..4086348 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -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 diff --git a/libxl-dom-reset.patch b/libxl-dom-reset.patch index dd3e688..5a9d015 100644 --- a/libxl-dom-reset.patch +++ b/libxl-dom-reset.patch @@ -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 diff --git a/libxl-qemu-emulator-caps.patch b/libxl-qemu-emulator-caps.patch index 1ea7016..624ae32 100644 --- a/libxl-qemu-emulator-caps.patch +++ b/libxl-qemu-emulator-caps.patch @@ -8,10 +8,10 @@ as the default , 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" diff --git a/libxl-set-cach-mode.patch b/libxl-set-cach-mode.patch index 2162279..5d242c7 100644 --- a/libxl-set-cach-mode.patch +++ b/libxl-set-cach-mode.patch @@ -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; diff --git a/libxl-set-migration-constraints.patch b/libxl-set-migration-constraints.patch index d27cc47..7cbbb6b 100644 --- a/libxl-set-migration-constraints.patch +++ b/libxl-set-migration-constraints.patch @@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig 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. diff --git a/libxl-support-block-script.patch b/libxl-support-block-script.patch index 1994c72..5841a7e 100644 --- a/libxl-support-block-script.patch +++ b/libxl-support-block-script.patch @@ -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); diff --git a/lxc-wait-after-eth-del.patch b/lxc-wait-after-eth-del.patch index d30e375..0fc3b4c 100644 --- a/lxc-wait-after-eth-del.patch +++ b/lxc-wait-after-eth-del.patch @@ -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" diff --git a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch index 4ff84db..e0ed075 100644 --- a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch +++ b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch @@ -17,11 +17,11 @@ Signed-off-by: Martin Wilck 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 diff --git a/ppc64le-canonical-name.patch b/ppc64le-canonical-name.patch index 0f13f10..3cf1919 100644 --- a/ppc64le-canonical-name.patch +++ b/ppc64le-canonical-name.patch @@ -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")) { diff --git a/qemu-apparmor-screenshot.patch b/qemu-apparmor-screenshot.patch index db08c35..452af01 100644 --- a/qemu-apparmor-screenshot.patch +++ b/qemu-apparmor-screenshot.patch @@ -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, diff --git a/support-managed-pci-xen-driver.patch b/support-managed-pci-xen-driver.patch index cf857a6..f6abb96 100644 --- a/support-managed-pci-xen-driver.patch +++ b/support-managed-pci-xen-driver.patch @@ -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; diff --git a/suse-apparmor-libnl-paths.patch b/suse-apparmor-libnl-paths.patch index 36612dc..14e6caf 100644 --- a/suse-apparmor-libnl-paths.patch +++ b/suse-apparmor-libnl-paths.patch @@ -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, diff --git a/suse-libvirt-guests-service.patch b/suse-libvirt-guests-service.patch index 13a2df8..22833e8 100644 --- a/suse-libvirt-guests-service.patch +++ b/suse-libvirt-guests-service.patch @@ -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 # . @@ -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 + diff --git a/suse-libvirtd-disable-tls.patch b/suse-libvirtd-disable-tls.patch index d2958d6..2d17c85 100644 --- a/suse-libvirtd-disable-tls.patch +++ b/suse-libvirtd-disable-tls.patch @@ -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:: diff --git a/suse-libvirtd-service-xen.patch b/suse-libvirtd-service-xen.patch index de2a9bd..57a296a 100644 --- a/suse-libvirtd-service-xen.patch +++ b/suse-libvirtd-service-xen.patch @@ -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 diff --git a/suse-libvirtd-sysconfig-settings.patch b/suse-libvirtd-sysconfig-settings.patch index a80bf16..8475769 100644 --- a/suse-libvirtd-sysconfig-settings.patch +++ b/suse-libvirtd-sysconfig-settings.patch @@ -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 + diff --git a/suse-ovmf-paths.patch b/suse-ovmf-paths.patch index e1bd4aa..d93d2b2 100644 --- a/suse-ovmf-paths.patch +++ b/suse-ovmf-paths.patch @@ -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 */ diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index 768b61c..02f7a24 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -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. # diff --git a/suse-virtlockd-sysconfig-settings.patch b/suse-virtlockd-sysconfig-settings.patch index f923882..71aaf73 100644 --- a/suse-virtlockd-sysconfig-settings.patch +++ b/suse-virtlockd-sysconfig-settings.patch @@ -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 + diff --git a/suse-virtlogd-sysconfig-settings.patch b/suse-virtlogd-sysconfig-settings.patch index e033a7b..8747694 100644 --- a/suse-virtlogd-sysconfig-settings.patch +++ b/suse-virtlogd-sysconfig-settings.patch @@ -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 + diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index afc3a25..ce5859e 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -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, diff --git a/xen-sxpr-disk-type.patch b/xen-sxpr-disk-type.patch index c076bc5..8f9944f 100644 --- a/xen-sxpr-disk-type.patch +++ b/xen-sxpr-disk-type.patch @@ -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 */