SHA256
1
0
forked from pool/libvirt

Accepting request 320420 from home:jfehlig:branches:Virtualization

- Update to libvirt 1.2.18
  - libxl: support dom0
  - Many incremental improvements and bug fixes, see
    http://libvirt.org/news.html
  - Dropped upstream patches:
    e44bcae-virt-aa-helper-trailing-slash.patch,
    a55a5e7-virt-aa-helper-log.patch,
    61dab0f-virt-aa-helper-renaming.patch,
    24f3c2f-virt-aa-helper-fix-caps.patch,
    45697fe5-libxl-support-dom0.patch,
    e9c27344-libxl-fix-virDomainObj-state.patch,
    4ffb21c8-libxl-dom0-state-fix.patch,
    qemu-nbd-cleanup-fix.patch

OBS-URL: https://build.opensuse.org/request/show/320420
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=475
This commit is contained in:
James Fehlig 2015-08-04 15:13:51 +00:00 committed by Git OBS Bridge
parent dd862584c2
commit 379397c0f7
34 changed files with 131 additions and 918 deletions

View File

@ -34,10 +34,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
src/libxl/libxl_migration.c | 18 +++++-------------
1 file changed, 5 insertions(+), 13 deletions(-)
Index: libvirt-1.2.17/src/libxl/libxl_migration.c
Index: libvirt-1.2.18/src/libxl/libxl_migration.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
--- libvirt-1.2.18.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.18/src/libxl/libxl_migration.c
@@ -112,11 +112,11 @@ libxlDoMigrateReceive(void *opaque)
virNetSocketUpdateIOCallback(socks[i], 0);
virNetSocketRemoveIOCallback(socks[i]);

View File

@ -12,10 +12,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
src/libxl/libxl_migration.c | 14 --------------
1 file changed, 14 deletions(-)
Index: libvirt-1.2.17/src/libxl/libxl_migration.c
Index: libvirt-1.2.18/src/libxl/libxl_migration.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
--- libvirt-1.2.18.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.18/src/libxl/libxl_migration.c
@@ -178,7 +178,6 @@ libxlDoMigrateSend(libxlDriverPrivatePtr
int sockfd)
{

View File

@ -13,10 +13,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
src/libxl/libxl_migration.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
Index: libvirt-1.2.17/src/libxl/libxl_migration.c
Index: libvirt-1.2.18/src/libxl/libxl_migration.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
--- libvirt-1.2.18.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.18/src/libxl/libxl_migration.c
@@ -95,17 +95,20 @@ libxlDoMigrateReceive(void *opaque)
int recvfd = args->recvfd;
size_t i;

View File

@ -1,104 +0,0 @@
From 24f3c2f7e0e196df5539616d03e039344768cd26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
Date: Thu, 25 Jun 2015 16:08:42 +0200
Subject: [PATCH 4/5] virt-aa-helper: add DomainGuest to mockup caps
With commit 3f9868a virt-aa-helper stopped working due to missing
DomainGuest in the caps.
The test with -c without arch also needs to be
removed since the new capabilities code uses the host arch when none is
provided.
---
src/security/virt-aa-helper.c | 25 ++++++++++++++++++++++++-
tests/virt-aa-helper-test | 3 ---
2 files changed, 24 insertions(+), 4 deletions(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 604fb93..4ce1e7a 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -73,6 +73,7 @@ typedef struct {
virDomainDefPtr def; /* VM definition */
virCapsPtr caps; /* VM capabilities */
virDomainXMLOptionPtr xmlopt; /* XML parser data */
+ char *virtType; /* type of hypervisor (eg qemu, xen, lxc) */
char *os; /* type of os (eg hvm, xen, exe) */
virArch arch; /* machine architecture */
char *newfile; /* newly added file */
@@ -89,6 +90,7 @@ vahDeinit(vahControl * ctl)
virObjectUnref(ctl->caps);
virObjectUnref(ctl->xmlopt);
VIR_FREE(ctl->files);
+ VIR_FREE(ctl->virtType);
VIR_FREE(ctl->os);
VIR_FREE(ctl->newfile);
@@ -641,6 +643,7 @@ verify_xpath_context(xmlXPathContextPtr ctxt)
/*
* Parse the xml we received to fill in the following:
+ * ctl->virtType
* ctl->os
* ctl->arch
*
@@ -668,6 +671,11 @@ caps_mockup(vahControl * ctl, const char *xmlStr)
if (verify_xpath_context(ctxt) != 0)
goto cleanup;
+ ctl->virtType = virXPathString("string(./@type)", ctxt);
+ if (!ctl->virtType) {
+ vah_error(ctl, 0, _("domain type is not defined"));
+ goto cleanup;
+ }
ctl->os = virXPathString("string(./os/type[1])", ctxt);
if (!ctl->os) {
vah_error(ctl, 0, _("os.type is not defined"));
@@ -694,7 +702,7 @@ caps_mockup(vahControl * ctl, const char *xmlStr)
static int
get_definition(vahControl * ctl, const char *xmlStr)
{
- int rc = -1, ostype;
+ int rc = -1, ostype, virtType;
virCapsGuestPtr guest; /* this is freed when caps is freed */
/*
@@ -730,6 +738,21 @@ get_definition(vahControl * ctl, const char *xmlStr)
goto exit;
}
+ if ((virtType = virDomainVirtTypeFromString(ctl->virtType)) < 0) {
+ vah_error(ctl, 0, _("unknown virtualization type"));
+ goto exit;
+ }
+
+ if (virCapabilitiesAddGuestDomain(guest,
+ virtType,
+ NULL,
+ NULL,
+ 0,
+ NULL) == NULL) {
+ vah_error(ctl, 0, _("could not allocate memory"));
+ goto exit;
+ }
+
ctl->def = virDomainDefParseString(xmlStr,
ctl->caps, ctl->xmlopt,
VIR_DOMAIN_DEF_PARSE_INACTIVE);
diff --git a/tests/virt-aa-helper-test b/tests/virt-aa-helper-test
index 96471ff..caf2f97 100755
--- a/tests/virt-aa-helper-test
+++ b/tests/virt-aa-helper-test
@@ -194,9 +194,6 @@ testme "1" "-c with malformed xml" "-c -u $valid_uuid" "$test_xml"
sed -e "s,###UUID###,$uuid,g" -e "s,###DISK###,$disk1,g" -e "s,<type arch='x86_64' machine='pc'>hvm</type>,,g" "$template_xml" > "$test_xml"
testme "1" "-c with no os.type" "-c -u $valid_uuid" "$test_xml"
-sed -e "s,###UUID###,$uuid,g" -e "s,###DISK###,$disk1,g" -e "s,<type arch='x86_64' machine='pc'>hvm</type>,<type>hvm</type>,g" "$template_xml" > "$test_xml"
-testme "1" "-c with no architecture" "-c -u $valid_uuid" "$test_xml"
-
sed -e "s,###UUID###,$uuid,g" -e "s,###DISK###,$disk1,g" -e "s,hvm</type>,hvm_invalid</type>,g" "$template_xml" > "$test_xml"
testme "1" "-c with invalid hvm" "-c -u $valid_uuid" "$test_xml"
--
2.1.4

View File

@ -1,225 +0,0 @@
commit 45697fe545841af46c95c996439ed59ca3a7ef9d
Author: Jim Fehlig <jfehlig@suse.com>
Date: Mon Jun 22 11:36:59 2015 -0600
libxl: support dom0
In Xen, dom0 is really just another domain that supports ballooning,
adding/removing devices, changing vcpu configuration, etc. This patch
adds support to the libxl driver for managing dom0. Note that the
legacy xend driver has long supported managing dom0.
Operations that are not supported on dom0 are filtered in libvirt
where a sensible error is reported. Errors from libxl are not
always helpful. E.g., attempting a save on dom0 results in
2015-06-23 15:25:05 MDT libxl: debug: libxl_dom.c:1570:libxl__toolstack_save: domain=0 toolstack data size=8
2015-06-23 15:25:05 MDT libxl: debug: libxl.c:979:do_libxl_domain_suspend: ao 0x7f7e68000b70: inprogress: poller=0x7f7e68000930, flags=i
2015-06-23 15:25:05 MDT libxl-save-helper: debug: starting save: Success
2015-06-23 15:25:05 MDT xc: detail: xc_domain_save_suse: starting save of domid 0
2015-06-23 15:25:05 MDT xc: error: Couldn't map live_shinfo (3 = No such process): Internal error
2015-06-23 15:25:05 MDT xc: detail: Save exit of domid 0 with errno=3
2015-06-23 15:25:05 MDT libxl-save-helper: debug: complete r=1: No such process
2015-06-23 15:25:05 MDT libxl: error: libxl_dom.c:1876:libxl__xc_domain_save_done: saving domain: domain did not respond to suspend request: No such process
2015-06-23 15:25:05 MDT libxl: error: libxl_dom.c:2033:remus_teardown_done: Remus: failed to teardown device for guest with domid 0, rc -8
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Index: libvirt-1.2.17/src/libxl/libxl_driver.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_driver.c
+++ libvirt-1.2.17/src/libxl/libxl_driver.c
@@ -79,6 +79,15 @@ VIR_LOG_INIT("libxl.libxl_driver");
/* Number of Xen scheduler parameters */
#define XEN_SCHED_CREDIT_NPARAM 2
+#define LIBXL_CHECK_DOM0_GOTO(name, label) \
+ do { \
+ if (STREQ_NULLABLE(name, "Domain-0")) { \
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s", \
+ _("Domain-0 does not support requested operation")); \
+ goto label; \
+ } \
+ } while (0)
+
static libxlDriverPrivatePtr libxl_driver;
@@ -501,6 +510,63 @@ const struct libxl_event_hooks ev_hooks
};
static int
+libxlAddDom0(libxlDriverPrivatePtr driver)
+{
+ libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
+ virDomainDefPtr def = NULL;
+ virDomainObjPtr vm = NULL;
+ virDomainDefPtr oldDef = NULL;
+ libxl_dominfo d_info;
+ int ret = -1;
+
+ libxl_dominfo_init(&d_info);
+
+ /* Ensure we have a dom0 */
+ if (libxl_domain_info(cfg->ctx, &d_info, 0) != 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("unable to get Domain-0 information from libxenlight"));
+ goto cleanup;
+ }
+
+ if (!(def = virDomainDefNew()))
+ goto cleanup;
+
+ def->id = 0;
+ def->virtType = VIR_DOMAIN_VIRT_XEN;
+ if (VIR_STRDUP(def->name, "Domain-0") < 0)
+ goto cleanup;
+
+ def->os.type = VIR_DOMAIN_OSTYPE_XEN;
+
+ if (virUUIDParse("00000000-0000-0000-0000-000000000000", def->uuid) < 0)
+ goto cleanup;
+
+ if (!(vm = virDomainObjListAdd(driver->domains, def,
+ driver->xmlopt,
+ 0,
+ &oldDef)))
+ goto cleanup;
+
+ def = NULL;
+
+ vm->def->vcpus = d_info.vcpu_online;
+ vm->def->maxvcpus = d_info.vcpu_max_id + 1;
+ vm->def->mem.cur_balloon = d_info.current_memkb;
+ vm->def->mem.max_balloon = d_info.max_memkb;
+
+ ret = 0;
+
+ cleanup:
+ libxl_dominfo_dispose(&d_info);
+ virDomainDefFree(def);
+ virDomainDefFree(oldDef);
+ if (vm)
+ virObjectUnlock(vm);
+ virObjectUnref(cfg);
+ return ret;
+}
+
+static int
libxlStateInitialize(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
void *opaque ATTRIBUTE_UNUSED)
@@ -616,6 +682,10 @@ libxlStateInitialize(bool privileged,
if (!(libxl_driver->xmlopt = libxlCreateXMLConf()))
goto error;
+ /* Add Domain-0 */
+ if (libxlAddDom0(libxl_driver) < 0)
+ goto error;
+
/* Load running domains first. */
if (virDomainObjListLoadAllConfigs(libxl_driver->domains,
cfg->stateDir,
@@ -1030,6 +1100,8 @@ libxlDomainSuspend(virDomainPtr dom)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainSuspendEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1086,6 +1158,8 @@ libxlDomainResume(virDomainPtr dom)
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1147,6 +1221,8 @@ libxlDomainShutdownFlags(virDomainPtr do
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
@@ -1212,6 +1288,8 @@ libxlDomainReboot(virDomainPtr dom, unsi
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainRebootEnsureACL(dom->conn, vm->def, flags) < 0)
goto cleanup;
@@ -1254,6 +1332,8 @@ libxlDomainDestroyFlags(virDomainPtr dom
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1656,6 +1736,8 @@ libxlDomainSaveFlags(virDomainPtr dom, c
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainSaveFlagsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1782,6 +1864,8 @@ libxlDomainCoreDump(virDomainPtr dom, co
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainCoreDumpEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -1877,6 +1961,8 @@ libxlDomainManagedSave(virDomainPtr dom,
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainManagedSaveEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -4000,6 +4086,8 @@ libxlDomainSetAutostart(virDomainPtr dom
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainSetAutostartEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -4294,6 +4382,8 @@ libxlDomainOpenConsole(virDomainPtr dom,
if (!(vm = libxlDomObjFromDomain(dom)))
goto cleanup;
+ LIBXL_CHECK_DOM0_GOTO(vm->def->name, cleanup);
+
if (virDomainOpenConsoleEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
@@ -4817,6 +4907,12 @@ libxlDomainMigrateBegin3Params(virDomain
if (!(vm = libxlDomObjFromDomain(domain)))
return NULL;
+ if (STREQ_NULLABLE(vm->def->name, "Domain-0")) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("Domain-0 cannot be migrated"));
+ return NULL;
+ }
+
if (virDomainMigrateBegin3ParamsEnsureACL(domain->conn, vm->def) < 0) {
virObjectUnlock(vm);
return NULL;

View File

@ -1,26 +0,0 @@
commit 4ffb21c89a6b9ae2b4bfd2999c24b01433e360a9
Author: Jim Fehlig <jfehlig@suse.com>
Date: Thu Jul 9 15:16:18 2015 -0600
libxl: set dom0 state to running
Commit 45697fe5 added dom0 to driver->domains, but missed
setting its state to 'running'
$ virsh list
Id Name State
----------------------------------------------------
0 Domain-0 shut off
Index: libvirt-1.2.17/src/libxl/libxl_driver.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_driver.c
+++ libvirt-1.2.17/src/libxl/libxl_driver.c
@@ -549,6 +549,7 @@ libxlAddDom0(libxlDriverPrivatePtr drive
def = NULL;
+ virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED);
vm->def->vcpus = d_info.vcpu_online;
vm->def->maxvcpus = d_info.vcpu_max_id + 1;
vm->def->mem.cur_balloon = d_info.current_memkb;

View File

@ -1,64 +0,0 @@
From 61dab0f74ef79d034542bb77921e69fbbab3cf41 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
Date: Thu, 25 Jun 2015 13:01:40 +0200
Subject: [PATCH 3/5] virt-aa-helper: rename ctl->hvm to ctl->os
ctl->hvm contains os.type string value, change the name to reflect it.
---
src/security/virt-aa-helper.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index f8a9cf2..604fb93 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -73,7 +73,7 @@ typedef struct {
virDomainDefPtr def; /* VM definition */
virCapsPtr caps; /* VM capabilities */
virDomainXMLOptionPtr xmlopt; /* XML parser data */
- char *hvm; /* type of hypervisor (eg hvm, xen) */
+ char *os; /* type of os (eg hvm, xen, exe) */
virArch arch; /* machine architecture */
char *newfile; /* newly added file */
bool append; /* append to .files instead of rewrite */
@@ -89,7 +89,7 @@ vahDeinit(vahControl * ctl)
virObjectUnref(ctl->caps);
virObjectUnref(ctl->xmlopt);
VIR_FREE(ctl->files);
- VIR_FREE(ctl->hvm);
+ VIR_FREE(ctl->os);
VIR_FREE(ctl->newfile);
return 0;
@@ -641,7 +641,7 @@ verify_xpath_context(xmlXPathContextPtr ctxt)
/*
* Parse the xml we received to fill in the following:
- * ctl->hvm
+ * ctl->os
* ctl->arch
*
* These are suitable for setting up a virCapsPtr
@@ -668,8 +668,8 @@ caps_mockup(vahControl * ctl, const char *xmlStr)
if (verify_xpath_context(ctxt) != 0)
goto cleanup;
- ctl->hvm = virXPathString("string(./os/type[1])", ctxt);
- if (!ctl->hvm) {
+ ctl->os = virXPathString("string(./os/type[1])", ctxt);
+ if (!ctl->os) {
vah_error(ctl, 0, _("os.type is not defined"));
goto cleanup;
}
@@ -714,7 +714,7 @@ get_definition(vahControl * ctl, const char *xmlStr)
goto exit;
}
- if ((ostype = virDomainOSTypeFromString(ctl->hvm)) < 0) {
+ if ((ostype = virDomainOSTypeFromString(ctl->os)) < 0) {
vah_error(ctl, 0, _("unknown OS type"));
goto exit;
}
--
2.1.4

View File

@ -1,53 +0,0 @@
From a55a5e7cfed57223820478da89422756121fb37c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
Date: Thu, 25 Jun 2015 10:36:52 +0200
Subject: [PATCH 2/5] Get more libvirt errors from virt-aa-helper
Initializing libvirt log in virt-aa-helper and getting it to output
libvirt log to stderr. This will help debugging problems happening in
libvirt functions called from within virt-aa-helper
---
src/security/security_apparmor.c | 4 ++++
src/security/virt-aa-helper.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c
index 4134a17..16b8f87 100644
--- a/src/security/security_apparmor.c
+++ b/src/security/security_apparmor.c
@@ -196,6 +196,10 @@ load_profile(virSecurityManagerPtr mgr,
}
}
+ virCommandAddEnvFormat(cmd,
+ "LIBVIRT_LOG_OUTPUTS=%d:stderr",
+ virLogGetDefaultPriority());
+
virCommandSetInputBuffer(cmd, xml);
rc = virCommandRun(cmd, NULL);
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 18454c8..f8a9cf2 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -41,6 +41,7 @@
#include "virbuffer.h"
#include "viralloc.h"
#include "vircommand.h"
+#include "virlog.h"
#include "security_driver.h"
#include "security_apparmor.h"
@@ -1272,6 +1273,9 @@ main(int argc, char **argv)
exit(EXIT_FAILURE);
}
+ /* Initialize the log system */
+ virLogSetFromEnv();
+
/* clear the environment */
environ = NULL;
if (setenv("PATH", "/sbin:/usr/sbin", 1) != 0)
--
2.1.4

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/examples/apparmor/libvirt-qemu
Index: libvirt-1.2.18/examples/apparmor/libvirt-qemu
===================================================================
--- libvirt-1.2.17.orig/examples/apparmor/libvirt-qemu
+++ libvirt-1.2.17/examples/apparmor/libvirt-qemu
--- libvirt-1.2.18.orig/examples/apparmor/libvirt-qemu
+++ libvirt-1.2.18/examples/apparmor/libvirt-qemu
@@ -124,6 +124,9 @@
# for restore
/bin/bash rmix,

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/examples/apparmor/libvirt-lxc
Index: libvirt-1.2.18/examples/apparmor/libvirt-lxc
===================================================================
--- libvirt-1.2.17.orig/examples/apparmor/libvirt-lxc
+++ libvirt-1.2.17/examples/apparmor/libvirt-lxc
--- libvirt-1.2.18.orig/examples/apparmor/libvirt-lxc
+++ libvirt-1.2.18/examples/apparmor/libvirt-lxc
@@ -2,39 +2,15 @@
#include <abstractions/base>

View File

@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
src/qemu/qemu_driver.c | 7 +++++++
1 file changed, 7 insertions(+)
Index: libvirt-1.2.17/src/qemu/qemu_driver.c
Index: libvirt-1.2.18/src/qemu/qemu_driver.c
===================================================================
--- libvirt-1.2.17.orig/src/qemu/qemu_driver.c
+++ libvirt-1.2.17/src/qemu/qemu_driver.c
@@ -16684,6 +16684,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
--- libvirt-1.2.18.orig/src/qemu/qemu_driver.c
+++ libvirt-1.2.18/src/qemu/qemu_driver.c
@@ -16662,6 +16662,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
_("non-file destination not supported yet"));
goto endjob;
}

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/tests/vircgrouptest.c
Index: libvirt-1.2.18/tests/vircgrouptest.c
===================================================================
--- libvirt-1.2.17.orig/tests/vircgrouptest.c
+++ libvirt-1.2.17/tests/vircgrouptest.c
--- libvirt-1.2.18.orig/tests/vircgrouptest.c
+++ libvirt-1.2.18/tests/vircgrouptest.c
@@ -34,7 +34,6 @@
# include "virfile.h"
# include "virbuffer.h"
@ -10,7 +10,7 @@ Index: libvirt-1.2.17/tests/vircgrouptest.c
# define VIR_FROM_THIS VIR_FROM_NONE
@@ -607,91 +606,6 @@ static int testCgroupControllerAvailable
@@ -607,90 +606,6 @@ static int testCgroupControllerAvailable
return ret;
}
@ -56,8 +56,8 @@ Index: libvirt-1.2.17/tests/vircgrouptest.c
- goto cleanup;
- }
-
- if (nodeGetCPUCount() != EXPECTED_NCPUS) {
- fprintf(stderr, "Unexpected: nodeGetCPUCount() yields: %d\n", nodeGetCPUCount());
- if (nodeGetCPUCount(NULL) != EXPECTED_NCPUS) {
- fprintf(stderr, "Unexpected: nodeGetCPUCount() yields: %d\n", nodeGetCPUCount(NULL));
- goto cleanup;
- }
-
@ -98,11 +98,10 @@ Index: libvirt-1.2.17/tests/vircgrouptest.c
- VIR_FREE(params);
- return ret;
-}
-
static int testCgroupGetMemoryUsage(const void *args ATTRIBUTE_UNUSED)
{
virCgroupPtr cgroup = NULL;
@@ -919,9 +833,6 @@ mymain(void)
@@ -919,9 +834,6 @@ mymain(void)
if (virtTestRun("virCgroupGetMemoryUsage works", testCgroupGetMemoryUsage, NULL) < 0)
ret = -1;

View File

@ -1,28 +0,0 @@
From e44bcae9f014946d66fad1164080a4e251197f19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
Date: Wed, 24 Jun 2015 09:56:04 +0200
Subject: [PATCH 1/5] virt-aa-helper: fix rules for paths with trailing slash
Rules generated for a path like '/' were having '//' which isn't
correct for apparmor. Make virt-aa-helper smarter to avoid these.
---
src/security/virt-aa-helper.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
index 4440552..18454c8 100644
--- a/src/security/virt-aa-helper.c
+++ b/src/security/virt-aa-helper.c
@@ -795,6 +795,9 @@ vah_add_path(virBufferPtr buf, const char *path, const char *perms, bool recursi
goto cleanup;
}
+ if (tmp[strlen(tmp) - 1] == '/')
+ tmp[strlen(tmp) - 1] = '\0';
+
virBufferAsprintf(buf, " \"%s%s\" %s,\n", tmp, recursive ? "/**" : "", perms);
if (readonly) {
virBufferAddLit(buf, " # don't audit writes to readonly files\n");
--
2.1.4

View File

@ -1,232 +0,0 @@
commit e9c2734441af0065c69fc1317965a6dd6c7f14e3
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Jul 7 12:29:24 2015 -0600
libxl: rework setting the state of virDomainObj
Set the state of virDomainObj in the functions that
actually change the domain state, instead of the generic
libxlDomainCleanup function. This approach gives functions
calling libxlDomainCleanup more flexibility wrt when and
how they change virDomainObj state via virDomainObjSetState.
The prior approach of calling virDomainObjSetState in
libxlDomainCleanup resulted in the following incorrect
coding pattern in the various functions that change
domain state
libxlDomain<DoStateTransition>
call libxl function to do state transition
emit lifecycle event
libxlDomainCleanup
virDomainObjSetState
Once simple manifestation of this bug is seeing a domain
running in virt-manager after selecting the shutdown button,
even after the domain has long shutdown.
Index: libvirt-1.2.17/src/libxl/libxl_domain.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_domain.c
+++ libvirt-1.2.17/src/libxl/libxl_domain.c
@@ -397,7 +397,6 @@ libxlDomainShutdownThread(void *opaque)
libxlDriverPrivatePtr driver = shutdown_info->driver;
virObjectEventPtr dom_event = NULL;
libxl_shutdown_reason xl_reason = ev->u.domain_shutdown.shutdown_reason;
- virDomainShutoffReason reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
libxlDriverConfigPtr cfg;
cfg = libxlDriverConfigGet(driver);
@@ -406,12 +405,14 @@ libxlDomainShutdownThread(void *opaque)
goto cleanup;
if (xl_reason == LIBXL_SHUTDOWN_REASON_POWEROFF) {
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_SHUTDOWN);
+
dom_event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
switch ((virDomainLifecycleAction) vm->def->onPoweroff) {
case VIR_DOMAIN_LIFECYCLE_DESTROY:
- reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
goto destroy;
case VIR_DOMAIN_LIFECYCLE_RESTART:
case VIR_DOMAIN_LIFECYCLE_RESTART_RENAME:
@@ -421,12 +422,14 @@ libxlDomainShutdownThread(void *opaque)
goto endjob;
}
} else if (xl_reason == LIBXL_SHUTDOWN_REASON_CRASH) {
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_CRASHED);
+
dom_event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
switch ((virDomainLifecycleCrashAction) vm->def->onCrash) {
case VIR_DOMAIN_LIFECYCLE_CRASH_DESTROY:
- reason = VIR_DOMAIN_SHUTOFF_CRASHED;
goto destroy;
case VIR_DOMAIN_LIFECYCLE_CRASH_RESTART:
case VIR_DOMAIN_LIFECYCLE_CRASH_RESTART_RENAME:
@@ -442,12 +445,14 @@ libxlDomainShutdownThread(void *opaque)
goto restart;
}
} else if (xl_reason == LIBXL_SHUTDOWN_REASON_REBOOT) {
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_SHUTDOWN);
+
dom_event = virDomainEventLifecycleNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
switch ((virDomainLifecycleAction) vm->def->onReboot) {
case VIR_DOMAIN_LIFECYCLE_DESTROY:
- reason = VIR_DOMAIN_SHUTOFF_SHUTDOWN;
goto destroy;
case VIR_DOMAIN_LIFECYCLE_RESTART:
case VIR_DOMAIN_LIFECYCLE_RESTART_RENAME:
@@ -467,7 +472,7 @@ libxlDomainShutdownThread(void *opaque)
dom_event = NULL;
}
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, reason);
+ libxlDomainCleanup(driver, vm);
if (!vm->persistent)
virDomainObjListRemove(driver->domains, vm);
@@ -479,7 +484,7 @@ libxlDomainShutdownThread(void *opaque)
dom_event = NULL;
}
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
+ libxlDomainCleanup(driver, vm);
if (libxlDomainStart(driver, vm, false, -1) < 0) {
virErrorPtr err = virGetLastError();
VIR_ERROR(_("Failed to restart VM '%s': %s"),
@@ -685,8 +690,7 @@ libxlDomainDestroyInternal(libxlDriverPr
*/
void
libxlDomainCleanup(libxlDriverPrivatePtr driver,
- virDomainObjPtr vm,
- virDomainShutoffReason reason)
+ virDomainObjPtr vm)
{
libxlDomainObjPrivatePtr priv = vm->privateData;
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
@@ -709,9 +713,6 @@ libxlDomainCleanup(libxlDriverPrivatePtr
priv->deathW = NULL;
}
- if (vm->persistent)
- virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
-
if (virAtomicIntDecAndTest(&driver->nactive) && driver->inhibitCallback)
driver->inhibitCallback(false, driver->inhibitOpaque);
Index: libvirt-1.2.17/src/libxl/libxl_domain.h
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_domain.h
+++ libvirt-1.2.17/src/libxl/libxl_domain.h
@@ -110,8 +110,7 @@ libxlDomainDestroyInternal(libxlDriverPr
void
libxlDomainCleanup(libxlDriverPrivatePtr driver,
- virDomainObjPtr vm,
- virDomainShutoffReason reason);
+ virDomainObjPtr vm);
/*
* Note: Xen 4.3 removed the const from the event handler signature.
Index: libvirt-1.2.17/src/libxl/libxl_driver.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_driver.c
+++ libvirt-1.2.17/src/libxl/libxl_driver.c
@@ -392,7 +392,7 @@ libxlReconnectDomain(virDomainObjPtr vm,
return 0;
out:
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_UNKNOWN);
+ libxlDomainCleanup(driver, vm);
if (!vm->persistent)
virDomainObjListRemoveLocked(driver->domains, vm);
else
@@ -1346,16 +1346,19 @@ libxlDomainDestroyFlags(virDomainPtr dom
goto endjob;
}
- event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
- VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
-
if (libxlDomainDestroyInternal(driver, vm) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to destroy domain '%d'"), vm->def->id);
goto endjob;
}
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_DESTROYED);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_DESTROYED);
+
+ event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
+ VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
+
+ libxlDomainCleanup(driver, vm);
if (!vm->persistent)
virDomainObjListRemove(driver->domains, vm);
@@ -1689,6 +1692,9 @@ libxlDoDomainSave(libxlDriverPrivatePtr
goto cleanup;
}
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_SAVED);
+
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SAVED);
@@ -1698,7 +1704,7 @@ libxlDoDomainSave(libxlDriverPrivatePtr
goto cleanup;
}
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_SAVED);
+ libxlDomainCleanup(driver, vm);
vm->hasManagedSave = true;
ret = 0;
@@ -1909,7 +1915,9 @@ libxlDomainCoreDump(virDomainPtr dom, co
goto unpause;
}
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_CRASHED);
+ libxlDomainCleanup(driver, vm);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_CRASHED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
if (!vm->persistent)
Index: libvirt-1.2.17/src/libxl/libxl_migration.c
===================================================================
--- libvirt-1.2.17.orig/src/libxl/libxl_migration.c
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
@@ -585,7 +585,9 @@ libxlDomainMigrationFinish(virConnectPtr
cleanup:
if (dom == NULL) {
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED);
+ libxlDomainCleanup(driver, vm);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_FAILED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_FAILED);
if (!vm->persistent)
@@ -624,7 +626,9 @@ libxlDomainMigrationConfirm(libxlDriverP
}
libxlDomainDestroyInternal(driver, vm);
- libxlDomainCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_MIGRATED);
+ libxlDomainCleanup(driver, vm);
+ virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF,
+ VIR_DOMAIN_SHUTOFF_MIGRATED);
event = virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_MIGRATED);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e07eaf20b0590fae05ba3b53ad4dac3e5fbd771437563cc78b692f23ddd02fad
size 29320317

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlWUy+AACgkQRga4pd6VvB9AhACfT/hThYm7biG8nwcDkOHEuS8B
7AEAn1v3VdAwinxah46RWLiDdVtScU84
=BcWI
-----END PGP SIGNATURE-----

3
libvirt-1.2.18.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d5a5ff18af4cced21fed986d28fa0a21b782d256920326bf0ff1c7731eeb6ade
size 29412554

View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlW/M8wACgkQRga4pd6VvB9S0ACfV3OG4q+aGh9oXodFnMy4PcBn
c0gAnjmMTEA/O8vIczW1a99qpM/QphO+
=jw1y
-----END PGP SIGNATURE-----

View File

@ -1,9 +1,9 @@
Adjust libvirt-guests init files to conform to SUSE standards
Index: libvirt-1.2.17/tools/libvirt-guests.init.in
Index: libvirt-1.2.18/tools/libvirt-guests.init.in
===================================================================
--- libvirt-1.2.17.orig/tools/libvirt-guests.init.in
+++ libvirt-1.2.17/tools/libvirt-guests.init.in
--- libvirt-1.2.18.orig/tools/libvirt-guests.init.in
+++ libvirt-1.2.18/tools/libvirt-guests.init.in
@@ -3,15 +3,15 @@
# the following is the LSB init header
#
@ -28,10 +28,10 @@ Index: libvirt-1.2.17/tools/libvirt-guests.init.in
### END INIT INFO
# the following is chkconfig init header
Index: libvirt-1.2.17/tools/libvirt-guests.sh.in
Index: libvirt-1.2.18/tools/libvirt-guests.sh.in
===================================================================
--- libvirt-1.2.17.orig/tools/libvirt-guests.sh.in
+++ libvirt-1.2.17/tools/libvirt-guests.sh.in
--- libvirt-1.2.18.orig/tools/libvirt-guests.sh.in
+++ libvirt-1.2.18/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@ -191,10 +191,10 @@ Index: libvirt-1.2.17/tools/libvirt-guests.sh.in
esac
-exit $RETVAL
+rc_exit
Index: libvirt-1.2.17/tools/libvirt-guests.sysconf
Index: libvirt-1.2.18/tools/libvirt-guests.sysconf
===================================================================
--- libvirt-1.2.17.orig/tools/libvirt-guests.sysconf
+++ libvirt-1.2.17/tools/libvirt-guests.sysconf
--- libvirt-1.2.18.orig/tools/libvirt-guests.sysconf
+++ libvirt-1.2.18/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests
+

View File

@ -1,8 +1,8 @@
Index: libvirt-1.2.17/src/cpu/cpu_map.xml
Index: libvirt-1.2.18/src/cpu/cpu_map.xml
===================================================================
--- libvirt-1.2.17.orig/src/cpu/cpu_map.xml
+++ libvirt-1.2.17/src/cpu/cpu_map.xml
@@ -668,6 +668,16 @@
--- libvirt-1.2.18.orig/src/cpu/cpu_map.xml
+++ libvirt-1.2.18/src/cpu/cpu_map.xml
@@ -1413,6 +1413,16 @@
<pvr value='0x004d0000'/>
</model>

View File

@ -1,8 +1,8 @@
Index: libvirt-1.2.17/configure.ac
Index: libvirt-1.2.18/configure.ac
===================================================================
--- libvirt-1.2.17.orig/configure.ac
+++ libvirt-1.2.17/configure.ac
@@ -241,6 +241,7 @@ LIBVIRT_CHECK_FUSE
--- libvirt-1.2.18.orig/configure.ac
+++ libvirt-1.2.18/configure.ac
@@ -242,6 +242,7 @@ LIBVIRT_CHECK_FUSE
LIBVIRT_CHECK_GLUSTER
LIBVIRT_CHECK_HAL
LIBVIRT_CHECK_NETCF
@ -10,7 +10,7 @@ Index: libvirt-1.2.17/configure.ac
LIBVIRT_CHECK_NUMACTL
LIBVIRT_CHECK_OPENWSMAN
LIBVIRT_CHECK_PCIACCESS
@@ -2492,11 +2493,12 @@ if test "$with_libvirtd" = "no" ; then
@@ -2486,11 +2487,12 @@ if test "$with_libvirtd" = "no" ; then
with_interface=no
fi
@ -26,7 +26,7 @@ Index: libvirt-1.2.17/configure.ac
esac
if test "$with_interface" = "yes" ; then
@@ -2885,6 +2887,7 @@ LIBVIRT_RESULT_FUSE
@@ -2879,6 +2881,7 @@ LIBVIRT_RESULT_FUSE
LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_HAL
LIBVIRT_RESULT_NETCF
@ -34,10 +34,10 @@ Index: libvirt-1.2.17/configure.ac
LIBVIRT_RESULT_NUMACTL
LIBVIRT_RESULT_OPENWSMAN
LIBVIRT_RESULT_PCIACCESS
Index: libvirt-1.2.17/src/Makefile.am
Index: libvirt-1.2.18/src/Makefile.am
===================================================================
--- libvirt-1.2.17.orig/src/Makefile.am
+++ libvirt-1.2.17/src/Makefile.am
--- libvirt-1.2.18.orig/src/Makefile.am
+++ libvirt-1.2.18/src/Makefile.am
@@ -872,6 +872,10 @@ if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c
@ -60,10 +60,10 @@ Index: libvirt-1.2.17/src/Makefile.am
if WITH_UDEV
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
Index: libvirt-1.2.17/tools/virsh.c
Index: libvirt-1.2.18/tools/virsh.c
===================================================================
--- libvirt-1.2.17.orig/tools/virsh.c
+++ libvirt-1.2.17/tools/virsh.c
--- libvirt-1.2.18.orig/tools/virsh.c
+++ libvirt-1.2.18/tools/virsh.c
@@ -3383,6 +3383,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
@ -73,10 +73,10 @@ Index: libvirt-1.2.17/tools/virsh.c
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
Index: libvirt-1.2.17/src/interface/interface_backend_netcf.c
Index: libvirt-1.2.18/src/interface/interface_backend_netcf.c
===================================================================
--- libvirt-1.2.17.orig/src/interface/interface_backend_netcf.c
+++ libvirt-1.2.17/src/interface/interface_backend_netcf.c
--- libvirt-1.2.18.orig/src/interface/interface_backend_netcf.c
+++ libvirt-1.2.18/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@
#include <config.h>
@ -160,10 +160,10 @@ Index: libvirt-1.2.17/src/interface/interface_backend_netcf.c
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
return -1;
if (virRegisterStateDriver(&interfaceStateDriver) < 0)
Index: libvirt-1.2.17/src/interface/interface_driver.c
Index: libvirt-1.2.18/src/interface/interface_driver.c
===================================================================
--- libvirt-1.2.17.orig/src/interface/interface_driver.c
+++ libvirt-1.2.17/src/interface/interface_driver.c
--- libvirt-1.2.18.orig/src/interface/interface_driver.c
+++ libvirt-1.2.18/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@ -181,10 +181,10 @@ Index: libvirt-1.2.17/src/interface/interface_driver.c
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
Index: libvirt-1.2.17/m4/virt-netcontrol.m4
Index: libvirt-1.2.18/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
+++ libvirt-1.2.17/m4/virt-netcontrol.m4
+++ libvirt-1.2.18/m4/virt-netcontrol.m4
@@ -0,0 +1,35 @@
+dnl The libnetcontrol library
+dnl

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Mon Aug 3 23:32:39 UTC 2015 - jfehlig@suse.com
- Update to libvirt 1.2.18
- libxl: support dom0
- Many incremental improvements and bug fixes, see
http://libvirt.org/news.html
- Dropped upstream patches:
e44bcae-virt-aa-helper-trailing-slash.patch,
a55a5e7-virt-aa-helper-log.patch,
61dab0f-virt-aa-helper-renaming.patch,
24f3c2f-virt-aa-helper-fix-caps.patch,
45697fe5-libxl-support-dom0.patch,
e9c27344-libxl-fix-virDomainObj-state.patch,
4ffb21c8-libxl-dom0-state-fix.patch,
qemu-nbd-cleanup-fix.patch
-------------------------------------------------------------------
Fri Jul 31 18:51:38 UTC 2015 - jfehlig@suse.com

View File

@ -240,7 +240,7 @@
Name: libvirt
Url: http://libvirt.org/
Version: 1.2.17
Version: 1.2.18
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
@ -446,13 +446,6 @@ Source3: libvirtd.init
Source4: libvirtd-relocation-server.fw
Source99: baselibs.conf
# Upstream patches
Patch0: e44bcae-virt-aa-helper-trailing-slash.patch
Patch1: a55a5e7-virt-aa-helper-log.patch
Patch2: 61dab0f-virt-aa-helper-renaming.patch
Patch3: 24f3c2f-virt-aa-helper-fix-caps.patch
Patch4: 45697fe5-libxl-support-dom0.patch
Patch5: e9c27344-libxl-fix-virDomainObj-state.patch
Patch6: 4ffb21c8-libxl-dom0-state-fix.patch
# Patches pending upstream review
Patch100: 0003-libxl-fix-ref-counting-of-libxlMigrationDstArgs.patch
Patch101: 0004-libxl-don-t-attempt-to-resume-domain-when-suspend-fa.patch
@ -476,7 +469,6 @@ Patch207: disable-virCgroupGetPercpuStats-test.patch
Patch208: apparmor-no-mount.patch
Patch209: qemu-apparmor-screenshot.patch
Patch210: libvirt-suse-netcontrol.patch
Patch211: qemu-nbd-cleanup-fix.patch
# SocketUser and SocketGroup settings were added to systemd.socket in
# version 214. Patch the setting away in earlier systemd
%if 0%{systemd_version} < 214
@ -987,13 +979,6 @@ Provides a dissector for the libvirt RPC protocol to help debugging it.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
@ -1013,7 +998,6 @@ Provides a dissector for the libvirt RPC protocol to help debugging it.
%patch208 -p1
%patch209 -p1
%patch210 -p1
%patch211 -p1
%if 0%{systemd_version} < 214
%patch300 -p1
%endif

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/daemon/libvirtd.conf
Index: libvirt-1.2.18/daemon/libvirtd.conf
===================================================================
--- libvirt-1.2.17.orig/daemon/libvirtd.conf
+++ libvirt-1.2.17/daemon/libvirtd.conf
--- libvirt-1.2.18.orig/daemon/libvirtd.conf
+++ libvirt-1.2.18/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 @@ Index: libvirt-1.2.17/daemon/libvirtd.conf
# 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.2.17/daemon/libvirtd-config.c
Index: libvirt-1.2.18/daemon/libvirtd-config.c
===================================================================
--- libvirt-1.2.17.orig/daemon/libvirtd-config.c
+++ libvirt-1.2.17/daemon/libvirtd-config.c
--- libvirt-1.2.18.orig/daemon/libvirtd-config.c
+++ libvirt-1.2.18/daemon/libvirtd-config.c
@@ -242,7 +242,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
@ -26,10 +26,10 @@ Index: libvirt-1.2.17/daemon/libvirtd-config.c
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
Index: libvirt-1.2.17/daemon/test_libvirtd.aug.in
Index: libvirt-1.2.18/daemon/test_libvirtd.aug.in
===================================================================
--- libvirt-1.2.17.orig/daemon/test_libvirtd.aug.in
+++ libvirt-1.2.17/daemon/test_libvirtd.aug.in
--- libvirt-1.2.18.orig/daemon/test_libvirtd.aug.in
+++ libvirt-1.2.18/daemon/test_libvirtd.aug.in
@@ -2,7 +2,7 @@ module Test_libvirtd =
::CONFIG::

View File

@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
Index: libvirt-1.2.17/daemon/libvirtd.sysconf
Index: libvirt-1.2.18/daemon/libvirtd.sysconf
===================================================================
--- libvirt-1.2.17.orig/daemon/libvirtd.sysconf
+++ libvirt-1.2.17/daemon/libvirtd.sysconf
--- libvirt-1.2.18.orig/daemon/libvirtd.sysconf
+++ libvirt-1.2.18/daemon/libvirtd.sysconf
@@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt
+

View File

@ -9,10 +9,10 @@ as
See bsc#933043
Index: libvirt-1.2.17/daemon/libvirtd.socket.in
Index: libvirt-1.2.18/daemon/libvirtd.socket.in
===================================================================
--- libvirt-1.2.17.orig/daemon/libvirtd.socket.in
+++ libvirt-1.2.17/daemon/libvirtd.socket.in
--- libvirt-1.2.18.orig/daemon/libvirtd.socket.in
+++ libvirt-1.2.18/daemon/libvirtd.socket.in
@@ -2,10 +2,8 @@
ListenStream=@runstatedir@/libvirt/libvirt-sock
ListenStream=@runstatedir@/libvirt/libvirt-sock-ro

View File

@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
See bnc#894956
Index: libvirt-1.2.17/src/util/virarch.c
Index: libvirt-1.2.18/src/util/virarch.c
===================================================================
--- libvirt-1.2.17.orig/src/util/virarch.c
+++ libvirt-1.2.17/src/util/virarch.c
--- libvirt-1.2.18.orig/src/util/virarch.c
+++ libvirt-1.2.18/src/util/virarch.c
@@ -169,6 +169,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) {

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/examples/apparmor/libvirt-qemu
Index: libvirt-1.2.18/examples/apparmor/libvirt-qemu
===================================================================
--- libvirt-1.2.17.orig/examples/apparmor/libvirt-qemu
+++ libvirt-1.2.17/examples/apparmor/libvirt-qemu
--- libvirt-1.2.18.orig/examples/apparmor/libvirt-qemu
+++ libvirt-1.2.18/examples/apparmor/libvirt-qemu
@@ -133,6 +133,9 @@
/sys/bus/ r,
/sys/class/ r,

View File

@ -1,55 +0,0 @@
From 1f17be07e9fbbae6fdba6842546ca86d51f84447 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= <cbosdonnat@suse.com>
Date: Thu, 9 Jul 2015 16:23:08 +0200
Subject: [PATCH 5/5] Fix qemu-nbd cleanup crashes
The virLXCControllerAppendNBDPids function didn't properly initialize
pids and npids. In case of failure it was crashing when freeing those.
The nbd device pid file doesn't appear immediately after starting
qemu-nbd: adding a small loop to wait for it.
---
src/lxc/lxc_controller.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 828b8a8..78d3eee 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -533,16 +533,31 @@ static int virLXCControllerAppendNBDPids(virLXCControllerPtr ctrl,
const char *dev)
{
char *pidpath = NULL;
- pid_t *pids;
- size_t npids;
+ pid_t *pids = NULL;
+ size_t npids = 0;
size_t i;
int ret = -1;
+ size_t loops = 0;
pid_t pid;
if (!STRPREFIX(dev, "/dev/") ||
virAsprintf(&pidpath, "/sys/devices/virtual/block/%s/pid", dev + 5) < 0)
goto cleanup;
+ /* Wait for the pid file to appear */
+ while (!virFileExists(pidpath)) {
+ /* wait for 100ms before checking again, but don't do it for ever */
+ if (errno == ENOENT && loops < 10) {
+ usleep(100 * 1000);
+ loops++;
+ } else {
+ virReportSystemError(errno,
+ _("Cannot check NBD device %s pid"),
+ dev + 5);
+ goto cleanup;
+ }
+ }
+
if (virPidFileReadPath(pidpath, &pid) < 0)
goto cleanup;
--
2.1.4

View File

@ -8,10 +8,10 @@ Subject: [PATCH] support managed pci devices in xen driver
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-)
Index: libvirt-1.2.17/src/xenconfig/xen_common.c
Index: libvirt-1.2.18/src/xenconfig/xen_common.c
===================================================================
--- libvirt-1.2.17.orig/src/xenconfig/xen_common.c
+++ libvirt-1.2.17/src/xenconfig/xen_common.c
--- libvirt-1.2.18.orig/src/xenconfig/xen_common.c
+++ libvirt-1.2.18/src/xenconfig/xen_common.c
@@ -403,6 +403,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
{
virConfValuePtr list = virConfGetValue(conf, "pci");
@ -66,10 +66,10 @@ Index: libvirt-1.2.17/src/xenconfig/xen_common.c
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
hostdev->source.subsys.u.pci.addr.domain = domainID;
hostdev->source.subsys.u.pci.addr.bus = busID;
Index: libvirt-1.2.17/src/xenconfig/xen_sxpr.c
Index: libvirt-1.2.18/src/xenconfig/xen_sxpr.c
===================================================================
--- libvirt-1.2.17.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-1.2.17/src/xenconfig/xen_sxpr.c
--- libvirt-1.2.18.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-1.2.18/src/xenconfig/xen_sxpr.c
@@ -999,6 +999,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/src/qemu/qemu.conf
Index: libvirt-1.2.18/src/qemu/qemu.conf
===================================================================
--- libvirt-1.2.17.orig/src/qemu/qemu.conf
+++ libvirt-1.2.17/src/qemu/qemu.conf
--- libvirt-1.2.18.orig/src/qemu/qemu.conf
+++ libvirt-1.2.18/src/qemu/qemu.conf
@@ -201,11 +201,20 @@
# isolation, but it cannot appear in a list of drivers.
#

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/daemon/libvirtd.service.in
Index: libvirt-1.2.18/daemon/libvirtd.service.in
===================================================================
--- libvirt-1.2.17.orig/daemon/libvirtd.service.in
+++ libvirt-1.2.17/daemon/libvirtd.service.in
--- libvirt-1.2.18.orig/daemon/libvirtd.service.in
+++ libvirt-1.2.18/daemon/libvirtd.service.in
@@ -5,6 +5,8 @@ After=network.target
After=dbus.service
After=iscsid.service

View File

@ -1,9 +1,9 @@
Adjust virtlockd init files to conform to SUSE standards
Index: libvirt-1.2.17/src/locking/virtlockd.sysconf
Index: libvirt-1.2.18/src/locking/virtlockd.sysconf
===================================================================
--- libvirt-1.2.17.orig/src/locking/virtlockd.sysconf
+++ libvirt-1.2.17/src/locking/virtlockd.sysconf
--- libvirt-1.2.18.orig/src/locking/virtlockd.sysconf
+++ libvirt-1.2.18/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
@ -12,10 +12,10 @@ Index: libvirt-1.2.17/src/locking/virtlockd.sysconf
#
# Pass extra arguments to virtlockd
#VIRTLOCKD_ARGS=
Index: libvirt-1.2.17/src/locking/virtlockd.init.in
Index: libvirt-1.2.18/src/locking/virtlockd.init.in
===================================================================
--- libvirt-1.2.17.orig/src/locking/virtlockd.init.in
+++ libvirt-1.2.17/src/locking/virtlockd.init.in
--- libvirt-1.2.18.orig/src/locking/virtlockd.init.in
+++ libvirt-1.2.18/src/locking/virtlockd.init.in
@@ -4,12 +4,14 @@
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
#

View File

@ -1,7 +1,7 @@
Index: libvirt-1.2.17/src/xenconfig/xen_sxpr.c
Index: libvirt-1.2.18/src/xenconfig/xen_sxpr.c
===================================================================
--- libvirt-1.2.17.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-1.2.17/src/xenconfig/xen_sxpr.c
--- libvirt-1.2.18.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-1.2.18/src/xenconfig/xen_sxpr.c
@@ -334,7 +334,7 @@ xenParseSxprChar(const char *value,
static int
xenParseSxprDisks(virDomainDefPtr def,