Hello community,

here is the log from the commit of package libvirt for openSUSE:Factory checked 
in at 2017-12-19 10:48:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
 and      /work/SRC/openSUSE:Factory/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libvirt"

Tue Dec 19 10:48:51 2017 rev:244 rq:558241 version:3.10.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes  2017-12-08 
12:54:31.855876247 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes     2017-12-19 
10:49:01.680749280 +0100
@@ -1,0 +2,16 @@
+Mon Dec 18 17:08:28 UTC 2017 - jfeh...@suse.com
+
+- libvirt-guests: fix 'stop' operation when action is 'suspend'
+  69ed99c7-dom0-persistent.patch,
+  8599aedd-libvirt-guests-dom0-filter.patch
+  bsc#1070130
+
+-------------------------------------------------------------------
+Thu Dec 14 23:04:20 UTC 2017 - jfeh...@suse.com
+
+- storage: Don't dereference driver object if virStorageSource is
+  not initialized
+  2d07f1f0-fix-storage-crash.patch
+  bsc#1072974
+
+-------------------------------------------------------------------

New:
----
  2d07f1f0-fix-storage-crash.patch
  69ed99c7-dom0-persistent.patch
  8599aedd-libvirt-guests-dom0-filter.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.cINEs0/_old  2017-12-19 10:49:03.184676678 +0100
+++ /var/tmp/diff_new_pack.cINEs0/_new  2017-12-19 10:49:03.192676293 +0100
@@ -308,6 +308,9 @@
 Source99:       baselibs.conf
 Source100:      %{name}-rpmlintrc
 # Upstream patches
+Patch0:         2d07f1f0-fix-storage-crash.patch
+Patch1:         69ed99c7-dom0-persistent.patch
+Patch2:         8599aedd-libvirt-guests-dom0-filter.patch
 # Patches pending upstream review
 Patch100:       libxl-dom-reset.patch
 Patch101:       network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@@ -883,6 +886,9 @@
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
 %patch100 -p1
 %patch101 -p1
 %patch150 -p1

++++++ 2d07f1f0-fix-storage-crash.patch ++++++
commit 2d07f1f0ebd44b0348daa61afa0de34f3f838c22
Author: Peter Krempa <pkre...@redhat.com>
Date:   Wed Dec 6 16:20:07 2017 +0100

    storage: Don't dereference driver object if virStorageSource is not 
initialized
    
    virStorageFileReportBrokenChain uses data from the driver private data
    pointer to print the user and group. This would lead to a crash in call
    paths where we did not initialize the storage backend as recently added
    in commit 24e47ee2b93 to qemuDomainDetermineDiskChain.
    
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1522682

Index: libvirt-3.10.0/src/storage/storage_source.c
===================================================================
--- libvirt-3.10.0.orig/src/storage/storage_source.c
+++ libvirt-3.10.0/src/storage/storage_source.c
@@ -419,19 +419,33 @@ virStorageFileReportBrokenChain(int errc
                                 virStorageSourcePtr src,
                                 virStorageSourcePtr parent)
 {
-    unsigned int access_user = src->drv->uid;
-    unsigned int access_group = src->drv->gid;
 
-    if (src == parent) {
-        virReportSystemError(errcode,
-                             _("Cannot access storage file '%s' "
-                               "(as uid:%u, gid:%u)"),
-                             src->path, access_user, access_group);
+    if (src->drv) {
+        unsigned int access_user = src->drv->uid;
+        unsigned int access_group = src->drv->gid;
+
+        if (src == parent) {
+            virReportSystemError(errcode,
+                                 _("Cannot access storage file '%s' "
+                                   "(as uid:%u, gid:%u)"),
+                                 src->path, access_user, access_group);
+        } else {
+            virReportSystemError(errcode,
+                                 _("Cannot access backing file '%s' "
+                                   "of storage file '%s' (as uid:%u, gid:%u)"),
+                                 src->path, parent->path, access_user, 
access_group);
+        }
     } else {
-        virReportSystemError(errcode,
-                             _("Cannot access backing file '%s' "
-                               "of storage file '%s' (as uid:%u, gid:%u)"),
-                             src->path, parent->path, access_user, 
access_group);
+        if (src == parent) {
+            virReportSystemError(errcode,
+                                 _("Cannot access storage file '%s'"),
+                                 src->path);
+        } else {
+            virReportSystemError(errcode,
+                                 _("Cannot access backing file '%s' "
+                                   "of storage file '%s'"),
+                                 src->path, parent->path);
+        }
     }
 }
 
++++++ 69ed99c7-dom0-persistent.patch ++++++
commit 69ed99c78696d7ac405ce9e193a4a312fd9945d7
Author: Jim Fehlig <jfeh...@suse.com>
Date:   Wed Dec 13 14:20:37 2017 -0700

    libxl: mark domain0 as persistent
    
    A Xen domain0 is better described as a persistent domain. Mark it
    as such during intialization.

Index: libvirt-3.10.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-3.10.0.orig/src/libxl/libxl_driver.c
+++ libvirt-3.10.0/src/libxl/libxl_driver.c
@@ -609,6 +609,7 @@ libxlAddDom0(libxlDriverPrivatePtr drive
 
     def = NULL;
 
+    vm->persistent = 1;
     virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED);
     if (virDomainDefSetVcpusMax(vm->def, d_info.vcpu_max_id + 1, 
driver->xmlopt))
         goto cleanup;
++++++ 8599aedd-libvirt-guests-dom0-filter.patch ++++++
commit 8599aedd434a2843dca7fae37bd397f07a584c1a
Author: Jim Fehlig <jfeh...@suse.com>
Date:   Fri Dec 15 15:28:49 2017 -0700

    Improve filtering of Xen domain0 in libvirt-guests
    
    The list_guests function in libvirt-guests uses 'grep -v' to filter
    Xen domain0 from a list of guests. If domain0 is the only item in
    the list, 'grep -v' returns 1, causing the 'stop' operation to fail
    when action is 'suspend'. Improve the filtering by using sed to remove
    domain0 from the list of guests.

Index: libvirt-3.10.0/tools/libvirt-guests.sh.in
===================================================================
--- libvirt-3.10.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-3.10.0/tools/libvirt-guests.sh.in
@@ -121,7 +121,7 @@ list_guests() {
         return 1
     fi
 
-    echo "$list" | grep -v 00000000-0000-0000-0000-000000000000
+    echo "$list" | sed "/00000000-0000-0000-0000-000000000000/d"
 }
 
 # guest_name URI UUID

++++++ libxl-dom-reset.patch ++++++
--- /var/tmp/diff_new_pack.cINEs0/_old  2017-12-19 10:49:03.332669535 +0100
+++ /var/tmp/diff_new_pack.cINEs0/_new  2017-12-19 10:49:03.336669341 +0100
@@ -12,7 +12,7 @@
 ===================================================================
 --- libvirt-3.10.0.orig/src/libxl/libxl_driver.c
 +++ libvirt-3.10.0/src/libxl/libxl_driver.c
-@@ -1381,6 +1381,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
+@@ -1382,6 +1382,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
  }
  
  static int
@@ -74,7 +74,7 @@
  libxlDomainDestroyFlags(virDomainPtr dom,
                          unsigned int flags)
  {
-@@ -6497,6 +6552,7 @@ static virHypervisorDriver libxlHypervis
+@@ -6498,6 +6553,7 @@ static virHypervisorDriver libxlHypervis
      .domainShutdown = libxlDomainShutdown, /* 0.9.0 */
      .domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
      .domainReboot = libxlDomainReboot, /* 0.9.0 */

++++++ libxl-set-migration-constraints.patch ++++++
--- /var/tmp/diff_new_pack.cINEs0/_old  2017-12-19 10:49:03.348668762 +0100
+++ /var/tmp/diff_new_pack.cINEs0/_new  2017-12-19 10:49:03.348668762 +0100
@@ -56,7 +56,7 @@
 ===================================================================
 --- libvirt-3.10.0.orig/src/libxl/libxl_driver.c
 +++ libvirt-3.10.0/src/libxl/libxl_driver.c
-@@ -6099,6 +6099,9 @@ libxlDomainMigratePerform3Params(virDoma
+@@ -6100,6 +6100,9 @@ libxlDomainMigratePerform3Params(virDoma
      const char *dname = NULL;
      const char *uri = NULL;
      int ret = -1;
@@ -66,7 +66,7 @@
  
  #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
      virReportUnsupportedError();
-@@ -6115,6 +6118,18 @@ libxlDomainMigratePerform3Params(virDoma
+@@ -6116,6 +6119,18 @@ libxlDomainMigratePerform3Params(virDoma
          virTypedParamsGetString(params, nparams,
                                  VIR_MIGRATE_PARAM_DEST_NAME,
                                  &dname) < 0 ||
@@ -85,7 +85,7 @@
          virTypedParamsGetString(params, nparams,
                                  VIR_MIGRATE_PARAM_URI,
                                  &uri) < 0)
-@@ -6129,11 +6144,11 @@ libxlDomainMigratePerform3Params(virDoma
+@@ -6130,11 +6145,11 @@ libxlDomainMigratePerform3Params(virDoma
  
      if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
          if (libxlDomainMigrationPerformP2P(driver, vm, dom->conn, dom_xml,


Reply via email to