Hello community,

here is the log from the commit of package libvirt for 
openSUSE:12.1:Update:Test checked in at 2012-01-19 18:05:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update:Test/libvirt (Old)
 and      /work/SRC/openSUSE:12.1:Update:Test/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libvirt", Maintainer is "[email protected]"

Changes:
--------
--- /work/SRC/openSUSE:12.1:Update:Test/libvirt/libvirt.changes 2012-01-19 
18:05:49.000000000 +0100
+++ /work/SRC/openSUSE:12.1:Update:Test/.libvirt.new/libvirt.changes    
2012-01-19 18:05:49.000000000 +0100
@@ -1,0 +2,69 @@
+Wed Jan  4 10:04:04 MST 2012 - [email protected]
+
+- Use %fdupes for duplicate file checking instead of hand-rolled
+  function
+
+-------------------------------------------------------------------
+Tue Dec 20 15:46:29 MST 2011 - [email protected]
+
+- Fix authorization workflow with PolicyKit.
+  polkit.patch
+  bnc#735403
+
+-------------------------------------------------------------------
+Thu Dec 15 14:00:57 MST 2011 - [email protected]
+
+- Fix qemu default migration speed.  It should not be 33554432Mb!
+  61f2b6ba-no-unlimited-mig2file-speed.patch
+  d8916dc8-def-qemu-migspeed.patch
+
+-------------------------------------------------------------------
+Mon Dec 12 16:50:59 MST 2011 - [email protected]
+
+- CVE-2011-4600: unintended firewall port exposure after restarting
+  libvirtd when defining a bridged forward-mode network
+  ae1232b2-CVE-2011-4600.patch
+  bnc#736082
+
+-------------------------------------------------------------------
+Thu Dec  8 10:30:32 MST 2011 - [email protected]
+
+- Fix default console type setting
+  209c2880-multiple-consoles-7.patch
+- Fix 'virsh console' with Xen HVM
+  xen-hvm-virsh-console.patch
+  bnc#731974
+
+-------------------------------------------------------------------
+Wed Dec  7 11:47:15 MST 2011 - [email protected]
+
+- Prevent libvirtd crash on 'virsh qemu-attach' when
+  security_driver is "none" in /etc/libvirt/qemu.conf
+  28423019-qemu-attach-crash.patch
+  bnc#735023
+
+-------------------------------------------------------------------
+Wed Nov 30 09:53:25 MST 2011 - [email protected]
+
+- Allow qemu driver (and hence libvirtd) to load when qemu
+  user:group does not exist.  The kvm or qemu package, which may
+  not exist on a xen host, creates qemu user:group.
+  relax-qemu-usergroup-check.patch
+  bnc#711096
+
+-------------------------------------------------------------------
+Mon Nov 28 15:19:42 MST 2011 - [email protected]
+- Accommodate Xen domctl version 8
+  xen-domctl-ver8.patch
+- Handle empty strings in s-expression returned by xend
+  a495365d-sexpr-empty-str.patch
+  bnc#731344
+- Allow libvirtd to access libvirt_{io,part}helper when confined
+  by apparmor
+  Update install-apparmor-profiles.patch
+  bnc#730435
+- Fixed to return success when there are no errors while parsing
+  bonding interface miimon xml node parameters.
+  bonding-miimon-xml-parsing.patch
+
+-------------------------------------------------------------------

New:
----
  209c2880-multiple-consoles-7.patch
  28423019-qemu-attach-crash.patch
  49d8c8bc-xen-domctl-ver8.patch
  61f2b6ba-no-unlimited-mig2file-speed.patch
  9ae4ac7a-PolicyKit.patch
  a495365d-sexpr-empty-str.patch
  ae1232b2-CVE-2011-4600.patch
  beeea90a-xen-hvm-console.patch
  bonding-miimon-xml-parsing.patch
  d8916dc8-def-qemu-migspeed.patch
  relax-qemu-usergroup-check.patch

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

Other differences:
------------------
++++++ libvirt.spec ++++++
--- /var/tmp/diff_new_pack.I0nnCU/_old  2012-01-19 18:05:49.000000000 +0100
+++ /var/tmp/diff_new_pack.I0nnCU/_new  2012-01-19 18:05:49.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libvirt
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -378,15 +378,26 @@
 # the openSUSE kvm package is patched with qemu 'no-shutdown' fix
 Patch0:         f84aedad-revert.patch
 Patch1:         c1bc3d89-qemu-add-ahci.patch
+Patch2:         a495365d-sexpr-empty-str.patch
+Patch3:         28423019-qemu-attach-crash.patch
+Patch4:         209c2880-multiple-consoles-7.patch
+Patch5:         ae1232b2-CVE-2011-4600.patch
+Patch6:         61f2b6ba-no-unlimited-mig2file-speed.patch
+Patch7:         d8916dc8-def-qemu-migspeed.patch
+Patch8:         49d8c8bc-xen-domctl-ver8.patch
+Patch9:         beeea90a-xen-hvm-console.patch
+Patch10:        9ae4ac7a-PolicyKit.patch
 # Need to go upstream
 Patch100:       xen-name-for-devid.patch
 Patch101:       clone.patch
 Patch102:       xen-pv-cdrom.patch
 Patch103:       xend-disk-order.patch
+Patch104:       bonding-miimon-xml-parsing.patch
 # Our patches
 Patch200:       libvirtd-defaults.patch
 Patch201:       use-init-script-redhat.patch
-Patch202:       suse-qemu-conf.patch
+Patch202:       relax-qemu-usergroup-check.patch
+Patch203:       suse-qemu-conf.patch
 %if %{with_apparmor}
 Patch250:       install-apparmor-profiles.patch
 %endif
@@ -503,13 +514,24 @@
 %setup -q
 %patch0 -p1
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
 %patch100 -p1
 %patch101
 %patch102 -p1
 %patch103 -p1
+%patch104 -p1
 %patch200 -p1
 %patch201 -p1
 %patch202 -p1
+%patch203 -p1
 %if %{with_apparmor}
 %patch250 -p1
 %endif
@@ -712,22 +734,6 @@
 rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/nwfilter
 %endif
 
-ln_dupes()
-{
-    target=""
-    fdupes -r "$1" | while read file; do
-        if [ -z "$file" ] || [ -z "$target" ]; then
-            target="$file"
-            continue
-        fi
-        ln -sf "${target#.}" "$file"
-    done
-}
-(
-  cd $RPM_BUILD_ROOT
-  ln_dupes .%{_docdir}/%{name}
-  ln_dupes ./usr/share/locale
-)
 # init scripts
 mkdir -p $RPM_BUILD_ROOT/etc/init.d
 %if %{with_libvirtd}
@@ -739,6 +745,7 @@
 #/usr/share/SuSEfirewall2/services/TEMPLATE
 mkdir -p $RPM_BUILD_ROOT/%{_fwdefdir}
 install -m 644 %{S:2} $RPM_BUILD_ROOT/%{_fwdefdir}/libvirtd-relocation-server
+%fdupes -s $RPM_BUILD_ROOT
 
 %clean
 rm -rf $RPM_BUILD_ROOT

++++++ 209c2880-multiple-consoles-7.patch ++++++
++++ 601 lines (skipped)

++++++ 28423019-qemu-attach-crash.patch ++++++
commit 284230199af915a90322d6cc4a6210aaa2a33b28
Author: Jim Fehlig <[email protected]>
Date:   Wed Dec 7 11:23:03 2011 -0700

    Prevent crash of libvirtd when attaching to existing qemu process
    
    With security_driver set to "none" in /etc/libvirt/qemu.conf,
    libvirtd would crash when attempted to attach to an existing
    qemu process.  Only copy the security model if it actually exists.

Index: libvirt-0.9.6/src/qemu/qemu_process.c
===================================================================
--- libvirt-0.9.6.orig/src/qemu/qemu_process.c
+++ libvirt-0.9.6/src/qemu/qemu_process.c
@@ -3509,7 +3509,8 @@ int qemuProcessAttach(virConnectPtr conn
     if (virSecurityManagerGetProcessLabel(driver->securityManager,
                                           vm, seclabel) < 0)
         goto cleanup;
-    if (!(vm->def->seclabel.model = strdup(driver->caps->host.secModel.model)))
+    if (driver->caps->host.secModel.model &&
+        !(vm->def->seclabel.model = strdup(driver->caps->host.secModel.model)))
         goto no_memory;
     if (!(vm->def->seclabel.label = strdup(seclabel->label)))
         goto no_memory;
++++++ 49d8c8bc-xen-domctl-ver8.patch ++++++
Index: libvirt-0.9.6/src/xen/xen_hypervisor.c
===================================================================
--- libvirt-0.9.6.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.9.6/src/xen/xen_hypervisor.c
@@ -239,12 +239,30 @@ struct xen_v2d7_getdomaininfo {
 };
 typedef struct xen_v2d7_getdomaininfo xen_v2d7_getdomaininfo;
 
+struct xen_v2d8_getdomaininfo {
+    domid_t  domain;   /* the domain number */
+    uint32_t flags;    /* flags, see before */
+    uint64_t tot_pages ALIGN_64;       /* total number of pages used */
+    uint64_t max_pages ALIGN_64;       /* maximum number of pages allowed */
+    uint64_t shr_pages ALIGN_64;    /* number of shared pages */
+    uint64_t paged_pages ALIGN_64;    /* number of paged pages */
+    uint64_t shared_info_frame ALIGN_64; /* MFN of shared_info struct */
+    uint64_t cpu_time ALIGN_64;  /* CPU time used */
+    uint32_t nr_online_vcpus;  /* Number of VCPUs currently online. */
+    uint32_t max_vcpu_id; /* Maximum VCPUID in use by this domain. */
+    uint32_t ssidref;
+    xen_domain_handle_t handle;
+    uint32_t cpupool;
+};
+typedef struct xen_v2d8_getdomaininfo xen_v2d8_getdomaininfo;
+
 union xen_getdomaininfo {
     struct xen_v0_getdomaininfo v0;
     struct xen_v2_getdomaininfo v2;
     struct xen_v2d5_getdomaininfo v2d5;
     struct xen_v2d6_getdomaininfo v2d6;
     struct xen_v2d7_getdomaininfo v2d7;
+    struct xen_v2d8_getdomaininfo v2d8;
 };
 typedef union xen_getdomaininfo xen_getdomaininfo;
 
@@ -254,6 +272,7 @@ union xen_getdomaininfolist {
     struct xen_v2d5_getdomaininfo *v2d5;
     struct xen_v2d6_getdomaininfo *v2d6;
     struct xen_v2d7_getdomaininfo *v2d7;
+    struct xen_v2d8_getdomaininfo *v2d8;
 };
 typedef union xen_getdomaininfolist xen_getdomaininfolist;
 
@@ -291,179 +310,211 @@ typedef struct xen_v2s5_availheap  xen_v
 #define XEN_GETDOMAININFOLIST_ALLOC(domlist, size)                      \
     (hypervisor_version < 2 ?                                           \
      (VIR_ALLOC_N(domlist.v0, (size)) == 0) :                           \
+     (dom_interface_version >= 8 ?                                      \
+      (VIR_ALLOC_N(domlist.v2d8, (size)) == 0) :                        \
      (dom_interface_version >= 7 ?                                      \
       (VIR_ALLOC_N(domlist.v2d7, (size)) == 0) :                        \
      (dom_interface_version == 6 ?                                      \
       (VIR_ALLOC_N(domlist.v2d6, (size)) == 0) :                        \
      (dom_interface_version == 5 ?                                      \
       (VIR_ALLOC_N(domlist.v2d5, (size)) == 0) :                        \
-      (VIR_ALLOC_N(domlist.v2, (size)) == 0)))))
+      (VIR_ALLOC_N(domlist.v2, (size)) == 0))))))
 
 #define XEN_GETDOMAININFOLIST_FREE(domlist)            \
     (hypervisor_version < 2 ?                          \
      VIR_FREE(domlist.v0) :                            \
+     (dom_interface_version >= 8 ?                     \
+      VIR_FREE(domlist.v2d8) :                         \
      (dom_interface_version >= 7 ?                     \
       VIR_FREE(domlist.v2d7) :                         \
      (dom_interface_version == 6 ?                     \
       VIR_FREE(domlist.v2d6) :                         \
      (dom_interface_version == 5 ?                     \
       VIR_FREE(domlist.v2d5) :                         \
-      VIR_FREE(domlist.v2)))))
+      VIR_FREE(domlist.v2))))))
 
 #define XEN_GETDOMAININFOLIST_CLEAR(domlist, size)            \
     (hypervisor_version < 2 ?                                 \
      memset(domlist.v0, 0, sizeof(*domlist.v0) * size) :      \
+     (dom_interface_version >= 8 ?                            \
+      memset(domlist.v2d8, 0, sizeof(*domlist.v2d8) * size) : \
      (dom_interface_version >= 7 ?                            \
       memset(domlist.v2d7, 0, sizeof(*domlist.v2d7) * size) : \
      (dom_interface_version == 6 ?                            \
       memset(domlist.v2d6, 0, sizeof(*domlist.v2d6) * size) : \
      (dom_interface_version == 5 ?                            \
       memset(domlist.v2d5, 0, sizeof(*domlist.v2d5) * size) : \
-      memset(domlist.v2, 0, sizeof(*domlist.v2) * size)))))
+      memset(domlist.v2, 0, sizeof(*domlist.v2) * size))))))
 
 #define XEN_GETDOMAININFOLIST_DOMAIN(domlist, n)    \
     (hypervisor_version < 2 ?                       \
      domlist.v0[n].domain :                         \
+     (dom_interface_version >= 8 ?                  \
+      domlist.v2d8[n].domain :                      \
      (dom_interface_version >= 7 ?                  \
       domlist.v2d7[n].domain :                      \
      (dom_interface_version == 6 ?                  \
       domlist.v2d6[n].domain :                      \
      (dom_interface_version == 5 ?                  \
       domlist.v2d5[n].domain :                      \
-      domlist.v2[n].domain))))
+      domlist.v2[n].domain)))))
 
 #define XEN_GETDOMAININFOLIST_UUID(domlist, n)      \
     (hypervisor_version < 2 ?                       \
      domlist.v0[n].handle :                         \
+     (dom_interface_version >= 8 ?                  \
+      domlist.v2d8[n].handle :                      \
      (dom_interface_version >= 7 ?                  \
       domlist.v2d7[n].handle :                      \
      (dom_interface_version == 6 ?                  \
       domlist.v2d6[n].handle :                      \
      (dom_interface_version == 5 ?                  \
       domlist.v2d5[n].handle :                      \
-      domlist.v2[n].handle))))
+      domlist.v2[n].handle)))))
 
 #define XEN_GETDOMAININFOLIST_DATA(domlist)        \
     (hypervisor_version < 2 ?                      \
      (void*)(domlist->v0) :                        \
+     (dom_interface_version >= 8 ?                 \
+      (void*)(domlist->v2d8) :                     \
      (dom_interface_version >= 7 ?                 \
       (void*)(domlist->v2d7) :                     \
      (dom_interface_version == 6 ?                 \
       (void*)(domlist->v2d6) :                     \
      (dom_interface_version == 5 ?                 \
       (void*)(domlist->v2d5) :                     \
-      (void*)(domlist->v2)))))
+      (void*)(domlist->v2))))))
 
 #define XEN_GETDOMAININFO_SIZE                     \
     (hypervisor_version < 2 ?                      \
      sizeof(xen_v0_getdomaininfo) :                \
+     (dom_interface_version >= 8 ?                 \
+      sizeof(xen_v2d8_getdomaininfo) :             \
      (dom_interface_version >= 7 ?                 \
       sizeof(xen_v2d7_getdomaininfo) :             \
      (dom_interface_version == 6 ?                 \
       sizeof(xen_v2d6_getdomaininfo) :             \
      (dom_interface_version == 5 ?                 \
       sizeof(xen_v2d5_getdomaininfo) :             \
-      sizeof(xen_v2_getdomaininfo)))))
+      sizeof(xen_v2_getdomaininfo))))))
 
 #define XEN_GETDOMAININFO_CLEAR(dominfo)                           \
     (hypervisor_version < 2 ?                                      \
      memset(&(dominfo.v0), 0, sizeof(xen_v0_getdomaininfo)) :      \
+     (dom_interface_version >= 8 ?                                 \
+      memset(&(dominfo.v2d8), 0, sizeof(xen_v2d8_getdomaininfo)) : \
      (dom_interface_version >= 7 ?                                 \
       memset(&(dominfo.v2d7), 0, sizeof(xen_v2d7_getdomaininfo)) : \
      (dom_interface_version == 6 ?                                 \
       memset(&(dominfo.v2d6), 0, sizeof(xen_v2d6_getdomaininfo)) : \
      (dom_interface_version == 5 ?                                 \
       memset(&(dominfo.v2d5), 0, sizeof(xen_v2d5_getdomaininfo)) : \
-      memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo))))))
+      memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo)))))))
 
 #define XEN_GETDOMAININFO_DOMAIN(dominfo)       \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.domain :                        \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.domain :                     \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.domain :                     \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.domain :                     \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.domain :                     \
-      dominfo.v2.domain))))
+      dominfo.v2.domain)))))
 
 #define XEN_GETDOMAININFO_CPUTIME(dominfo)      \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.cpu_time :                      \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.cpu_time :                   \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.cpu_time :                   \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.cpu_time :                   \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.cpu_time :                   \
-      dominfo.v2.cpu_time))))
+      dominfo.v2.cpu_time)))))
 
 
 #define XEN_GETDOMAININFO_CPUCOUNT(dominfo)     \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.nr_online_vcpus :               \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.nr_online_vcpus :            \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.nr_online_vcpus :            \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.nr_online_vcpus :            \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.nr_online_vcpus :            \
-      dominfo.v2.nr_online_vcpus))))
+      dominfo.v2.nr_online_vcpus)))))
 
 #define XEN_GETDOMAININFO_MAXCPUID(dominfo)  \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.max_vcpu_id :                   \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.max_vcpu_id :                \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.max_vcpu_id :                \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.max_vcpu_id :                \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.max_vcpu_id :                \
-      dominfo.v2.max_vcpu_id))))
+      dominfo.v2.max_vcpu_id)))))
 
 #define XEN_GETDOMAININFO_FLAGS(dominfo)        \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.flags :                         \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.flags :                      \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.flags :                      \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.flags :                      \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.flags :                      \
-      dominfo.v2.flags))))
+      dominfo.v2.flags)))))
 
 #define XEN_GETDOMAININFO_TOT_PAGES(dominfo)    \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.tot_pages :                     \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.tot_pages :                  \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.tot_pages :                  \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.tot_pages :                  \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.tot_pages :                  \
-      dominfo.v2.tot_pages))))
+      dominfo.v2.tot_pages)))))
 
 #define XEN_GETDOMAININFO_MAX_PAGES(dominfo)    \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.max_pages :                     \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.max_pages :                  \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.max_pages :                  \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.max_pages :                  \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.max_pages :                  \
-      dominfo.v2.max_pages))))
+      dominfo.v2.max_pages)))))
 
 #define XEN_GETDOMAININFO_UUID(dominfo)         \
     (hypervisor_version < 2 ?                   \
      dominfo.v0.handle :                        \
+     (dom_interface_version >= 8 ?              \
+      dominfo.v2d8.handle :                     \
      (dom_interface_version >= 7 ?              \
       dominfo.v2d7.handle :                     \
      (dom_interface_version == 6 ?              \
       dominfo.v2d6.handle :                     \
      (dom_interface_version == 5 ?              \
       dominfo.v2d5.handle :                     \
-      dominfo.v2.handle))))
+      dominfo.v2.handle)))))
 
 
 static int
@@ -2129,12 +2180,20 @@ xenHypervisorInit(void)
     /* Xen 4.1
      * sysctl version 8 -> xen-unstable c/s 21118:28e5409e3fb3
      * domctl version 7 -> xen-unstable c/s 21212:de94884a669c
+     * domctl version 8 -> xen-unstable c/s 23874:651aed73b39c
      */
     sys_interface_version = 8; /* XEN_SYSCTL_INTERFACE_VERSION */
     if (virXen_getdomaininfo(fd, 0, &info) == 1) {
         dom_interface_version = 7; /* XEN_DOMCTL_INTERFACE_VERSION */
-        VIR_DEBUG("Using hypervisor call v2, sys ver8 dom ver7\n");
-        goto done;
+        if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
+            VIR_DEBUG("Using hypervisor call v2, sys ver8 dom ver7");
+            goto done;
+        }
+        dom_interface_version = 8; /* XEN_DOMCTL_INTERFACE_VERSION */
+        if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0){
+            VIR_DEBUG("Using hypervisor call v2, sys ver8 dom ver8");
+            goto done;
+        }
     }
 
     hypervisor_version = 1;
++++++ 61f2b6ba-no-unlimited-mig2file-speed.patch ++++++
commit 61f2b6ba5fdef0613d6351b99913b5ef468144ce
Author: Eric Blake <[email protected]>
Date:   Tue Nov 8 12:01:48 2011 -0700

    qemu: fix domjobabort regression
    
    This reverts commit ef1065cf5ac; see also this bug report:
    https://bugzilla.redhat.com/show_bug.cgi?id=751900
    
    In qemu 0.15.1 and earlier, during migration to file, the
    qemu_savevm_state_begin and qemu_savevm_state_iterate methods
    will both process as much migration data as possible until either
    
      1. The file descriptor returns EAGAIN
      2. The bandwidth rate limit is reached
    
    If we set the rate limit to ULONG_MAX, test 2 never becomes true. We're
    passing a plain file descriptor to QEMU and POSIX does not support EAGAIN on
    regular files / block devices, so test 1 never becomes true either.
    
    In the 'virsh save --bypass-cache' case, we pass a pipe instead of a
    regular fd, but using a pipe adds I/O overhead, so always passing a
    pipe just so qemu can see EAGAIN doesn't seem nice.
    
    The ultimate fix needs to come from qemu - background migration must
    respect asynchronous abort requests, or else periodically return
    control to the main handling loop without an EAGAIN and without
    waiting to hit an insanely large amount of data.  But until a
    version of qemu is fixed to support "unlimited" data rates while
    still allowing cancellation, the best we can do is avoid the
    automatic use of unlimited rates from within libvirt (users can
    still explicitly change the migration rates, if they are aware that
    they are giving up the ability to cancel a job).
    
    Reverting the lone use of QEMU_DOMAIN_FILE_MIG_BANDWIDTH_MAX is
    the simplest patch; this slows migration back down to a default
    32M/sec cap, but also ensures that the main qemu processing loop
    will still be responsive to cancellation requests.  Hopefully
    upstream qemu will provide us a means of safely using unlimited
    speed, including a runtime probe of that capability.
    
    * src/qemu/qemu_migration.c (qemuMigrationToFile): Revert attempt
    to use unlimited migration bandwidth when migrating to file.
    
    Signed-off-by: Daniel Veillard <[email protected]>
    Signed-off-by: Eric Blake <[email protected]>

Index: libvirt-0.9.6/src/qemu/qemu_migration.c
===================================================================
--- libvirt-0.9.6.orig/src/qemu/qemu_migration.c
+++ libvirt-0.9.6/src/qemu/qemu_migration.c
@@ -2718,16 +2718,6 @@ qemuMigrationToFile(struct qemud_driver
     bool restoreLabel = false;
     virCommandPtr cmd = NULL;
     int pipeFD[2] = { -1, -1 };
-    unsigned long saveMigBandwidth = priv->migMaxBandwidth;
-
-    /* Increase migration bandwidth to unlimited since target is a file.
-     * Failure to change migration speed is not fatal. */
-    if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
-        qemuMonitorSetMigrationSpeed(priv->mon,
-                                     QEMU_DOMAIN_FILE_MIG_BANDWIDTH_MAX);
-        priv->migMaxBandwidth = QEMU_DOMAIN_FILE_MIG_BANDWIDTH_MAX;
-        qemuDomainObjExitMonitorWithDriver(driver, vm);
-    }
 
     if (qemuCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATE_QEMU_FD) &&
         (!compressor || pipe(pipeFD) == 0)) {
@@ -2839,13 +2829,6 @@ qemuMigrationToFile(struct qemud_driver
     ret = 0;
 
 cleanup:
-    /* Restore max migration bandwidth */
-    if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
-        qemuMonitorSetMigrationSpeed(priv->mon, saveMigBandwidth);
-        priv->migMaxBandwidth = saveMigBandwidth;
-        qemuDomainObjExitMonitorWithDriver(driver, vm);
-    }
-
     VIR_FORCE_CLOSE(pipeFD[0]);
     VIR_FORCE_CLOSE(pipeFD[1]);
     virCommandFree(cmd);
++++++ 9ae4ac7a-PolicyKit.patch ++++++
commit 9ae4ac7ac07d872cd32d0a3a1b1b44730b04bda7
Author: Jim Fehlig <[email protected]>
Date:   Tue Jan 3 11:35:06 2012 -0700

    PolicyKit: Check auth before asking client to obtain it
    
    I previously mentioned [1] a PolicyKit issue where libvirt would
    proceed with authentication even though polkit-auth failed:
    
    testusr xen134:~> virsh list --all
    Attempting to obtain authorization for org.libvirt.unix.manage.
    polkit-grant-helper: given auth type (8 -> yes) is bogus
    Failed to obtain authorization for org.libvirt.unix.manage.
     Id Name                 State
    ----------------------------------
      0 Domain-0             running
      - sles11sp1-pv         shut off
    
    AFAICT, libvirt attempts to obtain a privilege it already has,
    causing polkit-auth to fail with above message.  Instead of calling
    obtain and then checking auth, IMO the workflow should be for the
    server to check auth first, and if that fails ask the client to
    obtain it and check again.  This workflow also allows for checking
    only successful exit of polkit-auth in virConnectAuthGainPolkit().
    
    [1] https://www.redhat.com/archives/libvir-list/2011-December/msg00837.html

Index: libvirt-0.9.6/src/remote/remote_driver.c
===================================================================
--- libvirt-0.9.6.orig/src/remote/remote_driver.c
+++ libvirt-0.9.6/src/remote/remote_driver.c
@@ -2952,6 +2952,14 @@ remoteAuthPolkit (virConnectPtr conn, st
     };
     VIR_DEBUG("Client initialize PolicyKit-0 authentication");
 
+    /* Check auth first and if it succeeds we are done. */
+    memset (&ret, 0, sizeof ret);
+    if (call (conn, priv, 0, REMOTE_PROC_AUTH_POLKIT,
+              (xdrproc_t) xdr_void, (char *)NULL,
+              (xdrproc_t) xdr_remote_auth_polkit_ret, (char *) &ret) == 0)
+        goto out;
+
+    /* Auth failed.  Ask client to obtain it and check again. */
     if (auth && auth->cb) {
         /* Check if the necessary credential type for PolicyKit is supported */
         for (i = 0 ; i < auth->ncredtype ; i++) {
@@ -2969,9 +2977,11 @@ remoteAuthPolkit (virConnectPtr conn, st
             }
         } else {
             VIR_DEBUG("Client auth callback does not support PolicyKit");
+            return -1;
         }
     } else {
         VIR_DEBUG("No auth callback provided");
+        return -1;
     }
 
     memset (&ret, 0, sizeof ret);
@@ -2981,6 +2991,7 @@ remoteAuthPolkit (virConnectPtr conn, st
         return -1; /* virError already set by call */
     }
 
+out:
     VIR_DEBUG("PolicyKit-0 authentication complete");
     return 0;
 }
Index: libvirt-0.9.6/src/libvirt.c
===================================================================
--- libvirt-0.9.6.orig/src/libvirt.c
+++ libvirt-0.9.6/src/libvirt.c
@@ -129,8 +129,7 @@ static int virConnectAuthGainPolkit(cons
         return -1;
     }
 
-    if (!WIFEXITED(status) ||
-        (WEXITSTATUS(status) != 0 && WEXITSTATUS(status) != 1)) {
+    if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
         return -1;
     }
 
++++++ a495365d-sexpr-empty-str.patch ++++++
commit a495365d09138bf0f07504cfe9b6ea2de858e18e
Author: Jim Fehlig <[email protected]>
Date:   Fri Nov 18 14:54:38 2011 -0700

    Don't copy sexpr node value that is an empty string
    
    Xen4.1 initializes some unspecified sexpr config items to an empty
    string, unlike previous Xen versions that would leave the item unset.
    E.g. the kernel item for an HVM guest (non-direct kernel boot):
    
    Xen4.0 and earlier
      ...
      (image
        (hvm
          (kernel )
      ...
    
    Xen4.1
      ...
      (image
        (hvm
          (kernel '')
      ...
    
    The empty string for kernel causes some grief in subsequent parsing
    where existence of specified kernel is checked, e.g.
    
      if (!def->os.kernel)
      ...
    
    This patch solves the problem in sexpr_node_copy() by not copying
    a node containing an empty string.

diff --git a/src/util/sexpr.c b/src/util/sexpr.c
index 0e30087..3523d76 100644
--- a/src/util/sexpr.c
+++ b/src/util/sexpr.c
@@ -519,7 +519,7 @@ int sexpr_node_copy(const struct sexpr *sexpr, const char 
*node, char **dst)
 {
     const char *val = sexpr_node(sexpr, node);
 
-    if (val) {
+    if (val && *val) {
         *dst = strdup(val);
         if (!(*dst))
             return -1;
++++++ ae1232b2-CVE-2011-4600.patch ++++++
commit ae1232b298323dd7bef909426e2ebafa6bca9157
Author: Laine Stump <[email protected]>
Date:   Tue Dec 6 15:13:50 2011 -0500

    network: don't add iptables rules for externally managed networks
    
    This patch addresses https://bugzilla.redhat.com/show_bug.cgi?id=760442
    
    When a network has any forward type other than route, nat or none, the
    network configuration should be done completely external to libvirt -
    libvirt only uses these types to allow configuring guests in a manner
    that isn't tied to a specific host (all the host-specific information,
    in particular interface names, port profile data, and bandwidth
    configuration is in the network definition, and the guest
    configuration only references it).
    
    Due to a bug in the bridge network driver, libvirt was adding iptables
    rules for networks with forward type='bridge' etc. any time libvirtd
    was restarted while one of these networks was active.
    
    This patch eliminates that error by only "reloading" iptables rules if
    forward type is route, nat, or none.

Index: libvirt-0.9.6/src/network/bridge_driver.c
===================================================================
--- libvirt-0.9.6.orig/src/network/bridge_driver.c
+++ libvirt-0.9.6/src/network/bridge_driver.c
@@ -1480,14 +1480,22 @@ networkReloadIptablesRules(struct networ
     VIR_INFO("Reloading iptables rules");
 
     for (i = 0 ; i < driver->networks.count ; i++) {
-        virNetworkObjLock(driver->networks.objs[i]);
-        if (virNetworkObjIsActive(driver->networks.objs[i])) {
-            networkRemoveIptablesRules(driver, driver->networks.objs[i]);
-            if (networkAddIptablesRules(driver, driver->networks.objs[i]) < 0) 
{
+        virNetworkObjPtr network = driver->networks.objs[i];
+
+        virNetworkObjLock(network);
+        if (virNetworkObjIsActive(network) &&
+            ((network->def->forwardType == VIR_NETWORK_FORWARD_NONE) ||
+             (network->def->forwardType == VIR_NETWORK_FORWARD_NAT) ||
+             (network->def->forwardType == VIR_NETWORK_FORWARD_ROUTE))) {
+            /* Only the three L3 network types that are configured by libvirt
+             * need to have iptables rules reloaded.
+             */
+            networkRemoveIptablesRules(driver, network);
+            if (networkAddIptablesRules(driver, network) < 0) {
                 /* failed to add but already logged */
             }
         }
-        virNetworkObjUnlock(driver->networks.objs[i]);
+        virNetworkObjUnlock(network);
     }
 }
 
++++++ beeea90a-xen-hvm-console.patch ++++++
Index: libvirt-0.9.6/src/xen/xend_internal.c
===================================================================
--- libvirt-0.9.6.orig/src/xen/xend_internal.c
+++ libvirt-0.9.6/src/xen/xend_internal.c
@@ -1761,7 +1761,10 @@ xenDaemonDomainFetch(virConnectPtr conn,
 
     id = xenGetDomIdFromSxpr(root, priv->xendConfigVersion);
     xenUnifiedLock(priv);
-    tty = xenStoreDomainGetConsolePath(conn, id);
+    if (sexpr_lookup(root, "domain/image/hvm"))
+        tty = xenStoreDomainGetSerialConsolePath(conn, id);
+    else
+        tty = xenStoreDomainGetConsolePath(conn, id);
     vncport = xenStoreDomainGetVNCPort(conn, id);
     xenUnifiedUnlock(priv);
     if (!(def = xenParseSxpr(root,
Index: libvirt-0.9.6/src/xen/xs_internal.h
===================================================================
--- libvirt-0.9.6.orig/src/xen/xs_internal.h
+++ libvirt-0.9.6/src/xen/xs_internal.h
@@ -45,6 +45,8 @@ int             xenStoreDomainGetVNCPort
                                          int domid);
 char *          xenStoreDomainGetConsolePath(virConnectPtr conn,
                                          int domid);
+char *          xenStoreDomainGetSerialConsolePath(virConnectPtr conn,
+                                         int domid);
 char *         xenStoreDomainGetNetworkID(virConnectPtr conn,
                                          int id,
                                          const char *mac);
Index: libvirt-0.9.6/src/xen/xs_internal.c
===================================================================
--- libvirt-0.9.6.orig/src/xen/xs_internal.c
+++ libvirt-0.9.6/src/xen/xs_internal.c
@@ -852,6 +852,25 @@ char *          xenStoreDomainGetConsole
   return virDomainDoStoreQuery(conn, domid, "console/tty");
 }
 
+/**
+ * xenStoreDomainGetSerailConsolePath:
+ * @conn: the hypervisor connection
+ * @domid: id of the domain
+ *
+ * Return the path to the pseudo TTY on which the guest domain's
+ * serial console is attached.
+ *
+ * Returns the path to the serial console. It is the callers
+ * responsibilty to free() the return string. Returns NULL
+ * on error
+ *
+ * The caller must hold the lock on the privateData
+ * associated with the 'conn' parameter.
+ */
+char * xenStoreDomainGetSerialConsolePath(virConnectPtr conn, int domid) {
+    return virDomainDoStoreQuery(conn, domid, "serial/0/tty");
+}
+
 
 /*
  * xenStoreDomainGetNetworkID:
++++++ bonding-miimon-xml-parsing.patch ++++++
>From 03f8b5ab87fba421614128fd620a67793d1aba79 Mon Sep 17 00:00:00 2001
From: Marius Tomaschewski <[email protected]>
Date: Thu, 16 Jun 2011 16:47:53 +0200
Subject: [PATCH] bonding interface miimon parameter parsing success

Report success at the end of bonding interface miimon parameter
parsing, when some of the optional parameters were missed, but
no problems were found.
---
 src/conf/interface_conf.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

Index: libvirt-0.9.6/src/conf/interface_conf.c
===================================================================
--- libvirt-0.9.6.orig/src/conf/interface_conf.c
+++ libvirt-0.9.6/src/conf/interface_conf.c
@@ -621,6 +621,7 @@ virInterfaceDefParseBond(virInterfaceDef
             ret = -1;
             goto error;
         }
+        ret = 0; /* no problem found, report success */
 
     } else if (virXPathNode("./arpmon[1]", ctxt) != NULL) {
 
++++++ d8916dc8-def-qemu-migspeed.patch ++++++
commit d8916dc8e2f612ab3ce46f32c4bfeb0bd73f6007
Author: Jim Fehlig <[email protected]>
Date:   Thu Dec 15 11:25:07 2011 -0700

    Fix default migration speed in qemu driver
    
    In commit 6f84e110 I mistakenly set default migration speed to
    33554432 Mb!  The units of migMaxBandwidth is Mb, with conversion
    handled in qemuMonitor{JSON,Text}SetMigrationSpeed().
    
    Also, remove definition of QEMU_DOMAIN_FILE_MIG_BANDWIDTH_MAX since
    it is no longer used after reverting commit ef1065cf.

Index: libvirt-0.9.6/src/qemu/qemu_domain.h
===================================================================
--- libvirt-0.9.6.orig/src/qemu/qemu_domain.h
+++ libvirt-0.9.6/src/qemu/qemu_domain.h
@@ -36,14 +36,7 @@
      (1 << VIR_DOMAIN_VIRT_KVM) |      \
      (1 << VIR_DOMAIN_VIRT_XEN))
 
-# define QEMU_DOMAIN_DEFAULT_MIG_BANDWIDTH_MAX (32 << 20)
-# if ULONG_MAX == 4294967295
-/* Qemu has a 64-bit limit, but we are limited by our historical choice of
- * representing bandwidth in a long instead of a 64-bit int.  */
-#  define QEMU_DOMAIN_FILE_MIG_BANDWIDTH_MAX    ULONG_MAX
-# else
-#  define QEMU_DOMAIN_FILE_MIG_BANDWIDTH_MAX    (INT64_MAX / (1024 * 1024))
-# endif
+# define QEMU_DOMAIN_DEFAULT_MIG_BANDWIDTH_MAX 32
 
 # define JOB_MASK(job)                  (1 << (job - 1))
 # define DEFAULT_JOB_MASK               \
++++++ install-apparmor-profiles.patch ++++++
--- /var/tmp/diff_new_pack.I0nnCU/_old  2012-01-19 18:05:49.000000000 +0100
+++ /var/tmp/diff_new_pack.I0nnCU/_new  2012-01-19 18:05:49.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-0.9.4/examples/apparmor/Makefile.am
+Index: libvirt-0.9.6/examples/apparmor/Makefile.am
 ===================================================================
---- libvirt-0.9.4.orig/examples/apparmor/Makefile.am
-+++ libvirt-0.9.4/examples/apparmor/Makefile.am
+--- libvirt-0.9.6.orig/examples/apparmor/Makefile.am
++++ libvirt-0.9.6/examples/apparmor/Makefile.am
 @@ -1,8 +1,39 @@
  ## Copyright (C) 2005-2011 Red Hat, Inc.
  ## See COPYING.LIB for the License of this software
@@ -47,10 +47,10 @@
 +      rm -f $(DESTDIR)$(sysconfdir)/apparmor.d/libvirt/TEMPLATE
 +
 +endif
-Index: libvirt-0.9.4/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
+Index: libvirt-0.9.6/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
 ===================================================================
 --- /dev/null
-+++ libvirt-0.9.4/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
++++ libvirt-0.9.6/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
 @@ -0,0 +1,40 @@
 +# Last Modified: Fri Aug 19 11:21:48 2011
 +#include <tunables/global>
@@ -92,9 +92,9 @@
 +  /var/lib/kvm/images/ r,
 +  /var/lib/kvm/images/** r,
 +}
-Index: libvirt-0.9.4/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+Index: libvirt-0.9.6/examples/apparmor/usr.lib.libvirt.virt-aa-helper
 ===================================================================
---- libvirt-0.9.4.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+--- libvirt-0.9.6.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
 +++ /dev/null
 @@ -1,38 +0,0 @@
 -# Last Modified: Mon Apr  5 15:10:27 2010
@@ -135,9 +135,9 @@
 -  /var/lib/libvirt/images/ r,
 -  /var/lib/libvirt/images/** r,
 -}
-Index: libvirt-0.9.4/examples/apparmor/usr.sbin.libvirtd
+Index: libvirt-0.9.6/examples/apparmor/usr.sbin.libvirtd
 ===================================================================
---- libvirt-0.9.4.orig/examples/apparmor/usr.sbin.libvirtd
+--- libvirt-0.9.6.orig/examples/apparmor/usr.sbin.libvirtd
 +++ /dev/null
 @@ -1,52 +0,0 @@
 -# Last Modified: Mon Apr  5 15:03:58 2010
@@ -192,11 +192,11 @@
 -  change_profile -> 
@{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
 -
 -}
-Index: libvirt-0.9.4/examples/apparmor/usr.sbin.libvirtd.in
+Index: libvirt-0.9.6/examples/apparmor/usr.sbin.libvirtd.in
 ===================================================================
 --- /dev/null
-+++ libvirt-0.9.4/examples/apparmor/usr.sbin.libvirtd.in
-@@ -0,0 +1,52 @@
++++ libvirt-0.9.6/examples/apparmor/usr.sbin.libvirtd.in
+@@ -0,0 +1,55 @@
 +# Last Modified: Fri Aug 19 11:20:36 2011
 +#include <tunables/global>
 +@{LIBVIRT}="libvirt"
@@ -235,6 +235,7 @@
 +  /sbin/* Ux,
 +  /usr/bin/* Ux,
 +  /usr/sbin/* Ux,
++  /usr/lib/PolicyKit/polkit-read-auth-helper Px,
 +
 +  # force the use of virt-aa-helper
 +  audit deny /sbin/apparmor_parser rwxl,
@@ -244,15 +245,17 @@
 +  audit deny /sys/kernel/security/apparmor/.* rwxl,
 +  /sys/kernel/security/apparmor/profiles r,
 +  @libdir@/libvirt/* Pxr,
++  @libdir@/libvirt/libvirt_parthelper Ux,
++  @libdir@/libvirt/libvirt_iohelper Ux,
 +
 +  # allow changing to our UUID-based named profiles
 +  change_profile -> 
@{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
 +
 +}
-Index: libvirt-0.9.4/examples/apparmor/libvirt-qemu
+Index: libvirt-0.9.6/examples/apparmor/libvirt-qemu
 ===================================================================
---- libvirt-0.9.4.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-0.9.4/examples/apparmor/libvirt-qemu
+--- libvirt-0.9.6.orig/examples/apparmor/libvirt-qemu
++++ libvirt-0.9.6/examples/apparmor/libvirt-qemu
 @@ -52,6 +52,7 @@
    # access to firmware's etc
    /usr/share/kvm/** r,

++++++ relax-qemu-usergroup-check.patch ++++++
Allow qemu driver (and hence libvirtd) to load when qemu
user:group does not exist.  The kvm package, which may not
exist on a xen host, creates qemu user:group.

A better (future) solution would be to build the libvirtd
drivers as loadable modules instead of built-in to the
daemon.  Then the qemu driver would only be loaded when needed,
which would never be the case on a xen-only configuration.

Index: libvirt-0.9.6/src/qemu/qemu_conf.c
===================================================================
--- libvirt-0.9.6.orig/src/qemu/qemu_conf.c
+++ libvirt-0.9.6/src/qemu/qemu_conf.c
@@ -255,9 +255,7 @@ int qemudLoadDriverConfig(struct qemud_d
         return -1;
     }
     if (virGetUserID(user, &driver->user) < 0) {
-        VIR_FREE(user);
-        virConfFree(conf);
-        return -1;
+        VIR_WARN("User %s does not exist! Continuing...", user);
     }
     VIR_FREE(user);
 
@@ -270,9 +268,7 @@ int qemudLoadDriverConfig(struct qemud_d
         return -1;
     }
     if (virGetGroupID(group, &driver->group) < 0) {
-        VIR_FREE(group);
-        virConfFree(conf);
-        return -1;
+        VIR_WARN("Group %s does not exist! Continuing...", group);
     }
     VIR_FREE(group);
 
++++++ use-init-script-redhat.patch ++++++
--- /var/tmp/diff_new_pack.I0nnCU/_old  2012-01-19 18:05:49.000000000 +0100
+++ /var/tmp/diff_new_pack.I0nnCU/_new  2012-01-19 18:05:49.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-0.9.4/tools/Makefile.am
+Index: libvirt-0.9.6/tools/Makefile.am
 ===================================================================
---- libvirt-0.9.4.orig/tools/Makefile.am
-+++ libvirt-0.9.4/tools/Makefile.am
+--- libvirt-0.9.6.orig/tools/Makefile.am
++++ libvirt-0.9.6/tools/Makefile.am
 @@ -152,16 +152,17 @@ uninstall-local: uninstall-init
  
  if LIBVIRT_INIT_SCRIPT_RED_HAT
@@ -26,10 +26,10 @@
  
  BUILT_SOURCES += libvirt-guests.init
  
-Index: libvirt-0.9.4/tools/libvirt-guests.sysconf
+Index: libvirt-0.9.6/tools/libvirt-guests.sysconf
 ===================================================================
---- libvirt-0.9.4.orig/tools/libvirt-guests.sysconf
-+++ libvirt-0.9.4/tools/libvirt-guests.sysconf
+--- libvirt-0.9.6.orig/tools/libvirt-guests.sysconf
++++ libvirt-0.9.6/tools/libvirt-guests.sysconf
 @@ -1,18 +1,28 @@
 +## Path: System/Virtualization/libvirt
 +
@@ -80,10 +80,10 @@
  # If non-zero, try to bypass the file system cache when saving and
  # restoring guests, even though this may give slower operation for
  # some file systems.
-Index: libvirt-0.9.4/tools/libvirt-guests.init.sh
+Index: libvirt-0.9.6/tools/libvirt-guests.init.sh
 ===================================================================
---- libvirt-0.9.4.orig/tools/libvirt-guests.init.sh
-+++ libvirt-0.9.4/tools/libvirt-guests.init.sh
+--- libvirt-0.9.6.orig/tools/libvirt-guests.init.sh
++++ libvirt-0.9.6/tools/libvirt-guests.init.sh
 @@ -4,10 +4,10 @@
  #
  ### BEGIN INIT INFO
@@ -226,10 +226,10 @@
  esac
 -exit $RETVAL
 +rc_exit
-Index: libvirt-0.9.4/daemon/Makefile.am
+Index: libvirt-0.9.6/daemon/Makefile.am
 ===================================================================
---- libvirt-0.9.4.orig/daemon/Makefile.am
-+++ libvirt-0.9.4/daemon/Makefile.am
+--- libvirt-0.9.6.orig/daemon/Makefile.am
++++ libvirt-0.9.6/daemon/Makefile.am
 @@ -252,16 +252,12 @@ install-logrotate: $(LOGROTATE_CONFS)
  
  if LIBVIRT_INIT_SCRIPT_RED_HAT

++++++ xen-name-for-devid.patch ++++++
--- /var/tmp/diff_new_pack.I0nnCU/_old  2012-01-19 18:05:49.000000000 +0100
+++ /var/tmp/diff_new_pack.I0nnCU/_new  2012-01-19 18:05:49.000000000 +0100
@@ -25,7 +25,7 @@
                    virDomainDeviceDefPtr dev,
                    char *class,
                    char *ref,
-@@ -2749,7 +2750,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
+@@ -2752,7 +2753,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
  
      sexpr = virBufferContentAndReset(&buf);
  
@@ -34,7 +34,7 @@
          /* device doesn't exist, define it */
          ret = xend_op(domain->conn, domain->name, "op", "device_create",
                        "config", sexpr, NULL);
-@@ -2870,7 +2871,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
+@@ -2873,7 +2874,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
  
      sexpr = virBufferContentAndReset(&buf);
  
@@ -43,7 +43,7 @@
          virXendError(VIR_ERR_OPERATION_INVALID, "%s",
                       _("requested device does not exist"));
          goto cleanup;
-@@ -2965,7 +2966,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
+@@ -2968,7 +2969,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
                                          def, xml, VIR_DOMAIN_XML_INACTIVE)))
          goto cleanup;
  
@@ -52,7 +52,7 @@
          goto cleanup;
  
      if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
-@@ -3915,6 +3916,7 @@ struct xenUnifiedDriver xenDaemonDriver
+@@ -3918,6 +3919,7 @@ struct xenUnifiedDriver xenDaemonDriver
   */
  static int
  virDomainXMLDevID(virDomainPtr domain,
@@ -60,7 +60,7 @@
                    virDomainDeviceDefPtr dev,
                    char *class,
                    char *ref,
-@@ -3923,8 +3925,12 @@ virDomainXMLDevID(virDomainPtr domain,
+@@ -3926,8 +3928,12 @@ virDomainXMLDevID(virDomainPtr domain,
      xenUnifiedPrivatePtr priv = domain->conn->privateData;
      char *xref;
      char *tmp;
@@ -73,7 +73,7 @@
          if (dev->data.disk->driverName &&
              STREQ(dev->data.disk->driverName, "tap"))
              strcpy(class, "tap");
-@@ -3934,19 +3940,21 @@ virDomainXMLDevID(virDomainPtr domain,
+@@ -3937,19 +3943,21 @@ virDomainXMLDevID(virDomainPtr domain,
          else
              strcpy(class, "vbd");
  

++++++ xen-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.I0nnCU/_old  2012-01-19 18:05:49.000000000 +0100
+++ /var/tmp/diff_new_pack.I0nnCU/_new  2012-01-19 18:05:49.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-0.9.1/src/xenxs/xen_sxpr.c
+Index: libvirt-0.9.6/src/xenxs/xen_sxpr.c
 ===================================================================
---- libvirt-0.9.1.orig/src/xenxs/xen_sxpr.c
-+++ libvirt-0.9.1/src/xenxs/xen_sxpr.c
+--- libvirt-0.9.6.orig/src/xenxs/xen_sxpr.c
++++ libvirt-0.9.6/src/xenxs/xen_sxpr.c
 @@ -324,7 +324,7 @@ error:
  static int
  xenParseSxprDisks(virDomainDefPtr def,

++++++ xend-disk-order.patch ++++++
--- /var/tmp/diff_new_pack.I0nnCU/_old  2012-01-19 18:05:49.000000000 +0100
+++ /var/tmp/diff_new_pack.I0nnCU/_new  2012-01-19 18:05:49.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-0.9.1/src/xenxs/xen_sxpr.c
+Index: libvirt-0.9.6/src/xenxs/xen_sxpr.c
 ===================================================================
---- libvirt-0.9.1.orig/src/xenxs/xen_sxpr.c
-+++ libvirt-0.9.1/src/xenxs/xen_sxpr.c
+--- libvirt-0.9.6.orig/src/xenxs/xen_sxpr.c
++++ libvirt-0.9.6/src/xenxs/xen_sxpr.c
 @@ -342,20 +342,24 @@ xenParseSxprDisks(virDomainDefPtr def,
              const char *src = NULL;
              const char *dst = NULL;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to