Hello community,

here is the log from the commit of package libvirt for openSUSE:Factory checked 
in at 2014-01-07 20:58:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libvirt (Old)
 and      /work/SRC/openSUSE:Factory/.libvirt.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libvirt"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes  2013-11-07 
08:40:27.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes     2014-01-07 
20:58:32.000000000 +0100
@@ -1,0 +2,105 @@
+Thu Dec 26 17:01:48 MST 2013 - [email protected]
+
+- Ignore 'make check' on older, code 11 base
+
+-------------------------------------------------------------------
+Thu Dec 26 12:16:13 UTC 2013 - [email protected]
+
+- Fixed and reenabled unit tests. bnc#854694
+
+-------------------------------------------------------------------
+Fri Dec 20 13:13:03 MST 2013 - [email protected]
+
+- Remove dependency on pm-utils from libvirt-client
+  bnc#856381
+
+-------------------------------------------------------------------
+Fri Dec 20 09:04:45 MST 2013 - [email protected]
+
+- CVE-2013-6436: Fix crashes in lxc memtune code, one of which
+  results in DoS
+  f8c1cb90-CVE-2013-6436.patch, 9faf3f29-LXC-memtune.patch
+  bnc#854486
+
+-------------------------------------------------------------------
+Fri Dec  6 15:49:34 MST 2013 - [email protected]
+
+- More adjustments to the spec file to fix package dependency
+  issues
+  bnc#848918
+
+-------------------------------------------------------------------
+Fri Dec  6 11:03:54 MST 2013 - [email protected]
+
+- Update to libvirt 1.2.0
+  - Add support for gluster pool
+  - Separation of python binding
+  - vbox: add support for 4.3 APIs
+  - Many incremental improvements and bug fixes, see
+    http://libvirt.org/news.html
+  - Updated and renamed clone.patch to ia64-clone.patch
+- Enabled numad support for openSUSE >= 13.1
+
+-------------------------------------------------------------------
+Wed Dec  4 14:28:14 MST 2013 - [email protected]
+
+- Link with same versions of libnl used by netcontrol to prevent
+  crashing libvirtd on start
+
+-------------------------------------------------------------------
+Wed Dec  4 10:43:28 MST 2013 - [email protected]
+
+- Add '/etc/sasl2' to libvirt-client file list to fix Factory build
+
+-------------------------------------------------------------------
+Tue Nov 26 20:02:48 MST 2013 - [email protected]
+
+- Fix starting of libvirtd when NetworkManager is enabled
+  Modified libvirt-suse-netcontrol.patch
+
+-------------------------------------------------------------------
+Tue Nov 26 14:51:44 MST 2013 - [email protected]
+
+- Allow execution of libvirt hook scripts in /etc/libvirt/hooks/
+  in libvirtd AppArmor profile
+
+-------------------------------------------------------------------
+Wed Nov 20 10:57:57 MST 2013 - [email protected]
+
+- Update to libvirt 1.1.4
+  - Add support for AArch64 architecture
+  - Various improvements on test code and test driver
+  - Don't link virt-login-shell against libvirt.so
+  - Close all non-stdio FDs in virt-login-shell
+  - Only allow 'stderr' log output when running setuid
+  - Fix perms for virConnectDomainXML{To,From}Native
+  - Many incremental improvements and bug fixes, see
+    http://libvirt.org/news.html
+  - Drop upstream patches: e7f400a1-CVE-2013-4296.patch,
+    2dba0323-CVE-2013-4297.patch, db7a5688-CVE-2013-4311.patch,
+    e65667c0-CVE-2013-4311.patch, 922b7fda-CVE-2013-4311.patch,
+    e4697b92-CVE-2013-4311.patch, 8294aa0c-CVE-2013-4399.patch,
+    484cc321-fix-spice-migration.patch,
+    79552754-libvirtd-chardev-crash.patch,
+    57687fd6-CVE-2013-4401.patch, ae53e5d1-CVE-2013-4400.patch,
+    8c3586ea-CVE-2013-4400.patch, b7fcc799a-CVE-2013-4400.patch,
+    3e2f27e1-CVE-2013-4400.patch, 5a0ea4b7-CVE-2013-4400.patch,
+    843bdb2f-CVE-2013-4400.patch,
+    bd773e74-lxc-terminate-machine.patch,
+    e350826c-python-fix-fd-passing.patch
+
+-------------------------------------------------------------------
+Tue Nov 19 14:23:27 MST 2013 - [email protected]
+
+- Allow execution of Xen binaries in /usr/lib{,64}/xen/bin in
+  libvirtd AppArmor profile
+  bnc#849524
+
+-------------------------------------------------------------------
+Tue Nov 19 13:09:31 MST 2013 - [email protected]
+
+- Require libvirt-daemon-<hypervisor> in the main libvirt package
+  for each supported hypervisor
+  bnc#850882
+
+-------------------------------------------------------------------

Old:
----
  2dba0323-CVE-2013-4297.patch
  3e2f27e1-CVE-2013-4400.patch
  484cc321-fix-spice-migration.patch
  57687fd6-CVE-2013-4401.patch
  5a0ea4b7-CVE-2013-4400.patch
  79552754-libvirtd-chardev-crash.patch
  8294aa0c-CVE-2013-4399.patch
  843bdb2f-CVE-2013-4400.patch
  8c3586ea-CVE-2013-4400.patch
  922b7fda-CVE-2013-4311.patch
  ae53e5d1-CVE-2013-4400.patch
  b7fcc799a-CVE-2013-4400.patch
  bd773e74-lxc-terminate-machine.patch
  clone.patch
  db7a5688-CVE-2013-4311.patch
  e350826c-python-fix-fd-passing.patch
  e4697b92-CVE-2013-4311.patch
  e65667c0-CVE-2013-4311.patch
  e7f400a1-CVE-2013-4296.patch
  libvirt-1.1.2.tar.bz2

New:
----
  5e397d9c-test-fix-dbus-crash.patch
  78af457e-fix-virnettlscontexttest.patch
  9faf3f29-LXC-memtune.patch
  f8c1cb90-CVE-2013-6436.patch
  ia64-clone.patch
  libvirt-1.2.0.tar.bz2

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

Other differences:
------------------
++++++ libvirt.spec ++++++
++++ 705 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/libvirt/libvirt.spec
++++ and /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.spec

++++++ 5e397d9c-test-fix-dbus-crash.patch ++++++
>From 5e397d9c0f2ce7d464f8e7e6a598d1c955dfc04a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]>
Date: Wed, 18 Dec 2013 17:33:44 +0000
Subject: [PATCH] Fix crash in virsystemdtest with dbus 1.7.6

D-bus introduced some changes in its locking code. Overriding the init
function skips the new locking init and thus crashes later in libvirt
test. Removing the function makes the test pass again.
---
 tests/virsystemdmock.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/tests/virsystemdmock.c b/tests/virsystemdmock.c
index b8fc031..b3b82b4 100644
--- a/tests/virsystemdmock.c
+++ b/tests/virsystemdmock.c
@@ -31,11 +31,6 @@ void dbus_connection_set_change_sigpipe(dbus_bool_t 
will_modify_sigpipe ATTRIBUT
 {
 }
 
-dbus_bool_t dbus_threads_init_default(void)
-{
-    return 1;
-}
-
 DBusConnection *dbus_bus_get(DBusBusType type ATTRIBUTE_UNUSED,
                              DBusError *error ATTRIBUTE_UNUSED)
 {
-- 
1.8.4.4

++++++ 78af457e-fix-virnettlscontexttest.patch ++++++
>From 78af457eefaf40e66a28b00446c03f8ee9a7f30f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <[email protected]>
Date: Mon, 23 Dec 2013 09:01:42 +0100
Subject: [PATCH] virnettlscontexttest fails with GNUTLS 3.0.28

On openSUSE 12.x with GNUTLS 3.0.28, virnettlscontexttest fails. It has
been reported to work from GNUTLS 3.1.11 on Fedora 19. Changed the
constraints on gnutls to 3.1+ for unit test cacert4req.

Signed-off-by: Eric Blake <[email protected]>
---
 tests/virnettlscontexttest.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tests/virnettlscontexttest.c b/tests/virnettlscontexttest.c
index fc512fc..1cc9946 100644
--- a/tests/virnettlscontexttest.c
+++ b/tests/virnettlscontexttest.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2012 Red Hat, Inc.
+ * Copyright (C) 2011-2013 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -265,10 +265,12 @@ mymain(void)
 
     /* Technically a CA cert with basic constraints
      * key purpose == key signing + non-critical should
-     * be rejected. GNUTLS < 3 does not reject it and
+     * be rejected. GNUTLS < 3.1 does not reject it and
      * we don't anticipate them changing this behaviour
      */
-    DO_CTX_TEST(true, cacert4req.filename, servercert4req.filename, 
GNUTLS_VERSION_MAJOR >= 3);
+    DO_CTX_TEST(true, cacert4req.filename, servercert4req.filename,
+                (GNUTLS_VERSION_MAJOR == 3 && GNUTLS_VERSION_MINOR >= 1) ||
+                GNUTLS_VERSION_MAJOR > 3);
     DO_CTX_TEST(true, cacert5req.filename, servercert5req.filename, true);
     DO_CTX_TEST(true, cacert6req.filename, servercert6req.filename, true);
 
-- 
1.8.4.4

++++++ 9faf3f29-LXC-memtune.patch ++++++
commit 9faf3f2950aed1643ab7564afcb4c693c77f71b5
Author: Martin Kletzander <[email protected]>
Date:   Mon Dec 9 11:15:12 2013 +0100

    Fix crash in lxcDomainSetMemoryParameters
    
    The function doesn't check whether the request is made for active or
    inactive domain.  Thus when the domain is not running it still tries
    accessing non-existing cgroups (priv->cgroup, which is NULL).
    
    I re-made the function in order for it to work the same way it's qemu
    counterpart does.
    
    Reproducer:
     1) Define an LXC domain
     2) Do 'virsh memtune <domain> --hard-limit 133T'
    
    Backtrace:
     Thread 6 (Thread 0x7fffec8c0700 (LWP 26826)):
     #0  0x00007ffff70edcc4 in virCgroupPathOfController (group=0x0, 
controller=3,
         key=0x7ffff75734bd "memory.limit_in_bytes", path=0x7fffec8bf718) at 
util/vircgroup.c:1764
     #1  0x00007ffff70e9206 in virCgroupSetValueStr (group=0x0, controller=3,
         key=0x7ffff75734bd "memory.limit_in_bytes", value=0x7fffe409f360 
"1073741824")
         at util/vircgroup.c:669
     #2  0x00007ffff70e98b4 in virCgroupSetValueU64 (group=0x0, controller=3,
         key=0x7ffff75734bd "memory.limit_in_bytes", value=1073741824) at 
util/vircgroup.c:740
     #3  0x00007ffff70ee518 in virCgroupSetMemory (group=0x0, kb=1048576) at 
util/vircgroup.c:1904
     #4  0x00007ffff70ee675 in virCgroupSetMemoryHardLimit (group=0x0, 
kb=1048576)
         at util/vircgroup.c:1944
     #5  0x00005555557d54c8 in lxcDomainSetMemoryParameters (dom=0x7fffe40cc420,
         params=0x7fffe409f100, nparams=1, flags=0) at lxc/lxc_driver.c:774
     #6  0x00007ffff72c20f9 in virDomainSetMemoryParameters 
(domain=0x7fffe40cc420,
         params=0x7fffe409f100, nparams=1, flags=0) at libvirt.c:4051
     #7  0x000055555561365f in remoteDispatchDomainSetMemoryParameters 
(server=0x555555eb7e00,
         client=0x555555ec4b10, msg=0x555555eb94e0, rerr=0x7fffec8bfb70, 
args=0x7fffe40b8510)
         at remote_dispatch.h:7621
     #8  0x00005555556133fd in remoteDispatchDomainSetMemoryParametersHelper 
(server=0x555555eb7e00,
         client=0x555555ec4b10, msg=0x555555eb94e0, rerr=0x7fffec8bfb70, 
args=0x7fffe40b8510,
         ret=0x7fffe40b84f0) at remote_dispatch.h:7591
     #9  0x00007ffff73b293f in virNetServerProgramDispatchCall 
(prog=0x555555ec3ae0,
         server=0x555555eb7e00, client=0x555555ec4b10, msg=0x555555eb94e0)
         at rpc/virnetserverprogram.c:435
     #10 0x00007ffff73b207f in virNetServerProgramDispatch (prog=0x555555ec3ae0,
         server=0x555555eb7e00, client=0x555555ec4b10, msg=0x555555eb94e0)
         at rpc/virnetserverprogram.c:305
     #11 0x00007ffff73a4d2c in virNetServerProcessMsg (srv=0x555555eb7e00, 
client=0x555555ec4b10,
         prog=0x555555ec3ae0, msg=0x555555eb94e0) at rpc/virnetserver.c:165
     #12 0x00007ffff73a4e8d in virNetServerHandleJob (jobOpaque=0x555555ec3e30, 
opaque=0x555555eb7e00)
         at rpc/virnetserver.c:186
     #13 0x00007ffff7187f3f in virThreadPoolWorker (opaque=0x555555eb7ac0) at 
util/virthreadpool.c:144
     #14 0x00007ffff718733a in virThreadHelper (data=0x555555eb7890) at 
util/virthreadpthread.c:161
     #15 0x00007ffff468ed89 in start_thread (arg=0x7fffec8c0700) at 
pthread_create.c:308
     #16 0x00007ffff3da26bd in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:113
    
    Signed-off-by: Martin Kletzander <[email protected]>

Index: libvirt-1.2.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-1.2.0.orig/src/lxc/lxc_driver.c
+++ libvirt-1.2.0/src/lxc/lxc_driver.c
@@ -742,12 +742,24 @@ lxcDomainSetMemoryParameters(virDomainPt
                              int nparams,
                              unsigned int flags)
 {
-    size_t i;
+    virCapsPtr caps = NULL;
+    virDomainDefPtr vmdef = NULL;
     virDomainObjPtr vm = NULL;
+    virLXCDomainObjPrivatePtr priv = NULL;
+    virLXCDriverConfigPtr cfg = NULL;
+    virLXCDriverPtr driver = dom->conn->privateData;
+    unsigned long long hard_limit;
+    unsigned long long soft_limit;
+    unsigned long long swap_hard_limit;
+    bool set_hard_limit = false;
+    bool set_soft_limit = false;
+    bool set_swap_hard_limit = false;
+    int rc;
     int ret = -1;
-    virLXCDomainObjPrivatePtr priv;
 
-    virCheckFlags(0, -1);
+    virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
+                  VIR_DOMAIN_AFFECT_CONFIG, -1);
+
     if (virTypedParamsValidate(params, nparams,
                                VIR_DOMAIN_MEMORY_HARD_LIMIT,
                                VIR_TYPED_PARAM_ULLONG,
@@ -762,29 +774,97 @@ lxcDomainSetMemoryParameters(virDomainPt
         goto cleanup;
 
     priv = vm->privateData;
+    cfg = virLXCDriverGetConfig(driver);
 
-    if (virDomainSetMemoryParametersEnsureACL(dom->conn, vm->def, flags) < 0)
+    if (virDomainSetMemoryParametersEnsureACL(dom->conn, vm->def, flags) < 0 ||
+        !(caps = virLXCDriverGetCapabilities(driver, false)) ||
+        virDomainLiveConfigHelperMethod(caps, driver->xmlopt,
+                                        vm, &flags, &vmdef) < 0)
         goto cleanup;
 
-    ret = 0;
-    for (i = 0; i < nparams; i++) {
-        virTypedParameterPtr param = &params[i];
+    if (flags & VIR_DOMAIN_AFFECT_LIVE &&
+        !virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_MEMORY)) {
+        virReportError(VIR_ERR_OPERATION_INVALID,
+                       "%s", _("cgroup memory controller is not mounted"));
+        goto cleanup;
+    }
 
-        if (STREQ(param->field, VIR_DOMAIN_MEMORY_HARD_LIMIT)) {
-            if (virCgroupSetMemoryHardLimit(priv->cgroup, params[i].value.ul) 
< 0)
-                ret = -1;
-        } else if (STREQ(param->field, VIR_DOMAIN_MEMORY_SOFT_LIMIT)) {
-            if (virCgroupSetMemorySoftLimit(priv->cgroup, params[i].value.ul) 
< 0)
-                ret = -1;
-        } else if (STREQ(param->field, VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT)) {
-            if (virCgroupSetMemSwapHardLimit(priv->cgroup, params[i].value.ul) 
< 0)
-                ret = -1;
+#define VIR_GET_LIMIT_PARAMETER(PARAM, VALUE)                                \
+    if ((rc = virTypedParamsGetULLong(params, nparams, PARAM, &VALUE)) < 0)  \
+        goto cleanup;                                                        \
+                                                                             \
+    if (rc == 1)                                                             \
+        set_ ## VALUE = true;
+
+    VIR_GET_LIMIT_PARAMETER(VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT, swap_hard_limit)
+    VIR_GET_LIMIT_PARAMETER(VIR_DOMAIN_MEMORY_HARD_LIMIT, hard_limit)
+    VIR_GET_LIMIT_PARAMETER(VIR_DOMAIN_MEMORY_SOFT_LIMIT, soft_limit)
+
+#undef VIR_GET_LIMIT_PARAMETER
+
+    /* Swap hard limit must be greater than hard limit.
+     * Note that limit of 0 denotes unlimited */
+    if (set_swap_hard_limit || set_hard_limit) {
+        unsigned long long mem_limit = vm->def->mem.hard_limit;
+        unsigned long long swap_limit = vm->def->mem.swap_hard_limit;
+
+        if (set_swap_hard_limit)
+            swap_limit = swap_hard_limit;
+
+        if (set_hard_limit)
+            mem_limit = hard_limit;
+
+        if (virCompareLimitUlong(mem_limit, swap_limit) > 0) {
+            virReportError(VIR_ERR_INVALID_ARG, "%s",
+                           _("memory hard_limit tunable value must be lower "
+                             "than or equal to swap_hard_limit"));
+            goto cleanup;
         }
     }
 
+#define LXC_SET_MEM_PARAMETER(FUNC, VALUE)                                     
\
+    if (set_ ## VALUE) {                                                       
 \
+        if (flags & VIR_DOMAIN_AFFECT_LIVE) {                                  
 \
+            if ((rc = FUNC(priv->cgroup, VALUE)) < 0) {                        
 \
+                virReportSystemError(-rc, _("unable to set memory %s 
tunable"), \
+                                     #VALUE);                                  
 \
+                                                                               
 \
+                goto cleanup;                                                  
 \
+            }                                                                  
 \
+            vm->def->mem.VALUE = VALUE;                                        
 \
+        }                                                                      
 \
+                                                                               
 \
+        if (flags & VIR_DOMAIN_AFFECT_CONFIG)                                  
 \
+            vmdef->mem.VALUE = VALUE;                                   \
+    }
+
+    /* Soft limit doesn't clash with the others */
+    LXC_SET_MEM_PARAMETER(virCgroupSetMemorySoftLimit, soft_limit);
+
+    /* set hard limit before swap hard limit if decreasing it */
+    if (virCompareLimitUlong(vm->def->mem.hard_limit, hard_limit) > 0) {
+        LXC_SET_MEM_PARAMETER(virCgroupSetMemoryHardLimit, hard_limit);
+        /* inhibit changing the limit a second time */
+        set_hard_limit = false;
+    }
+
+    LXC_SET_MEM_PARAMETER(virCgroupSetMemSwapHardLimit, swap_hard_limit);
+
+    /* otherwise increase it after swap hard limit */
+    LXC_SET_MEM_PARAMETER(virCgroupSetMemoryHardLimit, hard_limit);
+
+#undef LXC_SET_MEM_PARAMETER
+
+    if (flags & VIR_DOMAIN_AFFECT_CONFIG &&
+        virDomainSaveConfig(cfg->configDir, vmdef) < 0)
+        goto cleanup;
+
+    ret = 0;
 cleanup:
     if (vm)
         virObjectUnlock(vm);
+    virObjectUnref(caps);
+    virObjectUnref(cfg);
     return ret;
 }
 
++++++ f8c1cb90-CVE-2013-6436.patch ++++++
commit f8c1cb90213508c4f32549023b0572ed774e48aa
Author: Martin Kletzander <[email protected]>
Date:   Mon Dec 9 11:15:11 2013 +0100

    CVE-2013-6436: fix crash in lxcDomainGetMemoryParameters
    
    The function doesn't check whether the request is made for active or
    inactive domain.  Thus when the domain is not running it still tries
    accessing non-existing cgroups (priv->cgroup, which is NULL).
    
    I re-made the function in order for it to work the same way it's qemu
    counterpart does.
    
    Reproducer:
     1) Define an LXC domain
     2) Do 'virsh memtune <domain>'
    
    Backtrace:
     Thread 6 (Thread 0x7fffec8c0700 (LWP 13387)):
     #0  0x00007ffff70edcc4 in virCgroupPathOfController (group=0x0, 
controller=3,
         key=0x7ffff75734bd "memory.limit_in_bytes", path=0x7fffec8bf750) at 
util/vircgroup.c:1764
     #1  0x00007ffff70e958c in virCgroupGetValueStr (group=0x0, controller=3,
         key=0x7ffff75734bd "memory.limit_in_bytes", value=0x7fffec8bf7c0) at 
util/vircgroup.c:705
     #2  0x00007ffff70e9d29 in virCgroupGetValueU64 (group=0x0, controller=3,
         key=0x7ffff75734bd "memory.limit_in_bytes", value=0x7fffec8bf810) at 
util/vircgroup.c:804
     #3  0x00007ffff70ee706 in virCgroupGetMemoryHardLimit (group=0x0, 
kb=0x7fffec8bf8a8)
         at util/vircgroup.c:1962
     #4  0x00005555557d590f in lxcDomainGetMemoryParameters (dom=0x7fffd40024a0,
         params=0x7fffd40027a0, nparams=0x7fffec8bfa24, flags=0) at 
lxc/lxc_driver.c:826
     #5  0x00007ffff72c28d3 in virDomainGetMemoryParameters 
(domain=0x7fffd40024a0,
         params=0x7fffd40027a0, nparams=0x7fffec8bfa24, flags=0) at 
libvirt.c:4137
     #6  0x000055555563714d in remoteDispatchDomainGetMemoryParameters 
(server=0x555555eb7e00,
         client=0x555555ebaef0, msg=0x555555ebb3e0, rerr=0x7fffec8bfb70, 
args=0x7fffd40024e0,
         ret=0x7fffd4002420) at remote.c:1895
     #7  0x00005555556052c4 in remoteDispatchDomainGetMemoryParametersHelper 
(server=0x555555eb7e00,
         client=0x555555ebaef0, msg=0x555555ebb3e0, rerr=0x7fffec8bfb70, 
args=0x7fffd40024e0,
         ret=0x7fffd4002420) at remote_dispatch.h:4050
     #8  0x00007ffff73b293f in virNetServerProgramDispatchCall 
(prog=0x555555ec3ae0,
         server=0x555555eb7e00, client=0x555555ebaef0, msg=0x555555ebb3e0)
         at rpc/virnetserverprogram.c:435
     #9  0x00007ffff73b207f in virNetServerProgramDispatch (prog=0x555555ec3ae0,
         server=0x555555eb7e00, client=0x555555ebaef0, msg=0x555555ebb3e0)
         at rpc/virnetserverprogram.c:305
     #10 0x00007ffff73a4d2c in virNetServerProcessMsg (srv=0x555555eb7e00, 
client=0x555555ebaef0,
         prog=0x555555ec3ae0, msg=0x555555ebb3e0) at rpc/virnetserver.c:165
     #11 0x00007ffff73a4e8d in virNetServerHandleJob (jobOpaque=0x555555ebc7e0, 
opaque=0x555555eb7e00)
         at rpc/virnetserver.c:186
     #12 0x00007ffff7187f3f in virThreadPoolWorker (opaque=0x555555eb7ac0) at 
util/virthreadpool.c:144
     #13 0x00007ffff718733a in virThreadHelper (data=0x555555eb7890) at 
util/virthreadpthread.c:161
     #14 0x00007ffff468ed89 in start_thread (arg=0x7fffec8c0700) at 
pthread_create.c:308
     #15 0x00007ffff3da26bd in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:113
    
    Signed-off-by: Martin Kletzander <[email protected]>

Index: libvirt-1.2.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-1.2.0.orig/src/lxc/lxc_driver.c
+++ libvirt-1.2.0/src/lxc/lxc_driver.c
@@ -794,22 +794,36 @@ lxcDomainGetMemoryParameters(virDomainPt
                              int *nparams,
                              unsigned int flags)
 {
-    size_t i;
+    virCapsPtr caps = NULL;
+    virDomainDefPtr vmdef = NULL;
     virDomainObjPtr vm = NULL;
+    virLXCDomainObjPrivatePtr priv = NULL;
+    virLXCDriverPtr driver = dom->conn->privateData;
     unsigned long long val;
     int ret = -1;
-    virLXCDomainObjPrivatePtr priv;
+    size_t i;
 
-    virCheckFlags(0, -1);
+    virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
+                  VIR_DOMAIN_AFFECT_CONFIG, -1);
 
     if (!(vm = lxcDomObjFromDomain(dom)))
         goto cleanup;
 
     priv = vm->privateData;
 
-    if (virDomainGetMemoryParametersEnsureACL(dom->conn, vm->def) < 0)
+    if (virDomainGetMemoryParametersEnsureACL(dom->conn, vm->def) < 0 ||
+        !(caps = virLXCDriverGetCapabilities(driver, false)) ||
+        virDomainLiveConfigHelperMethod(caps, driver->xmlopt,
+                                        vm, &flags, &vmdef) < 0)
         goto cleanup;
 
+    if (flags & VIR_DOMAIN_AFFECT_LIVE &&
+        !virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_MEMORY)) {
+        virReportError(VIR_ERR_OPERATION_INVALID,
+                       "%s", _("cgroup memory controller is not mounted"));
+        goto cleanup;
+    }
+
     if ((*nparams) == 0) {
         /* Current number of memory parameters supported by cgroups */
         *nparams = LXC_NB_MEM_PARAM;
@@ -823,22 +837,34 @@ lxcDomainGetMemoryParameters(virDomainPt
 
         switch (i) {
         case 0: /* fill memory hard limit here */
-            if (virCgroupGetMemoryHardLimit(priv->cgroup, &val) < 0)
+            if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
+                val = vmdef->mem.hard_limit;
+                val = val ? val : VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
+            } else if (virCgroupGetMemoryHardLimit(priv->cgroup, &val) < 0) {
                 goto cleanup;
+            }
             if (virTypedParameterAssign(param, VIR_DOMAIN_MEMORY_HARD_LIMIT,
                                         VIR_TYPED_PARAM_ULLONG, val) < 0)
                 goto cleanup;
             break;
         case 1: /* fill memory soft limit here */
-            if (virCgroupGetMemorySoftLimit(priv->cgroup, &val) < 0)
+            if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
+                val = vmdef->mem.soft_limit;
+                val = val ? val : VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
+            } else if (virCgroupGetMemorySoftLimit(priv->cgroup, &val) < 0) {
                 goto cleanup;
+            }
             if (virTypedParameterAssign(param, VIR_DOMAIN_MEMORY_SOFT_LIMIT,
                                         VIR_TYPED_PARAM_ULLONG, val) < 0)
                 goto cleanup;
             break;
         case 2: /* fill swap hard limit here */
-            if (virCgroupGetMemSwapHardLimit(priv->cgroup, &val) < 0)
+            if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
+                val = vmdef->mem.swap_hard_limit;
+                val = val ? val : VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
+            } else if (virCgroupGetMemSwapHardLimit(priv->cgroup, &val) < 0) {
                 goto cleanup;
+            }
             if (virTypedParameterAssign(param,
                                         VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT,
                                         VIR_TYPED_PARAM_ULLONG, val) < 0)
@@ -859,6 +885,7 @@ lxcDomainGetMemoryParameters(virDomainPt
 cleanup:
     if (vm)
         virObjectUnlock(vm);
+    virObjectUnref(caps);
     return ret;
 }
 
++++++ fix-pci-attach-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -8,11 +8,11 @@
 This patch changes the xend driver to always call 'device_configure' for
 PCI devices to be consistent with the usage in the xen tools.
 
-Index: libvirt-1.1.2/src/xen/xend_internal.c
+Index: libvirt-1.2.0/src/xen/xend_internal.c
 ===================================================================
---- libvirt-1.1.2.orig/src/xen/xend_internal.c
-+++ libvirt-1.1.2/src/xen/xend_internal.c
-@@ -2206,6 +2206,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr
+--- libvirt-1.2.0.orig/src/xen/xend_internal.c
++++ libvirt-1.2.0/src/xen/xend_internal.c
+@@ -2207,6 +2207,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr
      virBuffer buf = VIR_BUFFER_INITIALIZER;
      char class[8], ref[80];
      char *target = NULL;
@@ -20,7 +20,7 @@
  
      virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1);
  
-@@ -2304,8 +2305,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr
+@@ -2305,8 +2306,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr
      }
  
      sexpr = virBufferContentAndReset(&buf);

++++++ ia64-clone.patch ++++++
Index: libvirt-1.2.0/src/lxc/lxc_container.c
===================================================================
--- libvirt-1.2.0.orig/src/lxc/lxc_container.c
+++ libvirt-1.2.0/src/lxc/lxc_container.c
@@ -162,12 +162,19 @@ int lxcContainerHasReboot(void)
     VIR_FREE(buf);
     cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
 
+#ifdef __ia64__
+    stacksize *= 2;
+#endif
     if (VIR_ALLOC_N(stack, stacksize) < 0)
         return -1;
 
     childStack = stack + stacksize;
 
+#ifdef __ia64__
+    cpid = __clone2(lxcContainerRebootChild, childStack, stacksize, flags, 
&cmd);
+#else
     cpid = clone(lxcContainerRebootChild, childStack, flags, &cmd);
+#endif
     VIR_FREE(stack);
     if (cpid < 0) {
         virReportSystemError(errno, "%s",
@@ -1985,6 +1992,9 @@ int lxcContainerStart(virDomainDefPtr de
         .handshakefd = handshakefd
     };
 
+#ifdef __ia64__
+    stacksize *= 2;
+#endif
     /* allocate a stack for the container */
     if (VIR_ALLOC_N(stack, stacksize) < 0)
         return -1;
@@ -2010,7 +2020,11 @@ int lxcContainerStart(virDomainDefPtr de
         cflags |= CLONE_NEWNET;
     }
 
+#ifdef __ia64__
+    pid = __clone2(lxcContainerChild, stacktop, stacksize, cflags, &args);
+#else
     pid = clone(lxcContainerChild, stacktop, cflags, &args);
+#endif
     VIR_FREE(stack);
     VIR_DEBUG("clone() completed, new container PID is %d", pid);
 
@@ -2044,12 +2058,19 @@ int lxcContainerAvailable(int features)
     if (features & LXC_CONTAINER_FEATURE_NET)
         flags |= CLONE_NEWNET;
 
+#ifdef __ia64__
+    stacksize *= 2;
+#endif
     if (VIR_ALLOC_N(stack, stacksize) < 0)
         return -1;
 
     childStack = stack + stacksize;
 
+#ifdef __ia64__
+    cpid = __clone2(lxcContainerDummyChild, childStack, stacksize, flags, 
NULL);
+#else
     cpid = clone(lxcContainerDummyChild, childStack, flags, NULL);
+#endif
     VIR_FREE(stack);
     if (cpid < 0) {
         char ebuf[1024] ATTRIBUTE_UNUSED;
++++++ install-apparmor-profiles.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.1.2/examples/apparmor/Makefile.am
+Index: libvirt-1.2.0/examples/apparmor/Makefile.am
 ===================================================================
---- libvirt-1.1.2.orig/examples/apparmor/Makefile.am
-+++ libvirt-1.1.2/examples/apparmor/Makefile.am
+--- libvirt-1.2.0.orig/examples/apparmor/Makefile.am
++++ libvirt-1.2.0/examples/apparmor/Makefile.am
 @@ -14,8 +14,45 @@
  ## License along with this library.  If not, see
  ## <http://www.gnu.org/licenses/>.
@@ -53,10 +53,10 @@
 +      rm -f $(DESTDIR)$(sysconfdir)/apparmor.d/libvirt/TEMPLATE
 +
 +endif
-Index: libvirt-1.1.2/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
+Index: libvirt-1.2.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
 ===================================================================
 --- /dev/null
-+++ libvirt-1.1.2/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
++++ libvirt-1.2.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in
 @@ -0,0 +1,41 @@
 +# Last Modified: Fri Aug 19 11:21:48 2011
 +#include <tunables/global>
@@ -99,9 +99,9 @@
 +  /var/lib/kvm/images/ r,
 +  /var/lib/kvm/images/** r,
 +}
-Index: libvirt-1.1.2/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+Index: libvirt-1.2.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
 ===================================================================
---- libvirt-1.1.2.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+--- libvirt-1.2.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
 +++ /dev/null
 @@ -1,38 +0,0 @@
 -# Last Modified: Mon Apr  5 15:10:27 2010
@@ -142,9 +142,9 @@
 -  /var/lib/libvirt/images/ r,
 -  /var/lib/libvirt/images/** r,
 -}
-Index: libvirt-1.1.2/examples/apparmor/usr.sbin.libvirtd
+Index: libvirt-1.2.0/examples/apparmor/usr.sbin.libvirtd
 ===================================================================
---- libvirt-1.1.2.orig/examples/apparmor/usr.sbin.libvirtd
+--- libvirt-1.2.0.orig/examples/apparmor/usr.sbin.libvirtd
 +++ /dev/null
 @@ -1,52 +0,0 @@
 -# Last Modified: Mon Apr  5 15:03:58 2010
@@ -199,11 +199,11 @@
 -  change_profile -> 
@{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
 -
 -}
-Index: libvirt-1.1.2/examples/apparmor/usr.sbin.libvirtd.in
+Index: libvirt-1.2.0/examples/apparmor/usr.sbin.libvirtd.in
 ===================================================================
 --- /dev/null
-+++ libvirt-1.1.2/examples/apparmor/usr.sbin.libvirtd.in
-@@ -0,0 +1,60 @@
++++ libvirt-1.2.0/examples/apparmor/usr.sbin.libvirtd.in
+@@ -0,0 +1,61 @@
 +# Last Modified: Fri Aug 19 11:20:36 2011
 +#include <tunables/global>
 +@{LIBVIRT}="libvirt"
@@ -244,8 +244,8 @@
 +  /sbin/* Ux,
 +  /usr/bin/* Ux,
 +  /usr/sbin/* Ux,
-+  /usr/lib/xen/bin/qemu-dm Ux,
-+  /usr/lib/xen/bin/qemu-system-i386 Ux,
++  /usr/lib/xen/bin/* Ux,
++  /usr/lib64/xen/bin/* Ux,
 +  /usr/lib/PolicyKit/polkit-read-auth-helper Px,
 +
 +  # force the use of virt-aa-helper
@@ -255,6 +255,7 @@
 +  audit deny /sys/kernel/security/apparmor/matching rwxl,
 +  audit deny /sys/kernel/security/apparmor/.* rwxl,
 +  /sys/kernel/security/apparmor/profiles r,
++  /etc/libvirt/hooks/* rix,
 +  /etc/xen/scripts/* rix,
 +  @libdir@/libvirt/* Pxr,
 +  @libdir@/libvirt/libvirt_parthelper Ux,
@@ -264,9 +265,9 @@
 +  change_profile -> 
@{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*,
 +
 +}
-Index: libvirt-1.1.2/examples/apparmor/libvirt-qemu
+Index: libvirt-1.2.0/examples/apparmor/libvirt-qemu
 ===================================================================
---- libvirt-1.1.2.orig/examples/apparmor/libvirt-qemu
+--- libvirt-1.2.0.orig/examples/apparmor/libvirt-qemu
 +++ /dev/null
 @@ -1,129 +0,0 @@
 -# Last Modified: Fri Mar 9 14:43:22 2012
@@ -398,10 +399,10 @@
 -
 -   /usr/libexec/qemu-bridge-helper rmix,
 -  }
-Index: libvirt-1.1.2/examples/apparmor/libvirt-qemu.in
+Index: libvirt-1.2.0/examples/apparmor/libvirt-qemu.in
 ===================================================================
 --- /dev/null
-+++ libvirt-1.1.2/examples/apparmor/libvirt-qemu.in
++++ libvirt-1.2.0/examples/apparmor/libvirt-qemu.in
 @@ -0,0 +1,132 @@
 +# Last Modified: Fri Mar 9 14:43:22 2012
 +

++++++ libvirt-1.1.2.tar.bz2 -> libvirt-1.2.0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/libvirt/libvirt-1.1.2.tar.bz2 
/work/SRC/openSUSE:Factory/.libvirt.new/libvirt-1.2.0.tar.bz2 differ: char 11, 
line 1

++++++ libvirt-guests-init-script.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,9 +1,9 @@
 Adjust libvirt-guests init files to conform to SUSE standards
 
-Index: libvirt-1.1.2/tools/libvirt-guests.init.in
+Index: libvirt-1.2.0/tools/libvirt-guests.init.in
 ===================================================================
---- libvirt-1.1.2.orig/tools/libvirt-guests.init.in
-+++ libvirt-1.1.2/tools/libvirt-guests.init.in
+--- libvirt-1.2.0.orig/tools/libvirt-guests.init.in
++++ libvirt-1.2.0/tools/libvirt-guests.init.in
 @@ -3,15 +3,15 @@
  # the following is the LSB init header
  #
@@ -28,10 +28,10 @@
  ### END INIT INFO
  
  # the following is chkconfig init header
-Index: libvirt-1.1.2/tools/libvirt-guests.sh.in
+Index: libvirt-1.2.0/tools/libvirt-guests.sh.in
 ===================================================================
---- libvirt-1.1.2.orig/tools/libvirt-guests.sh.in
-+++ libvirt-1.1.2/tools/libvirt-guests.sh.in
+--- libvirt-1.2.0.orig/tools/libvirt-guests.sh.in
++++ libvirt-1.2.0/tools/libvirt-guests.sh.in
 @@ -16,14 +16,13 @@
  # License along with this library.  If not, see
  # <http://www.gnu.org/licenses/>.
@@ -189,10 +189,10 @@
  esac
 -exit $RETVAL
 +rc_exit
-Index: libvirt-1.1.2/tools/libvirt-guests.sysconf
+Index: libvirt-1.2.0/tools/libvirt-guests.sysconf
 ===================================================================
---- libvirt-1.1.2.orig/tools/libvirt-guests.sysconf
-+++ libvirt-1.1.2/tools/libvirt-guests.sysconf
+--- libvirt-1.2.0.orig/tools/libvirt-guests.sysconf
++++ libvirt-1.2.0/tools/libvirt-guests.sysconf
 @@ -1,19 +1,29 @@
 +## Path: System/Virtualization/libvirt-guests
 +

++++++ libvirt-suse-netcontrol.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,16 +1,16 @@
-Index: libvirt-1.1.2/configure.ac
+Index: libvirt-1.2.0/configure.ac
 ===================================================================
---- libvirt-1.1.2.orig/configure.ac
-+++ libvirt-1.1.2/configure.ac
-@@ -174,6 +174,7 @@ LIBVIRT_CHECK_DBUS
- LIBVIRT_CHECK_FUSE
+--- libvirt-1.2.0.orig/configure.ac
++++ libvirt-1.2.0/configure.ac
+@@ -231,6 +231,7 @@ LIBVIRT_CHECK_FUSE
+ LIBVIRT_CHECK_GLUSTER
  LIBVIRT_CHECK_HAL
  LIBVIRT_CHECK_NETCF
 +LIBVIRT_CHECK_NETCONTROL
  LIBVIRT_CHECK_NUMACTL
  LIBVIRT_CHECK_OPENWSMAN
  LIBVIRT_CHECK_PCIACCESS
-@@ -2297,11 +2298,12 @@ if test "$with_libvirtd" = "no" ; then
+@@ -2312,11 +2313,12 @@ if test "$with_libvirtd" = "no" ; then
    with_interface=no
  fi
  
@@ -26,22 +26,22 @@
  esac
  
  if test "$with_interface" = "yes" ; then
-@@ -2609,6 +2611,7 @@ LIBVIRT_RESULT_DBUS
- LIBVIRT_RESULT_FUSE
+@@ -2631,6 +2633,7 @@ LIBVIRT_RESULT_FUSE
+ LIBVIRT_RESULT_GLUSTER
  LIBVIRT_RESULT_HAL
  LIBVIRT_RESULT_NETCF
 +LIBVIRT_RESULT_NETCONTROL
  LIBVIRT_RESULT_NUMACTL
  LIBVIRT_RESULT_OPENWSMAN
  LIBVIRT_RESULT_PCIACCESS
-Index: libvirt-1.1.2/src/Makefile.am
+Index: libvirt-1.2.0/src/Makefile.am
 ===================================================================
---- libvirt-1.1.2.orig/src/Makefile.am
-+++ libvirt-1.1.2/src/Makefile.am
-@@ -754,6 +754,10 @@ if WITH_NETCF
+--- libvirt-1.2.0.orig/src/Makefile.am
++++ libvirt-1.2.0/src/Makefile.am
+@@ -781,6 +781,10 @@ if WITH_NETCF
  INTERFACE_DRIVER_SOURCES +=                                   \
                interface/interface_backend_netcf.c
- endif
+ endif WITH_NETCF
 +if WITH_NETCONTROL
 +INTERFACE_DRIVER_SOURCES +=                                   \
 +              interface/interface_backend_netcf.c
@@ -49,28 +49,27 @@
  if WITH_UDEV
  INTERFACE_DRIVER_SOURCES +=                                   \
                interface/interface_backend_udev.c
-@@ -1314,11 +1318,16 @@ if WITH_NETCF
+@@ -1346,10 +1350,15 @@ if WITH_NETCF
  libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
  libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
- else
+ else ! WITH_NETCF
 +if WITH_NETCONTROL
 +libvirt_driver_interface_la_CFLAGS += $(NETCONTROL_CFLAGS)
 +libvirt_driver_interface_la_LIBADD += $(NETCONTROL_LIBS)
-+else
++else ! WITH_NETCONTROL
  if WITH_UDEV
  libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
  libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
- endif
- endif
-+endif
+ endif WITH_UDEV
++endif ! WITH_NETCONTROL
+ endif ! WITH_NETCF
  if WITH_DRIVER_MODULES
  libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
- libvirt_driver_interface_la_LDFLAGS += -module -avoid-version
-Index: libvirt-1.1.2/tools/virsh.c
+Index: libvirt-1.2.0/tools/virsh.c
 ===================================================================
---- libvirt-1.1.2.orig/tools/virsh.c
-+++ libvirt-1.1.2/tools/virsh.c
-@@ -2864,6 +2864,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
+--- libvirt-1.2.0.orig/tools/virsh.c
++++ libvirt-1.2.0/tools/virsh.c
+@@ -3029,6 +3029,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
      vshPrint(ctl, " Interface");
  # if defined(WITH_NETCF)
      vshPrint(ctl, " netcf");
@@ -79,10 +78,10 @@
  # elif defined(WITH_UDEV)
      vshPrint(ctl, " udev");
  # endif
-Index: libvirt-1.1.2/src/interface/interface_backend_netcf.c
+Index: libvirt-1.2.0/src/interface/interface_backend_netcf.c
 ===================================================================
---- libvirt-1.1.2.orig/src/interface/interface_backend_netcf.c
-+++ libvirt-1.1.2/src/interface/interface_backend_netcf.c
+--- libvirt-1.2.0.orig/src/interface/interface_backend_netcf.c
++++ libvirt-1.2.0/src/interface/interface_backend_netcf.c
 @@ -23,7 +23,12 @@
  
  #include <config.h>
@@ -97,9 +96,9 @@
  
  #include "virerror.h"
  #include "datatypes.h"
-@@ -54,6 +59,38 @@ static void interfaceDriverUnlock(struct
-     virMutexUnlock(&driver->lock);
- }
+@@ -63,6 +68,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState
+ 
+ static virNetcfDriverStatePtr driverState = NULL;
  
 +#ifdef WITH_NETCONTROL
 +static void
@@ -132,25 +131,44 @@
 +    virLogMessage(VIR_LOG_FROM_FILE, vp, file, line, func, 0, "%s", msg);
 +}
 +#endif
-+
- /*
-  * Get a minimal virInterfaceDef containing enough metadata
-  * for access control checks to be performed. Currently
-@@ -164,6 +201,10 @@ static virDrvOpenStatus netcfInterfaceOp
-         goto mutex_error;
-     }
+ 
+ static void
+ virNetcfDriverStateDispose(void *obj)
+@@ -85,7 +121,22 @@ netcfStateInitialize(bool privileged ATT
+     if (!(driverState = virObjectLockableNew(virNetcfDriverStateClass)))
+         return -1;
  
 +#ifdef WITH_NETCONTROL
 +    nc_logger_redirect_to(interface_nc_log_driver);
-+#endif
 +
      /* open netcf */
-     if (ncf_init(&driverState->netcf, NULL) != 0)
-     {
-Index: libvirt-1.1.2/src/interface/interface_driver.c
++    /* Note: On SUSE, ncf_init will fail if Network Manager is enabled.  
Ignore
++     * the failure so libvirtd will still start.  Connections to the driver 
will
++     * fail in netcfInterfaceOpen.  This restores the behavior before
++     * commit 822fe136.
++     */
++    if (ncf_init(&driverState->netcf, NULL) != 0) {
++        VIR_WARN("Failed to initialize netcontrol.  Continuing with network "
++                 "interface management features disabled");
++        virObjectUnref(driverState);
++        driverState = NULL;
++    }
++#else
+     if (ncf_init(&driverState->netcf, NULL) != 0) {
+         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                        _("failed to initialize netcf"));
+@@ -93,6 +144,7 @@ netcfStateInitialize(bool privileged ATT
+         driverState = NULL;
+         return -1;
+     }
++#endif
+     return 0;
+ }
+ 
+Index: libvirt-1.2.0/src/interface/interface_driver.c
 ===================================================================
---- libvirt-1.1.2.orig/src/interface/interface_driver.c
-+++ libvirt-1.1.2/src/interface/interface_driver.c
+--- libvirt-1.2.0.orig/src/interface/interface_driver.c
++++ libvirt-1.2.0/src/interface/interface_driver.c
 @@ -28,8 +28,15 @@ interfaceRegister(void) {
      if (netcfIfaceRegister() == 0)
          return 0;
@@ -168,10 +186,10 @@
      if (udevIfaceRegister() == 0)
          return 0;
  #endif /* WITH_UDEV */
-Index: libvirt-1.1.2/m4/virt-netcontrol.m4
+Index: libvirt-1.2.0/m4/virt-netcontrol.m4
 ===================================================================
 --- /dev/null
-+++ libvirt-1.1.2/m4/virt-netcontrol.m4
++++ libvirt-1.2.0/m4/virt-netcontrol.m4
 @@ -0,0 +1,35 @@
 +dnl The libnetcontrol library
 +dnl

++++++ libvirtd-defaults.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.1.2/daemon/libvirtd.conf
+Index: libvirt-1.2.0/daemon/libvirtd.conf
 ===================================================================
---- libvirt-1.1.2.orig/daemon/libvirtd.conf
-+++ libvirt-1.1.2/daemon/libvirtd.conf
+--- libvirt-1.2.0.orig/daemon/libvirtd.conf
++++ libvirt-1.2.0/daemon/libvirtd.conf
 @@ -18,8 +18,8 @@
  # It is necessary to setup a CA and issue server certificates before
  # using this capability.
@@ -13,10 +13,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-1.1.2/daemon/libvirtd-config.c
+Index: libvirt-1.2.0/daemon/libvirtd-config.c
 ===================================================================
---- libvirt-1.1.2.orig/daemon/libvirtd-config.c
-+++ libvirt-1.1.2/daemon/libvirtd-config.c
+--- libvirt-1.2.0.orig/daemon/libvirtd-config.c
++++ libvirt-1.2.0/daemon/libvirtd-config.c
 @@ -222,7 +222,7 @@ daemonConfigNew(bool privileged ATTRIBUT
      if (VIR_ALLOC(data) < 0)
          return NULL;

++++++ libvirtd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,9 +1,9 @@
 Adjust libvirtd sysconfig file to conform to SUSE standards
 
-Index: libvirt-1.1.2/daemon/libvirtd.sysconf
+Index: libvirt-1.2.0/daemon/libvirtd.sysconf
 ===================================================================
---- libvirt-1.1.2.orig/daemon/libvirtd.sysconf
-+++ libvirt-1.1.2/daemon/libvirtd.sysconf
+--- libvirt-1.2.0.orig/daemon/libvirtd.sysconf
++++ libvirt-1.2.0/daemon/libvirtd.sysconf
 @@ -1,16 +1,25 @@
 +## Path: System/Virtualization/libvirt
 +

++++++ libxl-hvm-nic.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.1.2/src/libxl/libxl_conf.c
+Index: libvirt-1.2.0/src/libxl/libxl_conf.c
 ===================================================================
---- libvirt-1.1.2.orig/src/libxl/libxl_conf.c
-+++ libvirt-1.1.2/src/libxl/libxl_conf.c
-@@ -846,8 +846,6 @@ libxlMakeNic(virDomainNetDefPtr l_nic, l
+--- libvirt-1.2.0.orig/src/libxl/libxl_conf.c
++++ libvirt-1.2.0/src/libxl/libxl_conf.c
+@@ -886,8 +886,6 @@ libxlMakeNic(virDomainNetDefPtr l_nic, l
       * x_nics[i].mtu = 1492;
       */
  
@@ -11,7 +11,7 @@
      virMacAddrGetRaw(&l_nic->mac, x_nic->mac);
  
      if (l_nic->model && !STREQ(l_nic->model, "netfront")) {
-@@ -892,6 +890,8 @@ libxlMakeNicList(virDomainDefPtr def,  l
+@@ -932,6 +930,8 @@ libxlMakeNicList(virDomainDefPtr def,  l
          return -1;
  
      for (i = 0; i < nnics; i++) {

++++++ libxl-hvm-vnc.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.1.2/src/libxl/libxl_conf.c
+Index: libvirt-1.2.0/src/libxl/libxl_conf.c
 ===================================================================
---- libvirt-1.1.2.orig/src/libxl/libxl_conf.c
-+++ libvirt-1.1.2/src/libxl/libxl_conf.c
-@@ -524,6 +524,30 @@ libxlMakeChrdevStr(virDomainChrDefPtr de
+--- libvirt-1.2.0.orig/src/libxl/libxl_conf.c
++++ libvirt-1.2.0/src/libxl/libxl_conf.c
+@@ -561,6 +561,30 @@ libxlMakeChrdevStr(virDomainChrDefPtr de
  }
  
  static int
@@ -33,7 +33,7 @@
  libxlMakeDomBuildInfo(virDomainObjPtr vm, libxl_domain_config *d_config)
  {
      virDomainDefPtr def = vm->def;
-@@ -1025,6 +1049,9 @@ libxlBuildDomainConfig(libxlDriverPrivat
+@@ -1174,6 +1198,9 @@ libxlBuildDomainConfig(libxlDriverPrivat
      if (libxlMakeVfbList(driver, def, d_config) < 0)
          return -1;
  

++++++ support-managed-pci-xen-driver.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -8,11 +8,11 @@
  src/xenxs/xen_xm.c   |   28 +++++++++++++++++++++++++++-
  2 files changed, 35 insertions(+), 15 deletions(-)
 
-Index: libvirt-1.1.2/src/xenxs/xen_sxpr.c
+Index: libvirt-1.2.0/src/xenxs/xen_sxpr.c
 ===================================================================
---- libvirt-1.1.2.orig/src/xenxs/xen_sxpr.c
-+++ libvirt-1.1.2/src/xenxs/xen_sxpr.c
-@@ -993,6 +993,7 @@ xenParseSxprPCI(virDomainDefPtr def,
+--- libvirt-1.2.0.orig/src/xenxs/xen_sxpr.c
++++ libvirt-1.2.0/src/xenxs/xen_sxpr.c
+@@ -996,6 +996,7 @@ xenParseSxprPCI(virDomainDefPtr def,
          int busID;
          int slotID;
          int funcID;
@@ -20,7 +20,7 @@
  
          node = cur->u.s.car;
          if (!sexpr_lookup(node, "dev"))
-@@ -1040,11 +1041,13 @@ xenParseSxprPCI(virDomainDefPtr def,
+@@ -1043,11 +1044,13 @@ xenParseSxprPCI(virDomainDefPtr def,
              goto error;
          }
  
@@ -35,7 +35,7 @@
          dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
          dev->source.subsys.u.pci.addr.domain = domainID;
          dev->source.subsys.u.pci.addr.bus = busID;
-@@ -1990,11 +1993,15 @@ static void
+@@ -1991,11 +1994,15 @@ static void
  xenFormatSxprPCI(virDomainHostdevDefPtr def,
                   virBufferPtr buf)
  {
@@ -52,7 +52,7 @@
  }
  
  
-@@ -2013,12 +2020,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
+@@ -2014,12 +2021,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
                      virBufferPtr buf,
                      int detach)
  {
@@ -65,7 +65,7 @@
      virBufferAddLit(buf, "(pci ");
      xenFormatSxprPCI(def, buf);
      if (detach)
-@@ -2073,12 +2074,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
+@@ -2074,12 +2075,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
      for (i = 0; i < def->nhostdevs; i++) {
          if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
              def->hostdevs[i]->source.subsys.type == 
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
@@ -78,10 +78,10 @@
              xenFormatSxprPCI(def->hostdevs[i], buf);
          }
      }
-Index: libvirt-1.1.2/src/xenxs/xen_xm.c
+Index: libvirt-1.2.0/src/xenxs/xen_xm.c
 ===================================================================
---- libvirt-1.1.2.orig/src/xenxs/xen_xm.c
-+++ libvirt-1.1.2/src/xenxs/xen_xm.c
+--- libvirt-1.2.0.orig/src/xenxs/xen_xm.c
++++ libvirt-1.2.0/src/xenxs/xen_xm.c
 @@ -802,6 +802,8 @@ xenParseXM(virConfPtr conf, int xendConf
              int busID;
              int slotID;

++++++ suse-qemu-conf.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.1.2/src/qemu/qemu.conf
+Index: libvirt-1.2.0/src/qemu/qemu.conf
 ===================================================================
---- libvirt-1.1.2.orig/src/qemu/qemu.conf
-+++ libvirt-1.1.2/src/qemu/qemu.conf
-@@ -175,7 +175,16 @@
+--- libvirt-1.2.0.orig/src/qemu/qemu.conf
++++ libvirt-1.2.0/src/qemu/qemu.conf
+@@ -200,7 +200,16 @@
  # a special value; security_driver can be set to that value in
  # isolation, but it cannot appear in a list of drivers.
  #
@@ -19,7 +19,7 @@
  
  # If set to non-zero, then the default security labeling
  # will make guests confined. If set to zero, then guests
-@@ -371,6 +380,15 @@
+@@ -402,6 +411,15 @@
  #allow_disk_format_probing = 1
  
  

++++++ systemd-service-xen.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,7 +1,7 @@
-Index: libvirt-1.1.2/daemon/libvirtd.service.in
+Index: libvirt-1.2.0/daemon/libvirtd.service.in
 ===================================================================
---- libvirt-1.1.2.orig/daemon/libvirtd.service.in
-+++ libvirt-1.1.2/daemon/libvirtd.service.in
+--- libvirt-1.2.0.orig/daemon/libvirtd.service.in
++++ libvirt-1.2.0/daemon/libvirtd.service.in
 @@ -9,6 +9,8 @@ Before=libvirt-guests.service
  After=network.target
  After=dbus.service

++++++ virtlockd-init-script.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,9 +1,9 @@
 Adjust virtlockd init files to conform to SUSE standards
 
-Index: libvirt-1.1.2/src/locking/virtlockd.sysconf
+Index: libvirt-1.2.0/src/locking/virtlockd.sysconf
 ===================================================================
---- libvirt-1.1.2.orig/src/locking/virtlockd.sysconf
-+++ libvirt-1.1.2/src/locking/virtlockd.sysconf
+--- libvirt-1.2.0.orig/src/locking/virtlockd.sysconf
++++ libvirt-1.2.0/src/locking/virtlockd.sysconf
 @@ -1,3 +1,7 @@
 +## Path: System/Virtualization/virtlockd
 +
@@ -12,10 +12,10 @@
  #
  # Pass extra arguments to virtlockd
  #VIRTLOCKD_ARGS=
-Index: libvirt-1.1.2/src/locking/virtlockd.init.in
+Index: libvirt-1.2.0/src/locking/virtlockd.init.in
 ===================================================================
---- libvirt-1.1.2.orig/src/locking/virtlockd.init.in
-+++ libvirt-1.1.2/src/locking/virtlockd.init.in
+--- libvirt-1.2.0.orig/src/locking/virtlockd.init.in
++++ libvirt-1.2.0/src/locking/virtlockd.init.in
 @@ -4,11 +4,13 @@
  # 
http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
  #

++++++ xen-name-for-devid.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -14,10 +14,10 @@
     is inactive.  We obviously can't search xenstore when the domain is
     inactive.
 
-Index: libvirt-1.1.2/src/xen/xend_internal.c
+Index: libvirt-1.2.0/src/xen/xend_internal.c
 ===================================================================
---- libvirt-1.1.2.orig/src/xen/xend_internal.c
-+++ libvirt-1.1.2/src/xen/xend_internal.c
+--- libvirt-1.2.0.orig/src/xen/xend_internal.c
++++ libvirt-1.2.0/src/xen/xend_internal.c
 @@ -70,7 +70,7 @@
  #define XEND_RCV_BUF_MAX_LEN (256 * 1024)
  
@@ -27,7 +27,7 @@
                    virDomainDeviceDefPtr dev, char *class,
                    char *ref, int ref_len);
  
-@@ -3314,18 +3314,18 @@ xenDaemonDomainBlockPeek(virConnectPtr c
+@@ -3316,18 +3316,18 @@ xenDaemonDomainBlockPeek(virConnectPtr c
   * Returns 0 in case of success, -1 in case of failure.
   */
  static int
@@ -50,7 +50,7 @@
          if (dev->data.disk->driverName &&
              STREQ(dev->data.disk->driverName, "tap"))
              strcpy(class, "tap");
-@@ -3335,19 +3335,17 @@ virDomainXMLDevID(virConnectPtr conn,
+@@ -3337,19 +3337,17 @@ virDomainXMLDevID(virConnectPtr conn,
          else
              strcpy(class, "vbd");
  
@@ -81,7 +81,7 @@
      } else if (dev->type == VIR_DOMAIN_DEVICE_NET) {
          char mac[VIR_MAC_STRING_BUFLEN];
          virDomainNetDefPtr netdef = dev->data.net;
-@@ -3355,16 +3353,22 @@ virDomainXMLDevID(virConnectPtr conn,
+@@ -3357,16 +3355,22 @@ virDomainXMLDevID(virConnectPtr conn,
  
          strcpy(class, "vif");
  
@@ -114,7 +114,7 @@
      } else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV &&
                 dev->data.hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
                 dev->data.hostdev->source.subsys.type == 
VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
-@@ -3380,17 +3384,44 @@ virDomainXMLDevID(virConnectPtr conn,
+@@ -3382,17 +3386,44 @@ virDomainXMLDevID(virConnectPtr conn,
  
          strcpy(class, "pci");
  

++++++ xen-pv-cdrom.patch ++++++
--- /var/tmp/diff_new_pack.B7FsXv/_old  2014-01-07 20:58:33.000000000 +0100
+++ /var/tmp/diff_new_pack.B7FsXv/_new  2014-01-07 20:58:33.000000000 +0100
@@ -1,8 +1,8 @@
-Index: libvirt-1.1.2/src/xenxs/xen_sxpr.c
+Index: libvirt-1.2.0/src/xenxs/xen_sxpr.c
 ===================================================================
---- libvirt-1.1.2.orig/src/xenxs/xen_sxpr.c
-+++ libvirt-1.1.2/src/xenxs/xen_sxpr.c
-@@ -327,7 +327,7 @@ error:
+--- libvirt-1.2.0.orig/src/xenxs/xen_sxpr.c
++++ libvirt-1.2.0/src/xenxs/xen_sxpr.c
+@@ -330,7 +330,7 @@ error:
  static int
  xenParseSxprDisks(virDomainDefPtr def,
                    const struct sexpr *root,
@@ -11,7 +11,7 @@
                    int xendConfigVersion)
  {
      const struct sexpr *cur, *node;
-@@ -378,7 +378,6 @@ xenParseSxprDisks(virDomainDefPtr def,
+@@ -381,7 +381,6 @@ xenParseSxprDisks(virDomainDefPtr def,
                  /* There is a case without the uname to the CD-ROM device */
                  offset = strchr(dst, ':');
                  if (!offset ||

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

Reply via email to