Hello community,
here is the log from the commit of package libvirt for openSUSE:Factory checked in at 2018-10-01 09:07:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
and /work/SRC/openSUSE:Factory/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt"
Mon Oct 1 09:07:15 2018 rev:265 rq:637737 version:4.7.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes 2018-08-27 13:46:06.396273738 +0200
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes 2018-10-01 09:07:41.195775889 +0200
@@ -1,0 +2,39 @@
+Mon Sep 24 10:42:27 UTC 2018 - Jan Engelhardt
+
+- Fix RPM groups. Remove idempotent %if..%endif guards.
+- Remove redundant %clean section.
+
+-------------------------------------------------------------------
+Wed Sep 19 22:01:11 UTC 2018 - James Fehlig
+
+- libxl: fix VM migration on busy hosts
+ 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
+ bsc#1108086
+
+-------------------------------------------------------------------
+Wed Sep 5 04:08:21 UTC 2018 - jfehlig@suse.com
+
+- Update to libvirt 4.7.0
+ - Many incremental improvements and bug fixes, see
+ http://libvirt.org/news.html
+ - Dropped patches:
+ 9ed59012--revert-jansson1.patch,
+ 54f2b5e3-revert-jansson2.patch,
+ b56950fd-revert-jansson3.patch,
+ 6c3d66ac-revert-jansson4.patch,
+ 8e373e6d-revert-jansson5.patch,
+ 6f99de31-revert-jansson6.patch,
+ f204cf51-revert-jansson7.patch,
+ 5a58b5ed-revert-jansson8.patch,
+ 63f6e0e9-revert-jansson9.patch,
+ 8687eba-revert-jansson10.patch,
+ e96e71d8-revert-jansson11.patch,
+ d99a8959-revert-jansson12.patch,
+ 074a7e14-revert-jansson13.patch,
+ 86db0db9-revert-jansson14.patch
+
+-------------------------------------------------------------------
Old:
----
074a7e14-revert-jansson13.patch
54f2b5e3-revert-jansson2.patch
5a58b5ed-revert-jansson8.patch
63f6e0e9-revert-jansson9.patch
6c3d66ac-revert-jansson4.patch
6f99de31-revert-jansson6.patch
8687eba-revert-jansson10.patch
86db0db9-revert-jansson14.patch
8e373e6d-revert-jansson5.patch
9ed59012--revert-jansson1.patch
b56950fd-revert-jansson3.patch
d99a8959-revert-jansson12.patch
e96e71d8-revert-jansson11.patch
f204cf51-revert-jansson7.patch
libvirt-4.6.0.tar.xz
libvirt-4.6.0.tar.xz.asc
New:
----
0149464a-libxl-fix-job-handling-migdst.patch
47da84e0-libxl-fix-job-handling-migsrc.patch
5ea2abb3-libxl-join-mig-rcv-thread.patch
60b4fd90-libxl-rm-vm-finish-phase.patch
e39c66d3-libxl-fix-p2p-migration.patch
libvirt-4.7.0.tar.xz
libvirt-4.7.0.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libvirt.spec ++++++
++++ 624 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/libvirt/libvirt.spec
++++ and /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.spec
++++++ 0001-Extract-stats-functions-from-the-qemu-driver.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.431773120 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.431773120 +0200
@@ -18,10 +18,10 @@
create mode 100644 src/conf/domain_stats.c
create mode 100644 src/conf/domain_stats.h
-Index: libvirt-4.6.0/src/conf/domain_stats.c
+Index: libvirt-4.7.0/src/conf/domain_stats.c
===================================================================
--- /dev/null
-+++ libvirt-4.6.0/src/conf/domain_stats.c
++++ libvirt-4.7.0/src/conf/domain_stats.c
@@ -0,0 +1,139 @@
+/*
+ * domain_stats.c: domain stats extraction helpers
@@ -162,10 +162,10 @@
+}
+
+#undef STATS_ADD_NET_PARAM
-Index: libvirt-4.6.0/src/conf/domain_stats.h
+Index: libvirt-4.7.0/src/conf/domain_stats.h
===================================================================
--- /dev/null
-+++ libvirt-4.6.0/src/conf/domain_stats.h
++++ libvirt-4.7.0/src/conf/domain_stats.h
@@ -0,0 +1,64 @@
+/*
+ * domain_stats.h: domain stats extraction helpers
@@ -231,11 +231,11 @@
+ int *maxparams);
+
+#endif /* __DOMAIN_STATS_H */
-Index: libvirt-4.6.0/src/libvirt_private.syms
+Index: libvirt-4.7.0/src/libvirt_private.syms
===================================================================
---- libvirt-4.6.0.orig/src/libvirt_private.syms
-+++ libvirt-4.6.0/src/libvirt_private.syms
-@@ -647,6 +647,9 @@ virDomainConfNWFilterInstantiate;
+--- libvirt-4.7.0.orig/src/libvirt_private.syms
++++ libvirt-4.7.0/src/libvirt_private.syms
+@@ -650,6 +650,9 @@ virDomainConfNWFilterInstantiate;
virDomainConfNWFilterTeardown;
virDomainConfVMNWFilterTeardown;
@@ -245,18 +245,18 @@
# conf/interface_conf.h
virInterfaceDefFormat;
-@@ -1537,6 +1540,7 @@ virCgroupGetMemoryUsage;
+@@ -1540,6 +1543,7 @@ virCgroupGetMemoryUsage;
virCgroupGetMemSwapHardLimit;
virCgroupGetMemSwapUsage;
virCgroupGetPercpuStats;
+virCgroupGetStatsCpu;
virCgroupHasController;
virCgroupHasEmptyTasks;
- virCgroupKill;
-Index: libvirt-4.6.0/src/qemu/qemu_driver.c
+ virCgroupKillPainfully;
+Index: libvirt-4.7.0/src/qemu/qemu_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/qemu/qemu_driver.c
-+++ libvirt-4.6.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 @@
#include "virarptable.h"
#include "viruuid.h"
@@ -265,7 +265,7 @@
#include "domain_audit.h"
#include "node_device_conf.h"
#include "virpci.h"
-@@ -19597,21 +19598,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
+@@ -19641,21 +19642,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
int *maxparams,
unsigned int privflags ATTRIBUTE_UNUSED)
{
@@ -288,7 +288,7 @@
}
-@@ -19634,37 +19621,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
+@@ -19678,37 +19665,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
unsigned int privflags ATTRIBUTE_UNUSED)
{
qemuDomainObjPrivatePtr priv = dom->privateData;
@@ -327,7 +327,7 @@
}
static int
-@@ -19844,44 +19801,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
+@@ -19888,44 +19845,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
return ret;
}
@@ -372,7 +372,7 @@
static int
qemuDomainGetStatsInterface(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
virDomainObjPtr dom,
-@@ -19889,68 +19808,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
+@@ -19933,68 +19852,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
int *maxparams,
unsigned int privflags ATTRIBUTE_UNUSED)
{
@@ -442,20 +442,20 @@
#define QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, num, name, value) \
do { \
char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \
-@@ -20072,10 +19932,10 @@ qemuDomainGetStatsOneBlock(virQEMUDriver
- if (disk->info.alias)
- alias = qemuDomainStorageAlias(disk->info.alias, backing_idx);
-
-- QEMU_ADD_NAME_PARAM(record, maxparams, "block", "name", block_idx,
-+ VIR_DOMAIN_STATS_ADD_NAME_PARAM(record, maxparams, "block", "name", block_idx,
- disk->dst);
+@@ -20227,10 +20087,10 @@ qemuDomainGetStatsBlockExportHeader(virD
+ {
+ int ret = -1;
+
+- QEMU_ADD_NAME_PARAM(records, nrecords, "block", "name", recordnr, disk->dst);
++ VIR_DOMAIN_STATS_ADD_NAME_PARAM(records, nrecords, "block", "name", recordnr, disk->dst);
+
if (virStorageSourceIsLocalStorage(src) && src->path)
-- QEMU_ADD_NAME_PARAM(record, maxparams, "block", "path",
-+ VIR_DOMAIN_STATS_ADD_NAME_PARAM(record, maxparams, "block", "path",
- block_idx, src->path);
- if (backing_idx)
- QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, block_idx, "backingIndex",
-@@ -20191,7 +20051,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
+- QEMU_ADD_NAME_PARAM(records, nrecords, "block", "path", recordnr, src->path);
++ VIR_DOMAIN_STATS_ADD_NAME_PARAM(records, nrecords, "block", "path", recordnr, src->path);
+ if (src->id)
+ QEMU_ADD_BLOCK_PARAM_UI(records, nrecords, recordnr, "backingIndex",
+ src->id);
+@@ -20370,7 +20230,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
* after the iteration than it is to iterate twice; but we still
* want count listed first. */
count_index = record->nparams;
@@ -463,8 +463,8 @@
+ VIR_DOMAIN_STATS_ADD_COUNT_PARAM(record, maxparams, "block", 0);
for (i = 0; i < dom->def->ndisks; i++) {
- virDomainDiskDefPtr disk = dom->def->disks[i];
-@@ -20225,10 +20085,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
+ if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats, nodestats,
+@@ -20395,10 +20255,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
#undef QEMU_ADD_BLOCK_PARAM_ULL
@@ -475,11 +475,11 @@
static int
qemuDomainGetStatsPerfOneEvent(virPerfPtr perf,
virPerfEventType type,
-Index: libvirt-4.6.0/src/util/vircgroup.c
+Index: libvirt-4.7.0/src/util/vircgroup.c
===================================================================
---- libvirt-4.6.0.orig/src/util/vircgroup.c
-+++ libvirt-4.6.0/src/util/vircgroup.c
-@@ -3956,6 +3956,44 @@ virCgroupControllerAvailable(int control
+--- libvirt-4.7.0.orig/src/util/vircgroup.c
++++ libvirt-4.7.0/src/util/vircgroup.c
+@@ -4037,6 +4037,44 @@ virCgroupControllerAvailable(int control
return ret;
}
@@ -524,7 +524,7 @@
#else /* !VIR_CGROUP_SUPPORTED */
bool
-@@ -4733,6 +4771,14 @@ virCgroupControllerAvailable(int control
+@@ -4799,6 +4837,14 @@ virCgroupControllerAvailable(int control
{
return false;
}
@@ -539,11 +539,11 @@
#endif /* !VIR_CGROUP_SUPPORTED */
-Index: libvirt-4.6.0/src/util/vircgroup.h
+Index: libvirt-4.7.0/src/util/vircgroup.h
===================================================================
---- libvirt-4.6.0.orig/src/util/vircgroup.h
-+++ libvirt-4.6.0/src/util/vircgroup.h
-@@ -297,4 +297,9 @@ int virCgroupSetOwner(virCgroupPtr cgrou
+--- 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
int virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller);
bool virCgroupControllerAvailable(int controller);
@@ -553,10 +553,10 @@
+ int *maxparams);
+
#endif /* __VIR_CGROUP_H__ */
-Index: libvirt-4.6.0/src/conf/Makefile.inc.am
+Index: libvirt-4.7.0/src/conf/Makefile.inc.am
===================================================================
---- libvirt-4.6.0.orig/src/conf/Makefile.inc.am
-+++ libvirt-4.6.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
@@ -20,6 +20,8 @@ DOMAIN_CONF_SOURCES = \
conf/domain_audit.h \
conf/domain_nwfilter.c \
++++++ 0001-libxl-add-support-for-BlockResize-API.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.439773113 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.439773113 +0200
@@ -19,10 +19,10 @@
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
-Index: libvirt-4.6.0/src/libxl/libxl_driver.c
+Index: libvirt-4.7.0/src/libxl/libxl_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_driver.c
-+++ libvirt-4.6.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,
#undef LIBXL_SET_MEMSTAT
@@ -121,7 +121,7 @@
static int
libxlDomainGetJobInfo(virDomainPtr dom,
virDomainJobInfoPtr info)
-@@ -6504,6 +6595,7 @@ static virHypervisorDriver libxlHypervis
+@@ -6497,6 +6588,7 @@ static virHypervisorDriver libxlHypervis
#endif
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
++++++ 0002-lxc-implement-connectGetAllDomainStats.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.447773107 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.447773107 +0200
@@ -9,10 +9,10 @@
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 138 insertions(+)
-Index: libvirt-4.6.0/src/lxc/lxc_driver.c
+Index: libvirt-4.7.0/src/lxc/lxc_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/lxc/lxc_driver.c
-+++ libvirt-4.6.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 @@
#include "viraccessapichecklxc.h"
#include "virhostdev.h"
++++++ 0149464a-libxl-fix-job-handling-migdst.patch ++++++
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;
++++++ 47da84e0-libxl-fix-job-handling-migsrc.patch ++++++
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;
++++++ 5ea2abb3-libxl-join-mig-rcv-thread.patch ++++++
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;
++++++ 60b4fd90-libxl-rm-vm-finish-phase.patch ++++++
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++) {
++++++ apparmor-no-mount.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.479773080 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.479773080 +0200
@@ -1,7 +1,7 @@
-Index: libvirt-4.6.0/examples/apparmor/libvirt-lxc
+Index: libvirt-4.7.0/examples/apparmor/libvirt-lxc
===================================================================
---- libvirt-4.6.0.orig/examples/apparmor/libvirt-lxc
-+++ libvirt-4.6.0/examples/apparmor/libvirt-lxc
+--- libvirt-4.7.0.orig/examples/apparmor/libvirt-lxc
++++ libvirt-4.7.0/examples/apparmor/libvirt-lxc
@@ -2,39 +2,15 @@
#include
++++++ blockcopy-check-dst-identical-device.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.495773066 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.499773062 +0200
@@ -11,11 +11,11 @@
src/qemu/qemu_driver.c | 7 +++++++
1 file changed, 7 insertions(+)
-Index: libvirt-4.6.0/src/qemu/qemu_driver.c
+Index: libvirt-4.7.0/src/qemu/qemu_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/qemu/qemu_driver.c
-+++ libvirt-4.6.0/src/qemu/qemu_driver.c
-@@ -17484,6 +17484,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
+--- 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
goto endjob;
}
++++++ e39c66d3-libxl-fix-p2p-migration.patch ++++++
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) {
++++++ libvirt-4.6.0.tar.xz -> libvirt-4.7.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/libvirt/libvirt-4.6.0.tar.xz /work/SRC/openSUSE:Factory/.libvirt.new/libvirt-4.7.0.tar.xz differ: char 15, line 1
++++++ libvirt-power8-models.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.527773038 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.527773038 +0200
@@ -2,16 +2,15 @@
From:
-Index: libvirt-4.6.0/src/cpu/cpu_map.xml
+Index: libvirt-4.7.0/src/cpu_map/ppc64_POWER8.xml
===================================================================
---- libvirt-4.6.0.orig/src/cpu/cpu_map.xml
-+++ libvirt-4.6.0/src/cpu/cpu_map.xml
-@@ -2361,6 +2361,8 @@
- <pvr value='0x004b0000' mask='0xffff0000'/>
- <pvr value='0x004c0000' mask='0xffff0000'/>
- <pvr value='0x004d0000' mask='0xffff0000'/>
-+ <pvr value='0x004b0200' mask='0xffffffff'/>
-+ <pvr value='0x004b0201' mask='0xffffffff'/>
- </model>
-
- <model name='POWER9'>
+--- libvirt-4.7.0.orig/src/cpu_map/ppc64_POWER8.xml
++++ libvirt-4.7.0/src/cpu_map/ppc64_POWER8.xml
+@@ -4,5 +4,7 @@
+ <pvr value='0x004b0000' mask='0xffff0000'/>
+ <pvr value='0x004c0000' mask='0xffff0000'/>
+ <pvr value='0x004d0000' mask='0xffff0000'/>
++ <pvr value='0x004b0200' mask='0xffffffff'/>
++ <pvr value='0x004b0201' mask='0xffffffff'/>
+ </model>
+ </cpus>
++++++ libvirt-suse-netcontrol.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.555773014 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.555773014 +0200
@@ -1,8 +1,8 @@
-Index: libvirt-4.6.0/configure.ac
+Index: libvirt-4.7.0/configure.ac
===================================================================
---- libvirt-4.6.0.orig/configure.ac
-+++ libvirt-4.6.0/configure.ac
-@@ -255,6 +255,7 @@ LIBVIRT_ARG_LIBSSH
+--- libvirt-4.7.0.orig/configure.ac
++++ libvirt-4.7.0/configure.ac
+@@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH
LIBVIRT_ARG_LIBXML
LIBVIRT_ARG_MACVTAP
LIBVIRT_ARG_NETCF
@@ -10,7 +10,7 @@
LIBVIRT_ARG_NLS
LIBVIRT_ARG_NSS
LIBVIRT_ARG_NUMACTL
-@@ -297,6 +298,7 @@ LIBVIRT_CHECK_LIBSSH
+@@ -299,6 +300,7 @@ LIBVIRT_CHECK_LIBSSH
LIBVIRT_CHECK_LIBXML
LIBVIRT_CHECK_MACVTAP
LIBVIRT_CHECK_NETCF
@@ -18,7 +18,7 @@
LIBVIRT_CHECK_NLS
LIBVIRT_CHECK_NUMACTL
LIBVIRT_CHECK_NWFILTER
-@@ -977,6 +979,7 @@ LIBVIRT_RESULT_LIBXL
+@@ -984,6 +986,7 @@ LIBVIRT_RESULT_LIBXL
LIBVIRT_RESULT_LIBXML
LIBVIRT_RESULT_MACVTAP
LIBVIRT_RESULT_NETCF
@@ -26,10 +26,10 @@
LIBVIRT_RESULT_NLS
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL
-Index: libvirt-4.6.0/tools/virsh.c
+Index: libvirt-4.7.0/tools/virsh.c
===================================================================
---- libvirt-4.6.0.orig/tools/virsh.c
-+++ libvirt-4.6.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
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
@@ -39,10 +39,10 @@
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
-Index: libvirt-4.6.0/src/interface/interface_backend_netcf.c
+Index: libvirt-4.7.0/src/interface/interface_backend_netcf.c
===================================================================
---- libvirt-4.6.0.orig/src/interface/interface_backend_netcf.c
-+++ libvirt-4.6.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
@@ -23,7 +23,12 @@
#include
@@ -126,10 +126,10 @@
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
return -1;
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
-Index: libvirt-4.6.0/src/interface/interface_driver.c
+Index: libvirt-4.7.0/src/interface/interface_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/interface/interface_driver.c
-+++ libvirt-4.6.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
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@@ -147,10 +147,10 @@
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
-Index: libvirt-4.6.0/m4/virt-netcontrol.m4
+Index: libvirt-4.7.0/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
-+++ libvirt-4.6.0/m4/virt-netcontrol.m4
++++ libvirt-4.7.0/m4/virt-netcontrol.m4
@@ -0,0 +1,39 @@
+dnl The libnetcontrol library
+dnl
@@ -191,10 +191,10 @@
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
+ LIBVIRT_RESULT_LIB([NETCONTROL])
+])
-Index: libvirt-4.6.0/src/interface/Makefile.inc.am
+Index: libvirt-4.7.0/src/interface/Makefile.inc.am
===================================================================
---- libvirt-4.6.0.orig/src/interface/Makefile.inc.am
-+++ libvirt-4.6.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
@@ -4,6 +4,7 @@ INTERFACE_DRIVER_SOURCES = \
$(NULL)
++++++ libxl-dom-reset.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.599772976 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.599772976 +0200
@@ -8,10 +8,10 @@
option, but domainReset can be implemented in the libxl driver by
forcibly destroying the domain and starting it again.
-Index: libvirt-4.6.0/src/libxl/libxl_driver.c
+Index: libvirt-4.7.0/src/libxl/libxl_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_driver.c
-+++ libvirt-4.6.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
}
@@ -74,7 +74,7 @@
libxlDomainDestroyFlags(virDomainPtr dom,
unsigned int flags)
{
-@@ -6383,6 +6438,7 @@ static virHypervisorDriver libxlHypervis
+@@ -6376,6 +6431,7 @@ static virHypervisorDriver libxlHypervis
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
.domainReboot = libxlDomainReboot, /* 0.9.0 */
++++++ libxl-qemu-emulator-caps.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.607772970 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.607772970 +0200
@@ -8,10 +8,10 @@
See FATE#320638 for details.
-Index: libvirt-4.6.0/src/libxl/libxl_capabilities.c
+Index: libvirt-4.7.0/src/libxl/libxl_capabilities.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_capabilities.c
-+++ libvirt-4.6.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
@@ -38,6 +38,7 @@
#include "libxl_capabilities.h"
#include "cpu/cpu_x86.h"
++++++ libxl-set-cach-mode.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.615772963 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.619772959 +0200
@@ -3,10 +3,10 @@
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
-Index: libvirt-4.6.0/src/libxl/libxl_conf.c
+Index: libvirt-4.7.0/src/libxl/libxl_conf.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_conf.c
-+++ libvirt-4.6.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
#endif
}
++++++ libxl-set-migration-constraints.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.623772956 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.627772953 +0200
@@ -16,10 +16,10 @@
tools/virsh.pod | 8 ++++++++
6 files changed, 125 insertions(+), 6 deletions(-)
-Index: libvirt-4.6.0/include/libvirt/libvirt-domain.h
+Index: libvirt-4.7.0/include/libvirt/libvirt-domain.h
===================================================================
---- libvirt-4.6.0.orig/include/libvirt/libvirt-domain.h
-+++ libvirt-4.6.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
@@ -1015,6 +1015,31 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment"
@@ -52,10 +52,10 @@
/* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname,
-Index: libvirt-4.6.0/src/libxl/libxl_driver.c
+Index: libvirt-4.7.0/src/libxl/libxl_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_driver.c
-+++ libvirt-4.6.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
const char *dname = NULL;
const char *uri = NULL;
@@ -99,11 +99,11 @@
goto cleanup;
}
-Index: libvirt-4.6.0/src/libxl/libxl_migration.c
+Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_migration.c
-+++ libvirt-4.6.0/src/libxl/libxl_migration.c
-@@ -353,18 +353,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
+--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
++++ libvirt-4.7.0/src/libxl/libxl_migration.c
+@@ -346,18 +346,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
static int
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
@@ -145,7 +145,7 @@
if (ret != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to send migration data to destination host"));
-@@ -894,7 +915,7 @@ struct libxlTunnelControl {
+@@ -917,7 +938,7 @@ struct libxlTunnelControl {
static int
libxlMigrationSrcStartTunnel(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
@@ -154,7 +154,7 @@
virStreamPtr st,
struct libxlTunnelControl **tnl)
{
-@@ -927,7 +948,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
+@@ -950,7 +971,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
virObjectUnlock(vm);
/* Send data to pipe */
@@ -163,7 +163,7 @@
virObjectLock(vm);
out:
-@@ -963,7 +984,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+@@ -986,7 +1007,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
const char *dconnuri ATTRIBUTE_UNUSED,
const char *dname,
const char *uri,
@@ -172,7 +172,7 @@
{
virDomainPtr ddomain = NULL;
virTypedParameterPtr params = NULL;
-@@ -1003,11 +1024,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+@@ -1031,11 +1052,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
/* We don't require the destination to have P2P support
* as it looks to be normal migration from the receiver perpective.
*/
@@ -184,18 +184,18 @@
- if (flags & VIR_MIGRATE_TUNNELLED) {
+ if (props->virFlags & VIR_MIGRATE_TUNNELLED) {
if (!(st = virStreamNew(dconn, 0)))
- goto cleanup;
+ goto confirm;
ret = dconn->driver->domainMigratePrepareTunnel3Params
-@@ -1021,7 +1042,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+@@ -1049,7 +1070,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
if (ret == -1)
- goto cleanup;
+ goto confirm;
- if (!(flags & VIR_MIGRATE_TUNNELLED)) {
+ if (!(props->virFlags & VIR_MIGRATE_TUNNELLED)) {
if (uri_out) {
if (virTypedParamsReplaceString(¶ms, &nparams,
VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
-@@ -1036,11 +1057,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+@@ -1064,11 +1085,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
}
VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
@@ -207,19 +207,20 @@
ret = libxlDomainMigrationSrcPerform(driver, vm, NULL, NULL,
- uri_out, NULL, flags);
+ uri_out, NULL, props);
- if (ret < 0)
- orig_err = virSaveLastError();
-
-@@ -1071,14 +1092,14 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+ if (ret < 0) {
+ notify_source = false;
orig_err = virSaveLastError();
-
- VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
-- ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
-+ ret = libxlDomainMigrationSrcConfirm(driver, vm, props->virFlags, cancelled);
-
- if (ret < 0)
- VIR_WARN("Guest %s probably left in 'paused' state on source",
- vm->def->name);
+@@ -1103,7 +1124,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+ confirm:
+ if (notify_source) {
+ VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
+- ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
++ ret = libxlDomainMigrationSrcConfirm(driver, vm, props->virFlags, cancelled);
+
+ if (ret < 0)
+ VIR_WARN("Guest %s probably left in 'paused' state on source",
+@@ -1111,7 +1132,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
+ }
cleanup:
- if (flags & VIR_MIGRATE_TUNNELLED) {
@@ -227,7 +228,7 @@
libxlMigrationSrcStopTunnel(tc);
virObjectUnref(st);
}
-@@ -1125,7 +1146,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
+@@ -1158,7 +1179,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
const char *dconnuri,
const char *uri_str ATTRIBUTE_UNUSED,
const char *dname,
@@ -236,16 +237,16 @@
{
int ret = -1;
bool useParams;
-@@ -1160,7 +1181,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
+@@ -1193,7 +1214,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
}
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
- dname, uri_str, flags);
+ dname, uri_str, props);
- cleanup:
- orig_err = virSaveLastError();
-@@ -1182,7 +1203,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
+ if (ret < 0) {
+ /*
+@@ -1223,7 +1244,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
const char *dconnuri ATTRIBUTE_UNUSED,
const char *uri_str,
const char *dname ATTRIBUTE_UNUSED,
@@ -254,7 +255,7 @@
{
libxlDomainObjPrivatePtr priv = vm->privateData;
char *hostname = NULL;
-@@ -1222,7 +1243,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
+@@ -1263,7 +1284,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
/* suspend vm and send saved data to dst through socket fd */
virObjectUnlock(vm);
@@ -262,11 +263,11 @@
+ ret = libxlDoMigrateSrcSend(driver, vm, props, sockfd);
virObjectLock(vm);
- if (ret < 0)
-Index: libvirt-4.6.0/src/libxl/libxl_migration.h
+ if (ret < 0) {
+Index: libvirt-4.7.0/src/libxl/libxl_migration.h
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_migration.h
-+++ libvirt-4.6.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
@@ -39,6 +39,10 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@@ -311,10 +312,10 @@
virDomainPtr
libxlDomainMigrationDstFinish(virConnectPtr dconn,
-Index: libvirt-4.6.0/tools/virsh-domain.c
+Index: libvirt-4.7.0/tools/virsh-domain.c
===================================================================
---- libvirt-4.6.0.orig/tools/virsh-domain.c
-+++ libvirt-4.6.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[]
.type = VSH_OT_BOOL,
.help = N_("use TLS for migration")
@@ -374,10 +375,10 @@
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
goto out;
if (opt) {
-Index: libvirt-4.6.0/tools/virsh.pod
+Index: libvirt-4.7.0/tools/virsh.pod
===================================================================
---- libvirt-4.6.0.orig/tools/virsh.pod
-+++ libvirt-4.6.0/tools/virsh.pod
+--- libvirt-4.7.0.orig/tools/virsh.pod
++++ libvirt-4.7.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.
++++++ libxl-support-block-script.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.639772943 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.639772943 +0200
@@ -7,10 +7,10 @@
For more details, see bsc#954872 and FATE#319810
-Index: libvirt-4.6.0/src/libxl/libxl_conf.c
+Index: libvirt-4.7.0/src/libxl/libxl_conf.c
===================================================================
---- libvirt-4.6.0.orig/src/libxl/libxl_conf.c
-+++ libvirt-4.6.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
#endif
}
++++++ lxc-wait-after-eth-del.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.647772935 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.647772935 +0200
@@ -13,10 +13,10 @@
src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+)
-Index: libvirt-4.6.0/src/lxc/lxc_controller.c
+Index: libvirt-4.7.0/src/lxc/lxc_controller.c
===================================================================
---- libvirt-4.6.0.orig/src/lxc/lxc_controller.c
-+++ libvirt-4.6.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 @@
#include "rpc/virnetdaemon.h"
#include "virstring.h"
@@ -33,10 +33,10 @@
return ret;
}
-Index: libvirt-4.6.0/src/lxc/lxc_driver.c
+Index: libvirt-4.7.0/src/lxc/lxc_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/lxc/lxc_driver.c
-+++ libvirt-4.6.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 @@
#include "virtime.h"
#include "virtypedparam.h"
@@ -61,10 +61,10 @@
break;
/* It'd be nice to support this, but with macvlan
-Index: libvirt-4.6.0/src/lxc/lxc_process.c
+Index: libvirt-4.7.0/src/lxc/lxc_process.c
===================================================================
---- libvirt-4.6.0.orig/src/lxc/lxc_process.c
-+++ libvirt-4.6.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
@@ -51,6 +51,7 @@
#include "viratomic.h"
#include "virprocess.h"
++++++ network-don-t-use-dhcp-authoritative-on-static-netwo.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.655772929 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.655772929 +0200
@@ -17,10 +17,10 @@
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
2 files changed, 8 insertions(+), 2 deletions(-)
-Index: libvirt-4.6.0/src/network/bridge_driver.c
+Index: libvirt-4.7.0/src/network/bridge_driver.c
===================================================================
---- libvirt-4.6.0.orig/src/network/bridge_driver.c
-+++ libvirt-4.6.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
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) {
@@ -37,10 +37,10 @@
}
if (ipdef->tftproot) {
-Index: libvirt-4.6.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
+Index: libvirt-4.7.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
===================================================================
---- libvirt-4.6.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
-+++ libvirt-4.6.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
@@ -10,7 +10,6 @@ bind-dynamic
interface=virbr1
dhcp-range=192.168.122.1,static
++++++ ppc64le-canonical-name.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.663772922 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.663772922 +0200
@@ -2,11 +2,11 @@
See bnc#894956
-Index: libvirt-4.6.0/src/util/virarch.c
+Index: libvirt-4.7.0/src/util/virarch.c
===================================================================
---- libvirt-4.6.0.orig/src/util/virarch.c
-+++ libvirt-4.6.0/src/util/virarch.c
-@@ -169,6 +169,8 @@ virArch virArchFromHost(void)
+--- libvirt-4.7.0.orig/src/util/virarch.c
++++ libvirt-4.7.0/src/util/virarch.c
+@@ -172,6 +172,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) {
arch = VIR_ARCH_X86_64;
++++++ qemu-apparmor-screenshot.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.675772912 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.675772912 +0200
@@ -1,8 +1,8 @@
-Index: libvirt-4.6.0/examples/apparmor/libvirt-qemu
+Index: libvirt-4.7.0/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-4.6.0.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-4.6.0/examples/apparmor/libvirt-qemu
-@@ -205,3 +205,6 @@
+--- libvirt-4.7.0.orig/examples/apparmor/libvirt-qemu
++++ libvirt-4.7.0/examples/apparmor/libvirt-qemu
+@@ -221,3 +221,6 @@
# required for sasl GSSAPI plugin
/etc/gss/mech.d/ r,
/etc/gss/mech.d/* r,
++++++ support-managed-pci-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.683772905 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.683772905 +0200
@@ -8,10 +8,10 @@
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
-Index: libvirt-4.6.0/src/xenconfig/xen_common.c
+Index: libvirt-4.7.0/src/xenconfig/xen_common.c
===================================================================
---- libvirt-4.6.0.orig/src/xenconfig/xen_common.c
-+++ libvirt-4.6.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)
int busID;
int slotID;
@@ -64,10 +64,10 @@
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.6.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-4.6.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-4.6.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
@@ -1057,6 +1057,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;
++++++ suse-apparmor-libnl-paths.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.691772898 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.691772898 +0200
@@ -8,10 +8,10 @@
to squelch a denial when starting confined domains.
Found while investigating bsc#1058847
-Index: libvirt-4.6.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+Index: libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
===================================================================
---- libvirt-4.6.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
-+++ libvirt-4.6.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
@@ -17,7 +17,7 @@ profile virt-aa-helper /usr/{lib,lib64}/
owner @{PROC}/[0-9]*/status r,
@{PROC}/filesystems r,
@@ -21,10 +21,10 @@
# for hostdev
/sys/devices/ r,
-Index: libvirt-4.6.0/examples/apparmor/libvirt-qemu
+Index: libvirt-4.7.0/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-4.6.0.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-4.6.0/examples/apparmor/libvirt-qemu
+--- libvirt-4.7.0.orig/examples/apparmor/libvirt-qemu
++++ libvirt-4.7.0/examples/apparmor/libvirt-qemu
@@ -62,6 +62,7 @@
#/dev/fb* rw,
++++++ suse-libvirt-guests-service.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.699772891 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.699772891 +0200
@@ -1,9 +1,9 @@
Adjust libvirt-guests service to conform to SUSE standards
-Index: libvirt-4.6.0/tools/libvirt-guests.init.in
+Index: libvirt-4.7.0/tools/libvirt-guests.init.in
===================================================================
---- libvirt-4.6.0.orig/tools/libvirt-guests.init.in
-+++ libvirt-4.6.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
@@ -4,27 +4,27 @@
# http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-gene...
#
@@ -46,10 +46,10 @@
+
exec @libexecdir@/libvirt-guests.sh "$@"
-Index: libvirt-4.6.0/tools/libvirt-guests.sh.in
+Index: libvirt-4.7.0/tools/libvirt-guests.sh.in
===================================================================
---- libvirt-4.6.0.orig/tools/libvirt-guests.sh.in
-+++ libvirt-4.6.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
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# http://www.gnu.org/licenses/.
@@ -209,10 +209,10 @@
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-4.6.0/tools/libvirt-guests.sysconf
+Index: libvirt-4.7.0/tools/libvirt-guests.sysconf
===================================================================
---- libvirt-4.6.0.orig/tools/libvirt-guests.sysconf
-+++ libvirt-4.6.0/tools/libvirt-guests.sysconf
+--- libvirt-4.7.0.orig/tools/libvirt-guests.sysconf
++++ libvirt-4.7.0/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests
+
++++++ suse-libvirtd-disable-tls.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.707772885 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.711772881 +0200
@@ -3,10 +3,10 @@
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.6.0/src/remote/libvirtd.conf
+Index: libvirt-4.7.0/src/remote/libvirtd.conf
===================================================================
---- libvirt-4.6.0.orig/src/remote/libvirtd.conf
-+++ libvirt-4.6.0/src/remote/libvirtd.conf
+--- libvirt-4.7.0.orig/src/remote/libvirtd.conf
++++ libvirt-4.7.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 @@
# 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.6.0/src/remote/remote_daemon_config.c
+Index: libvirt-4.7.0/src/remote/remote_daemon_config.c
===================================================================
---- libvirt-4.6.0.orig/src/remote/remote_daemon_config.c
-+++ libvirt-4.6.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
@@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
@@ -31,10 +31,10 @@
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
-Index: libvirt-4.6.0/src/remote/test_libvirtd.aug.in
+Index: libvirt-4.7.0/src/remote/test_libvirtd.aug.in
===================================================================
---- libvirt-4.6.0.orig/src/remote/test_libvirtd.aug.in
-+++ libvirt-4.6.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
@@ -2,7 +2,7 @@ module Test_libvirtd =
::CONFIG::
++++++ suse-libvirtd-service-xen.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.719772874 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.719772874 +0200
@@ -7,10 +7,10 @@
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.6.0/src/remote/libvirtd.service.in
+Index: libvirt-4.7.0/src/remote/libvirtd.service.in
===================================================================
---- libvirt-4.6.0.orig/src/remote/libvirtd.service.in
-+++ libvirt-4.6.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
@@ -17,6 +17,8 @@ After=local-fs.target
After=remote-fs.target
After=systemd-logind.service
++++++ suse-libvirtd-sysconfig-settings.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.727772867 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.727772867 +0200
@@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
-Index: libvirt-4.6.0/src/remote/libvirtd.sysconf
+Index: libvirt-4.7.0/src/remote/libvirtd.sysconf
===================================================================
---- libvirt-4.6.0.orig/src/remote/libvirtd.sysconf
-+++ libvirt-4.6.0/src/remote/libvirtd.sysconf
+--- libvirt-4.7.0.orig/src/remote/libvirtd.sysconf
++++ libvirt-4.7.0/src/remote/libvirtd.sysconf
@@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt
+
++++++ suse-ovmf-paths.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.735772860 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.735772860 +0200
@@ -1,9 +1,9 @@
Adjust paths of OVMF firmwares on SUSE distros
-Index: libvirt-4.6.0/src/qemu/qemu.conf
+Index: libvirt-4.7.0/src/qemu/qemu.conf
===================================================================
---- libvirt-4.6.0.orig/src/qemu/qemu.conf
-+++ libvirt-4.6.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
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme.
@@ -18,10 +18,10 @@
#]
# The backend to use for handling stdout/stderr output from
-Index: libvirt-4.6.0/src/qemu/qemu_conf.c
+Index: libvirt-4.7.0/src/qemu/qemu_conf.c
===================================================================
---- libvirt-4.6.0.orig/src/qemu/qemu_conf.c
-+++ libvirt-4.6.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
#ifndef DEFAULT_LOADER_NVRAM
@@ -36,10 +36,10 @@
#endif
-Index: libvirt-4.6.0/src/security/virt-aa-helper.c
+Index: libvirt-4.7.0/src/security/virt-aa-helper.c
===================================================================
---- libvirt-4.6.0.orig/src/security/virt-aa-helper.c
-+++ libvirt-4.6.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
"/usr/share/ovmf/", /* for OVMF images */
"/usr/share/AAVMF/", /* for AAVMF images */
++++++ suse-qemu-conf.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.743772853 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.743772853 +0200
@@ -7,10 +7,10 @@
etc.), but for now they are all lumped together in this
single patch.
-Index: libvirt-4.6.0/src/qemu/qemu.conf
+Index: libvirt-4.7.0/src/qemu/qemu.conf
===================================================================
---- libvirt-4.6.0.orig/src/qemu/qemu.conf
-+++ libvirt-4.6.0/src/qemu/qemu.conf
+--- libvirt-4.7.0.orig/src/qemu/qemu.conf
++++ libvirt-4.7.0/src/qemu/qemu.conf
@@ -414,11 +414,20 @@
# isolation, but it cannot appear in a list of drivers.
#
++++++ suse-virtlockd-sysconfig-settings.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.763772836 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.763772836 +0200
@@ -1,9 +1,9 @@
Adjust virtlockd sysconfig file to conform to SUSE standards
-Index: libvirt-4.6.0/src/locking/virtlockd.sysconf
+Index: libvirt-4.7.0/src/locking/virtlockd.sysconf
===================================================================
---- libvirt-4.6.0.orig/src/locking/virtlockd.sysconf
-+++ libvirt-4.6.0/src/locking/virtlockd.sysconf
+--- libvirt-4.7.0.orig/src/locking/virtlockd.sysconf
++++ libvirt-4.7.0/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
++++++ suse-virtlogd-sysconfig-settings.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.771772830 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.771772830 +0200
@@ -1,9 +1,9 @@
Adjust virtlogd sysconfig file to conform to SUSE standards
-Index: libvirt-4.6.0/src/logging/virtlogd.sysconf
+Index: libvirt-4.7.0/src/logging/virtlogd.sysconf
===================================================================
---- libvirt-4.6.0.orig/src/logging/virtlogd.sysconf
-+++ libvirt-4.6.0/src/logging/virtlogd.sysconf
+--- libvirt-4.7.0.orig/src/logging/virtlogd.sysconf
++++ libvirt-4.7.0/src/logging/virtlogd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlogd
+
++++++ xen-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.779772822 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.783772819 +0200
@@ -1,7 +1,7 @@
-Index: libvirt-4.6.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-4.6.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-4.6.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
@@ -387,7 +387,7 @@ xenParseSxprVifRate(const char *rate, un
static int
xenParseSxprDisks(virDomainDefPtr def,
++++++ xen-sxpr-disk-type.patch ++++++
--- /var/tmp/diff_new_pack.xHiaYM/_old 2018-10-01 09:07:44.787772816 +0200
+++ /var/tmp/diff_new_pack.xHiaYM/_new 2018-10-01 09:07:44.791772812 +0200
@@ -6,10 +6,10 @@
https://bugzilla.suse.com/show_bug.cgi?id=938228
-Index: libvirt-4.6.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-4.6.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-4.6.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
@@ -501,10 +501,11 @@ xenParseSxprDisks(virDomainDefPtr def,
omnipotent, we can revisit this, perhaps stat()'ing
the src file in question */