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 <jeng...@inai.de>
+
+- Fix RPM groups. Remove idempotent %if..%endif guards.
+- Remove redundant %clean section.
+
+-------------------------------------------------------------------
+Wed Sep 19 22:01:11 UTC 2018 - James Fehlig <jfeh...@suse.com>
+
+- 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 - jfeh...@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 <jfeh...@suse.com>
Date:   Wed Aug 29 11:11:00 2018 -0600

    libxl: fix job handling across migration phases on dst
    
    The libxlDomainMigrationDst* functions are a bit flawed in their
    handling of modify jobs. A job begins when the destination host
    begins receiving the incoming VM and ends after the VM is started.
    The finish phase contains another BeginJob/EndJob sequence.
    
    This patch changes the logic to begin a job for the incoming VM
    in the prepare phase and end the job in the finish phase.
    
    Signed-off-by: Jim Fehlig <jfeh...@suse.com>
    ACKed-by: Michal Privoznik <mpriv...@redhat.com>

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

    libxl: fix job handling across migration phases on src
    
    The libxlDomainMigrationSrc* functions are a bit flawed in their
    handling of modify jobs. A job begins at the start of the begin
    phase but ends before the phase completes. No job is running for
    the remaining phases of migration on the source host.
    
    Change the logic to keep the job running after a successful begin
    phase, and end the job in the confirm phase. The job must also end
    in the perform phase in the case of error since confirm phase would
    not be executed.
    
    Signed-off-by: Jim Fehlig <jfeh...@suse.com>
    ACKed-by: Michal Privoznik <mpriv...@redhat.com>

Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -399,6 +399,11 @@ libxlDomainMigrationSrcBegin(virConnectP
     virDomainDefPtr def;
     char *xml = NULL;
 
+    /*
+     * In the case of successful migration, a job is started here and
+     * terminated in the confirm phase. Errors in the begin or perform
+     * phase will also terminate the job.
+     */
     if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
         goto cleanup;
 
@@ -428,6 +433,9 @@ libxlDomainMigrationSrcBegin(virConnectP
         goto endjob;
 
     xml = virDomainDefFormat(def, cfg->caps, VIR_DOMAIN_DEF_FORMAT_SECURE);
+    /* Valid xml means success! EndJob in the confirm phase */
+    if (xml)
+        goto cleanup;
 
  endjob:
     libxlDomainObjEndJob(driver, vm);
@@ -1169,6 +1177,14 @@ libxlDomainMigrationSrcPerformP2P(libxlD
     ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
                                dname, uri_str, flags);
 
+    if (ret < 0) {
+        /*
+         * Confirm phase will not be executed if perform fails. End the
+         * job started in begin phase.
+         */
+        libxlDomainObjEndJob(driver, vm);
+    }
+
  cleanup:
     orig_err = virSaveLastError();
     virObjectUnlock(vm);
@@ -1232,11 +1248,17 @@ libxlDomainMigrationSrcPerform(libxlDriv
     ret = libxlDoMigrateSrcSend(driver, vm, flags, sockfd);
     virObjectLock(vm);
 
-    if (ret < 0)
+    if (ret < 0) {
         virDomainLockProcessResume(driver->lockManager,
                                    "xen:///system",
                                    vm,
                                    priv->lockState);
+        /*
+         * Confirm phase will not be executed if perform fails. End the
+         * job started in begin phase.
+         */
+        libxlDomainObjEndJob(driver, vm);
+    }
 
  cleanup:
     VIR_FORCE_CLOSE(sockfd);
@@ -1386,6 +1408,8 @@ libxlDomainMigrationSrcConfirm(libxlDriv
     ret = 0;
 
  cleanup:
+    /* EndJob for corresponding BeginJob in begin phase */
+    libxlDomainObjEndJob(driver, vm);
     virObjectEventStateQueue(driver->domainEventState, event);
     virObjectUnref(cfg);
     return ret;
++++++ 5ea2abb3-libxl-join-mig-rcv-thread.patch ++++++
commit 5ea2abb3bfd552175dc2dfcc295fde3fbf17fc37
Author: Jim Fehlig <jfeh...@suse.com>
Date:   Fri Aug 24 15:38:14 2018 -0600

    libxl: join with thread receiving migration data
    
    It is possible the incoming VM is not fully started when the finish
    phase of migration is executed. In libxlDomainMigrationDstFinish,
    wait for the thread receiving the VM to complete before executing
    finish phase tasks.
    
    Signed-off-by: Jim Fehlig <jfeh...@suse.com>
    ACKed-by: Michal Privoznik <mpriv...@redhat.com>

Index: libvirt-4.7.0/src/libxl/libxl_domain.h
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_domain.h
+++ libvirt-4.7.0/src/libxl/libxl_domain.h
@@ -65,6 +65,7 @@ struct _libxlDomainObjPrivate {
     /* console */
     virChrdevsPtr devs;
     libxl_evgen_domain_death *deathW;
+    virThreadPtr migrationDstReceiveThr;
     unsigned short migrationPort;
     char *lockState;
 
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -297,9 +297,9 @@ libxlMigrateDstReceive(virNetSocketPtr s
     libxlMigrationDstArgs *args = opaque;
     virNetSocketPtr *socks = args->socks;
     size_t nsocks = args->nsocks;
+    libxlDomainObjPrivatePtr priv = args->vm->privateData;
     virNetSocketPtr client_sock;
     int recvfd = -1;
-    virThread thread;
     size_t i;
 
     /* Accept migration connection */
@@ -318,7 +318,10 @@ libxlMigrateDstReceive(virNetSocketPtr s
      * the migration data
      */
     args->recvfd = recvfd;
-    if (virThreadCreate(&thread, false,
+    VIR_FREE(priv->migrationDstReceiveThr);
+    if (VIR_ALLOC(priv->migrationDstReceiveThr) < 0)
+        goto fail;
+    if (virThreadCreate(priv->migrationDstReceiveThr, true,
                         libxlDoMigrateDstReceive, args) < 0) {
         virReportError(VIR_ERR_OPERATION_FAILED, "%s",
                        _("Failed to create thread for receiving migration 
data"));
@@ -557,7 +560,6 @@ libxlDomainMigrationDstPrepareTunnel3(vi
     libxlDriverPrivatePtr driver = dconn->privateData;
     virDomainObjPtr vm = NULL;
     libxlMigrationDstArgs *args = NULL;
-    virThread thread;
     bool taint_hook = false;
     libxlDomainObjPrivatePtr priv = NULL;
     char *xmlout = NULL;
@@ -617,7 +619,10 @@ libxlDomainMigrationDstPrepareTunnel3(vi
     args->nsocks = 0;
     mig = NULL;
 
-    if (virThreadCreate(&thread, false, libxlDoMigrateDstReceive, args) < 0) {
+    VIR_FREE(priv->migrationDstReceiveThr);
+    if (VIR_ALLOC(priv->migrationDstReceiveThr) < 0)
+        goto error;
+    if (virThreadCreate(priv->migrationDstReceiveThr, true, 
libxlDoMigrateDstReceive, args) < 0) {
         virReportError(VIR_ERR_OPERATION_FAILED, "%s",
                        _("Failed to create thread for receiving migration 
data"));
         goto endjob;
@@ -1291,6 +1296,13 @@ libxlDomainMigrationDstFinish(virConnect
     virObjectEventPtr event = NULL;
     virDomainPtr dom = NULL;
 
+    if (priv->migrationDstReceiveThr) {
+        virObjectUnlock(vm);
+        virThreadJoin(priv->migrationDstReceiveThr);
+        virObjectLock(vm);
+        VIR_FREE(priv->migrationDstReceiveThr);
+    }
+
     virPortAllocatorRelease(priv->migrationPort);
     priv->migrationPort = 0;
 
++++++ 60b4fd90-libxl-rm-vm-finish-phase.patch ++++++
commit 60b4fd90213135be0e471756d3d95c68eb3e8f59
Author: Jim Fehlig <jfeh...@suse.com>
Date:   Fri Aug 24 14:55:03 2018 -0600

    libxl: migration: defer removing VM until finish phase
    
    If for any reason the restore of a VM fails on the destination host
    in a migration operation, the VM is removed (if not persistent) from
    the virDomainObjList, meaning it is no longer available for additional
    cleanup or processing in the finish phase. Defer removing the VM from
    the virDomainObjList until the finish phase, which already contains
    logic to remove the VM.
    
    Signed-off-by: Jim Fehlig <jfeh...@suse.com>
    ACKed-by: Michal Privoznik <mpriv...@redhat.com>

Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -264,7 +264,6 @@ libxlDoMigrateDstReceive(void *opaque)
     libxlDriverPrivatePtr driver = args->conn->privateData;
     int recvfd = args->recvfd;
     size_t i;
-    int ret;
 
     virObjectRef(vm);
     virObjectLock(vm);
@@ -274,12 +273,10 @@ libxlDoMigrateDstReceive(void *opaque)
     /*
      * Always start the domain paused.  If needed, unpause in the
      * finish phase, after transfer of the domain is complete.
+     * Errors and cleanup are also handled in the finish phase.
      */
-    ret = libxlDomainStartRestore(driver, vm, true, recvfd,
-                                  args->migcookie->xenMigStreamVer);
-
-    if (ret < 0 && !vm->persistent)
-        virDomainObjListRemove(driver->domains, vm);
+    libxlDomainStartRestore(driver, vm, true, recvfd,
+                            args->migcookie->xenMigStreamVer);
 
     /* Remove all listen socks from event handler, and close them. */
     for (i = 0; i < nsocks; i++) {
++++++ 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 <abstractions/base>

++++++ 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 <jfeh...@suse.com>
Date:   Tue Aug 28 17:13:54 2018 -0600

    libxl: fix logic in P2P migration
    
    libxlDoMigrateSrcP2P() performs all phases of the migration
    protocol for peer-to-peer migration. Unfortunately the logic
    was a bit flawed since it is possible to skip the confirm
    phase after a successfull begin and prepare phase. Fix the
    logic to always call the confirm phase after a successful begin
    and perform. Skip the confirm phase if begin or perform fail.
    
    Signed-off-by: Jim Fehlig <jfeh...@suse.com>
    ACKed-by: Michal Privoznik <mpriv...@redhat.com>

Index: libvirt-4.7.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
@@ -972,21 +972,13 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
     char *cookieout = NULL;
     int cookieoutlen;
     bool cancelled = true;
+    bool notify_source = true;
     virErrorPtr orig_err = NULL;
     int ret = -1;
     /* For tunnel migration */
     virStreamPtr st = NULL;
     struct libxlTunnelControl *tc = NULL;
 
-    dom_xml = libxlDomainMigrationSrcBegin(sconn, vm, xmlin,
-                                           &cookieout, &cookieoutlen);
-    if (!dom_xml)
-        goto cleanup;
-
-    if (virTypedParamsAddString(&params, &nparams, &maxparams,
-                                VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
-        goto cleanup;
-
     if (dname &&
         virTypedParamsAddString(&params, &nparams, &maxparams,
                                 VIR_MIGRATE_PARAM_DEST_NAME, dname) < 0)
@@ -997,6 +989,19 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
                                 VIR_MIGRATE_PARAM_URI, uri) < 0)
         goto cleanup;
 
+    dom_xml = libxlDomainMigrationSrcBegin(sconn, vm, xmlin,
+                                           &cookieout, &cookieoutlen);
+    /*
+     * If dom_xml is non-NULL the begin phase has succeeded, and the
+     * confirm phase must be called to cleanup the migration operation.
+     */
+    if (!dom_xml)
+        goto cleanup;
+
+    if (virTypedParamsAddString(&params, &nparams, &maxparams,
+                                VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
+        goto confirm;
+
     /* We don't require the destination to have P2P support
      * as it looks to be normal migration from the receiver perpective.
      */
@@ -1006,7 +1011,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
     virObjectUnlock(vm);
     if (flags & VIR_MIGRATE_TUNNELLED) {
         if (!(st = virStreamNew(dconn, 0)))
-            goto cleanup;
+            goto confirm;
         ret = dconn->driver->domainMigratePrepareTunnel3Params
             (dconn, st, params, nparams, cookieout, cookieoutlen, NULL, NULL, 
destflags);
     } else {
@@ -1016,7 +1021,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
     virObjectLock(vm);
 
     if (ret == -1)
-        goto cleanup;
+        goto confirm;
 
     if (!(flags & VIR_MIGRATE_TUNNELLED)) {
         if (uri_out) {
@@ -1038,8 +1043,10 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
     else
         ret = libxlDomainMigrationSrcPerform(driver, vm, NULL, NULL,
                                              uri_out, NULL, flags);
-    if (ret < 0)
+    if (ret < 0) {
+        notify_source = false;
         orig_err = virSaveLastError();
+    }
 
     cancelled = (ret < 0);
 
@@ -1067,12 +1074,15 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
     if (!orig_err)
         orig_err = virSaveLastError();
 
-    VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
-    ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
-
-    if (ret < 0)
-        VIR_WARN("Guest %s probably left in 'paused' state on source",
-                 vm->def->name);
+ confirm:
+    if (notify_source) {
+        VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
+        ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
+
+        if (ret < 0)
+            VIR_WARN("Guest %s probably left in 'paused' state on source",
+                     vm->def->name);
+    }
 
  cleanup:
     if (flags & VIR_MIGRATE_TUNNELLED) {
++++++ 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: <r...@suse.de>
 
-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 <config.h>
@@ -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(&params, &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-generic/initscrcomconv.html
  #
@@ -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 */


Reply via email to