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:
parent
dd862584c2
commit
379397c0f7
@ -34,10 +34,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|||||||
src/libxl/libxl_migration.c | 18 +++++-------------
|
src/libxl/libxl_migration.c | 18 +++++-------------
|
||||||
1 file changed, 5 insertions(+), 13 deletions(-)
|
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.18.orig/src/libxl/libxl_migration.c
|
||||||
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
|
+++ libvirt-1.2.18/src/libxl/libxl_migration.c
|
||||||
@@ -112,11 +112,11 @@ libxlDoMigrateReceive(void *opaque)
|
@@ -112,11 +112,11 @@ libxlDoMigrateReceive(void *opaque)
|
||||||
virNetSocketUpdateIOCallback(socks[i], 0);
|
virNetSocketUpdateIOCallback(socks[i], 0);
|
||||||
virNetSocketRemoveIOCallback(socks[i]);
|
virNetSocketRemoveIOCallback(socks[i]);
|
||||||
|
@ -12,10 +12,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|||||||
src/libxl/libxl_migration.c | 14 --------------
|
src/libxl/libxl_migration.c | 14 --------------
|
||||||
1 file changed, 14 deletions(-)
|
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.18.orig/src/libxl/libxl_migration.c
|
||||||
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
|
+++ libvirt-1.2.18/src/libxl/libxl_migration.c
|
||||||
@@ -178,7 +178,6 @@ libxlDoMigrateSend(libxlDriverPrivatePtr
|
@@ -178,7 +178,6 @@ libxlDoMigrateSend(libxlDriverPrivatePtr
|
||||||
int sockfd)
|
int sockfd)
|
||||||
{
|
{
|
||||||
|
@ -13,10 +13,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
|||||||
src/libxl/libxl_migration.c | 20 +++++++++++++++++---
|
src/libxl/libxl_migration.c | 20 +++++++++++++++++---
|
||||||
1 file changed, 17 insertions(+), 3 deletions(-)
|
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.18.orig/src/libxl/libxl_migration.c
|
||||||
+++ libvirt-1.2.17/src/libxl/libxl_migration.c
|
+++ libvirt-1.2.18/src/libxl/libxl_migration.c
|
||||||
@@ -95,17 +95,20 @@ libxlDoMigrateReceive(void *opaque)
|
@@ -95,17 +95,20 @@ libxlDoMigrateReceive(void *opaque)
|
||||||
int recvfd = args->recvfd;
|
int recvfd = args->recvfd;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
@ -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
|
|
||||||
|
|
@ -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;
|
|
@ -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;
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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.18.orig/examples/apparmor/libvirt-qemu
|
||||||
+++ libvirt-1.2.17/examples/apparmor/libvirt-qemu
|
+++ libvirt-1.2.18/examples/apparmor/libvirt-qemu
|
||||||
@@ -124,6 +124,9 @@
|
@@ -124,6 +124,9 @@
|
||||||
# for restore
|
# for restore
|
||||||
/bin/bash rmix,
|
/bin/bash rmix,
|
||||||
|
@ -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.18.orig/examples/apparmor/libvirt-lxc
|
||||||
+++ libvirt-1.2.17/examples/apparmor/libvirt-lxc
|
+++ libvirt-1.2.18/examples/apparmor/libvirt-lxc
|
||||||
@@ -2,39 +2,15 @@
|
@@ -2,39 +2,15 @@
|
||||||
|
|
||||||
#include <abstractions/base>
|
#include <abstractions/base>
|
||||||
|
@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
|||||||
src/qemu/qemu_driver.c | 7 +++++++
|
src/qemu/qemu_driver.c | 7 +++++++
|
||||||
1 file changed, 7 insertions(+)
|
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.18.orig/src/qemu/qemu_driver.c
|
||||||
+++ libvirt-1.2.17/src/qemu/qemu_driver.c
|
+++ libvirt-1.2.18/src/qemu/qemu_driver.c
|
||||||
@@ -16684,6 +16684,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
|
@@ -16662,6 +16662,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt
|
||||||
_("non-file destination not supported yet"));
|
_("non-file destination not supported yet"));
|
||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
@ -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.18.orig/tests/vircgrouptest.c
|
||||||
+++ libvirt-1.2.17/tests/vircgrouptest.c
|
+++ libvirt-1.2.18/tests/vircgrouptest.c
|
||||||
@@ -34,7 +34,6 @@
|
@@ -34,7 +34,6 @@
|
||||||
# include "virfile.h"
|
# include "virfile.h"
|
||||||
# include "virbuffer.h"
|
# include "virbuffer.h"
|
||||||
@ -10,7 +10,7 @@ Index: libvirt-1.2.17/tests/vircgrouptest.c
|
|||||||
|
|
||||||
# define VIR_FROM_THIS VIR_FROM_NONE
|
# define VIR_FROM_THIS VIR_FROM_NONE
|
||||||
|
|
||||||
@@ -607,91 +606,6 @@ static int testCgroupControllerAvailable
|
@@ -607,90 +606,6 @@ static int testCgroupControllerAvailable
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,8 +56,8 @@ Index: libvirt-1.2.17/tests/vircgrouptest.c
|
|||||||
- goto cleanup;
|
- goto cleanup;
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
- if (nodeGetCPUCount() != EXPECTED_NCPUS) {
|
- if (nodeGetCPUCount(NULL) != EXPECTED_NCPUS) {
|
||||||
- fprintf(stderr, "Unexpected: nodeGetCPUCount() yields: %d\n", nodeGetCPUCount());
|
- fprintf(stderr, "Unexpected: nodeGetCPUCount() yields: %d\n", nodeGetCPUCount(NULL));
|
||||||
- goto cleanup;
|
- goto cleanup;
|
||||||
- }
|
- }
|
||||||
-
|
-
|
||||||
@ -98,11 +98,10 @@ Index: libvirt-1.2.17/tests/vircgrouptest.c
|
|||||||
- VIR_FREE(params);
|
- VIR_FREE(params);
|
||||||
- return ret;
|
- return ret;
|
||||||
-}
|
-}
|
||||||
-
|
|
||||||
static int testCgroupGetMemoryUsage(const void *args ATTRIBUTE_UNUSED)
|
static int testCgroupGetMemoryUsage(const void *args ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
virCgroupPtr cgroup = NULL;
|
@@ -919,9 +834,6 @@ mymain(void)
|
||||||
@@ -919,9 +833,6 @@ mymain(void)
|
|
||||||
if (virtTestRun("virCgroupGetMemoryUsage works", testCgroupGetMemoryUsage, NULL) < 0)
|
if (virtTestRun("virCgroupGetMemoryUsage works", testCgroupGetMemoryUsage, NULL) < 0)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
|
||||||
|
@ -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
|
|
||||||
|
|
@ -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);
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:e07eaf20b0590fae05ba3b53ad4dac3e5fbd771437563cc78b692f23ddd02fad
|
|
||||||
size 29320317
|
|
@ -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
3
libvirt-1.2.18.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d5a5ff18af4cced21fed986d28fa0a21b782d256920326bf0ff1c7731eeb6ade
|
||||||
|
size 29412554
|
7
libvirt-1.2.18.tar.gz.asc
Normal file
7
libvirt-1.2.18.tar.gz.asc
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1
|
||||||
|
|
||||||
|
iEYEABECAAYFAlW/M8wACgkQRga4pd6VvB9S0ACfV3OG4q+aGh9oXodFnMy4PcBn
|
||||||
|
c0gAnjmMTEA/O8vIczW1a99qpM/QphO+
|
||||||
|
=jw1y
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,9 +1,9 @@
|
|||||||
Adjust libvirt-guests init files to conform to SUSE standards
|
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.18.orig/tools/libvirt-guests.init.in
|
||||||
+++ libvirt-1.2.17/tools/libvirt-guests.init.in
|
+++ libvirt-1.2.18/tools/libvirt-guests.init.in
|
||||||
@@ -3,15 +3,15 @@
|
@@ -3,15 +3,15 @@
|
||||||
# the following is the LSB init header
|
# the following is the LSB init header
|
||||||
#
|
#
|
||||||
@ -28,10 +28,10 @@ Index: libvirt-1.2.17/tools/libvirt-guests.init.in
|
|||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# the following is chkconfig init header
|
# 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.18.orig/tools/libvirt-guests.sh.in
|
||||||
+++ libvirt-1.2.17/tools/libvirt-guests.sh.in
|
+++ libvirt-1.2.18/tools/libvirt-guests.sh.in
|
||||||
@@ -16,14 +16,13 @@
|
@@ -16,14 +16,13 @@
|
||||||
# License along with this library. If not, see
|
# License along with this library. If not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
@ -191,10 +191,10 @@ Index: libvirt-1.2.17/tools/libvirt-guests.sh.in
|
|||||||
esac
|
esac
|
||||||
-exit $RETVAL
|
-exit $RETVAL
|
||||||
+rc_exit
|
+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.18.orig/tools/libvirt-guests.sysconf
|
||||||
+++ libvirt-1.2.17/tools/libvirt-guests.sysconf
|
+++ libvirt-1.2.18/tools/libvirt-guests.sysconf
|
||||||
@@ -1,19 +1,29 @@
|
@@ -1,19 +1,29 @@
|
||||||
+## Path: System/Virtualization/libvirt-guests
|
+## Path: System/Virtualization/libvirt-guests
|
||||||
+
|
+
|
||||||
|
@ -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.18.orig/src/cpu/cpu_map.xml
|
||||||
+++ libvirt-1.2.17/src/cpu/cpu_map.xml
|
+++ libvirt-1.2.18/src/cpu/cpu_map.xml
|
||||||
@@ -668,6 +668,16 @@
|
@@ -1413,6 +1413,16 @@
|
||||||
<pvr value='0x004d0000'/>
|
<pvr value='0x004d0000'/>
|
||||||
</model>
|
</model>
|
||||||
|
|
||||||
@ -16,6 +16,6 @@ Index: libvirt-1.2.17/src/cpu/cpu_map.xml
|
|||||||
+ <pvr value='0x004b0201'/>
|
+ <pvr value='0x004b0201'/>
|
||||||
+ </model>
|
+ </model>
|
||||||
+
|
+
|
||||||
<!-- Freescale-based CPU models -->
|
<!-- Freescale-based CPU models -->
|
||||||
<model name='POWERPC_e5500'>
|
<model name='POWERPC_e5500'>
|
||||||
<vendor name='Freescale'/>
|
<vendor name='Freescale'/>
|
||||||
|
@ -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.18.orig/configure.ac
|
||||||
+++ libvirt-1.2.17/configure.ac
|
+++ libvirt-1.2.18/configure.ac
|
||||||
@@ -241,6 +241,7 @@ LIBVIRT_CHECK_FUSE
|
@@ -242,6 +242,7 @@ LIBVIRT_CHECK_FUSE
|
||||||
LIBVIRT_CHECK_GLUSTER
|
LIBVIRT_CHECK_GLUSTER
|
||||||
LIBVIRT_CHECK_HAL
|
LIBVIRT_CHECK_HAL
|
||||||
LIBVIRT_CHECK_NETCF
|
LIBVIRT_CHECK_NETCF
|
||||||
@ -10,7 +10,7 @@ Index: libvirt-1.2.17/configure.ac
|
|||||||
LIBVIRT_CHECK_NUMACTL
|
LIBVIRT_CHECK_NUMACTL
|
||||||
LIBVIRT_CHECK_OPENWSMAN
|
LIBVIRT_CHECK_OPENWSMAN
|
||||||
LIBVIRT_CHECK_PCIACCESS
|
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
|
with_interface=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Index: libvirt-1.2.17/configure.ac
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
if test "$with_interface" = "yes" ; then
|
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_GLUSTER
|
||||||
LIBVIRT_RESULT_HAL
|
LIBVIRT_RESULT_HAL
|
||||||
LIBVIRT_RESULT_NETCF
|
LIBVIRT_RESULT_NETCF
|
||||||
@ -34,10 +34,10 @@ Index: libvirt-1.2.17/configure.ac
|
|||||||
LIBVIRT_RESULT_NUMACTL
|
LIBVIRT_RESULT_NUMACTL
|
||||||
LIBVIRT_RESULT_OPENWSMAN
|
LIBVIRT_RESULT_OPENWSMAN
|
||||||
LIBVIRT_RESULT_PCIACCESS
|
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.18.orig/src/Makefile.am
|
||||||
+++ libvirt-1.2.17/src/Makefile.am
|
+++ libvirt-1.2.18/src/Makefile.am
|
||||||
@@ -872,6 +872,10 @@ if WITH_NETCF
|
@@ -872,6 +872,10 @@ if WITH_NETCF
|
||||||
INTERFACE_DRIVER_SOURCES += \
|
INTERFACE_DRIVER_SOURCES += \
|
||||||
interface/interface_backend_netcf.c
|
interface/interface_backend_netcf.c
|
||||||
@ -60,10 +60,10 @@ Index: libvirt-1.2.17/src/Makefile.am
|
|||||||
if WITH_UDEV
|
if WITH_UDEV
|
||||||
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
|
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
|
||||||
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
|
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.18.orig/tools/virsh.c
|
||||||
+++ libvirt-1.2.17/tools/virsh.c
|
+++ libvirt-1.2.18/tools/virsh.c
|
||||||
@@ -3383,6 +3383,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
|
@@ -3383,6 +3383,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
|
||||||
vshPrint(ctl, " Interface");
|
vshPrint(ctl, " Interface");
|
||||||
# if defined(WITH_NETCF)
|
# if defined(WITH_NETCF)
|
||||||
@ -73,10 +73,10 @@ Index: libvirt-1.2.17/tools/virsh.c
|
|||||||
# elif defined(WITH_UDEV)
|
# elif defined(WITH_UDEV)
|
||||||
vshPrint(ctl, " udev");
|
vshPrint(ctl, " udev");
|
||||||
# endif
|
# 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.18.orig/src/interface/interface_backend_netcf.c
|
||||||
+++ libvirt-1.2.17/src/interface/interface_backend_netcf.c
|
+++ libvirt-1.2.18/src/interface/interface_backend_netcf.c
|
||||||
@@ -23,7 +23,12 @@
|
@@ -23,7 +23,12 @@
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -160,10 +160,10 @@ Index: libvirt-1.2.17/src/interface/interface_backend_netcf.c
|
|||||||
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
|
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if (virRegisterStateDriver(&interfaceStateDriver) < 0)
|
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.18.orig/src/interface/interface_driver.c
|
||||||
+++ libvirt-1.2.17/src/interface/interface_driver.c
|
+++ libvirt-1.2.18/src/interface/interface_driver.c
|
||||||
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
||||||
if (netcfIfaceRegister() == 0)
|
if (netcfIfaceRegister() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
@ -181,10 +181,10 @@ Index: libvirt-1.2.17/src/interface/interface_driver.c
|
|||||||
if (udevIfaceRegister() == 0)
|
if (udevIfaceRegister() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* WITH_UDEV */
|
#endif /* WITH_UDEV */
|
||||||
Index: libvirt-1.2.17/m4/virt-netcontrol.m4
|
Index: libvirt-1.2.18/m4/virt-netcontrol.m4
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ libvirt-1.2.17/m4/virt-netcontrol.m4
|
+++ libvirt-1.2.18/m4/virt-netcontrol.m4
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
+dnl The libnetcontrol library
|
+dnl The libnetcontrol library
|
||||||
+dnl
|
+dnl
|
||||||
|
@ -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
|
Fri Jul 31 18:51:38 UTC 2015 - jfehlig@suse.com
|
||||||
|
|
||||||
|
18
libvirt.spec
18
libvirt.spec
@ -240,7 +240,7 @@
|
|||||||
|
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Url: http://libvirt.org/
|
Url: http://libvirt.org/
|
||||||
Version: 1.2.17
|
Version: 1.2.18
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
License: LGPL-2.1+
|
License: LGPL-2.1+
|
||||||
@ -446,13 +446,6 @@ Source3: libvirtd.init
|
|||||||
Source4: libvirtd-relocation-server.fw
|
Source4: libvirtd-relocation-server.fw
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
# Upstream patches
|
# 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
|
# Patches pending upstream review
|
||||||
Patch100: 0003-libxl-fix-ref-counting-of-libxlMigrationDstArgs.patch
|
Patch100: 0003-libxl-fix-ref-counting-of-libxlMigrationDstArgs.patch
|
||||||
Patch101: 0004-libxl-don-t-attempt-to-resume-domain-when-suspend-fa.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
|
Patch208: apparmor-no-mount.patch
|
||||||
Patch209: qemu-apparmor-screenshot.patch
|
Patch209: qemu-apparmor-screenshot.patch
|
||||||
Patch210: libvirt-suse-netcontrol.patch
|
Patch210: libvirt-suse-netcontrol.patch
|
||||||
Patch211: qemu-nbd-cleanup-fix.patch
|
|
||||||
# SocketUser and SocketGroup settings were added to systemd.socket in
|
# SocketUser and SocketGroup settings were added to systemd.socket in
|
||||||
# version 214. Patch the setting away in earlier systemd
|
# version 214. Patch the setting away in earlier systemd
|
||||||
%if 0%{systemd_version} < 214
|
%if 0%{systemd_version} < 214
|
||||||
@ -987,13 +979,6 @@ Provides a dissector for the libvirt RPC protocol to help debugging it.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
@ -1013,7 +998,6 @@ Provides a dissector for the libvirt RPC protocol to help debugging it.
|
|||||||
%patch208 -p1
|
%patch208 -p1
|
||||||
%patch209 -p1
|
%patch209 -p1
|
||||||
%patch210 -p1
|
%patch210 -p1
|
||||||
%patch211 -p1
|
|
||||||
%if 0%{systemd_version} < 214
|
%if 0%{systemd_version} < 214
|
||||||
%patch300 -p1
|
%patch300 -p1
|
||||||
%endif
|
%endif
|
||||||
|
@ -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.18.orig/daemon/libvirtd.conf
|
||||||
+++ libvirt-1.2.17/daemon/libvirtd.conf
|
+++ libvirt-1.2.18/daemon/libvirtd.conf
|
||||||
@@ -18,8 +18,8 @@
|
@@ -18,8 +18,8 @@
|
||||||
# It is necessary to setup a CA and issue server certificates before
|
# It is necessary to setup a CA and issue server certificates before
|
||||||
# using this capability.
|
# 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.
|
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
||||||
# NB, must pass the --listen flag to the libvirtd process for this to
|
# 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.18.orig/daemon/libvirtd-config.c
|
||||||
+++ libvirt-1.2.17/daemon/libvirtd-config.c
|
+++ libvirt-1.2.18/daemon/libvirtd-config.c
|
||||||
@@ -242,7 +242,7 @@ daemonConfigNew(bool privileged ATTRIBUT
|
@@ -242,7 +242,7 @@ daemonConfigNew(bool privileged ATTRIBUT
|
||||||
if (VIR_ALLOC(data) < 0)
|
if (VIR_ALLOC(data) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -26,10 +26,10 @@ Index: libvirt-1.2.17/daemon/libvirtd-config.c
|
|||||||
data->listen_tcp = 0;
|
data->listen_tcp = 0;
|
||||||
|
|
||||||
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 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.18.orig/daemon/test_libvirtd.aug.in
|
||||||
+++ libvirt-1.2.17/daemon/test_libvirtd.aug.in
|
+++ libvirt-1.2.18/daemon/test_libvirtd.aug.in
|
||||||
@@ -2,7 +2,7 @@ module Test_libvirtd =
|
@@ -2,7 +2,7 @@ module Test_libvirtd =
|
||||||
::CONFIG::
|
::CONFIG::
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Adjust libvirtd sysconfig file to conform to SUSE standards
|
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.18.orig/daemon/libvirtd.sysconf
|
||||||
+++ libvirt-1.2.17/daemon/libvirtd.sysconf
|
+++ libvirt-1.2.18/daemon/libvirtd.sysconf
|
||||||
@@ -1,16 +1,25 @@
|
@@ -1,16 +1,25 @@
|
||||||
+## Path: System/Virtualization/libvirt
|
+## Path: System/Virtualization/libvirt
|
||||||
+
|
+
|
||||||
|
@ -9,10 +9,10 @@ as
|
|||||||
|
|
||||||
See bsc#933043
|
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.18.orig/daemon/libvirtd.socket.in
|
||||||
+++ libvirt-1.2.17/daemon/libvirtd.socket.in
|
+++ libvirt-1.2.18/daemon/libvirtd.socket.in
|
||||||
@@ -2,10 +2,8 @@
|
@@ -2,10 +2,8 @@
|
||||||
ListenStream=@runstatedir@/libvirt/libvirt-sock
|
ListenStream=@runstatedir@/libvirt/libvirt-sock
|
||||||
ListenStream=@runstatedir@/libvirt/libvirt-sock-ro
|
ListenStream=@runstatedir@/libvirt/libvirt-sock-ro
|
||||||
|
@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
|
|||||||
|
|
||||||
See bnc#894956
|
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.18.orig/src/util/virarch.c
|
||||||
+++ libvirt-1.2.17/src/util/virarch.c
|
+++ libvirt-1.2.18/src/util/virarch.c
|
||||||
@@ -169,6 +169,8 @@ virArch virArchFromHost(void)
|
@@ -169,6 +169,8 @@ virArch virArchFromHost(void)
|
||||||
arch = VIR_ARCH_I686;
|
arch = VIR_ARCH_I686;
|
||||||
} else if (STREQ(ut.machine, "amd64")) {
|
} else if (STREQ(ut.machine, "amd64")) {
|
||||||
|
@ -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.18.orig/examples/apparmor/libvirt-qemu
|
||||||
+++ libvirt-1.2.17/examples/apparmor/libvirt-qemu
|
+++ libvirt-1.2.18/examples/apparmor/libvirt-qemu
|
||||||
@@ -133,6 +133,9 @@
|
@@ -133,6 +133,9 @@
|
||||||
/sys/bus/ r,
|
/sys/bus/ r,
|
||||||
/sys/class/ r,
|
/sys/class/ r,
|
||||||
|
@ -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
|
|
||||||
|
|
@ -8,10 +8,10 @@ Subject: [PATCH] support managed pci devices in xen driver
|
|||||||
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
|
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
|
||||||
2 files changed, 35 insertions(+), 15 deletions(-)
|
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.18.orig/src/xenconfig/xen_common.c
|
||||||
+++ libvirt-1.2.17/src/xenconfig/xen_common.c
|
+++ libvirt-1.2.18/src/xenconfig/xen_common.c
|
||||||
@@ -403,6 +403,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
|
@@ -403,6 +403,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
|
||||||
{
|
{
|
||||||
virConfValuePtr list = virConfGetValue(conf, "pci");
|
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.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
|
||||||
hostdev->source.subsys.u.pci.addr.domain = domainID;
|
hostdev->source.subsys.u.pci.addr.domain = domainID;
|
||||||
hostdev->source.subsys.u.pci.addr.bus = busID;
|
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.18.orig/src/xenconfig/xen_sxpr.c
|
||||||
+++ libvirt-1.2.17/src/xenconfig/xen_sxpr.c
|
+++ libvirt-1.2.18/src/xenconfig/xen_sxpr.c
|
||||||
@@ -999,6 +999,7 @@ xenParseSxprPCI(virDomainDefPtr def,
|
@@ -999,6 +999,7 @@ xenParseSxprPCI(virDomainDefPtr def,
|
||||||
int busID;
|
int busID;
|
||||||
int slotID;
|
int slotID;
|
||||||
|
@ -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.18.orig/src/qemu/qemu.conf
|
||||||
+++ libvirt-1.2.17/src/qemu/qemu.conf
|
+++ libvirt-1.2.18/src/qemu/qemu.conf
|
||||||
@@ -201,11 +201,20 @@
|
@@ -201,11 +201,20 @@
|
||||||
# isolation, but it cannot appear in a list of drivers.
|
# isolation, but it cannot appear in a list of drivers.
|
||||||
#
|
#
|
||||||
|
@ -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.18.orig/daemon/libvirtd.service.in
|
||||||
+++ libvirt-1.2.17/daemon/libvirtd.service.in
|
+++ libvirt-1.2.18/daemon/libvirtd.service.in
|
||||||
@@ -5,6 +5,8 @@ After=network.target
|
@@ -5,6 +5,8 @@ After=network.target
|
||||||
After=dbus.service
|
After=dbus.service
|
||||||
After=iscsid.service
|
After=iscsid.service
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Adjust virtlockd init files to conform to SUSE standards
|
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.18.orig/src/locking/virtlockd.sysconf
|
||||||
+++ libvirt-1.2.17/src/locking/virtlockd.sysconf
|
+++ libvirt-1.2.18/src/locking/virtlockd.sysconf
|
||||||
@@ -1,3 +1,7 @@
|
@@ -1,3 +1,7 @@
|
||||||
+## Path: System/Virtualization/virtlockd
|
+## Path: System/Virtualization/virtlockd
|
||||||
+
|
+
|
||||||
@ -12,10 +12,10 @@ Index: libvirt-1.2.17/src/locking/virtlockd.sysconf
|
|||||||
#
|
#
|
||||||
# Pass extra arguments to virtlockd
|
# Pass extra arguments to virtlockd
|
||||||
#VIRTLOCKD_ARGS=
|
#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.18.orig/src/locking/virtlockd.init.in
|
||||||
+++ libvirt-1.2.17/src/locking/virtlockd.init.in
|
+++ libvirt-1.2.18/src/locking/virtlockd.init.in
|
||||||
@@ -4,12 +4,14 @@
|
@@ -4,12 +4,14 @@
|
||||||
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
|
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
|
||||||
#
|
#
|
||||||
|
@ -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.18.orig/src/xenconfig/xen_sxpr.c
|
||||||
+++ libvirt-1.2.17/src/xenconfig/xen_sxpr.c
|
+++ libvirt-1.2.18/src/xenconfig/xen_sxpr.c
|
||||||
@@ -334,7 +334,7 @@ xenParseSxprChar(const char *value,
|
@@ -334,7 +334,7 @@ xenParseSxprChar(const char *value,
|
||||||
static int
|
static int
|
||||||
xenParseSxprDisks(virDomainDefPtr def,
|
xenParseSxprDisks(virDomainDefPtr def,
|
||||||
|
Loading…
Reference in New Issue
Block a user