diff --git a/96518d43-CVE-2013-4154.patch b/96518d43-CVE-2013-4154.patch deleted file mode 100644 index 1151105..0000000 --- a/96518d43-CVE-2013-4154.patch +++ /dev/null @@ -1,85 +0,0 @@ -commit 96518d4316b711c72205117f8d5c967d5127bbb6 -Author: Alex Jia -Date: Tue Jul 16 17:30:20 2013 +0800 - - qemu: Prevent crash of libvirtd without guest agent configuration - - If users haven't configured guest agent then qemuAgentCommand() will - dereference a NULL 'mon' pointer, which causes crash of libvirtd when - using agent based cpu (un)plug. - - With the patch, when the qemu-ga service isn't running in the guest, - a expected error "error: Guest agent is not responding: Guest agent - not available for now" will be raised, and the error "error: argument - unsupported: QEMU guest agent is not configured" is raised when the - guest hasn't configured guest agent. - - GDB backtrace: - - (gdb) bt - #0 virNetServerFatalSignal (sig=11, siginfo=, context=) at rpc/virnetserver.c:326 - #1 - #2 qemuAgentCommand (mon=0x0, cmd=0x7f39300017b0, reply=0x7f394b090910, seconds=-2) at qemu/qemu_agent.c:975 - #3 0x00007f39429507f6 in qemuAgentGetVCPUs (mon=0x0, info=0x7f394b0909b8) at qemu/qemu_agent.c:1475 - #4 0x00007f39429d9857 in qemuDomainGetVcpusFlags (dom=, flags=9) at qemu/qemu_driver.c:4849 - #5 0x00007f3957dffd8d in virDomainGetVcpusFlags (domain=0x7f39300009c0, flags=8) at libvirt.c:9843 - - How to reproduce? - - # To start a guest without guest agent configuration - # then run the following cmdline - - # virsh vcpucount foobar --guest - error: End of file while reading data: Input/output error - error: One or more references were leaked after disconnect from the hypervisor - error: Failed to reconnect to the hypervisor - - RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=984821 - - Signed-off-by: Alex Jia - Signed-off-by: Peter Krempa - -Index: libvirt-1.1.0/src/qemu/qemu_driver.c -=================================================================== ---- libvirt-1.1.0.orig/src/qemu/qemu_driver.c -+++ libvirt-1.1.0/src/qemu/qemu_driver.c -@@ -3963,6 +3963,19 @@ qemuDomainSetVcpusFlags(virDomainPtr dom - goto endjob; - } - -+ if (priv->agentError) { -+ virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s", -+ _("QEMU guest agent is not " -+ "available due to an error")); -+ goto endjob; -+ } -+ -+ if (!priv->agent) { -+ virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", -+ _("QEMU guest agent is not configured")); -+ goto endjob; -+ } -+ - qemuDomainObjEnterAgent(vm); - ncpuinfo = qemuAgentGetVCPUs(priv->agent, &cpuinfo); - qemuDomainObjExitAgent(vm); -@@ -4685,6 +4698,19 @@ qemuDomainGetVcpusFlags(virDomainPtr dom - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) - goto cleanup; - -+ if (priv->agentError) { -+ virReportError(VIR_ERR_AGENT_UNRESPONSIVE, "%s", -+ _("QEMU guest agent is not " -+ "available due to an error")); -+ goto endjob; -+ } -+ -+ if (!priv->agent) { -+ virReportError(VIR_ERR_ARGUMENT_UNSUPPORTED, "%s", -+ _("QEMU guest agent is not configured")); -+ goto endjob; -+ } -+ - if (!virDomainObjIsActive(vm)) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("domain is not running")); diff --git a/bcef0f01-libxl-console.patch b/bcef0f01-libxl-console.patch new file mode 100644 index 0000000..6047c9f --- /dev/null +++ b/bcef0f01-libxl-console.patch @@ -0,0 +1,280 @@ +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 51cf9bd..b92e40a 100644 --- a/clone.patch +++ b/clone.patch @@ -2,7 +2,7 @@ Index: src/lxc/lxc_container.c =================================================================== --- src/lxc/lxc_container.c.orig +++ src/lxc/lxc_container.c -@@ -142,6 +142,7 @@ int lxcContainerHasReboot(void) +@@ -144,6 +144,7 @@ int lxcContainerHasReboot(void) int cmd, v; int status; char *tmp; @@ -10,53 +10,41 @@ Index: src/lxc/lxc_container.c if (virFileReadAll("/proc/sys/kernel/ctrl-alt-del", 10, &buf) < 0) return -1; -@@ -158,14 +159,21 @@ int lxcContainerHasReboot(void) +@@ -160,12 +161,19 @@ int lxcContainerHasReboot(void) VIR_FREE(buf); cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF; -- if (VIR_ALLOC_N(stack, getpagesize() * 4) < 0) { +- if (VIR_ALLOC_N(stack, getpagesize() * 4) < 0) +#ifdef __ia64__ + stacksize *= 2; +#endif -+ if (VIR_ALLOC_N(stack, stacksize) < 0) { - virReportOOMError(); ++ if (VIR_ALLOC_N(stack, stacksize) < 0) return -1; - } - childStack = stack + (getpagesize() * 4); + childStack = stack + stacksize; +#ifdef __ia64__ -+ cpid = __clone2(lxcContainerRebootChild, stack, stacksize, flags, &cmd); ++ cpid = __clone2(lxcContainerRebootChild, childStack, stacksize, flags, &cmd); +#else cpid = clone(lxcContainerRebootChild, childStack, flags, &cmd); +#endif VIR_FREE(stack); if (cpid < 0) { virReportSystemError(errno, "%s", -@@ -2097,6 +2105,9 @@ int lxcContainerStart(virDomainDefPtr de - ttyPaths, nttyPaths, handshakefd}; - - /* allocate a stack for the container */ -+#ifdef __ia64__ -+ stacksize *= 2; -+#endif - if (VIR_ALLOC_N(stack, stacksize) < 0) { - virReportOOMError(); - return -1; -@@ -2115,7 +2126,11 @@ int lxcContainerStart(virDomainDefPtr de +@@ -1879,7 +1887,11 @@ int lxcContainerStart(virDomainDefPtr de cflags |= CLONE_NEWNET; } +#ifdef __ia64__ -+ pid = __clone2(lxcContainerChild, stack, stacksize, cflags, &args); ++ pid = __clone2(lxcContainerChild, stacktop, stacksize, cflags, &args); +#else pid = clone(lxcContainerChild, stacktop, cflags, &args); +#endif VIR_FREE(stack); VIR_DEBUG("clone() completed, new container PID is %d", pid); -@@ -2141,6 +2156,7 @@ int lxcContainerAvailable(int features) +@@ -1905,6 +1917,7 @@ int lxcContainerAvailable(int features) int cpid; char *childStack; char *stack; @@ -64,7 +52,7 @@ Index: src/lxc/lxc_container.c if (features & LXC_CONTAINER_FEATURE_USER) flags |= CLONE_NEWUSER; -@@ -2148,14 +2164,21 @@ int lxcContainerAvailable(int features) +@@ -1912,14 +1925,21 @@ int lxcContainerAvailable(int features) if (features & LXC_CONTAINER_FEATURE_NET) flags |= CLONE_NEWNET; @@ -81,7 +69,7 @@ Index: src/lxc/lxc_container.c + childStack = stack + stacksize; +#ifdef __ia64__ -+ cpid = __clone2(lxcContainerDummyChild, stack, stacksize, flags, NULL); ++ cpid = __clone2(lxcContainerDummyChild, childStack, stacksize, flags, NULL); +#else cpid = clone(lxcContainerDummyChild, childStack, flags, NULL); +#endif diff --git a/dfc69235-CVE-2013-4153.patch b/dfc69235-CVE-2013-4153.patch deleted file mode 100644 index b7050d0..0000000 --- a/dfc69235-CVE-2013-4153.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit dfc692350a04a70b4ca65667c30869b3bfdaf034 -Author: Peter Krempa -Date: Tue Jul 16 15:39:06 2013 +0200 - - qemu: Fix double free of returned JSON array in qemuAgentGetVCPUs() - - A part of the returned monitor response was freed twice and caused - crashes of the daemon when using guest agent cpu count retrieval. - - # virsh vcpucount dom --guest - - Introduced in v1.0.6-48-gc6afcb0 - -Index: libvirt-1.1.0/src/qemu/qemu_agent.c -=================================================================== ---- libvirt-1.1.0.orig/src/qemu/qemu_agent.c -+++ libvirt-1.1.0/src/qemu/qemu_agent.c -@@ -1538,7 +1538,6 @@ qemuAgentGetVCPUs(qemuAgentPtr mon, - cleanup: - virJSONValueFree(cmd); - virJSONValueFree(reply); -- virJSONValueFree(data); - return ret; - } - diff --git a/f38c8185-CVE-2013-2230.patch b/f38c8185-CVE-2013-2230.patch deleted file mode 100644 index dcb0b4c..0000000 --- a/f38c8185-CVE-2013-2230.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit f38c8185f97720ecae7ef2291fbaa5d6b0209e17 -Author: Ján Tomko -Date: Tue Jul 2 15:17:09 2013 +0200 - - Fix crash when multiple event callbacks were registered - - CVE-2013-2230 - - Don't overwrite the callback ID returned by - virDomainEventStateRegisterID in ret by 0. - - Introduced by abf75aea. - -Index: libvirt-1.1.0/src/qemu/qemu_driver.c -=================================================================== ---- libvirt-1.1.0.orig/src/qemu/qemu_driver.c -+++ libvirt-1.1.0/src/qemu/qemu_driver.c -@@ -9914,9 +9914,7 @@ qemuConnectDomainEventRegisterAny(virCon - driver->domainEventState, - dom, eventID, - callback, opaque, freecb, &ret) < 0) -- goto cleanup; -- -- ret = 0; -+ ret = -1; - - cleanup: - return ret; diff --git a/fd2e3c4c-xen-sysctl-domctl.patch b/fd2e3c4c-xen-sysctl-domctl.patch deleted file mode 100644 index a76f5d6..0000000 --- a/fd2e3c4c-xen-sysctl-domctl.patch +++ /dev/null @@ -1,352 +0,0 @@ -commit fd2e3c4c500d92d182492cfeaa0a6c6d0444b3cc -Author: Stefan Bader -Date: Tue Jul 16 18:11:16 2013 +0200 - - xen: Add interface versions for Xen 4.3 - - Xen 4.3 changes sysctl version to 10 and domctl version to 9. Update - the hypervisor driver to work with those. - - Signed-off-by: Stefan Bader - -Index: libvirt-1.1.0/src/xen/xen_hypervisor.c -=================================================================== ---- libvirt-1.1.0.orig/src/xen/xen_hypervisor.c -+++ libvirt-1.1.0/src/xen/xen_hypervisor.c -@@ -271,6 +271,24 @@ struct xen_v2d8_getdomaininfo { - }; - typedef struct xen_v2d8_getdomaininfo xen_v2d8_getdomaininfo; - -+struct xen_v2d9_getdomaininfo { -+ domid_t domain; /* the domain number */ -+ uint32_t flags; /* flags, see before */ -+ uint64_t tot_pages ALIGN_64; /* total number of pages used */ -+ uint64_t max_pages ALIGN_64; /* maximum number of pages allowed */ -+ uint64_t outstanding_pages ALIGN_64; -+ uint64_t shr_pages ALIGN_64; /* number of shared pages */ -+ uint64_t paged_pages ALIGN_64; /* number of paged pages */ -+ uint64_t shared_info_frame ALIGN_64; /* MFN of shared_info struct */ -+ uint64_t cpu_time ALIGN_64; /* CPU time used */ -+ uint32_t nr_online_vcpus; /* Number of VCPUs currently online. */ -+ uint32_t max_vcpu_id; /* Maximum VCPUID in use by this domain. */ -+ uint32_t ssidref; -+ xen_domain_handle_t handle; -+ uint32_t cpupool; -+}; -+typedef struct xen_v2d9_getdomaininfo xen_v2d9_getdomaininfo; -+ - union xen_getdomaininfo { - struct xen_v0_getdomaininfo v0; - struct xen_v2_getdomaininfo v2; -@@ -278,6 +296,7 @@ union xen_getdomaininfo { - struct xen_v2d6_getdomaininfo v2d6; - struct xen_v2d7_getdomaininfo v2d7; - struct xen_v2d8_getdomaininfo v2d8; -+ struct xen_v2d9_getdomaininfo v2d9; - }; - typedef union xen_getdomaininfo xen_getdomaininfo; - -@@ -288,6 +307,7 @@ union xen_getdomaininfolist { - struct xen_v2d6_getdomaininfo *v2d6; - struct xen_v2d7_getdomaininfo *v2d7; - struct xen_v2d8_getdomaininfo *v2d8; -+ struct xen_v2d8_getdomaininfo *v2d9; - }; - typedef union xen_getdomaininfolist xen_getdomaininfolist; - -@@ -325,7 +345,9 @@ typedef struct xen_v2s5_availheap xen_v - #define XEN_GETDOMAININFOLIST_ALLOC(domlist, size) \ - (hv_versions.hypervisor < 2 ? \ - (VIR_ALLOC_N(domlist.v0, (size)) == 0) : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ (VIR_ALLOC_N(domlist.v2d9, (size)) == 0) : \ -+ (hv_versions.dom_interface == 8 ? \ - (VIR_ALLOC_N(domlist.v2d8, (size)) == 0) : \ - (hv_versions.dom_interface == 7 ? \ - (VIR_ALLOC_N(domlist.v2d7, (size)) == 0) : \ -@@ -333,12 +355,14 @@ typedef struct xen_v2s5_availheap xen_v - (VIR_ALLOC_N(domlist.v2d6, (size)) == 0) : \ - (hv_versions.dom_interface == 5 ? \ - (VIR_ALLOC_N(domlist.v2d5, (size)) == 0) : \ -- (VIR_ALLOC_N(domlist.v2, (size)) == 0)))))) -+ (VIR_ALLOC_N(domlist.v2, (size)) == 0))))))) - - #define XEN_GETDOMAININFOLIST_FREE(domlist) \ - (hv_versions.hypervisor < 2 ? \ - VIR_FREE(domlist.v0) : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ VIR_FREE(domlist.v2d9) : \ -+ (hv_versions.dom_interface == 8 ? \ - VIR_FREE(domlist.v2d8) : \ - (hv_versions.dom_interface == 7 ? \ - VIR_FREE(domlist.v2d7) : \ -@@ -346,12 +370,14 @@ typedef struct xen_v2s5_availheap xen_v - VIR_FREE(domlist.v2d6) : \ - (hv_versions.dom_interface == 5 ? \ - VIR_FREE(domlist.v2d5) : \ -- VIR_FREE(domlist.v2)))))) -+ VIR_FREE(domlist.v2))))))) - - #define XEN_GETDOMAININFOLIST_CLEAR(domlist, size) \ - (hv_versions.hypervisor < 2 ? \ - memset(domlist.v0, 0, sizeof(*domlist.v0) * size) : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ memset(domlist.v2d9, 0, sizeof(*domlist.v2d9) * size) : \ -+ (hv_versions.dom_interface == 8 ? \ - memset(domlist.v2d8, 0, sizeof(*domlist.v2d8) * size) : \ - (hv_versions.dom_interface == 7 ? \ - memset(domlist.v2d7, 0, sizeof(*domlist.v2d7) * size) : \ -@@ -359,12 +385,14 @@ typedef struct xen_v2s5_availheap xen_v - memset(domlist.v2d6, 0, sizeof(*domlist.v2d6) * size) : \ - (hv_versions.dom_interface == 5 ? \ - memset(domlist.v2d5, 0, sizeof(*domlist.v2d5) * size) : \ -- memset(domlist.v2, 0, sizeof(*domlist.v2) * size)))))) -+ memset(domlist.v2, 0, sizeof(*domlist.v2) * size))))))) - - #define XEN_GETDOMAININFOLIST_DOMAIN(domlist, n) \ - (hv_versions.hypervisor < 2 ? \ - domlist.v0[n].domain : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ domlist.v2d9[n].domain : \ -+ (hv_versions.dom_interface == 8 ? \ - domlist.v2d8[n].domain : \ - (hv_versions.dom_interface == 7 ? \ - domlist.v2d7[n].domain : \ -@@ -372,12 +400,14 @@ typedef struct xen_v2s5_availheap xen_v - domlist.v2d6[n].domain : \ - (hv_versions.dom_interface == 5 ? \ - domlist.v2d5[n].domain : \ -- domlist.v2[n].domain))))) -+ domlist.v2[n].domain)))))) - - #define XEN_GETDOMAININFOLIST_UUID(domlist, n) \ - (hv_versions.hypervisor < 2 ? \ - domlist.v0[n].handle : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ domlist.v2d9[n].handle : \ -+ (hv_versions.dom_interface == 8 ? \ - domlist.v2d8[n].handle : \ - (hv_versions.dom_interface == 7 ? \ - domlist.v2d7[n].handle : \ -@@ -385,12 +415,14 @@ typedef struct xen_v2s5_availheap xen_v - domlist.v2d6[n].handle : \ - (hv_versions.dom_interface == 5 ? \ - domlist.v2d5[n].handle : \ -- domlist.v2[n].handle))))) -+ domlist.v2[n].handle)))))) - - #define XEN_GETDOMAININFOLIST_DATA(domlist) \ - (hv_versions.hypervisor < 2 ? \ - (void*)(domlist->v0) : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ (void*)(domlist->v2d9) : \ -+ (hv_versions.dom_interface == 8 ? \ - (void*)(domlist->v2d8) : \ - (hv_versions.dom_interface == 7 ? \ - (void*)(domlist->v2d7) : \ -@@ -398,12 +430,14 @@ typedef struct xen_v2s5_availheap xen_v - (void*)(domlist->v2d6) : \ - (hv_versions.dom_interface == 5 ? \ - (void*)(domlist->v2d5) : \ -- (void*)(domlist->v2)))))) -+ (void*)(domlist->v2))))))) - - #define XEN_GETDOMAININFO_SIZE \ - (hv_versions.hypervisor < 2 ? \ - sizeof(xen_v0_getdomaininfo) : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ sizeof(xen_v2d9_getdomaininfo) : \ -+ (hv_versions.dom_interface == 8 ? \ - sizeof(xen_v2d8_getdomaininfo) : \ - (hv_versions.dom_interface == 7 ? \ - sizeof(xen_v2d7_getdomaininfo) : \ -@@ -411,12 +445,14 @@ typedef struct xen_v2s5_availheap xen_v - sizeof(xen_v2d6_getdomaininfo) : \ - (hv_versions.dom_interface == 5 ? \ - sizeof(xen_v2d5_getdomaininfo) : \ -- sizeof(xen_v2_getdomaininfo)))))) -+ sizeof(xen_v2_getdomaininfo))))))) - - #define XEN_GETDOMAININFO_CLEAR(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - memset(&(dominfo.v0), 0, sizeof(xen_v0_getdomaininfo)) : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ memset(&(dominfo.v2d9), 0, sizeof(xen_v2d9_getdomaininfo)) : \ -+ (hv_versions.dom_interface == 8 ? \ - memset(&(dominfo.v2d8), 0, sizeof(xen_v2d8_getdomaininfo)) : \ - (hv_versions.dom_interface == 7 ? \ - memset(&(dominfo.v2d7), 0, sizeof(xen_v2d7_getdomaininfo)) : \ -@@ -424,12 +460,14 @@ typedef struct xen_v2s5_availheap xen_v - memset(&(dominfo.v2d6), 0, sizeof(xen_v2d6_getdomaininfo)) : \ - (hv_versions.dom_interface == 5 ? \ - memset(&(dominfo.v2d5), 0, sizeof(xen_v2d5_getdomaininfo)) : \ -- memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo))))))) -+ memset(&(dominfo.v2), 0, sizeof(xen_v2_getdomaininfo)))))))) - - #define XEN_GETDOMAININFO_DOMAIN(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.domain : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.domain : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.domain : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.domain : \ -@@ -437,12 +475,14 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.domain : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.domain : \ -- dominfo.v2.domain))))) -+ dominfo.v2.domain)))))) - - #define XEN_GETDOMAININFO_CPUTIME(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.cpu_time : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.cpu_time : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.cpu_time : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.cpu_time : \ -@@ -450,13 +490,15 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.cpu_time : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.cpu_time : \ -- dominfo.v2.cpu_time))))) -+ dominfo.v2.cpu_time)))))) - - - #define XEN_GETDOMAININFO_CPUCOUNT(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.nr_online_vcpus : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.nr_online_vcpus : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.nr_online_vcpus : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.nr_online_vcpus : \ -@@ -464,12 +506,14 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.nr_online_vcpus : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.nr_online_vcpus : \ -- dominfo.v2.nr_online_vcpus))))) -+ dominfo.v2.nr_online_vcpus)))))) - - #define XEN_GETDOMAININFO_MAXCPUID(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.max_vcpu_id : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.max_vcpu_id : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.max_vcpu_id : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.max_vcpu_id : \ -@@ -477,12 +521,14 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.max_vcpu_id : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.max_vcpu_id : \ -- dominfo.v2.max_vcpu_id))))) -+ dominfo.v2.max_vcpu_id)))))) - - #define XEN_GETDOMAININFO_FLAGS(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.flags : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.flags : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.flags : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.flags : \ -@@ -490,12 +536,14 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.flags : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.flags : \ -- dominfo.v2.flags))))) -+ dominfo.v2.flags)))))) - - #define XEN_GETDOMAININFO_TOT_PAGES(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.tot_pages : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.tot_pages : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.tot_pages : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.tot_pages : \ -@@ -503,12 +551,14 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.tot_pages : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.tot_pages : \ -- dominfo.v2.tot_pages))))) -+ dominfo.v2.tot_pages)))))) - - #define XEN_GETDOMAININFO_MAX_PAGES(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.max_pages : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.max_pages : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.max_pages : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.max_pages : \ -@@ -516,12 +566,14 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.max_pages : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.max_pages : \ -- dominfo.v2.max_pages))))) -+ dominfo.v2.max_pages)))))) - - #define XEN_GETDOMAININFO_UUID(dominfo) \ - (hv_versions.hypervisor < 2 ? \ - dominfo.v0.handle : \ -- (hv_versions.dom_interface >= 8 ? \ -+ (hv_versions.dom_interface >= 9 ? \ -+ dominfo.v2d9.handle : \ -+ (hv_versions.dom_interface == 8 ? \ - dominfo.v2d8.handle : \ - (hv_versions.dom_interface == 7 ? \ - dominfo.v2d7.handle : \ -@@ -529,7 +581,7 @@ typedef struct xen_v2s5_availheap xen_v - dominfo.v2d6.handle : \ - (hv_versions.dom_interface == 5 ? \ - dominfo.v2d5.handle : \ -- dominfo.v2.handle))))) -+ dominfo.v2.handle)))))) - - - static int -@@ -1919,6 +1971,19 @@ xenHypervisorInit(struct xenHypervisorVe - goto done; - } - } -+ -+ /* Xen 4.3 -+ * sysctl version 10 -> xen-unstable commit bec8f17e -+ * domctl version 9 -> xen-unstable commit 65c9792d -+ */ -+ hv_versions.sys_interface = 10; /* XEN_SYSCTL_INTERFACE_VERSION */ -+ if (virXen_getdomaininfo(fd, 0, &info) == 1) { -+ hv_versions.dom_interface = 9; /* XEN_DOMCTL_INTERFACE_VERSION */ -+ if (virXen_getvcpusinfo(fd, 0, 0, ipt, NULL, 0) == 0) { -+ VIR_DEBUG("Using hypervisor call v2, sys ver10 dom ver9"); -+ goto done; -+ } -+ } - - hv_versions.hypervisor = 1; - hv_versions.sys_interface = -1; diff --git a/fe89fd3b-storage-pool-deadlock.patch b/fe89fd3b-storage-pool-deadlock.patch deleted file mode 100644 index dc794df..0000000 --- a/fe89fd3b-storage-pool-deadlock.patch +++ /dev/null @@ -1,52 +0,0 @@ -commit fe89fd3b4071242ce9bbae6e1178fee30dc2f4f9 -Author: Ján Tomko -Date: Thu Jul 4 14:41:46 2013 +0200 - - Unlock the storage volume object after looking it up - - Introduced by c930410. - - https://bugzilla.redhat.com/show_bug.cgi?id=980676 - -Index: libvirt-1.1.0/src/storage/storage_driver.c -=================================================================== ---- libvirt-1.1.0.orig/src/storage/storage_driver.c -+++ libvirt-1.1.0/src/storage/storage_driver.c -@@ -1361,15 +1361,16 @@ storageVolLookupByKey(virConnectPtr conn - virStorageVolDefFindByKey(driver->pools.objs[i], key); - - if (vol) { -- if (virStorageVolLookupByKeyEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0) -+ if (virStorageVolLookupByKeyEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0) { -+ virStoragePoolObjUnlock(driver->pools.objs[i]); - goto cleanup; -+ } - - ret = virGetStorageVol(conn, - driver->pools.objs[i]->def->name, - vol->name, - vol->key, - NULL, NULL); -- goto cleanup; - } - } - virStoragePoolObjUnlock(driver->pools.objs[i]); -@@ -1421,15 +1422,16 @@ storageVolLookupByPath(virConnectPtr con - VIR_FREE(stable_path); - - if (vol) { -- if (virStorageVolLookupByPathEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0) -+ if (virStorageVolLookupByPathEnsureACL(conn, driver->pools.objs[i]->def, vol) < 0) { -+ virStoragePoolObjUnlock(driver->pools.objs[i]); - goto cleanup; -+ } - - ret = virGetStorageVol(conn, - driver->pools.objs[i]->def->name, - vol->name, - vol->key, - NULL, NULL); -- goto cleanup; - } - } - virStoragePoolObjUnlock(driver->pools.objs[i]); diff --git a/fix-pci-attach-xen-driver.patch b/fix-pci-attach-xen-driver.patch index ddc3ee6..923406b 100644 --- a/fix-pci-attach-xen-driver.patch +++ b/fix-pci-attach-xen-driver.patch @@ -8,11 +8,11 @@ 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.0/src/xen/xend_internal.c +Index: libvirt-1.1.1/src/xen/xend_internal.c =================================================================== ---- libvirt-1.1.0.orig/src/xen/xend_internal.c -+++ libvirt-1.1.0/src/xen/xend_internal.c -@@ -2220,6 +2220,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr +--- libvirt-1.1.1.orig/src/xen/xend_internal.c ++++ libvirt-1.1.1/src/xen/xend_internal.c +@@ -2207,6 +2207,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr virBuffer buf = VIR_BUFFER_INITIALIZER; char class[8], ref[80]; char *target = NULL; @@ -20,7 +20,7 @@ Index: libvirt-1.1.0/src/xen/xend_internal.c virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); -@@ -2320,8 +2321,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr +@@ -2305,8 +2306,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr } sexpr = virBufferContentAndReset(&buf); diff --git a/install-apparmor-profiles.patch b/install-apparmor-profiles.patch index 63584de..84d6abb 100644 --- a/install-apparmor-profiles.patch +++ b/install-apparmor-profiles.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.0/examples/apparmor/Makefile.am +Index: libvirt-1.1.1/examples/apparmor/Makefile.am =================================================================== ---- libvirt-1.1.0.orig/examples/apparmor/Makefile.am -+++ libvirt-1.1.0/examples/apparmor/Makefile.am +--- libvirt-1.1.1.orig/examples/apparmor/Makefile.am ++++ libvirt-1.1.1/examples/apparmor/Makefile.am @@ -14,8 +14,45 @@ ## License along with this library. If not, see ## . @@ -53,10 +53,10 @@ Index: libvirt-1.1.0/examples/apparmor/Makefile.am + rm -f $(DESTDIR)$(sysconfdir)/apparmor.d/libvirt/TEMPLATE + +endif -Index: libvirt-1.1.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in +Index: libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in =================================================================== --- /dev/null -+++ libvirt-1.1.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in ++++ libvirt-1.1.1/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.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in + /var/lib/kvm/images/ r, + /var/lib/kvm/images/** r, +} -Index: libvirt-1.1.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper +Index: libvirt-1.1.1/examples/apparmor/usr.lib.libvirt.virt-aa-helper =================================================================== ---- libvirt-1.1.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +--- libvirt-1.1.1.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.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper - /var/lib/libvirt/images/ r, - /var/lib/libvirt/images/** r, -} -Index: libvirt-1.1.0/examples/apparmor/usr.sbin.libvirtd +Index: libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd =================================================================== ---- libvirt-1.1.0.orig/examples/apparmor/usr.sbin.libvirtd +--- libvirt-1.1.1.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.0/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.0/examples/apparmor/usr.sbin.libvirtd.in +Index: libvirt-1.1.1/examples/apparmor/usr.sbin.libvirtd.in =================================================================== --- /dev/null -+++ libvirt-1.1.0/examples/apparmor/usr.sbin.libvirtd.in ++++ libvirt-1.1.1/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.0/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.0/examples/apparmor/libvirt-qemu +Index: libvirt-1.1.1/examples/apparmor/libvirt-qemu =================================================================== ---- libvirt-1.1.0.orig/examples/apparmor/libvirt-qemu +--- libvirt-1.1.1.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.0/examples/apparmor/libvirt-qemu - - /usr/libexec/qemu-bridge-helper rmix, - } -Index: libvirt-1.1.0/examples/apparmor/libvirt-qemu.in +Index: libvirt-1.1.1/examples/apparmor/libvirt-qemu.in =================================================================== --- /dev/null -+++ libvirt-1.1.0/examples/apparmor/libvirt-qemu.in ++++ libvirt-1.1.1/examples/apparmor/libvirt-qemu.in @@ -0,0 +1,132 @@ +# Last Modified: Fri Mar 9 14:43:22 2012 + diff --git a/libvirt-1.1.0.tar.bz2 b/libvirt-1.1.0.tar.bz2 deleted file mode 100644 index cc1f929..0000000 --- a/libvirt-1.1.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b99f431db5ef31e9e6d1acca2a8d1985db67cb89c4d97052e34ee66effa6b715 -size 17500172 diff --git a/libvirt-1.1.1.tar.bz2 b/libvirt-1.1.1.tar.bz2 new file mode 100644 index 0000000..b7bfa02 --- /dev/null +++ b/libvirt-1.1.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40d275e6bf3ffc7acec330458fc59f7ff2144327210690fd6f9ac9eccfee6396 +size 18261281 diff --git a/libvirt-guests-init-script.patch b/libvirt-guests-init-script.patch index 9efc1f5..493a431 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.0/tools/libvirt-guests.init.in +Index: libvirt-1.1.1/tools/libvirt-guests.init.in =================================================================== ---- libvirt-1.1.0.orig/tools/libvirt-guests.init.in -+++ libvirt-1.1.0/tools/libvirt-guests.init.in +--- libvirt-1.1.1.orig/tools/libvirt-guests.init.in ++++ libvirt-1.1.1/tools/libvirt-guests.init.in @@ -3,15 +3,15 @@ # the following is the LSB init header # @@ -28,10 +28,10 @@ Index: libvirt-1.1.0/tools/libvirt-guests.init.in ### END INIT INFO # the following is chkconfig init header -Index: libvirt-1.1.0/tools/libvirt-guests.sh.in +Index: libvirt-1.1.1/tools/libvirt-guests.sh.in =================================================================== ---- libvirt-1.1.0.orig/tools/libvirt-guests.sh.in -+++ libvirt-1.1.0/tools/libvirt-guests.sh.in +--- libvirt-1.1.1.orig/tools/libvirt-guests.sh.in ++++ libvirt-1.1.1/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.0/tools/libvirt-guests.sh.in esac -exit $RETVAL +rc_exit -Index: libvirt-1.1.0/tools/libvirt-guests.sysconf +Index: libvirt-1.1.1/tools/libvirt-guests.sysconf =================================================================== ---- libvirt-1.1.0.orig/tools/libvirt-guests.sysconf -+++ libvirt-1.1.0/tools/libvirt-guests.sysconf +--- libvirt-1.1.1.orig/tools/libvirt-guests.sysconf ++++ libvirt-1.1.1/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 7bb7854..dabeb2d 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.0/configure.ac +Index: libvirt-1.1.1/configure.ac =================================================================== ---- libvirt-1.1.0.orig/configure.ac -+++ libvirt-1.1.0/configure.ac +--- libvirt-1.1.1.orig/configure.ac ++++ libvirt-1.1.1/configure.ac @@ -172,6 +172,7 @@ LIBVIRT_CHECK_DBUS LIBVIRT_CHECK_FUSE LIBVIRT_CHECK_HAL @@ -10,7 +10,7 @@ Index: libvirt-1.1.0/configure.ac LIBVIRT_CHECK_NUMACTL LIBVIRT_CHECK_OPENWSMAN LIBVIRT_CHECK_PCIACCESS -@@ -2225,11 +2226,12 @@ if test "$with_libvirtd" = "no" ; then +@@ -2226,11 +2227,12 @@ if test "$with_libvirtd" = "no" ; then with_interface=no fi @@ -26,7 +26,7 @@ Index: libvirt-1.1.0/configure.ac esac if test "$with_interface" = "yes" ; then -@@ -2519,6 +2521,7 @@ LIBVIRT_RESULT_DBUS +@@ -2527,6 +2529,7 @@ LIBVIRT_RESULT_DBUS LIBVIRT_RESULT_FUSE LIBVIRT_RESULT_HAL LIBVIRT_RESULT_NETCF @@ -34,11 +34,11 @@ Index: libvirt-1.1.0/configure.ac LIBVIRT_RESULT_NUMACTL LIBVIRT_RESULT_OPENWSMAN LIBVIRT_RESULT_PCIACCESS -Index: libvirt-1.1.0/src/Makefile.am +Index: libvirt-1.1.1/src/Makefile.am =================================================================== ---- libvirt-1.1.0.orig/src/Makefile.am -+++ libvirt-1.1.0/src/Makefile.am -@@ -735,6 +735,10 @@ if WITH_NETCF +--- libvirt-1.1.1.orig/src/Makefile.am ++++ libvirt-1.1.1/src/Makefile.am +@@ -741,6 +741,10 @@ if WITH_NETCF INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_netcf.c endif @@ -49,7 +49,7 @@ Index: libvirt-1.1.0/src/Makefile.am if WITH_UDEV INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_udev.c -@@ -1276,11 +1280,16 @@ if WITH_NETCF +@@ -1293,11 +1297,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.0/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.0/tools/virsh.c +Index: libvirt-1.1.1/tools/virsh.c =================================================================== ---- libvirt-1.1.0.orig/tools/virsh.c -+++ libvirt-1.1.0/tools/virsh.c -@@ -2883,6 +2883,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE +--- libvirt-1.1.1.orig/tools/virsh.c ++++ libvirt-1.1.1/tools/virsh.c +@@ -2882,6 +2882,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE vshPrint(ctl, " Interface"); # if defined(WITH_NETCF) vshPrint(ctl, " netcf"); @@ -79,10 +79,10 @@ Index: libvirt-1.1.0/tools/virsh.c # elif defined(WITH_UDEV) vshPrint(ctl, " udev"); # endif -Index: libvirt-1.1.0/src/interface/interface_backend_netcf.c +Index: libvirt-1.1.1/src/interface/interface_backend_netcf.c =================================================================== ---- libvirt-1.1.0.orig/src/interface/interface_backend_netcf.c -+++ libvirt-1.1.0/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 @@ -23,7 +23,12 @@ #include @@ -136,7 +136,7 @@ Index: libvirt-1.1.0/src/interface/interface_backend_netcf.c /* * Get a minimal virInterfaceDef containing enough metadata * for access control checks to be performed. Currently -@@ -169,6 +206,10 @@ static virDrvOpenStatus netcfInterfaceOp +@@ -164,6 +201,10 @@ static virDrvOpenStatus netcfInterfaceOp goto mutex_error; } @@ -147,10 +147,10 @@ Index: libvirt-1.1.0/src/interface/interface_backend_netcf.c /* open netcf */ if (ncf_init(&driverState->netcf, NULL) != 0) { -Index: libvirt-1.1.0/src/interface/interface_driver.c +Index: libvirt-1.1.1/src/interface/interface_driver.c =================================================================== ---- libvirt-1.1.0.orig/src/interface/interface_driver.c -+++ libvirt-1.1.0/src/interface/interface_driver.c +--- libvirt-1.1.1.orig/src/interface/interface_driver.c ++++ libvirt-1.1.1/src/interface/interface_driver.c @@ -28,8 +28,15 @@ interfaceRegister(void) { if (netcfIfaceRegister() == 0) return 0; @@ -168,10 +168,10 @@ Index: libvirt-1.1.0/src/interface/interface_driver.c if (udevIfaceRegister() == 0) return 0; #endif /* WITH_UDEV */ -Index: libvirt-1.1.0/m4/virt-netcontrol.m4 +Index: libvirt-1.1.1/m4/virt-netcontrol.m4 =================================================================== --- /dev/null -+++ libvirt-1.1.0/m4/virt-netcontrol.m4 ++++ libvirt-1.1.1/m4/virt-netcontrol.m4 @@ -0,0 +1,35 @@ +dnl The libnetcontrol library +dnl diff --git a/libvirt.changes b/libvirt.changes index 74d507d..24ed9de 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,28 @@ +------------------------------------------------------------------- +Wed Jul 31 16:53:28 MDT 2013 - jfehlig@suse.com + +- Backport upstream patch implementing domainOpenConsole in the + libxl driver. Allows 'virsh console dom-name' to work with + Xen libxl toolstack. + bcef0f01-libxl-console.patch + +------------------------------------------------------------------- +Tue Jul 30 14:25:26 MDT 2013 - jfehlig@suse.com + +- Update to libvirt 1.1.1 + - Adding device removal or deletion events + - Introduce new domain create APIs to pass pre-opened FDs to LXC + - Add interface versions for Xen 4.3 + - Add new public API virDomainSetMemoryStatsPeriod + - Various LXC improvements + - Many incremental improvements and bug fixes, see + http://libvirt.org/news.html + - Drop upstream patches: f38c8185-CVE-2013-2230.patch, + fd2e3c4c-xen-sysctl-domctl.patch, dfc69235-CVE-2013-4153.patch, + 96518d43-CVE-2013-4154.patch, fe89fd3b-storage-pool-deadlock.patch + - Drop relax-qemu-usergroup-check.patch - no longer needed + after hypervisor-specific daemon package split + ------------------------------------------------------------------- Mon Jul 22 17:17:42 MDT 2013 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index 3119a79..e18ecc3 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -225,7 +225,7 @@ Name: libvirt Url: http://libvirt.org/ -Version: 1.1.0 +Version: 1.1.1 Release: 0 Summary: Library providing a simple virtualization API License: LGPL-2.1+ @@ -404,11 +404,7 @@ Source1: libvirtd.init Source2: libvirtd-relocation-server.fw Source99: baselibs.conf # Upstream patches -Patch0: f38c8185-CVE-2013-2230.patch -Patch1: fd2e3c4c-xen-sysctl-domctl.patch -Patch2: dfc69235-CVE-2013-4153.patch -Patch3: 96518d43-CVE-2013-4154.patch -Patch4: fe89fd3b-storage-pool-deadlock.patch +Patch0: bcef0f01-libxl-console.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch101: clone.patch @@ -418,11 +414,10 @@ Patch200: libvirtd-defaults.patch Patch201: libvirtd-init-script.patch Patch202: libvirt-guests-init-script.patch Patch203: virtlockd-init-script.patch -Patch204: relax-qemu-usergroup-check.patch -Patch205: suse-qemu-conf.patch -Patch206: fix-pci-attach-xen-driver.patch -Patch207: support-managed-pci-xen-driver.patch -Patch208: systemd-service-xen.patch +Patch204: suse-qemu-conf.patch +Patch205: fix-pci-attach-xen-driver.patch +Patch206: support-managed-pci-xen-driver.patch +Patch207: systemd-service-xen.patch %if %{with_apparmor} Patch250: install-apparmor-profiles.patch %endif @@ -909,10 +904,6 @@ of recent versions of Linux (and other OSes). %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 %patch100 -p1 %patch101 %patch102 -p1 @@ -924,7 +915,6 @@ of recent versions of Linux (and other OSes). %patch205 -p1 %patch206 -p1 %patch207 -p1 -%patch208 -p1 %if %{with_apparmor} %patch250 -p1 %endif @@ -1681,7 +1671,6 @@ fi %{py_sitedir}/libvirt_lxc.py* %{py_sitedir}/libvirtmod* %doc python/tests/*.py -%doc python/TODO %doc examples/python %doc examples/domain-events/events-python %endif diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index cddc405..642823a 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.0/daemon/libvirtd.conf +Index: libvirt-1.1.1/daemon/libvirtd.conf =================================================================== ---- libvirt-1.1.0.orig/daemon/libvirtd.conf -+++ libvirt-1.1.0/daemon/libvirtd.conf +--- libvirt-1.1.1.orig/daemon/libvirtd.conf ++++ libvirt-1.1.1/daemon/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -13,13 +13,13 @@ Index: libvirt-1.1.0/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.0/daemon/libvirtd-config.c +Index: libvirt-1.1.1/daemon/libvirtd-config.c =================================================================== ---- libvirt-1.1.0.orig/daemon/libvirtd-config.c -+++ libvirt-1.1.0/daemon/libvirtd-config.c -@@ -225,7 +225,7 @@ daemonConfigNew(bool privileged ATTRIBUT +--- libvirt-1.1.1.orig/daemon/libvirtd-config.c ++++ libvirt-1.1.1/daemon/libvirtd-config.c +@@ -222,7 +222,7 @@ daemonConfigNew(bool privileged ATTRIBUT + if (VIR_ALLOC(data) < 0) return NULL; - } - data->listen_tls = 1; + data->listen_tls = 0; diff --git a/relax-qemu-usergroup-check.patch b/relax-qemu-usergroup-check.patch deleted file mode 100644 index f6d46a2..0000000 --- a/relax-qemu-usergroup-check.patch +++ /dev/null @@ -1,35 +0,0 @@ -Allow qemu driver (and hence libvirtd) to load when qemu -user:group does not exist. The kvm package, which may not -exist on a xen host, creates qemu user:group. - -A better (future) solution would be to build the libvirtd -drivers as loadable modules instead of built-in to the -daemon. Then the qemu driver would only be loaded when needed, -which would never be the case on a xen-only configuration. - -Index: libvirt-1.1.0/src/qemu/qemu_conf.c -=================================================================== ---- libvirt-1.1.0.orig/src/qemu/qemu_conf.c -+++ libvirt-1.1.0/src/qemu/qemu_conf.c -@@ -465,15 +465,15 @@ int virQEMUDriverConfigLoadFile(virQEMUD - - p = virConfGetValue(conf, "user"); - CHECK_TYPE("user", VIR_CONF_STRING); -- if (p && p->str && -- virGetUserID(p->str, &cfg->user) < 0) -- goto cleanup; -+ if (p && p->str) -+ if (virGetUserID(p->str, &cfg->user) < 0) -+ VIR_WARN("User %s does not exist! Continuing...", p->str); - - p = virConfGetValue(conf, "group"); - CHECK_TYPE("group", VIR_CONF_STRING); -- if (p && p->str && -- virGetGroupID(p->str, &cfg->group) < 0) -- goto cleanup; -+ if (p && p->str) -+ if (virGetGroupID(p->str, &cfg->group) < 0) -+ VIR_WARN("Group %s does not exist! Continuing...", p->str); - - GET_VALUE_BOOL("dynamic_ownership", cfg->dynamicOwnership); - diff --git a/support-managed-pci-xen-driver.patch b/support-managed-pci-xen-driver.patch index aa5fc93..e800294 100644 --- a/support-managed-pci-xen-driver.patch +++ b/support-managed-pci-xen-driver.patch @@ -8,11 +8,11 @@ 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.0/src/xenxs/xen_sxpr.c +Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-1.1.0.orig/src/xenxs/xen_sxpr.c -+++ libvirt-1.1.0/src/xenxs/xen_sxpr.c -@@ -1006,6 +1006,7 @@ xenParseSxprPCI(virDomainDefPtr def, +--- libvirt-1.1.1.orig/src/xenxs/xen_sxpr.c ++++ libvirt-1.1.1/src/xenxs/xen_sxpr.c +@@ -993,6 +993,7 @@ xenParseSxprPCI(virDomainDefPtr def, int busID; int slotID; int funcID; @@ -20,7 +20,7 @@ Index: libvirt-1.1.0/src/xenxs/xen_sxpr.c node = cur->u.s.car; if (!sexpr_lookup(node, "dev")) -@@ -1053,11 +1054,13 @@ xenParseSxprPCI(virDomainDefPtr def, +@@ -1040,11 +1041,13 @@ xenParseSxprPCI(virDomainDefPtr def, goto error; } @@ -35,7 +35,7 @@ Index: libvirt-1.1.0/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; -@@ -2013,11 +2016,15 @@ static void +@@ -1993,11 +1996,15 @@ static void xenFormatSxprPCI(virDomainHostdevDefPtr def, virBufferPtr buf) { @@ -52,7 +52,7 @@ Index: libvirt-1.1.0/src/xenxs/xen_sxpr.c } -@@ -2036,12 +2043,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP +@@ -2016,12 +2023,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP virBufferPtr buf, int detach) { @@ -65,7 +65,7 @@ Index: libvirt-1.1.0/src/xenxs/xen_sxpr.c virBufferAddLit(buf, "(pci "); xenFormatSxprPCI(def, buf); if (detach) -@@ -2096,12 +2097,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def, +@@ -2076,12 +2077,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,11 +78,11 @@ Index: libvirt-1.1.0/src/xenxs/xen_sxpr.c xenFormatSxprPCI(def->hostdevs[i], buf); } } -Index: libvirt-1.1.0/src/xenxs/xen_xm.c +Index: libvirt-1.1.1/src/xenxs/xen_xm.c =================================================================== ---- libvirt-1.1.0.orig/src/xenxs/xen_xm.c -+++ libvirt-1.1.0/src/xenxs/xen_xm.c -@@ -806,6 +806,8 @@ xenParseXM(virConfPtr conf, int xendConf +--- libvirt-1.1.1.orig/src/xenxs/xen_xm.c ++++ libvirt-1.1.1/src/xenxs/xen_xm.c +@@ -802,6 +802,8 @@ xenParseXM(virConfPtr conf, int xendConf int busID; int slotID; int funcID; @@ -91,7 +91,7 @@ Index: libvirt-1.1.0/src/xenxs/xen_xm.c domain[0] = bus[0] = slot[0] = func[0] = '\0'; -@@ -815,6 +817,11 @@ xenParseXM(virConfPtr conf, int xendConf +@@ -811,6 +813,11 @@ xenParseXM(virConfPtr conf, int xendConf /* pci=['0000:00:1b.0','0000:00:13.0'] */ if (!(key = list->str)) goto skippci; @@ -103,7 +103,7 @@ Index: libvirt-1.1.0/src/xenxs/xen_xm.c if (!(nextkey = strchr(key, ':'))) goto skippci; -@@ -863,10 +870,30 @@ xenParseXM(virConfPtr conf, int xendConf +@@ -859,10 +866,30 @@ xenParseXM(virConfPtr conf, int xendConf if (virStrToLong_i(func, NULL, 16, &funcID) < 0) goto skippci; diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index 8dcc86f..00a7cdd 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.0/src/qemu/qemu.conf +Index: libvirt-1.1.1/src/qemu/qemu.conf =================================================================== ---- libvirt-1.1.0.orig/src/qemu/qemu.conf -+++ libvirt-1.1.0/src/qemu/qemu.conf +--- libvirt-1.1.1.orig/src/qemu/qemu.conf ++++ libvirt-1.1.1/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 446e21c..8782b13 100644 --- a/systemd-service-xen.patch +++ b/systemd-service-xen.patch @@ -1,7 +1,7 @@ -Index: libvirt-1.1.0/daemon/libvirtd.service.in +Index: libvirt-1.1.1/daemon/libvirtd.service.in =================================================================== ---- libvirt-1.1.0.orig/daemon/libvirtd.service.in -+++ libvirt-1.1.0/daemon/libvirtd.service.in +--- libvirt-1.1.1.orig/daemon/libvirtd.service.in ++++ libvirt-1.1.1/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 622713f..10e06dd 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.0/src/locking/virtlockd.sysconf +Index: libvirt-1.1.1/src/locking/virtlockd.sysconf =================================================================== ---- libvirt-1.1.0.orig/src/locking/virtlockd.sysconf -+++ libvirt-1.1.0/src/locking/virtlockd.sysconf +--- libvirt-1.1.1.orig/src/locking/virtlockd.sysconf ++++ libvirt-1.1.1/src/locking/virtlockd.sysconf @@ -1,3 +1,7 @@ +## Path: System/Virtualization/virtlockd + @@ -12,10 +12,10 @@ Index: libvirt-1.1.0/src/locking/virtlockd.sysconf # # Pass extra arguments to virtlockd #VIRTLOCKD_ARGS= -Index: libvirt-1.1.0/src/locking/virtlockd.init.in +Index: libvirt-1.1.1/src/locking/virtlockd.init.in =================================================================== ---- libvirt-1.1.0.orig/src/locking/virtlockd.init.in -+++ libvirt-1.1.0/src/locking/virtlockd.init.in +--- libvirt-1.1.1.orig/src/locking/virtlockd.init.in ++++ libvirt-1.1.1/src/locking/virtlockd.init.in @@ -4,11 +4,13 @@ # http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV # diff --git a/xen-name-for-devid.patch b/xen-name-for-devid.patch index ed7babe..4fe71fe 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.0/src/xen/xend_internal.c +Index: libvirt-1.1.1/src/xen/xend_internal.c =================================================================== ---- libvirt-1.1.0.orig/src/xen/xend_internal.c -+++ libvirt-1.1.0/src/xen/xend_internal.c +--- libvirt-1.1.1.orig/src/xen/xend_internal.c ++++ libvirt-1.1.1/src/xen/xend_internal.c @@ -70,7 +70,7 @@ #define XEND_RCV_BUF_MAX_LEN (256 * 1024) @@ -27,7 +27,7 @@ Index: libvirt-1.1.0/src/xen/xend_internal.c virDomainDeviceDefPtr dev, char *class, char *ref, int ref_len); -@@ -3332,18 +3332,18 @@ xenDaemonDomainBlockPeek(virConnectPtr c +@@ -3316,18 +3316,18 @@ xenDaemonDomainBlockPeek(virConnectPtr c * Returns 0 in case of success, -1 in case of failure. */ static int @@ -50,7 +50,7 @@ Index: libvirt-1.1.0/src/xen/xend_internal.c if (dev->data.disk->driverName && STREQ(dev->data.disk->driverName, "tap")) strcpy(class, "tap"); -@@ -3353,19 +3353,17 @@ virDomainXMLDevID(virConnectPtr conn, +@@ -3337,19 +3337,17 @@ virDomainXMLDevID(virConnectPtr conn, else strcpy(class, "vbd"); @@ -81,7 +81,7 @@ Index: libvirt-1.1.0/src/xen/xend_internal.c } else if (dev->type == VIR_DOMAIN_DEVICE_NET) { char mac[VIR_MAC_STRING_BUFLEN]; virDomainNetDefPtr netdef = dev->data.net; -@@ -3373,16 +3371,22 @@ virDomainXMLDevID(virConnectPtr conn, +@@ -3357,16 +3355,22 @@ virDomainXMLDevID(virConnectPtr conn, strcpy(class, "vif"); @@ -114,7 +114,7 @@ Index: libvirt-1.1.0/src/xen/xend_internal.c } else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV && dev->data.hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && dev->data.hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { -@@ -3400,17 +3404,44 @@ virDomainXMLDevID(virConnectPtr conn, +@@ -3382,17 +3386,44 @@ virDomainXMLDevID(virConnectPtr conn, strcpy(class, "pci"); diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index 362060c..85db173 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,8 +1,8 @@ -Index: libvirt-1.1.0/src/xenxs/xen_sxpr.c +Index: libvirt-1.1.1/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-1.1.0.orig/src/xenxs/xen_sxpr.c -+++ libvirt-1.1.0/src/xenxs/xen_sxpr.c -@@ -328,7 +328,7 @@ error: +--- libvirt-1.1.1.orig/src/xenxs/xen_sxpr.c ++++ libvirt-1.1.1/src/xenxs/xen_sxpr.c +@@ -327,7 +327,7 @@ error: static int xenParseSxprDisks(virDomainDefPtr def, const struct sexpr *root, @@ -11,7 +11,7 @@ Index: libvirt-1.1.0/src/xenxs/xen_sxpr.c int xendConfigVersion) { const struct sexpr *cur, *node; -@@ -379,7 +379,6 @@ xenParseSxprDisks(virDomainDefPtr def, +@@ -378,7 +378,6 @@ xenParseSxprDisks(virDomainDefPtr def, /* There is a case without the uname to the CD-ROM device */ offset = strchr(dst, ':'); if (!offset ||