diff --git a/0e671a16-CVE-2013-4239.patch b/0e671a16-CVE-2013-4239.patch deleted file mode 100644 index e00f799..0000000 --- a/0e671a16-CVE-2013-4239.patch +++ /dev/null @@ -1,60 +0,0 @@ -commit 0e671a1646df543eab683b38f6644f70d12fbee1 -Author: Jim Fehlig -Date: Mon Aug 5 10:27:23 2013 -0600 - - xen: fix memory corruption in legacy driver - - Commit 632180d1 introduced memory corruption in xenDaemonListDefinedDomains - by starting to populate the names array at index -1, causing all sorts - of havoc in libvirtd such as aborts like the following - - *** Error in `/usr/sbin/libvirtd': double free or corruption (out): 0x00007fffe00ccf20 *** - ======= Backtrace: ========= - /lib64/libc.so.6(+0x7abf6)[0x7ffff3fa0bf6] - /lib64/libc.so.6(+0x7b973)[0x7ffff3fa1973] - /lib64/libc.so.6(xdr_array+0xde)[0x7ffff403cbae] - /usr/sbin/libvirtd(+0x50251)[0x5555555a4251] - /lib64/libc.so.6(xdr_free+0x15)[0x7ffff403ccd5] - /usr/lib64/libvirt.so.0(+0x1fad34)[0x7ffff76b1d34] - /usr/lib64/libvirt.so.0(virNetServerProgramDispatch+0x1fc)[0x7ffff76b16f1] - /usr/lib64/libvirt.so.0(+0x1f214a)[0x7ffff76a914a] - /usr/lib64/libvirt.so.0(+0x1f222d)[0x7ffff76a922d] - /usr/lib64/libvirt.so.0(+0xbcc4f)[0x7ffff7573c4f] - /usr/lib64/libvirt.so.0(+0xbc5e5)[0x7ffff75735e5] - /lib64/libpthread.so.0(+0x7e0f)[0x7ffff48f7e0f] - /lib64/libc.so.6(clone+0x6d)[0x7ffff400e7dd] - - Fix by initializing ret to 0 and only setting to error on failure path. - -Index: libvirt-1.1.1/src/xen/xend_internal.c -=================================================================== ---- libvirt-1.1.1.orig/src/xen/xend_internal.c -+++ libvirt-1.1.1/src/xen/xend_internal.c -@@ -2896,7 +2896,7 @@ xenDaemonListDefinedDomains(virConnectPt - { - struct sexpr *root = NULL; - size_t i; -- int ret = -1; -+ int ret = 0; - struct sexpr *_for_i, *node; - - if (maxnames == 0) -@@ -2919,16 +2919,15 @@ xenDaemonListDefinedDomains(virConnectPt - break; - } - -- ret = 0; -- - cleanup: - sexpr_free(root); - return ret; - - error: -- for (i = 0; ret != -1 && i < ret; ++i) -+ for (i = 0; i < ret; ++i) - VIR_FREE(names[i]); - -+ ret = -1; - goto cleanup; - } - diff --git a/9d0557b9-legacy-xen-double-free.patch b/9d0557b9-legacy-xen-double-free.patch deleted file mode 100644 index 7d84377..0000000 --- a/9d0557b9-legacy-xen-double-free.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit 9d0557b9655fe4a3f31af2e1cc2f33de8acfaa7d -Author: Stefan Bader -Date: Wed Jul 31 11:59:21 2013 +0200 - - xen: Avoid double free of virDomainDef in xenDaemonCreateXML - - The virDomainDef is allocated by the caller and also used after - calling to xenDaemonCreateXML. So it must not get freed by the - callee. - - Signed-off-by: Stefan Bader - -Index: libvirt-1.1.1/src/xen/xend_internal.c -=================================================================== ---- libvirt-1.1.1.orig/src/xen/xend_internal.c -+++ libvirt-1.1.1/src/xen/xend_internal.c -@@ -2171,7 +2171,6 @@ xenDaemonCreateXML(virConnectPtr conn, v - if (xenDaemonDomainResume(conn, def) < 0) - goto error; - -- virDomainDefFree(def); - return 0; - - error: diff --git a/bcef0f01-libxl-console.patch b/bcef0f01-libxl-console.patch deleted file mode 100644 index 6047c9f..0000000 --- a/bcef0f01-libxl-console.patch +++ /dev/null @@ -1,280 +0,0 @@ -commit bcef0f01585a63626d29126a8dcbf1e222f70145 -Author: Bamvor Jian Zhang -Date: Fri Jul 26 11:30:50 2013 +0800 - - add console support in libxl - - this patch introduce the console api in libxl driver for both pv and - hvm guest. and import and update the libxlMakeChrdevStr function - which was deleted in commit dfa1e1dd. - - Signed-off-by: Bamvor Jian Zhang - -Index: libvirt-1.1.1/src/libxl/libxl_conf.c -=================================================================== ---- libvirt-1.1.1.orig/src/libxl/libxl_conf.c -+++ libvirt-1.1.1/src/libxl/libxl_conf.c -@@ -331,6 +331,92 @@ error: - } - - static int -+libxlMakeChrdevStr(virDomainChrDefPtr def, char **buf) -+{ -+ virDomainChrSourceDef srcdef = def->source; -+ const char *type = virDomainChrTypeToString(srcdef.type); -+ -+ if (!type) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ "%s", _("unknown chrdev type")); -+ return -1; -+ } -+ -+ switch (srcdef.type) { -+ case VIR_DOMAIN_CHR_TYPE_NULL: -+ case VIR_DOMAIN_CHR_TYPE_STDIO: -+ case VIR_DOMAIN_CHR_TYPE_VC: -+ case VIR_DOMAIN_CHR_TYPE_PTY: -+ if (VIR_STRDUP(*buf, type) < 0) -+ return -1; -+ break; -+ -+ case VIR_DOMAIN_CHR_TYPE_FILE: -+ case VIR_DOMAIN_CHR_TYPE_PIPE: -+ if (virAsprintf(buf, "%s:%s", type, srcdef.data.file.path) < 0) -+ return -1; -+ break; -+ -+ case VIR_DOMAIN_CHR_TYPE_DEV: -+ if (VIR_STRDUP(*buf, srcdef.data.file.path) < 0) -+ return -1; -+ break; -+ -+ case VIR_DOMAIN_CHR_TYPE_UDP: { -+ const char *connectHost = srcdef.data.udp.connectHost; -+ const char *bindHost = srcdef.data.udp.bindHost; -+ const char *bindService = srcdef.data.udp.bindService; -+ -+ if (connectHost == NULL) -+ connectHost = ""; -+ if (bindHost == NULL) -+ bindHost = ""; -+ if (bindService == NULL) -+ bindService = "0"; -+ -+ if (virAsprintf(buf, "udp:%s:%s@%s:%s", -+ connectHost, -+ srcdef.data.udp.connectService, -+ bindHost, -+ bindService) < 0) -+ return -1; -+ break; -+ } -+ -+ case VIR_DOMAIN_CHR_TYPE_TCP: { -+ const char *prefix; -+ -+ if (srcdef.data.tcp.protocol == VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET) -+ prefix = "telnet"; -+ else -+ prefix = "tcp"; -+ -+ if (virAsprintf(buf, "%s:%s:%s%s", -+ prefix, -+ srcdef.data.tcp.host, -+ srcdef.data.tcp.service, -+ srcdef.data.tcp.listen ? ",server,nowait" : "") < 0) -+ return -1; -+ break; -+ } -+ -+ case VIR_DOMAIN_CHR_TYPE_UNIX: -+ if (virAsprintf(buf, "unix:%s%s", -+ srcdef.data.nix.path, -+ srcdef.data.nix.listen ? ",server,nowait" : "") < 0) -+ return -1; -+ break; -+ -+ default: -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ _("unsupported chardev '%s'"), type); -+ return -1; -+ } -+ -+ return 0; -+} -+ -+static int - libxlMakeDomBuildInfo(virDomainObjPtr vm, libxl_domain_config *d_config) - { - virDomainDefPtr def = vm->def; -@@ -411,6 +497,24 @@ libxlMakeDomBuildInfo(virDomainObjPtr vm - if (VIR_STRDUP(b_info->u.hvm.boot, bootorder) < 0) - goto error; - -+ if (def->nserials) { -+ if (def->nserials > 1) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ "%s", -+ _("Only one serial device is supported by libxl")); -+ goto error; -+ } -+ if (libxlMakeChrdevStr(def->serials[0], &b_info->u.hvm.serial) < 0) -+ goto error; -+ } -+ -+ if (def->nparallels) { -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, -+ "%s", -+ _("Parallel devices are not supported by libxl")); -+ goto error; -+ } -+ - /* - * The following comment and calculation were taken directly from - * libxenlight's internal function libxl_get_required_shadow_memory(): -Index: libvirt-1.1.1/src/libxl/libxl_conf.h -=================================================================== ---- libvirt-1.1.1.orig/src/libxl/libxl_conf.h -+++ libvirt-1.1.1/src/libxl/libxl_conf.h -@@ -34,6 +34,7 @@ - # include "configmake.h" - # include "virportallocator.h" - # include "virobject.h" -+# include "virchrdev.h" - - - # define LIBXL_VNC_PORT_MIN 5900 -@@ -94,6 +95,8 @@ struct _libxlDomainObjPrivate { - - /* per domain libxl ctx */ - libxl_ctx *ctx; -+ /* console */ -+ virChrdevsPtr devs; - libxl_evgen_domain_death *deathW; - - /* list of libxl timeout registrations */ -Index: libvirt-1.1.1/src/libxl/libxl_driver.c -=================================================================== ---- libvirt-1.1.1.orig/src/libxl/libxl_driver.c -+++ libvirt-1.1.1/src/libxl/libxl_driver.c -@@ -417,6 +417,9 @@ libxlDomainObjPrivateAlloc(void) - - libxl_osevent_register_hooks(priv->ctx, &libxl_event_callbacks, priv); - -+ if (!(priv->devs = virChrdevAlloc())) -+ return NULL; -+ - return priv; - } - -@@ -428,6 +431,7 @@ libxlDomainObjPrivateDispose(void *obj) - if (priv->deathW) - libxl_evdisable_domain_death(priv->ctx, priv->deathW); - -+ virChrdevFree(priv->devs); - libxl_ctx_free(priv->ctx); - } - -@@ -4502,6 +4506,94 @@ cleanup: - return ret; - } - -+ -+static int -+libxlDomainOpenConsole(virDomainPtr dom, -+ const char *dev_name, -+ virStreamPtr st, -+ unsigned int flags) -+{ -+ libxlDriverPrivatePtr driver = dom->conn->privateData; -+ virDomainObjPtr vm = NULL; -+ int ret = -1; -+ virDomainChrDefPtr chr = NULL; -+ libxlDomainObjPrivatePtr priv; -+ char *console = NULL; -+ -+ virCheckFlags(VIR_DOMAIN_CONSOLE_FORCE, -1); -+ -+ if (dev_name) { -+ /* XXX support device aliases in future */ -+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", -+ _("Named device aliases are not supported")); -+ goto cleanup; -+ } -+ -+ libxlDriverLock(driver); -+ vm = virDomainObjListFindByUUID(driver->domains, dom->uuid); -+ libxlDriverUnlock(driver); -+ if (!vm) { -+ char uuidstr[VIR_UUID_STRING_BUFLEN]; -+ virUUIDFormat(dom->uuid, uuidstr); -+ virReportError(VIR_ERR_NO_DOMAIN, -+ _("No domain with matching uuid '%s'"), uuidstr); -+ goto cleanup; -+ } -+ -+ if (virDomainOpenConsoleEnsureACL(dom->conn, vm->def) < 0) -+ goto cleanup; -+ -+ if (!virDomainObjIsActive(vm)) { -+ virReportError(VIR_ERR_OPERATION_INVALID, -+ "%s", _("domain is not running")); -+ goto cleanup; -+ } -+ -+ priv = vm->privateData; -+ -+ if (vm->def->nserials) -+ chr = vm->def->serials[0]; -+ -+ if (!chr) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("cannot find character device %s"), -+ NULLSTR(dev_name)); -+ goto cleanup; -+ } -+ -+ if (chr->source.type != VIR_DOMAIN_CHR_TYPE_PTY) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("character device %s is not using a PTY"), -+ NULLSTR(dev_name)); -+ goto cleanup; -+ } -+ -+ ret = libxl_primary_console_get_tty(priv->ctx, vm->def->id, &console); -+ if (ret) -+ goto cleanup; -+ -+ if (VIR_STRDUP(chr->source.data.file.path, console) < 0) -+ goto cleanup; -+ -+ /* handle mutually exclusive access to console devices */ -+ ret = virChrdevOpen(priv->devs, -+ &chr->source, -+ st, -+ (flags & VIR_DOMAIN_CONSOLE_FORCE) != 0); -+ -+ if (ret == 1) { -+ virReportError(VIR_ERR_OPERATION_FAILED, "%s", -+ _("Active console session exists for this domain")); -+ ret = -1; -+ } -+ -+cleanup: -+ VIR_FREE(console); -+ if (vm) -+ virObjectUnlock(vm); -+ return ret; -+} -+ - static int - libxlDomainSetSchedulerParameters(virDomainPtr dom, virTypedParameterPtr params, - int nparams) -@@ -4884,6 +4976,7 @@ static virDriver libxlDriver = { - .domainManagedSave = libxlDomainManagedSave, /* 0.9.2 */ - .domainHasManagedSaveImage = libxlDomainHasManagedSaveImage, /* 0.9.2 */ - .domainManagedSaveRemove = libxlDomainManagedSaveRemove, /* 0.9.2 */ -+ .domainOpenConsole = libxlDomainOpenConsole, /* 1.1.2 */ - .domainIsActive = libxlDomainIsActive, /* 0.9.0 */ - .domainIsPersistent = libxlDomainIsPersistent, /* 0.9.0 */ - .domainIsUpdated = libxlDomainIsUpdated, /* 0.9.0 */ diff --git a/clone.patch b/clone.patch index b92e40a..033ad0c 100644 --- a/clone.patch +++ b/clone.patch @@ -32,7 +32,7 @@ Index: src/lxc/lxc_container.c VIR_FREE(stack); if (cpid < 0) { virReportSystemError(errno, "%s", -@@ -1879,7 +1887,11 @@ int lxcContainerStart(virDomainDefPtr de +@@ -1893,7 +1901,11 @@ int lxcContainerStart(virDomainDefPtr de cflags |= CLONE_NEWNET; } @@ -44,7 +44,7 @@ Index: src/lxc/lxc_container.c VIR_FREE(stack); VIR_DEBUG("clone() completed, new container PID is %d", pid); -@@ -1905,6 +1917,7 @@ int lxcContainerAvailable(int features) +@@ -1919,6 +1931,7 @@ int lxcContainerAvailable(int features) int cpid; char *childStack; char *stack; @@ -52,7 +52,7 @@ Index: src/lxc/lxc_container.c if (features & LXC_CONTAINER_FEATURE_USER) flags |= CLONE_NEWUSER; -@@ -1912,14 +1925,21 @@ int lxcContainerAvailable(int features) +@@ -1926,14 +1939,21 @@ int lxcContainerAvailable(int features) if (features & LXC_CONTAINER_FEATURE_NET) flags |= CLONE_NEWNET; diff --git a/d7a45bf2-legacy-xen-dumpxml.patch b/d7a45bf2-legacy-xen-dumpxml.patch deleted file mode 100644 index d4ea3aa..0000000 --- a/d7a45bf2-legacy-xen-dumpxml.patch +++ /dev/null @@ -1,238 +0,0 @@ -commit d7a45bf22368161869963b92a0a1d5599590fdf5 -Author: Stefan Bader -Date: Tue Aug 6 12:28:58 2013 +0100 - - xen: Use internal interfaces in xenDomainUsedCpus - - Since commit 95e18efd most public interfaces (xenUnified...) obtain - a virDomainDefPtr via xenGetDomainDefFor...() which take the unified - lock. - This is already taken before calling xenDomainUsedCpus(), so we get - a deadlock for active guests. Avoid this by splitting up - xenUnifiedDomainGetVcpusFlags() and xenUnifiedDomainGetVcpus() into - public and private function calls (which get the virDomainDefPtr passed) - and use those in xenDomainUsedCpus(). - - xenDomainUsedCpus - ... - nb_vcpu = xenUnifiedDomainGetMaxVcpus(dom); - return xenUnifiedDomainGetVcpusFlags(...) - ... - if (!(def = xenGetDomainDefForDom(dom))) - return xenGetDomainDefForUUID(dom->conn, dom->uuid); - ... - ret = xenHypervisorLookupDomainByUUID(conn, uuid); - ... - xenUnifiedLock(priv); - name = xenStoreDomainGetName(conn, id); - xenUnifiedUnlock(priv); - ... - if ((ncpus = xenUnifiedDomainGetVcpus(dom, cpuinfo, nb_vcpu, - ... - if (!(def = xenGetDomainDefForDom(dom))) - [again like above] - - Signed-off-by: Stefan Bader - -Index: libvirt-1.1.1/src/xen/xen_driver.c -=================================================================== ---- libvirt-1.1.1.orig/src/xen/xen_driver.c -+++ libvirt-1.1.1/src/xen/xen_driver.c -@@ -73,12 +73,19 @@ - - static int - xenUnifiedNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info); -+ - static int --xenUnifiedDomainGetMaxVcpus(virDomainPtr dom); -+xenUnifiedDomainGetVcpusFlagsInternal(virDomainPtr dom, -+ virDomainDefPtr def, -+ unsigned int flags); -+ - static int --xenUnifiedDomainGetVcpus(virDomainPtr dom, -- virVcpuInfoPtr info, int maxinfo, -- unsigned char *cpumaps, int maplen); -+xenUnifiedDomainGetVcpusInternal(virDomainPtr dom, -+ virDomainDefPtr def, -+ virVcpuInfoPtr info, -+ int maxinfo, -+ unsigned char *cpumaps, -+ int maplen); - - - static bool is_privileged = false; -@@ -173,6 +180,7 @@ xenNumaInit(virConnectPtr conn) { - /** - * xenDomainUsedCpus: - * @dom: the domain -+ * @def: the domain definition - * - * Analyze which set of CPUs are used by the domain and - * return a string providing the ranges. -@@ -181,7 +189,7 @@ xenNumaInit(virConnectPtr conn) { - * NULL if the domain uses all CPU or in case of error. - */ - char * --xenDomainUsedCpus(virDomainPtr dom) -+xenDomainUsedCpus(virDomainPtr dom, virDomainDefPtr def) - { - char *res = NULL; - int ncpus; -@@ -202,7 +210,9 @@ xenDomainUsedCpus(virDomainPtr dom) - - if (priv->nbNodeCpus <= 0) - return NULL; -- nb_vcpu = xenUnifiedDomainGetMaxVcpus(dom); -+ nb_vcpu = xenUnifiedDomainGetVcpusFlagsInternal(dom, def, -+ (VIR_DOMAIN_VCPU_LIVE | -+ VIR_DOMAIN_VCPU_MAXIMUM)); - if (nb_vcpu <= 0) - return NULL; - if (xenUnifiedNodeGetInfo(dom->conn, &nodeinfo) < 0) -@@ -217,8 +227,8 @@ xenDomainUsedCpus(virDomainPtr dom) - VIR_ALLOC_N(cpumap, nb_vcpu * cpumaplen) < 0) - goto done; - -- if ((ncpus = xenUnifiedDomainGetVcpus(dom, cpuinfo, nb_vcpu, -- cpumap, cpumaplen)) >= 0) { -+ if ((ncpus = xenUnifiedDomainGetVcpusInternal(dom, def, cpuinfo, nb_vcpu, -+ cpumap, cpumaplen)) >= 0) { - for (n = 0; n < ncpus; n++) { - for (m = 0; m < priv->nbNodeCpus; m++) { - bool used; -@@ -1416,54 +1426,62 @@ cleanup: - } - - static int --xenUnifiedDomainGetVcpus(virDomainPtr dom, -- virVcpuInfoPtr info, int maxinfo, -- unsigned char *cpumaps, int maplen) -+xenUnifiedDomainGetVcpusInternal(virDomainPtr dom, -+ virDomainDefPtr def, -+ virVcpuInfoPtr info, -+ int maxinfo, -+ unsigned char *cpumaps, -+ int maplen) - { - xenUnifiedPrivatePtr priv = dom->conn->privateData; -- virDomainDefPtr def = NULL; - int ret = -1; - -- if (!(def = xenGetDomainDefForDom(dom))) -- goto cleanup; -- -- if (virDomainGetVcpusEnsureACL(dom->conn, def) < 0) -- goto cleanup; -- - if (dom->id < 0) { - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Cannot get VCPUs of inactive domain")); -- goto cleanup; - } else { -- ret = xenDaemonDomainGetVcpus(dom->conn, def, info, maxinfo, cpumaps, maplen); -+ ret = xenDaemonDomainGetVcpus(dom->conn, def, info, maxinfo, -+ cpumaps, maplen); - } - } else { -- ret = xenHypervisorGetVcpus(dom->conn, def, info, maxinfo, cpumaps, maplen); -+ ret = xenHypervisorGetVcpus(dom->conn, def, info, maxinfo, cpumaps, -+ maplen); - } - --cleanup: -- virDomainDefFree(def); - return ret; - } - - static int --xenUnifiedDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags) -+xenUnifiedDomainGetVcpus(virDomainPtr dom, -+ virVcpuInfoPtr info, int maxinfo, -+ unsigned char *cpumaps, int maplen) - { -- xenUnifiedPrivatePtr priv = dom->conn->privateData; - virDomainDefPtr def = NULL; - int ret = -1; - -- virCheckFlags(VIR_DOMAIN_VCPU_LIVE | -- VIR_DOMAIN_VCPU_CONFIG | -- VIR_DOMAIN_VCPU_MAXIMUM, -1); -- - if (!(def = xenGetDomainDefForDom(dom))) - goto cleanup; - -- if (virDomainGetVcpusFlagsEnsureACL(dom->conn, def) < 0) -+ if (virDomainGetVcpusEnsureACL(dom->conn, def) < 0) - goto cleanup; - -+ ret = xenUnifiedDomainGetVcpusInternal(dom, def, info, maxinfo, cpumaps, -+ maplen); -+ -+cleanup: -+ virDomainDefFree(def); -+ return ret; -+} -+ -+static int -+xenUnifiedDomainGetVcpusFlagsInternal(virDomainPtr dom, -+ virDomainDefPtr def, -+ unsigned int flags) -+{ -+ xenUnifiedPrivatePtr priv = dom->conn->privateData; -+ int ret = -1; -+ - if (dom->id < 0) { - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) - ret = xenXMDomainGetVcpusFlags(dom->conn, def, flags); -@@ -1476,6 +1494,27 @@ xenUnifiedDomainGetVcpusFlags(virDomainP - ret = xenDaemonDomainGetVcpusFlags(dom->conn, def, flags); - } - -+ return ret; -+} -+ -+static int -+xenUnifiedDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags) -+{ -+ virDomainDefPtr def = NULL; -+ int ret = -1; -+ -+ virCheckFlags(VIR_DOMAIN_VCPU_LIVE | -+ VIR_DOMAIN_VCPU_CONFIG | -+ VIR_DOMAIN_VCPU_MAXIMUM, -1); -+ -+ if (!(def = xenGetDomainDefForDom(dom))) -+ goto cleanup; -+ -+ if (virDomainGetVcpusFlagsEnsureACL(dom->conn, def) < 0) -+ goto cleanup; -+ -+ ret = xenUnifiedDomainGetVcpusFlagsInternal(dom, def, flags); -+ - cleanup: - virDomainDefFree(def); - return ret; -@@ -1507,7 +1546,7 @@ xenUnifiedDomainGetXMLDesc(virDomainPtr - } else { - char *cpus; - xenUnifiedLock(priv); -- cpus = xenDomainUsedCpus(dom); -+ cpus = xenDomainUsedCpus(dom, minidef); - xenUnifiedUnlock(priv); - def = xenDaemonDomainGetXMLDesc(dom->conn, minidef, cpus); - VIR_FREE(cpus); -Index: libvirt-1.1.1/src/xen/xen_driver.h -=================================================================== ---- libvirt-1.1.1.orig/src/xen/xen_driver.h -+++ libvirt-1.1.1/src/xen/xen_driver.h -@@ -187,7 +187,7 @@ struct _xenUnifiedPrivate { - - typedef struct _xenUnifiedPrivate *xenUnifiedPrivatePtr; - --char *xenDomainUsedCpus(virDomainPtr dom); -+char *xenDomainUsedCpus(virDomainPtr dom, virDomainDefPtr def); - - virDomainXMLOptionPtr xenDomainXMLConfInit(void); - diff --git a/fix-pci-attach-xen-driver.patch b/fix-pci-attach-xen-driver.patch index 6eb5ef7..b010e3b 100644 --- a/fix-pci-attach-xen-driver.patch +++ b/fix-pci-attach-xen-driver.patch @@ -8,10 +8,10 @@ uses the 'device_configure' RPC. This patch changes the xend driver to always call 'device_configure' for PCI devices to be consistent with the usage in the xen tools. -Index: libvirt-1.1.1/src/xen/xend_internal.c +Index: libvirt-1.1.2/src/xen/xend_internal.c =================================================================== ---- libvirt-1.1.1.orig/src/xen/xend_internal.c -+++ libvirt-1.1.1/src/xen/xend_internal.c +--- libvirt-1.1.2.orig/src/xen/xend_internal.c ++++ libvirt-1.1.2/src/xen/xend_internal.c @@ -2206,6 +2206,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr virBuffer buf = VIR_BUFFER_INITIALIZER; char class[8], ref[80]; diff --git a/install-apparmor-profiles.patch b/install-apparmor-profiles.patch index 84d6abb..1cc53e2 100644 --- a/install-apparmor-profiles.patch +++ b/install-apparmor-profiles.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.1/examples/apparmor/Makefile.am +Index: libvirt-1.1.2/examples/apparmor/Makefile.am =================================================================== ---- libvirt-1.1.1.orig/examples/apparmor/Makefile.am -+++ libvirt-1.1.1/examples/apparmor/Makefile.am +--- libvirt-1.1.2.orig/examples/apparmor/Makefile.am ++++ libvirt-1.1.2/examples/apparmor/Makefile.am @@ -14,8 +14,45 @@ ## License along with this library. If not, see ## . @@ -53,10 +53,10 @@ Index: libvirt-1.1.1/examples/apparmor/Makefile.am + rm -f $(DESTDIR)$(sysconfdir)/apparmor.d/libvirt/TEMPLATE + +endif -Index: libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in +Index: libvirt-1.1.2/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in =================================================================== --- /dev/null -+++ libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in ++++ libvirt-1.1.2/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in @@ -0,0 +1,40 @@ +# Last Modified: Fri Aug 19 11:21:48 2011 +#include @@ -98,9 +98,9 @@ Index: libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in + /var/lib/kvm/images/ r, + /var/lib/kvm/images/** r, +} -Index: libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper +Index: libvirt-1.1.2/examples/apparmor/usr.lib.libvirt.virt-aa-helper =================================================================== ---- libvirt-1.1.1.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +--- libvirt-1.1.2.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +++ /dev/null @@ -1,38 +0,0 @@ -# Last Modified: Mon Apr 5 15:10:27 2010 @@ -141,9 +141,9 @@ Index: libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper - /var/lib/libvirt/images/ r, - /var/lib/libvirt/images/** r, -} -Index: libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd +Index: libvirt-1.1.2/examples/apparmor/usr.sbin.libvirtd =================================================================== ---- libvirt-1.1.1.orig/examples/apparmor/usr.sbin.libvirtd +--- libvirt-1.1.2.orig/examples/apparmor/usr.sbin.libvirtd +++ /dev/null @@ -1,52 +0,0 @@ -# Last Modified: Mon Apr 5 15:03:58 2010 @@ -198,10 +198,10 @@ Index: libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd - change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*, - -} -Index: libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd.in +Index: libvirt-1.1.2/examples/apparmor/usr.sbin.libvirtd.in =================================================================== --- /dev/null -+++ libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd.in ++++ libvirt-1.1.2/examples/apparmor/usr.sbin.libvirtd.in @@ -0,0 +1,58 @@ +# Last Modified: Fri Aug 19 11:20:36 2011 +#include @@ -261,9 +261,9 @@ Index: libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd.in + change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*, + +} -Index: libvirt-1.1.1/examples/apparmor/libvirt-qemu +Index: libvirt-1.1.2/examples/apparmor/libvirt-qemu =================================================================== ---- libvirt-1.1.1.orig/examples/apparmor/libvirt-qemu +--- libvirt-1.1.2.orig/examples/apparmor/libvirt-qemu +++ /dev/null @@ -1,129 +0,0 @@ -# Last Modified: Fri Mar 9 14:43:22 2012 @@ -395,10 +395,10 @@ Index: libvirt-1.1.1/examples/apparmor/libvirt-qemu - - /usr/libexec/qemu-bridge-helper rmix, - } -Index: libvirt-1.1.1/examples/apparmor/libvirt-qemu.in +Index: libvirt-1.1.2/examples/apparmor/libvirt-qemu.in =================================================================== --- /dev/null -+++ libvirt-1.1.1/examples/apparmor/libvirt-qemu.in ++++ libvirt-1.1.2/examples/apparmor/libvirt-qemu.in @@ -0,0 +1,132 @@ +# Last Modified: Fri Mar 9 14:43:22 2012 + diff --git a/libvirt-1.1.1.tar.bz2 b/libvirt-1.1.1.tar.bz2 deleted file mode 100644 index b7bfa02..0000000 --- a/libvirt-1.1.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40d275e6bf3ffc7acec330458fc59f7ff2144327210690fd6f9ac9eccfee6396 -size 18261281 diff --git a/libvirt-1.1.2.tar.bz2 b/libvirt-1.1.2.tar.bz2 new file mode 100644 index 0000000..c7e7877 --- /dev/null +++ b/libvirt-1.1.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aa2fd6d2e7737323c846092cb2f8bf95e0b622c570b29ee4060eed634409cf4 +size 18774400 diff --git a/libvirt-guests-init-script.patch b/libvirt-guests-init-script.patch index 493a431..6c8970a 100644 --- a/libvirt-guests-init-script.patch +++ b/libvirt-guests-init-script.patch @@ -1,9 +1,9 @@ Adjust libvirt-guests init files to conform to SUSE standards -Index: libvirt-1.1.1/tools/libvirt-guests.init.in +Index: libvirt-1.1.2/tools/libvirt-guests.init.in =================================================================== ---- libvirt-1.1.1.orig/tools/libvirt-guests.init.in -+++ libvirt-1.1.1/tools/libvirt-guests.init.in +--- libvirt-1.1.2.orig/tools/libvirt-guests.init.in ++++ libvirt-1.1.2/tools/libvirt-guests.init.in @@ -3,15 +3,15 @@ # the following is the LSB init header # @@ -28,10 +28,10 @@ Index: libvirt-1.1.1/tools/libvirt-guests.init.in ### END INIT INFO # the following is chkconfig init header -Index: libvirt-1.1.1/tools/libvirt-guests.sh.in +Index: libvirt-1.1.2/tools/libvirt-guests.sh.in =================================================================== ---- libvirt-1.1.1.orig/tools/libvirt-guests.sh.in -+++ libvirt-1.1.1/tools/libvirt-guests.sh.in +--- libvirt-1.1.2.orig/tools/libvirt-guests.sh.in ++++ libvirt-1.1.2/tools/libvirt-guests.sh.in @@ -16,14 +16,13 @@ # License along with this library. If not, see # . @@ -189,10 +189,10 @@ Index: libvirt-1.1.1/tools/libvirt-guests.sh.in esac -exit $RETVAL +rc_exit -Index: libvirt-1.1.1/tools/libvirt-guests.sysconf +Index: libvirt-1.1.2/tools/libvirt-guests.sysconf =================================================================== ---- libvirt-1.1.1.orig/tools/libvirt-guests.sysconf -+++ libvirt-1.1.1/tools/libvirt-guests.sysconf +--- libvirt-1.1.2.orig/tools/libvirt-guests.sysconf ++++ libvirt-1.1.2/tools/libvirt-guests.sysconf @@ -1,19 +1,29 @@ +## Path: System/Virtualization/libvirt-guests + diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch index dabeb2d..5351e25 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -1,8 +1,8 @@ -Index: libvirt-1.1.1/configure.ac +Index: libvirt-1.1.2/configure.ac =================================================================== ---- libvirt-1.1.1.orig/configure.ac -+++ libvirt-1.1.1/configure.ac -@@ -172,6 +172,7 @@ LIBVIRT_CHECK_DBUS +--- libvirt-1.1.2.orig/configure.ac ++++ libvirt-1.1.2/configure.ac +@@ -173,6 +173,7 @@ LIBVIRT_CHECK_DBUS LIBVIRT_CHECK_FUSE LIBVIRT_CHECK_HAL LIBVIRT_CHECK_NETCF @@ -10,7 +10,7 @@ Index: libvirt-1.1.1/configure.ac LIBVIRT_CHECK_NUMACTL LIBVIRT_CHECK_OPENWSMAN LIBVIRT_CHECK_PCIACCESS -@@ -2226,11 +2227,12 @@ if test "$with_libvirtd" = "no" ; then +@@ -2288,11 +2289,12 @@ if test "$with_libvirtd" = "no" ; then with_interface=no fi @@ -26,7 +26,7 @@ Index: libvirt-1.1.1/configure.ac esac if test "$with_interface" = "yes" ; then -@@ -2527,6 +2529,7 @@ LIBVIRT_RESULT_DBUS +@@ -2600,6 +2602,7 @@ LIBVIRT_RESULT_DBUS LIBVIRT_RESULT_FUSE LIBVIRT_RESULT_HAL LIBVIRT_RESULT_NETCF @@ -34,11 +34,11 @@ Index: libvirt-1.1.1/configure.ac LIBVIRT_RESULT_NUMACTL LIBVIRT_RESULT_OPENWSMAN LIBVIRT_RESULT_PCIACCESS -Index: libvirt-1.1.1/src/Makefile.am +Index: libvirt-1.1.2/src/Makefile.am =================================================================== ---- libvirt-1.1.1.orig/src/Makefile.am -+++ libvirt-1.1.1/src/Makefile.am -@@ -741,6 +741,10 @@ if WITH_NETCF +--- libvirt-1.1.2.orig/src/Makefile.am ++++ libvirt-1.1.2/src/Makefile.am +@@ -750,6 +750,10 @@ if WITH_NETCF INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_netcf.c endif @@ -49,7 +49,7 @@ Index: libvirt-1.1.1/src/Makefile.am if WITH_UDEV INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_udev.c -@@ -1293,11 +1297,16 @@ if WITH_NETCF +@@ -1310,11 +1314,16 @@ if WITH_NETCF libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS) libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS) else @@ -66,11 +66,11 @@ Index: libvirt-1.1.1/src/Makefile.am if WITH_DRIVER_MODULES libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la libvirt_driver_interface_la_LDFLAGS += -module -avoid-version -Index: libvirt-1.1.1/tools/virsh.c +Index: libvirt-1.1.2/tools/virsh.c =================================================================== ---- libvirt-1.1.1.orig/tools/virsh.c -+++ libvirt-1.1.1/tools/virsh.c -@@ -2882,6 +2882,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE +--- libvirt-1.1.2.orig/tools/virsh.c ++++ libvirt-1.1.2/tools/virsh.c +@@ -2864,6 +2864,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE vshPrint(ctl, " Interface"); # if defined(WITH_NETCF) vshPrint(ctl, " netcf"); @@ -79,10 +79,10 @@ Index: libvirt-1.1.1/tools/virsh.c # elif defined(WITH_UDEV) vshPrint(ctl, " udev"); # endif -Index: libvirt-1.1.1/src/interface/interface_backend_netcf.c +Index: libvirt-1.1.2/src/interface/interface_backend_netcf.c =================================================================== ---- libvirt-1.1.1.orig/src/interface/interface_backend_netcf.c -+++ libvirt-1.1.1/src/interface/interface_backend_netcf.c +--- libvirt-1.1.2.orig/src/interface/interface_backend_netcf.c ++++ libvirt-1.1.2/src/interface/interface_backend_netcf.c @@ -23,7 +23,12 @@ #include @@ -147,10 +147,10 @@ Index: libvirt-1.1.1/src/interface/interface_backend_netcf.c /* open netcf */ if (ncf_init(&driverState->netcf, NULL) != 0) { -Index: libvirt-1.1.1/src/interface/interface_driver.c +Index: libvirt-1.1.2/src/interface/interface_driver.c =================================================================== ---- libvirt-1.1.1.orig/src/interface/interface_driver.c -+++ libvirt-1.1.1/src/interface/interface_driver.c +--- libvirt-1.1.2.orig/src/interface/interface_driver.c ++++ libvirt-1.1.2/src/interface/interface_driver.c @@ -28,8 +28,15 @@ interfaceRegister(void) { if (netcfIfaceRegister() == 0) return 0; @@ -168,10 +168,10 @@ Index: libvirt-1.1.1/src/interface/interface_driver.c if (udevIfaceRegister() == 0) return 0; #endif /* WITH_UDEV */ -Index: libvirt-1.1.1/m4/virt-netcontrol.m4 +Index: libvirt-1.1.2/m4/virt-netcontrol.m4 =================================================================== --- /dev/null -+++ libvirt-1.1.1/m4/virt-netcontrol.m4 ++++ libvirt-1.1.2/m4/virt-netcontrol.m4 @@ -0,0 +1,35 @@ +dnl The libnetcontrol library +dnl diff --git a/libvirt.changes b/libvirt.changes index 411751e..bb64e29 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Sep 3 11:04:45 MDT 2013 - jfehlig@suse.com + +- Update to libvirt 1.1.2 + - various improvements to libxl driver + - systemd integration improvements + - Add flag to BaselineCPU API to return detailed CPU features + - Introduce a virt-login-shell binary + - conf: add startupPolicy attribute for harddisk + - Many incremental improvements and bug fixes, see + http://libvirt.org/news.html + - Drop upstream patches: bcef0f01-libxl-console.patch, + 9d0557b9-legacy-xen-double-free.patch, + d7a45bf2-legacy-xen-dumpxml.patch, 0e671a16-CVE-2013-4239.patch + - Includes fixes for bnc#837530, bnc#837531, bnc#837999 + ------------------------------------------------------------------- Tue Aug 13 10:47:37 MDT 2013 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index 041c133..8922ff4 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -225,7 +225,7 @@ Name: libvirt Url: http://libvirt.org/ -Version: 1.1.1 +Version: 1.1.2 Release: 0 Summary: Library providing a simple virtualization API License: LGPL-2.1+ @@ -404,10 +404,6 @@ Source1: libvirtd.init Source2: libvirtd-relocation-server.fw Source99: baselibs.conf # Upstream patches -Patch0: bcef0f01-libxl-console.patch -Patch1: 9d0557b9-legacy-xen-double-free.patch -Patch2: d7a45bf2-legacy-xen-dumpxml.patch -Patch3: 0e671a16-CVE-2013-4239.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch101: clone.patch @@ -906,10 +902,6 @@ of recent versions of Linux (and other OSes). %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 %patch100 -p1 %patch101 %patch102 -p1 @@ -1369,11 +1361,14 @@ fi %endif %config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd +%config(noreplace) %{_sysconfdir}/libvirt/virtlockd.conf %dir %{_datadir}/augeas/ %dir %{_datadir}/augeas/lenses %dir %{_datadir}/augeas/lenses/tests %{_datadir}/augeas/lenses/libvirtd.aug %{_datadir}/augeas/lenses/tests/test_libvirtd.aug +%{_datadir}/augeas/lenses/virtlockd.aug +%{_datadir}/augeas/lenses/tests/test_virtlockd.aug %{_datadir}/augeas/lenses/libvirt_lockd.aug %{_datadir}/augeas/lenses/tests/test_libvirt_lockd.aug %if %{with_dtrace} @@ -1401,6 +1396,8 @@ fi %config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.qemu %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/ %dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/ +%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/ +%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/ %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/ %{_datadir}/augeas/lenses/libvirtd_qemu.aug %{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug @@ -1428,6 +1425,7 @@ fi %endif %attr(0755, root, root) %{_libdir}/%{name}/libvirt_iohelper %doc %{_mandir}/man8/libvirtd.8* +%{_mandir}/man8/virtlockd.8* %if %{with_apparmor} %dir %{_sysconfdir}/apparmor.d %dir %{_sysconfdir}/apparmor.d/abstractions @@ -1584,11 +1582,17 @@ fi %doc %{_mandir}/man1/virt-xml-validate.1* %doc %{_mandir}/man1/virt-pki-validate.1* %doc %{_mandir}/man1/virt-host-validate.1* +%doc %{_mandir}/man1/virt-login-shell.1* %config(noreplace) %{_sysconfdir}/%{name}/libvirt.conf +%config(noreplace) %{_sysconfdir}/libvirt/virt-login-shell.conf %{_bindir}/virsh %{_bindir}/virt-xml-validate %{_bindir}/virt-pki-validate %{_bindir}/virt-host-validate +# setuid binary that needs security audit - bnc#837609 +# In the meantime, don't install setuid +#%attr(4755, root, root) %{_bindir}/virt-login-shell +%{_bindir}/virt-login-shell %dir %{_libdir}/%{name} %{_libdir}/lib*.so.* %attr(0755, root, root) %{_libdir}/%{name}/libvirt-guests.sh @@ -1676,7 +1680,6 @@ fi %{py_sitedir}/libvirt_qemu.py* %{py_sitedir}/libvirt_lxc.py* %{py_sitedir}/libvirtmod* -%doc python/tests/*.py %doc examples/python %doc examples/domain-events/events-python %endif diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index 642823a..cf61b17 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.1/daemon/libvirtd.conf +Index: libvirt-1.1.2/daemon/libvirtd.conf =================================================================== ---- libvirt-1.1.1.orig/daemon/libvirtd.conf -+++ libvirt-1.1.1/daemon/libvirtd.conf +--- libvirt-1.1.2.orig/daemon/libvirtd.conf ++++ libvirt-1.1.2/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.1.1/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.1.1/daemon/libvirtd-config.c +Index: libvirt-1.1.2/daemon/libvirtd-config.c =================================================================== ---- libvirt-1.1.1.orig/daemon/libvirtd-config.c -+++ libvirt-1.1.1/daemon/libvirtd-config.c +--- libvirt-1.1.2.orig/daemon/libvirtd-config.c ++++ libvirt-1.1.2/daemon/libvirtd-config.c @@ -222,7 +222,7 @@ daemonConfigNew(bool privileged ATTRIBUT if (VIR_ALLOC(data) < 0) return NULL; diff --git a/libvirtd-init-script.patch b/libvirtd-init-script.patch index 3b8e1e1..810fba9 100644 --- a/libvirtd-init-script.patch +++ b/libvirtd-init-script.patch @@ -1,9 +1,9 @@ Adjust libvirtd sysconfig file to conform to SUSE standards -Index: libvirt-1.1.1/daemon/libvirtd.sysconf +Index: libvirt-1.1.2/daemon/libvirtd.sysconf =================================================================== ---- libvirt-1.1.1.orig/daemon/libvirtd.sysconf -+++ libvirt-1.1.1/daemon/libvirtd.sysconf +--- libvirt-1.1.2.orig/daemon/libvirtd.sysconf ++++ libvirt-1.1.2/daemon/libvirtd.sysconf @@ -1,16 +1,25 @@ +## Path: System/Virtualization/libvirt + diff --git a/support-managed-pci-xen-driver.patch b/support-managed-pci-xen-driver.patch index e800294..fd1ebe4 100644 --- a/support-managed-pci-xen-driver.patch +++ b/support-managed-pci-xen-driver.patch @@ -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.1.1/src/xenxs/xen_sxpr.c +Index: libvirt-1.1.2/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-1.1.1.orig/src/xenxs/xen_sxpr.c -+++ libvirt-1.1.1/src/xenxs/xen_sxpr.c +--- libvirt-1.1.2.orig/src/xenxs/xen_sxpr.c ++++ libvirt-1.1.2/src/xenxs/xen_sxpr.c @@ -993,6 +993,7 @@ xenParseSxprPCI(virDomainDefPtr def, int busID; int slotID; @@ -35,7 +35,7 @@ Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI; dev->source.subsys.u.pci.addr.domain = domainID; dev->source.subsys.u.pci.addr.bus = busID; -@@ -1993,11 +1996,15 @@ static void +@@ -1990,11 +1993,15 @@ static void xenFormatSxprPCI(virDomainHostdevDefPtr def, virBufferPtr buf) { @@ -52,7 +52,7 @@ Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c } -@@ -2016,12 +2023,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP +@@ -2013,12 +2020,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP virBufferPtr buf, int detach) { @@ -65,7 +65,7 @@ Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c virBufferAddLit(buf, "(pci "); xenFormatSxprPCI(def, buf); if (detach) -@@ -2076,12 +2077,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def, +@@ -2073,12 +2074,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def, for (i = 0; i < def->nhostdevs; i++) { if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { @@ -78,10 +78,10 @@ Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c xenFormatSxprPCI(def->hostdevs[i], buf); } } -Index: libvirt-1.1.1/src/xenxs/xen_xm.c +Index: libvirt-1.1.2/src/xenxs/xen_xm.c =================================================================== ---- libvirt-1.1.1.orig/src/xenxs/xen_xm.c -+++ libvirt-1.1.1/src/xenxs/xen_xm.c +--- libvirt-1.1.2.orig/src/xenxs/xen_xm.c ++++ libvirt-1.1.2/src/xenxs/xen_xm.c @@ -802,6 +802,8 @@ xenParseXM(virConfPtr conf, int xendConf int busID; int slotID; diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index 00a7cdd..d2f5ac9 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.1/src/qemu/qemu.conf +Index: libvirt-1.1.2/src/qemu/qemu.conf =================================================================== ---- libvirt-1.1.1.orig/src/qemu/qemu.conf -+++ libvirt-1.1.1/src/qemu/qemu.conf +--- libvirt-1.1.2.orig/src/qemu/qemu.conf ++++ libvirt-1.1.2/src/qemu/qemu.conf @@ -175,7 +175,16 @@ # a special value; security_driver can be set to that value in # isolation, but it cannot appear in a list of drivers. diff --git a/systemd-service-xen.patch b/systemd-service-xen.patch index 8782b13..4319f9d 100644 --- a/systemd-service-xen.patch +++ b/systemd-service-xen.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.1/daemon/libvirtd.service.in +Index: libvirt-1.1.2/daemon/libvirtd.service.in =================================================================== ---- libvirt-1.1.1.orig/daemon/libvirtd.service.in -+++ libvirt-1.1.1/daemon/libvirtd.service.in +--- libvirt-1.1.2.orig/daemon/libvirtd.service.in ++++ libvirt-1.1.2/daemon/libvirtd.service.in @@ -9,6 +9,8 @@ Before=libvirt-guests.service After=network.target After=dbus.service diff --git a/virtlockd-init-script.patch b/virtlockd-init-script.patch index 10e06dd..c3a9a26 100644 --- a/virtlockd-init-script.patch +++ b/virtlockd-init-script.patch @@ -1,9 +1,9 @@ Adjust virtlockd init files to conform to SUSE standards -Index: libvirt-1.1.1/src/locking/virtlockd.sysconf +Index: libvirt-1.1.2/src/locking/virtlockd.sysconf =================================================================== ---- libvirt-1.1.1.orig/src/locking/virtlockd.sysconf -+++ libvirt-1.1.1/src/locking/virtlockd.sysconf +--- libvirt-1.1.2.orig/src/locking/virtlockd.sysconf ++++ libvirt-1.1.2/src/locking/virtlockd.sysconf @@ -1,3 +1,7 @@ +## Path: System/Virtualization/virtlockd + @@ -12,10 +12,10 @@ Index: libvirt-1.1.1/src/locking/virtlockd.sysconf # # Pass extra arguments to virtlockd #VIRTLOCKD_ARGS= -Index: libvirt-1.1.1/src/locking/virtlockd.init.in +Index: libvirt-1.1.2/src/locking/virtlockd.init.in =================================================================== ---- libvirt-1.1.1.orig/src/locking/virtlockd.init.in -+++ libvirt-1.1.1/src/locking/virtlockd.init.in +--- libvirt-1.1.2.orig/src/locking/virtlockd.init.in ++++ libvirt-1.1.2/src/locking/virtlockd.init.in @@ -4,11 +4,13 @@ # http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV # @@ -34,7 +34,7 @@ Index: libvirt-1.1.1/src/locking/virtlockd.init.in ### END INIT INFO # the following is chkconfig init header -@@ -23,35 +25,39 @@ +@@ -23,35 +25,31 @@ # pidfile: @localstatedir@/run/libvirt/virtlockd.pid # @@ -53,12 +53,7 @@ Index: libvirt-1.1.1/src/locking/virtlockd.init.in test -f @sysconfdir@/sysconfig/virtlockd && . @sysconfdir@/sysconfig/virtlockd -RETVAL=0 -+if [ -d @localstatedir@/lock/subsys ]; then -+ VAR_SUBSYS_VIRTLOCKD=@localstatedir@/lock/subsys/$SERVICE -+else -+ VAR_SUBSYS_VIRTLOCKD=@localstatedir@/lock/$SERVICE -+fi - +- start() { - echo -n $"Starting $SERVICE daemon: " - daemon --pidfile $PIDFILE --check $SERVICE $PROCESS --daemon $VIRTLOCKD_ARGS @@ -68,7 +63,6 @@ Index: libvirt-1.1.1/src/locking/virtlockd.init.in - echo - [ $RETVAL -eq 0 ] && touch @localstatedir@/lock/subsys/$SERVICE + rc_status -v -+ [ $RETVAL -eq 0 ] && touch $VAR_SUBSYS_VIRTLOCKD } stop() { @@ -82,11 +76,10 @@ Index: libvirt-1.1.1/src/locking/virtlockd.init.in + rc_status -v if [ $RETVAL -eq 0 ]; then - rm -f @localstatedir@/lock/subsys/$SERVICE -+ rm -f $VAR_SUBSYS_VIRTLOCKD rm -f $PIDFILE fi } -@@ -65,9 +71,7 @@ reload() { +@@ -65,9 +63,7 @@ reload() { echo -n $"Reloading $SERVICE configuration: " killproc -p $PIDFILE $PROCESS -HUP @@ -97,7 +90,7 @@ Index: libvirt-1.1.1/src/locking/virtlockd.init.in } # See how we were called. -@@ -76,18 +80,20 @@ case "$1" in +@@ -76,18 +72,20 @@ case "$1" in $1 ;; status) @@ -112,7 +105,7 @@ Index: libvirt-1.1.1/src/locking/virtlockd.init.in ;; condrestart|try-restart) - [ -f @localstatedir@/lock/subsys/$SERVICE ] && restart || : -+ [ -f $VAR_SUBSYS_VIRTLOCKD ] && restart || : ++ status >/dev/null && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload|try-restart}" diff --git a/xen-name-for-devid.patch b/xen-name-for-devid.patch index 581667c..fd635ee 100644 --- a/xen-name-for-devid.patch +++ b/xen-name-for-devid.patch @@ -14,10 +14,10 @@ is inactive. We obviously can't search xenstore when the domain is inactive. -Index: libvirt-1.1.1/src/xen/xend_internal.c +Index: libvirt-1.1.2/src/xen/xend_internal.c =================================================================== ---- libvirt-1.1.1.orig/src/xen/xend_internal.c -+++ libvirt-1.1.1/src/xen/xend_internal.c +--- libvirt-1.1.2.orig/src/xen/xend_internal.c ++++ libvirt-1.1.2/src/xen/xend_internal.c @@ -70,7 +70,7 @@ #define XEND_RCV_BUF_MAX_LEN (256 * 1024) diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index 85db173..78cd3ac 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c +Index: libvirt-1.1.2/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-1.1.1.orig/src/xenxs/xen_sxpr.c -+++ libvirt-1.1.1/src/xenxs/xen_sxpr.c +--- libvirt-1.1.2.orig/src/xenxs/xen_sxpr.c ++++ libvirt-1.1.2/src/xenxs/xen_sxpr.c @@ -327,7 +327,7 @@ error: static int xenParseSxprDisks(virDomainDefPtr def,