Hello community, here is the log from the commit of package libvirt for openSUSE:Factory checked in at 2014-04-16 07:27:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libvirt (Old) and /work/SRC/openSUSE:Factory/.libvirt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libvirt" Changes: -------- --- /work/SRC/openSUSE:Factory/libvirt/libvirt.changes 2014-04-05 16:47:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libvirt.new/libvirt.changes 2014-04-16 07:27:04.000000000 +0200 @@ -1,0 +2,13 @@ +Tue Apr 8 09:44:50 MDT 2014 - [email protected] + +- libxl: Set disk format for empty cdrom device + 0e0c1a74-domid-fix.patch, 7a1452f5-libxl-empty-cdrom.patch + bnc#872517 + +------------------------------------------------------------------- +Mon Apr 7 14:34:59 CST 2014 - [email protected] + +- Fate#315125: add NOCOW flag + add-nocow-to-vol-xml.patch + +------------------------------------------------------------------- New: ---- 0e0c1a74-domid-fix.patch 7a1452f5-libxl-empty-cdrom.patch add-nocow-to-vol-xml.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libvirt.spec ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -428,10 +428,13 @@ Source2: libvirtd-relocation-server.fw Source99: baselibs.conf # Upstream patches +Patch0: 0e0c1a74-domid-fix.patch +Patch1: 7a1452f5-libxl-empty-cdrom.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch101: ia64-clone.patch Patch102: xen-pv-cdrom.patch +Patch103: add-nocow-to-vol-xml.patch # Our patches Patch200: libvirtd-defaults.patch Patch201: libvirtd-init-script.patch @@ -943,9 +946,12 @@ %prep %setup -q +%patch0 -p1 +%patch1 -p1 %patch100 -p1 %patch101 -p1 %patch102 -p1 +%patch103 -p1 %patch200 -p1 %patch201 -p1 %patch202 -p1 ++++++ 0e0c1a74-domid-fix.patch ++++++ commit 0e0c1a7489a6a04c5060d0fe7fad6337ed98ec01 Author: Stefan Bader <[email protected]> Date: Thu Mar 27 17:55:02 2014 +0100 libxl: Use id from virDomainObj inside the driver There is a domain id in the virDomain structure as well as in the virDomainObj structure. While the former can become stale the latter is kept up to date. So it is safer to always (virDomainObjPtr)->def->id internally. This will fix issues seen when managing Xen guests through libvirt from virt-manager (not being able to get domain info after define or reboot). This was caused both though libxlDomainGetInfo() only but there were a lot of places that might potentially cause issues, too. Signed-off-by: Stefan Bader <[email protected]> Index: libvirt-1.2.3/src/libxl/libxl_driver.c =================================================================== --- libvirt-1.2.3.orig/src/libxl/libxl_driver.c +++ libvirt-1.2.3/src/libxl/libxl_driver.c @@ -770,10 +770,10 @@ libxlDomainSuspend(virDomainPtr dom) priv = vm->privateData; if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) { - if (libxl_domain_pause(priv->ctx, dom->id) != 0) { + if (libxl_domain_pause(priv->ctx, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to suspend domain '%d' with libxenlight"), - dom->id); + vm->def->id); goto endjob; } @@ -829,10 +829,10 @@ libxlDomainResume(virDomainPtr dom) priv = vm->privateData; if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_PAUSED) { - if (libxl_domain_unpause(priv->ctx, dom->id) != 0) { + if (libxl_domain_unpause(priv->ctx, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to resume domain '%d' with libxenlight"), - dom->id); + vm->def->id); goto endjob; } @@ -883,10 +883,10 @@ libxlDomainShutdownFlags(virDomainPtr do } priv = vm->privateData; - if (libxl_domain_shutdown(priv->ctx, dom->id) != 0) { + if (libxl_domain_shutdown(priv->ctx, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to shutdown domain '%d' with libxenlight"), - dom->id); + vm->def->id); goto cleanup; } @@ -930,10 +930,10 @@ libxlDomainReboot(virDomainPtr dom, unsi } priv = vm->privateData; - if (libxl_domain_reboot(priv->ctx, dom->id) != 0) { + if (libxl_domain_reboot(priv->ctx, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to reboot domain '%d' with libxenlight"), - dom->id); + vm->def->id); goto cleanup; } ret = 0; @@ -974,7 +974,7 @@ libxlDomainDestroyFlags(virDomainPtr dom priv = vm->privateData; if (libxl_domain_destroy(priv->ctx, vm->def->id, NULL) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, - _("Failed to destroy domain '%d'"), dom->id); + _("Failed to destroy domain '%d'"), vm->def->id); goto cleanup; } @@ -1105,10 +1105,10 @@ libxlDomainSetMemoryFlags(virDomainPtr d if (flags & VIR_DOMAIN_MEM_LIVE) { priv = vm->privateData; - if (libxl_domain_setmaxmem(priv->ctx, dom->id, newmem) < 0) { + if (libxl_domain_setmaxmem(priv->ctx, vm->def->id, newmem) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to set maximum memory for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto endjob; } } @@ -1138,13 +1138,13 @@ libxlDomainSetMemoryFlags(virDomainPtr d priv = vm->privateData; /* Unlock virDomainObj while ballooning memory */ virObjectUnlock(vm); - res = libxl_set_memory_target(priv->ctx, dom->id, newmem, 0, + res = libxl_set_memory_target(priv->ctx, vm->def->id, newmem, 0, /* force */ 1); virObjectLock(vm); if (res < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to set memory for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto endjob; } } @@ -1202,9 +1202,10 @@ libxlDomainGetInfo(virDomainPtr dom, vir info->memory = vm->def->mem.cur_balloon; info->maxMem = vm->def->mem.max_balloon; } else { - if (libxl_domain_info(priv->ctx, &d_info, dom->id) != 0) { + if (libxl_domain_info(priv->ctx, &d_info, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, - _("libxl_domain_info failed for domain '%d'"), dom->id); + _("libxl_domain_info failed for domain '%d'"), + vm->def->id); goto cleanup; } info->cpuTime = d_info.cpu_time; @@ -1483,11 +1484,11 @@ libxlDomainCoreDump(virDomainPtr dom, co if (!(flags & VIR_DUMP_LIVE) && virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { - if (libxl_domain_pause(priv->ctx, dom->id) != 0) { + if (libxl_domain_pause(priv->ctx, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Before dumping core, failed to suspend domain '%d'" " with libxenlight"), - dom->id); + vm->def->id); goto endjob; } virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_DUMP); @@ -1496,20 +1497,20 @@ libxlDomainCoreDump(virDomainPtr dom, co /* Unlock virDomainObj while dumping core */ virObjectUnlock(vm); - ret = libxl_domain_core_dump(priv->ctx, dom->id, to, NULL); + ret = libxl_domain_core_dump(priv->ctx, vm->def->id, to, NULL); virObjectLock(vm); if (ret != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to dump core of domain '%d' with libxenlight"), - dom->id); + vm->def->id); ret = -1; goto unpause; } if (flags & VIR_DUMP_CRASH) { - if (libxl_domain_destroy(priv->ctx, dom->id, NULL) < 0) { + if (libxl_domain_destroy(priv->ctx, vm->def->id, NULL) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, - _("Failed to destroy domain '%d'"), dom->id); + _("Failed to destroy domain '%d'"), vm->def->id); goto unpause; } @@ -1524,10 +1525,10 @@ libxlDomainCoreDump(virDomainPtr dom, co unpause: if (virDomainObjIsActive(vm) && paused) { - if (libxl_domain_unpause(priv->ctx, dom->id) != 0) { + if (libxl_domain_unpause(priv->ctx, vm->def->id) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("After dumping core, failed to resume domain '%d' with" - " libxenlight"), dom->id); + " libxenlight"), vm->def->id); } else { virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_UNPAUSED); @@ -1786,19 +1787,19 @@ libxlDomainSetVcpusFlags(virDomainPtr do break; case VIR_DOMAIN_VCPU_LIVE: - if (libxl_set_vcpuonline(priv->ctx, dom->id, &map) != 0) { + if (libxl_set_vcpuonline(priv->ctx, vm->def->id, &map) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to set vcpus for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto endjob; } break; case VIR_DOMAIN_VCPU_LIVE | VIR_DOMAIN_VCPU_CONFIG: - if (libxl_set_vcpuonline(priv->ctx, dom->id, &map) != 0) { + if (libxl_set_vcpuonline(priv->ctx, vm->def->id, &map) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to set vcpus for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto endjob; } def->vcpus = nvcpus; @@ -1934,7 +1935,7 @@ libxlDomainPinVcpuFlags(virDomainPtr dom libxlDomainObjPrivatePtr priv; priv = vm->privateData; - if (libxl_set_vcpuaffinity(priv->ctx, dom->id, vcpu, &map) != 0) { + if (libxl_set_vcpuaffinity(priv->ctx, vm->def->id, vcpu, &map) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to pin vcpu '%d' with libxenlight"), vcpu); @@ -2099,11 +2100,11 @@ libxlDomainGetVcpus(virDomainPtr dom, vi } priv = vm->privateData; - if ((vcpuinfo = libxl_list_vcpu(priv->ctx, dom->id, &maxcpu, + if ((vcpuinfo = libxl_list_vcpu(priv->ctx, vm->def->id, &maxcpu, &hostcpus)) == NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to list vcpus for domain '%d' with libxenlight"), - dom->id); + vm->def->id); goto cleanup; } @@ -3608,7 +3609,7 @@ libxlDomainGetSchedulerType(virDomainPtr default: virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to get scheduler id for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto cleanup; } @@ -3659,10 +3660,10 @@ libxlDomainGetSchedulerParametersFlags(v goto cleanup; } - if (libxl_domain_sched_params_get(priv->ctx, dom->id, &sc_info) != 0) { + if (libxl_domain_sched_params_get(priv->ctx, vm->def->id, &sc_info) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to get scheduler parameters for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto cleanup; } @@ -3740,10 +3741,10 @@ libxlDomainSetSchedulerParametersFlags(v goto endjob; } - if (libxl_domain_sched_params_get(priv->ctx, dom->id, &sc_info) != 0) { + if (libxl_domain_sched_params_get(priv->ctx, vm->def->id, &sc_info) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to get scheduler parameters for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto endjob; } @@ -3756,10 +3757,10 @@ libxlDomainSetSchedulerParametersFlags(v sc_info.cap = params[i].value.ui; } - if (libxl_domain_sched_params_set(priv->ctx, dom->id, &sc_info) != 0) { + if (libxl_domain_sched_params_set(priv->ctx, vm->def->id, &sc_info) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to set scheduler parameters for domain '%d'" - " with libxenlight"), dom->id); + " with libxenlight"), vm->def->id); goto endjob; } ++++++ 7a1452f5-libxl-empty-cdrom.patch ++++++ commit 7a1452f5334f98680187ae6d11fe2a49c1b38548 Author: Stefan Bader <[email protected]> Date: Thu Mar 27 17:55:03 2014 +0100 libxl: Set disk format for empty cdrom device The XML config for a CDROM device can be without a source path, indicating that there is no media present. Without this change the libxl driver fails to start a guest in that case because the libxl library checks for the LIBXL_DISK_FORMAT_EMPTY format type and tries to stat the NULL pointer that gets passed on. > libxl: error: libxl_device.c:265:libxl__device_disk_set_backend: > Disk vdev=hdc failed to stat: (null): Bad address Signed-off-by: Stefan Bader <[email protected]> Index: libvirt-1.2.3/src/libxl/libxl_conf.c =================================================================== --- libvirt-1.2.3.orig/src/libxl/libxl_conf.c +++ libvirt-1.2.3/src/libxl/libxl_conf.c @@ -827,6 +827,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk x_disk->removable = 1; x_disk->readwrite = !l_disk->readonly; x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0; + /* An empty CDROM must have the empty format, otherwise libxl fails. */ + if (x_disk->is_cdrom && !x_disk->pdev_path) + x_disk->format = LIBXL_DISK_FORMAT_EMPTY; if (l_disk->transient) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("libxenlight does not support transient disks")); ++++++ add-nocow-to-vol-xml.patch ++++++ Index: libvirt-1.2.3/docs/schemas/storagevol.rng =================================================================== --- libvirt-1.2.3.orig/docs/schemas/storagevol.rng +++ libvirt-1.2.3/docs/schemas/storagevol.rng @@ -139,6 +139,11 @@ <ref name='compat'/> </optional> <optional> + <element name='nocow'> + <empty/> + </element> + </optional> + <optional> <ref name='fileFormatFeatures'/> </optional> </interleave> Index: libvirt-1.2.3/src/conf/storage_conf.c =================================================================== --- libvirt-1.2.3.orig/src/conf/storage_conf.c +++ libvirt-1.2.3/src/conf/storage_conf.c @@ -1401,6 +1401,9 @@ virStorageVolDefParseXML(virStoragePoolD virStringFreeList(version); } + if (virXPathNode("./target/nocow", ctxt)) + ret->target.nocow = true; + if (options->featureFromString && virXPathNode("./target/features", ctxt)) { if ((n = virXPathNodeSet("./target/features/*", ctxt, &nodes)) < 0) goto error; Index: libvirt-1.2.3/src/conf/storage_conf.h =================================================================== --- libvirt-1.2.3.orig/src/conf/storage_conf.h +++ libvirt-1.2.3/src/conf/storage_conf.h @@ -90,6 +90,7 @@ struct _virStorageVolTarget { virStorageEncryptionPtr encryption; virBitmapPtr features; char *compat; + bool nocow; }; typedef struct _virStorageVolDef virStorageVolDef; Index: libvirt-1.2.3/src/storage/storage_backend.c =================================================================== --- libvirt-1.2.3.orig/src/storage/storage_backend.c +++ libvirt-1.2.3/src/storage/storage_backend.c @@ -37,6 +37,9 @@ #ifdef __linux__ # include <sys/ioctl.h> # include <linux/fs.h> +# ifndef FS_NOCOW_FL +# define FS_NOCOW_FL 0x00800000 /* Do not cow file */ +# endif #endif #if WITH_SELINUX @@ -449,6 +452,21 @@ virStorageBackendCreateRaw(virConnectPtr goto cleanup; } + if (vol->target.nocow) { +#ifdef __linux__ + int attr; + + /* Set NOCOW flag. This is an optimisation for btrfs. + * The FS_IOC_SETFLAGS ioctl return value will be ignored since any + * failure of this operation should not block the left work. + */ + if (ioctl(fd, FS_IOC_GETFLAGS, &attr) == 0) { + attr |= FS_NOCOW_FL; + ioctl(fd, FS_IOC_SETFLAGS, &attr); + } +#endif + } + if ((ret = createRawFile(fd, vol, inputvol)) < 0) /* createRawFile already reported the exact error. */ ret = -1; @@ -712,6 +730,7 @@ virStorageBackendCreateQemuImgOpts(char bool preallocate, int format, const char *compat, + bool nocow, virBitmapPtr features) { virBuffer buf = VIR_BUFFER_INITIALIZER; @@ -724,6 +743,8 @@ virStorageBackendCreateQemuImgOpts(char virBufferAddLit(&buf, "encryption=on,"); if (preallocate) virBufferAddLit(&buf, "preallocation=metadata,"); + if (nocow) + virBufferAddLit(&buf, "nocow=on,"); if (compat) virBufferAsprintf(&buf, "compat=%s,", compat); @@ -945,6 +966,7 @@ virStorageBackendCreateQemuImgCmd(virCon do_encryption, preallocate, vol->target.format, compat, + vol->target.nocow, vol->target.features) < 0) { virCommandFree(cmd); return NULL; ++++++ fix-pci-attach-xen-driver.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -8,11 +8,11 @@ This patch changes the xend driver to always call 'device_configure' for PCI devices to be consistent with the usage in the xen tools. -Index: libvirt-1.2.2/src/xen/xend_internal.c +Index: libvirt-1.2.3/src/xen/xend_internal.c =================================================================== ---- libvirt-1.2.2.orig/src/xen/xend_internal.c -+++ libvirt-1.2.2/src/xen/xend_internal.c -@@ -2217,6 +2217,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr +--- libvirt-1.2.3.orig/src/xen/xend_internal.c ++++ libvirt-1.2.3/src/xen/xend_internal.c +@@ -2219,6 +2219,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr virBuffer buf = VIR_BUFFER_INITIALIZER; char class[8], ref[80]; char *target = NULL; @@ -20,7 +20,7 @@ virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); -@@ -2315,8 +2316,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr +@@ -2317,8 +2318,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr } sexpr = virBufferContentAndReset(&buf); ++++++ ia64-clone.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -1,8 +1,8 @@ -Index: libvirt-1.2.2/src/lxc/lxc_container.c +Index: libvirt-1.2.3/src/lxc/lxc_container.c =================================================================== ---- libvirt-1.2.2.orig/src/lxc/lxc_container.c -+++ libvirt-1.2.2/src/lxc/lxc_container.c -@@ -162,12 +162,19 @@ int lxcContainerHasReboot(void) +--- libvirt-1.2.3.orig/src/lxc/lxc_container.c ++++ libvirt-1.2.3/src/lxc/lxc_container.c +@@ -164,12 +164,19 @@ int lxcContainerHasReboot(void) VIR_FREE(buf); cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF; @@ -22,7 +22,7 @@ VIR_FREE(stack); if (cpid < 0) { virReportSystemError(errno, "%s", -@@ -2004,6 +2011,9 @@ int lxcContainerStart(virDomainDefPtr de +@@ -2007,6 +2014,9 @@ int lxcContainerStart(virDomainDefPtr de .handshakefd = handshakefd }; @@ -32,7 +32,7 @@ /* allocate a stack for the container */ if (VIR_ALLOC_N(stack, stacksize) < 0) return -1; -@@ -2029,7 +2039,11 @@ int lxcContainerStart(virDomainDefPtr de +@@ -2032,7 +2042,11 @@ int lxcContainerStart(virDomainDefPtr de cflags |= CLONE_NEWNET; } @@ -44,7 +44,7 @@ VIR_FREE(stack); VIR_DEBUG("clone() completed, new container PID is %d", pid); -@@ -2063,12 +2077,19 @@ int lxcContainerAvailable(int features) +@@ -2066,12 +2080,19 @@ int lxcContainerAvailable(int features) if (features & LXC_CONTAINER_FEATURE_NET) flags |= CLONE_NEWNET; ++++++ libvirt-guests-init-script.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -1,9 +1,9 @@ Adjust libvirt-guests init files to conform to SUSE standards -Index: libvirt-1.2.2/tools/libvirt-guests.init.in +Index: libvirt-1.2.3/tools/libvirt-guests.init.in =================================================================== ---- libvirt-1.2.2.orig/tools/libvirt-guests.init.in -+++ libvirt-1.2.2/tools/libvirt-guests.init.in +--- libvirt-1.2.3.orig/tools/libvirt-guests.init.in ++++ libvirt-1.2.3/tools/libvirt-guests.init.in @@ -3,15 +3,15 @@ # the following is the LSB init header # @@ -28,10 +28,10 @@ ### END INIT INFO # the following is chkconfig init header -Index: libvirt-1.2.2/tools/libvirt-guests.sh.in +Index: libvirt-1.2.3/tools/libvirt-guests.sh.in =================================================================== ---- libvirt-1.2.2.orig/tools/libvirt-guests.sh.in -+++ libvirt-1.2.2/tools/libvirt-guests.sh.in +--- libvirt-1.2.3.orig/tools/libvirt-guests.sh.in ++++ libvirt-1.2.3/tools/libvirt-guests.sh.in @@ -16,14 +16,13 @@ # License along with this library. If not, see # <http://www.gnu.org/licenses/>. @@ -189,10 +189,10 @@ esac -exit $RETVAL +rc_exit -Index: libvirt-1.2.2/tools/libvirt-guests.sysconf +Index: libvirt-1.2.3/tools/libvirt-guests.sysconf =================================================================== ---- libvirt-1.2.2.orig/tools/libvirt-guests.sysconf -+++ libvirt-1.2.2/tools/libvirt-guests.sysconf +--- libvirt-1.2.3.orig/tools/libvirt-guests.sysconf ++++ libvirt-1.2.3/tools/libvirt-guests.sysconf @@ -1,19 +1,29 @@ +## Path: System/Virtualization/libvirt-guests + ++++++ libvirt-suse-netcontrol.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -1,7 +1,7 @@ -Index: libvirt-1.2.2/configure.ac +Index: libvirt-1.2.3/configure.ac =================================================================== ---- libvirt-1.2.2.orig/configure.ac -+++ libvirt-1.2.2/configure.ac +--- libvirt-1.2.3.orig/configure.ac ++++ libvirt-1.2.3/configure.ac @@ -231,6 +231,7 @@ LIBVIRT_CHECK_FUSE LIBVIRT_CHECK_GLUSTER LIBVIRT_CHECK_HAL @@ -10,7 +10,7 @@ LIBVIRT_CHECK_NUMACTL LIBVIRT_CHECK_OPENWSMAN LIBVIRT_CHECK_PCIACCESS -@@ -2368,11 +2369,12 @@ if test "$with_libvirtd" = "no" ; then +@@ -2374,11 +2375,12 @@ if test "$with_libvirtd" = "no" ; then with_interface=no fi @@ -26,7 +26,7 @@ esac if test "$with_interface" = "yes" ; then -@@ -2766,6 +2768,7 @@ LIBVIRT_RESULT_FUSE +@@ -2772,6 +2774,7 @@ LIBVIRT_RESULT_FUSE LIBVIRT_RESULT_GLUSTER LIBVIRT_RESULT_HAL LIBVIRT_RESULT_NETCF @@ -34,11 +34,11 @@ LIBVIRT_RESULT_NUMACTL LIBVIRT_RESULT_OPENWSMAN LIBVIRT_RESULT_PCIACCESS -Index: libvirt-1.2.2/src/Makefile.am +Index: libvirt-1.2.3/src/Makefile.am =================================================================== ---- libvirt-1.2.2.orig/src/Makefile.am -+++ libvirt-1.2.2/src/Makefile.am -@@ -801,6 +801,10 @@ if WITH_NETCF +--- libvirt-1.2.3.orig/src/Makefile.am ++++ libvirt-1.2.3/src/Makefile.am +@@ -807,6 +807,10 @@ if WITH_NETCF INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_netcf.c endif WITH_NETCF @@ -49,7 +49,7 @@ if WITH_UDEV INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_udev.c -@@ -1386,10 +1390,15 @@ if WITH_NETCF +@@ -1396,10 +1400,15 @@ if WITH_NETCF libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS) libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS) else ! WITH_NETCF @@ -65,11 +65,11 @@ endif ! WITH_NETCF if WITH_DRIVER_MODULES libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la -Index: libvirt-1.2.2/tools/virsh.c +Index: libvirt-1.2.3/tools/virsh.c =================================================================== ---- libvirt-1.2.2.orig/tools/virsh.c -+++ libvirt-1.2.2/tools/virsh.c -@@ -3209,6 +3209,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE +--- libvirt-1.2.3.orig/tools/virsh.c ++++ libvirt-1.2.3/tools/virsh.c +@@ -3251,6 +3251,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE vshPrint(ctl, " Interface"); # if defined(WITH_NETCF) vshPrint(ctl, " netcf"); @@ -78,10 +78,10 @@ # elif defined(WITH_UDEV) vshPrint(ctl, " udev"); # endif -Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c +Index: libvirt-1.2.3/src/interface/interface_backend_netcf.c =================================================================== ---- libvirt-1.2.2.orig/src/interface/interface_backend_netcf.c -+++ libvirt-1.2.2/src/interface/interface_backend_netcf.c +--- libvirt-1.2.3.orig/src/interface/interface_backend_netcf.c ++++ libvirt-1.2.3/src/interface/interface_backend_netcf.c @@ -23,7 +23,12 @@ #include <config.h> @@ -96,7 +96,7 @@ #include "virerror.h" #include "datatypes.h" -@@ -63,6 +68,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState +@@ -65,6 +70,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState static virNetcfDriverStatePtr driverState = NULL; @@ -134,7 +134,7 @@ static void virNetcfDriverStateDispose(void *obj) -@@ -85,7 +121,22 @@ netcfStateInitialize(bool privileged ATT +@@ -87,7 +123,22 @@ netcfStateInitialize(bool privileged ATT if (!(driverState = virObjectLockableNew(virNetcfDriverStateClass))) return -1; @@ -157,7 +157,7 @@ if (ncf_init(&driverState->netcf, NULL) != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to initialize netcf")); -@@ -93,6 +144,7 @@ netcfStateInitialize(bool privileged ATT +@@ -95,6 +146,7 @@ netcfStateInitialize(bool privileged ATT driverState = NULL; return -1; } @@ -165,11 +165,11 @@ return 0; } -Index: libvirt-1.2.2/src/interface/interface_driver.c +Index: libvirt-1.2.3/src/interface/interface_driver.c =================================================================== ---- libvirt-1.2.2.orig/src/interface/interface_driver.c -+++ libvirt-1.2.2/src/interface/interface_driver.c -@@ -28,8 +28,15 @@ interfaceRegister(void) { +--- libvirt-1.2.3.orig/src/interface/interface_driver.c ++++ libvirt-1.2.3/src/interface/interface_driver.c +@@ -30,8 +30,15 @@ interfaceRegister(void) if (netcfIfaceRegister() == 0) return 0; #endif /* WITH_NETCF */ @@ -186,10 +186,10 @@ if (udevIfaceRegister() == 0) return 0; #endif /* WITH_UDEV */ -Index: libvirt-1.2.2/m4/virt-netcontrol.m4 +Index: libvirt-1.2.3/m4/virt-netcontrol.m4 =================================================================== --- /dev/null -+++ libvirt-1.2.2/m4/virt-netcontrol.m4 ++++ libvirt-1.2.3/m4/virt-netcontrol.m4 @@ -0,0 +1,35 @@ +dnl The libnetcontrol library +dnl ++++++ libvirtd-defaults.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -1,7 +1,7 @@ -Index: libvirt-1.2.2/daemon/libvirtd.conf +Index: libvirt-1.2.3/daemon/libvirtd.conf =================================================================== ---- libvirt-1.2.2.orig/daemon/libvirtd.conf -+++ libvirt-1.2.2/daemon/libvirtd.conf +--- libvirt-1.2.3.orig/daemon/libvirtd.conf ++++ libvirt-1.2.3/daemon/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -13,11 +13,11 @@ # Listen for unencrypted TCP connections on the public TCP/IP port. # NB, must pass the --listen flag to the libvirtd process for this to -Index: libvirt-1.2.2/daemon/libvirtd-config.c +Index: libvirt-1.2.3/daemon/libvirtd-config.c =================================================================== ---- libvirt-1.2.2.orig/daemon/libvirtd-config.c -+++ libvirt-1.2.2/daemon/libvirtd-config.c -@@ -222,7 +222,7 @@ daemonConfigNew(bool privileged ATTRIBUT +--- libvirt-1.2.3.orig/daemon/libvirtd-config.c ++++ libvirt-1.2.3/daemon/libvirtd-config.c +@@ -229,7 +229,7 @@ daemonConfigNew(bool privileged ATTRIBUT if (VIR_ALLOC(data) < 0) return NULL; ++++++ support-managed-pci-xen-driver.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -8,11 +8,11 @@ src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 15 deletions(-) -Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c +Index: libvirt-1.2.3/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-1.2.2.orig/src/xenxs/xen_sxpr.c -+++ libvirt-1.2.2/src/xenxs/xen_sxpr.c -@@ -998,6 +998,7 @@ xenParseSxprPCI(virDomainDefPtr def, +--- libvirt-1.2.3.orig/src/xenxs/xen_sxpr.c ++++ libvirt-1.2.3/src/xenxs/xen_sxpr.c +@@ -997,6 +997,7 @@ xenParseSxprPCI(virDomainDefPtr def, int busID; int slotID; int funcID; @@ -20,7 +20,7 @@ node = cur->u.s.car; if (!sexpr_lookup(node, "dev")) -@@ -1045,11 +1046,13 @@ xenParseSxprPCI(virDomainDefPtr def, +@@ -1044,11 +1045,13 @@ xenParseSxprPCI(virDomainDefPtr def, goto error; } @@ -35,7 +35,7 @@ dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI; dev->source.subsys.u.pci.addr.domain = domainID; dev->source.subsys.u.pci.addr.bus = busID; -@@ -1993,11 +1996,15 @@ static void +@@ -1991,11 +1994,15 @@ static void xenFormatSxprPCI(virDomainHostdevDefPtr def, virBufferPtr buf) { @@ -52,7 +52,7 @@ } -@@ -2016,12 +2023,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP +@@ -2014,12 +2021,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP virBufferPtr buf, int detach) { @@ -65,7 +65,7 @@ virBufferAddLit(buf, "(pci "); xenFormatSxprPCI(def, buf); if (detach) -@@ -2076,12 +2077,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def, +@@ -2074,12 +2075,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def, for (i = 0; i < def->nhostdevs; i++) { if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS && def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) { @@ -78,11 +78,11 @@ xenFormatSxprPCI(def->hostdevs[i], buf); } } -Index: libvirt-1.2.2/src/xenxs/xen_xm.c +Index: libvirt-1.2.3/src/xenxs/xen_xm.c =================================================================== ---- libvirt-1.2.2.orig/src/xenxs/xen_xm.c -+++ libvirt-1.2.2/src/xenxs/xen_xm.c -@@ -802,6 +802,8 @@ xenParseXM(virConfPtr conf, int xendConf +--- libvirt-1.2.3.orig/src/xenxs/xen_xm.c ++++ libvirt-1.2.3/src/xenxs/xen_xm.c +@@ -807,6 +807,8 @@ xenParseXM(virConfPtr conf, int xendConf int busID; int slotID; int funcID; @@ -91,7 +91,7 @@ domain[0] = bus[0] = slot[0] = func[0] = '\0'; -@@ -811,6 +813,11 @@ xenParseXM(virConfPtr conf, int xendConf +@@ -816,6 +818,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 @@ if (!(nextkey = strchr(key, ':'))) goto skippci; -@@ -859,10 +866,30 @@ xenParseXM(virConfPtr conf, int xendConf +@@ -864,10 +871,30 @@ xenParseXM(virConfPtr conf, int xendConf if (virStrToLong_i(func, NULL, 16, &funcID) < 0) goto skippci; ++++++ virtlockd-init-script.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -1,9 +1,9 @@ Adjust virtlockd init files to conform to SUSE standards -Index: libvirt-1.2.2/src/locking/virtlockd.sysconf +Index: libvirt-1.2.3/src/locking/virtlockd.sysconf =================================================================== ---- libvirt-1.2.2.orig/src/locking/virtlockd.sysconf -+++ libvirt-1.2.2/src/locking/virtlockd.sysconf +--- libvirt-1.2.3.orig/src/locking/virtlockd.sysconf ++++ libvirt-1.2.3/src/locking/virtlockd.sysconf @@ -1,3 +1,7 @@ +## Path: System/Virtualization/virtlockd + @@ -12,10 +12,10 @@ # # Pass extra arguments to virtlockd #VIRTLOCKD_ARGS= -Index: libvirt-1.2.2/src/locking/virtlockd.init.in +Index: libvirt-1.2.3/src/locking/virtlockd.init.in =================================================================== ---- libvirt-1.2.2.orig/src/locking/virtlockd.init.in -+++ libvirt-1.2.2/src/locking/virtlockd.init.in +--- libvirt-1.2.3.orig/src/locking/virtlockd.init.in ++++ libvirt-1.2.3/src/locking/virtlockd.init.in @@ -4,12 +4,14 @@ # http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV # ++++++ xen-pv-cdrom.patch ++++++ --- /var/tmp/diff_new_pack.mRudzx/_old 2014-04-16 07:27:05.000000000 +0200 +++ /var/tmp/diff_new_pack.mRudzx/_new 2014-04-16 07:27:05.000000000 +0200 @@ -1,8 +1,8 @@ -Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c +Index: libvirt-1.2.3/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-1.2.2.orig/src/xenxs/xen_sxpr.c -+++ libvirt-1.2.2/src/xenxs/xen_sxpr.c -@@ -330,7 +330,7 @@ error: +--- libvirt-1.2.3.orig/src/xenxs/xen_sxpr.c ++++ libvirt-1.2.3/src/xenxs/xen_sxpr.c +@@ -332,7 +332,7 @@ xenParseSxprChar(const char *value, static int xenParseSxprDisks(virDomainDefPtr def, const struct sexpr *root, @@ -11,7 +11,7 @@ int xendConfigVersion) { const struct sexpr *cur, *node; -@@ -381,7 +381,6 @@ xenParseSxprDisks(virDomainDefPtr def, +@@ -383,7 +383,6 @@ xenParseSxprDisks(virDomainDefPtr def, /* There is a case without the uname to the CD-ROM device */ offset = strchr(dst, ':'); if (!offset || -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
