From c77ae44d06b900f6e98897a5499fddb460962ee8ac1ce9f00839e0f6b57be3a9 Mon Sep 17 00:00:00 2001 From: James Fehlig Date: Thu, 12 Apr 2012 21:33:51 +0000 Subject: [PATCH] - Update to libvirt 0.9.11 - Add support for the suspend event - Add support for event tray moved of removable disks - qemu: Support numad - cpustats: API, improvements and qemu support - qemu: support type='hostdev' network devices at domain start - Introduce virDomainPMWakeup API - network: support Open vSwitch - snapshot improvements OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=204 --- AF_PACKET.patch | 12 ++-- c05ec920-polkit0-build.patch | 24 ------- clone.patch | 8 +-- fcdfa31f-polkit0-auth.patch | 53 --------------- install-apparmor-profiles.patch | 28 ++++---- libvirt-0.9.10.tar.bz2 | 3 - libvirt-0.9.11.tar.bz2 | 3 + libvirt-suse-netcontrol.patch | 50 +++++++------- libvirt.changes | 13 ++++ libvirt.spec | 32 ++++++--- libvirtd-defaults.patch | 38 ++--------- relax-qemu-usergroup-check.patch | 10 +-- suse-qemu-conf.patch | 8 +-- use-init-script-redhat.patch | 111 ++++++++++++++++++------------- xen-name-for-devid.patch | 12 ++-- xen-pv-cdrom.patch | 6 +- 16 files changed, 177 insertions(+), 234 deletions(-) delete mode 100644 c05ec920-polkit0-build.patch delete mode 100644 fcdfa31f-polkit0-auth.patch delete mode 100644 libvirt-0.9.10.tar.bz2 create mode 100644 libvirt-0.9.11.tar.bz2 diff --git a/AF_PACKET.patch b/AF_PACKET.patch index 323983d..1b010a5 100644 --- a/AF_PACKET.patch +++ b/AF_PACKET.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/src/util/virnetdev.c +Index: libvirt-0.9.11/src/util/virnetdev.c =================================================================== ---- libvirt-0.9.10.orig/src/util/virnetdev.c -+++ libvirt-0.9.10/src/util/virnetdev.c +--- libvirt-0.9.11.orig/src/util/virnetdev.c ++++ libvirt-0.9.11/src/util/virnetdev.c @@ -85,7 +85,7 @@ static int virNetDevSetupControlFull(con static int virNetDevSetupControl(const char *ifname, struct ifreq *ifr) @@ -11,10 +11,10 @@ Index: libvirt-0.9.10/src/util/virnetdev.c } #endif -Index: libvirt-0.9.10/src/util/virnetdevbridge.c +Index: libvirt-0.9.11/src/util/virnetdevbridge.c =================================================================== ---- libvirt-0.9.10.orig/src/util/virnetdevbridge.c -+++ libvirt-0.9.10/src/util/virnetdevbridge.c +--- libvirt-0.9.11.orig/src/util/virnetdevbridge.c ++++ libvirt-0.9.11/src/util/virnetdevbridge.c @@ -84,7 +84,7 @@ static int virNetDevSetupControlFull(con static int virNetDevSetupControl(const char *ifname, struct ifreq *ifr) diff --git a/c05ec920-polkit0-build.patch b/c05ec920-polkit0-build.patch deleted file mode 100644 index 74d9341..0000000 --- a/c05ec920-polkit0-build.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit c05ec920219dc9fad9230c3cea7c1fb17d29ddc3 -Author: Jim Fehlig -Date: Wed Feb 15 21:34:13 2012 -0700 - - Fix build with polkit0 - - Commit 8dd623b9 introduced a build error with --enable-compile-warnings=error - - remote.c:2593: error: unused variable 'rv' [-Wunused-variable] - - Pushing under build-breaker rule. - -Index: libvirt-0.9.10/daemon/remote.c -=================================================================== ---- libvirt-0.9.10.orig/daemon/remote.c -+++ libvirt-0.9.10/daemon/remote.c -@@ -2589,7 +2589,6 @@ remoteDispatchAuthPolkit(virNetServerPtr - DBusError err; - const char *action; - char *ident = NULL; -- int rv = -1; - struct daemonClientPrivate *priv = - virNetServerClientGetPrivateData(client); - diff --git a/clone.patch b/clone.patch index c81598c..af5ddbb 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 -@@ -1439,6 +1439,9 @@ int lxcContainerStart(virDomainDefPtr de +@@ -1453,6 +1453,9 @@ int lxcContainerStart(virDomainDefPtr de ttyPaths, nttyPaths, handshakefd}; /* allocate a stack for the container */ @@ -12,7 +12,7 @@ Index: src/lxc/lxc_container.c if (VIR_ALLOC_N(stack, stacksize) < 0) { virReportOOMError(); return -1; -@@ -1457,7 +1460,11 @@ int lxcContainerStart(virDomainDefPtr de +@@ -1472,7 +1475,11 @@ int lxcContainerStart(virDomainDefPtr de cflags |= CLONE_NEWNET; } @@ -24,7 +24,7 @@ Index: src/lxc/lxc_container.c VIR_FREE(stack); VIR_DEBUG("clone() completed, new container PID is %d", pid); -@@ -1483,6 +1490,7 @@ int lxcContainerAvailable(int features) +@@ -1498,6 +1505,7 @@ int lxcContainerAvailable(int features) int cpid; char *childStack; char *stack; @@ -32,7 +32,7 @@ Index: src/lxc/lxc_container.c if (features & LXC_CONTAINER_FEATURE_USER) flags |= CLONE_NEWUSER; -@@ -1490,14 +1498,21 @@ int lxcContainerAvailable(int features) +@@ -1505,14 +1513,21 @@ int lxcContainerAvailable(int features) if (features & LXC_CONTAINER_FEATURE_NET) flags |= CLONE_NEWNET; diff --git a/fcdfa31f-polkit0-auth.patch b/fcdfa31f-polkit0-auth.patch deleted file mode 100644 index 6eb1f97..0000000 --- a/fcdfa31f-polkit0-auth.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a06fab953f99e778883618dd0aeaef8da5d5b32a Mon Sep 17 00:00:00 2001 -From: Jim Fehlig -Date: Wed, 15 Feb 2012 10:01:50 -0700 -Subject: [PATCH] Fix polkit0 authentication - -Commit 7033c5f2 introduced some bugs in polkit0 authentication. - -Fix libvirtd segfault in remoteDispatchAuthPolkit(). - -Fix polkit authentication bypass when caller UID = 0. ---- - daemon/remote.c | 20 +++++++++----------- - 1 files changed, 9 insertions(+), 11 deletions(-) - -Index: libvirt-0.9.10/daemon/remote.c -=================================================================== ---- libvirt-0.9.10.orig/daemon/remote.c -+++ libvirt-0.9.10/daemon/remote.c -@@ -2052,16 +2052,16 @@ remoteDispatchAuthList(virNetServerPtr s - } else if (callerUid == 0) { - char *ident; - if (virAsprintf(&ident, "pid:%lld,uid:%d", -- (long long) callerPid, callerUid) == 0) { -- VIR_INFO("Bypass polkit auth for privileged client %s", -- ident); -- if (virNetServerClientSetIdentity(client, ident) < 0) -- virResetLastError(); -- else -- auth = VIR_NET_SERVER_SERVICE_AUTH_NONE; -- VIR_FREE(ident); -+ (long long) callerPid, callerUid) < 0) { -+ virReportOOMError(); -+ goto cleanup; - } -- rv = -1; -+ VIR_INFO("Bypass polkit auth for privileged client %s", ident); -+ if (virNetServerClientSetIdentity(client, ident) < 0) -+ virResetLastError(); -+ else -+ auth = VIR_NET_SERVER_SERVICE_AUTH_NONE; -+ VIR_FREE(ident); - } - } - -@@ -2592,8 +2592,6 @@ remoteDispatchAuthPolkit(virNetServerPtr - struct daemonClientPrivate *priv = - virNetServerClientGetPrivateData(client); - -- memset(ident, 0, sizeof ident); -- - virMutexLock(&priv->lock); - - action = virNetServerClientGetReadonly(client) ? diff --git a/install-apparmor-profiles.patch b/install-apparmor-profiles.patch index bb4d87f..80dfd3e 100644 --- a/install-apparmor-profiles.patch +++ b/install-apparmor-profiles.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/examples/apparmor/Makefile.am +Index: libvirt-0.9.11/examples/apparmor/Makefile.am =================================================================== ---- libvirt-0.9.10.orig/examples/apparmor/Makefile.am -+++ libvirt-0.9.10/examples/apparmor/Makefile.am +--- libvirt-0.9.11.orig/examples/apparmor/Makefile.am ++++ libvirt-0.9.11/examples/apparmor/Makefile.am @@ -1,8 +1,39 @@ ## Copyright (C) 2005-2011 Red Hat, Inc. ## See COPYING.LIB for the License of this software @@ -47,10 +47,10 @@ Index: libvirt-0.9.10/examples/apparmor/Makefile.am + rm -f $(DESTDIR)$(sysconfdir)/apparmor.d/libvirt/TEMPLATE + +endif -Index: libvirt-0.9.10/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in +Index: libvirt-0.9.11/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in =================================================================== --- /dev/null -+++ libvirt-0.9.10/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in ++++ libvirt-0.9.11/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in @@ -0,0 +1,40 @@ +# Last Modified: Fri Aug 19 11:21:48 2011 +#include @@ -92,9 +92,9 @@ Index: libvirt-0.9.10/examples/apparmor/usr.lib.libvirt.virt-aa-helper.in + /var/lib/kvm/images/ r, + /var/lib/kvm/images/** r, +} -Index: libvirt-0.9.10/examples/apparmor/usr.lib.libvirt.virt-aa-helper +Index: libvirt-0.9.11/examples/apparmor/usr.lib.libvirt.virt-aa-helper =================================================================== ---- libvirt-0.9.10.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +--- libvirt-0.9.11.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper +++ /dev/null @@ -1,38 +0,0 @@ -# Last Modified: Mon Apr 5 15:10:27 2010 @@ -135,9 +135,9 @@ Index: libvirt-0.9.10/examples/apparmor/usr.lib.libvirt.virt-aa-helper - /var/lib/libvirt/images/ r, - /var/lib/libvirt/images/** r, -} -Index: libvirt-0.9.10/examples/apparmor/usr.sbin.libvirtd +Index: libvirt-0.9.11/examples/apparmor/usr.sbin.libvirtd =================================================================== ---- libvirt-0.9.10.orig/examples/apparmor/usr.sbin.libvirtd +--- libvirt-0.9.11.orig/examples/apparmor/usr.sbin.libvirtd +++ /dev/null @@ -1,52 +0,0 @@ -# Last Modified: Mon Apr 5 15:03:58 2010 @@ -192,10 +192,10 @@ Index: libvirt-0.9.10/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-0.9.10/examples/apparmor/usr.sbin.libvirtd.in +Index: libvirt-0.9.11/examples/apparmor/usr.sbin.libvirtd.in =================================================================== --- /dev/null -+++ libvirt-0.9.10/examples/apparmor/usr.sbin.libvirtd.in ++++ libvirt-0.9.11/examples/apparmor/usr.sbin.libvirtd.in @@ -0,0 +1,57 @@ +# Last Modified: Fri Aug 19 11:20:36 2011 +#include @@ -254,10 +254,10 @@ Index: libvirt-0.9.10/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-0.9.10/examples/apparmor/libvirt-qemu +Index: libvirt-0.9.11/examples/apparmor/libvirt-qemu =================================================================== ---- libvirt-0.9.10.orig/examples/apparmor/libvirt-qemu -+++ libvirt-0.9.10/examples/apparmor/libvirt-qemu +--- libvirt-0.9.11.orig/examples/apparmor/libvirt-qemu ++++ libvirt-0.9.11/examples/apparmor/libvirt-qemu @@ -52,6 +52,7 @@ # access to firmware's etc /usr/share/kvm/** r, diff --git a/libvirt-0.9.10.tar.bz2 b/libvirt-0.9.10.tar.bz2 deleted file mode 100644 index 2cedd35..0000000 --- a/libvirt-0.9.10.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c0b775b679afe373cc39a7b56f0d8f6faece3b85964e5ad906fbc7cff8a1798 -size 13393379 diff --git a/libvirt-0.9.11.tar.bz2 b/libvirt-0.9.11.tar.bz2 new file mode 100644 index 0000000..3b44c17 --- /dev/null +++ b/libvirt-0.9.11.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9db610ea0b23e215aed54c8553e9b219ffe1160bab09cf49eb2351a7bd3966a8 +size 13731838 diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch index a3ccecf..8e89cd2 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/configure.ac +Index: libvirt-0.9.11/configure.ac =================================================================== ---- libvirt-0.9.10.orig/configure.ac -+++ libvirt-0.9.10/configure.ac +--- libvirt-0.9.11.orig/configure.ac ++++ libvirt-0.9.11/configure.ac @@ -63,6 +63,7 @@ AVAHI_REQUIRED="0.6.0" POLKIT_REQUIRED="0.6" PARTED_REQUIRED="1.8.0" @@ -10,7 +10,7 @@ Index: libvirt-0.9.10/configure.ac UDEV_REQUIRED=145 PCIACCESS_REQUIRED=0.10.0 XMLRPC_REQUIRED=1.14.0 -@@ -1641,6 +1642,38 @@ AM_CONDITIONAL([WITH_NETCF], [test "$wit +@@ -1716,6 +1717,38 @@ AM_CONDITIONAL([WITH_NETCF], [test "$wit AC_SUBST([NETCF_CFLAGS]) AC_SUBST([NETCF_LIBS]) @@ -49,7 +49,7 @@ Index: libvirt-0.9.10/configure.ac AC_ARG_WITH([secrets], AC_HELP_STRING([--with-secrets], [with local secrets management driver @<:@default=yes@:>@]),[],[with_secrets=yes]) -@@ -2592,6 +2625,7 @@ AC_MSG_NOTICE([ Remote: $with_remote]) +@@ -2660,6 +2693,7 @@ AC_MSG_NOTICE([ Remote: $with_remote]) AC_MSG_NOTICE([ Network: $with_network]) AC_MSG_NOTICE([Libvirtd: $with_libvirtd]) AC_MSG_NOTICE([ netcf: $with_netcf]) @@ -57,7 +57,7 @@ Index: libvirt-0.9.10/configure.ac AC_MSG_NOTICE([ macvtap: $with_macvtap]) AC_MSG_NOTICE([virtport: $with_virtualport]) AC_MSG_NOTICE([]) -@@ -2723,6 +2757,11 @@ AC_MSG_NOTICE([ netcf: $NETCF_CFLAGS $ +@@ -2791,6 +2825,11 @@ AC_MSG_NOTICE([ netcf: $NETCF_CFLAGS $ else AC_MSG_NOTICE([ netcf: no]) fi @@ -69,10 +69,10 @@ Index: libvirt-0.9.10/configure.ac if test "$with_qemu" = "yes" && test "$LIBPCAP_FOUND" != "no"; then AC_MSG_NOTICE([ pcap: $LIBPCAP_CFLAGS $LIBPCAP_LIBS]) else -Index: libvirt-0.9.10/daemon/Makefile.am +Index: libvirt-0.9.11/daemon/Makefile.am =================================================================== ---- libvirt-0.9.10.orig/daemon/Makefile.am -+++ libvirt-0.9.10/daemon/Makefile.am +--- libvirt-0.9.11.orig/daemon/Makefile.am ++++ libvirt-0.9.11/daemon/Makefile.am @@ -143,6 +143,10 @@ endif if WITH_NETCF @@ -84,11 +84,11 @@ Index: libvirt-0.9.10/daemon/Makefile.am endif if WITH_NODE_DEVICES -Index: libvirt-0.9.10/daemon/libvirtd.c +Index: libvirt-0.9.11/daemon/libvirtd.c =================================================================== ---- libvirt-0.9.10.orig/daemon/libvirtd.c -+++ libvirt-0.9.10/daemon/libvirtd.c -@@ -75,6 +75,10 @@ +--- libvirt-0.9.11.orig/daemon/libvirtd.c ++++ libvirt-0.9.11/daemon/libvirtd.c +@@ -76,6 +76,10 @@ # endif # ifdef WITH_NETCF # include "interface/netcf_driver.h" @@ -99,7 +99,7 @@ Index: libvirt-0.9.10/daemon/libvirtd.c # endif # ifdef WITH_STORAGE_DIR # include "storage/storage_driver.h" -@@ -414,6 +418,10 @@ static void daemonInitialize(void) +@@ -415,6 +419,10 @@ static void daemonInitialize(void) # endif # ifdef WITH_NETCF interfaceRegister(); @@ -110,11 +110,11 @@ Index: libvirt-0.9.10/daemon/libvirtd.c # endif # ifdef WITH_STORAGE_DIR storageRegister(); -Index: libvirt-0.9.10/src/Makefile.am +Index: libvirt-0.9.11/src/Makefile.am =================================================================== ---- libvirt-0.9.10.orig/src/Makefile.am -+++ libvirt-0.9.10/src/Makefile.am -@@ -960,6 +960,24 @@ libvirt_driver_interface_la_LIBADD += .. +--- libvirt-0.9.11.orig/src/Makefile.am ++++ libvirt-0.9.11/src/Makefile.am +@@ -967,6 +967,24 @@ libvirt_driver_interface_la_LIBADD += .. libvirt_driver_interface_la_LDFLAGS += -module -avoid-version endif libvirt_driver_interface_la_SOURCES = $(INTERFACE_DRIVER_SOURCES) @@ -139,10 +139,10 @@ Index: libvirt-0.9.10/src/Makefile.am endif if WITH_SECRETS -Index: libvirt-0.9.10/src/interface/netcf_driver.c +Index: libvirt-0.9.11/src/interface/netcf_driver.c =================================================================== ---- libvirt-0.9.10.orig/src/interface/netcf_driver.c -+++ libvirt-0.9.10/src/interface/netcf_driver.c +--- libvirt-0.9.11.orig/src/interface/netcf_driver.c ++++ libvirt-0.9.11/src/interface/netcf_driver.c @@ -23,7 +23,13 @@ #include @@ -208,11 +208,11 @@ Index: libvirt-0.9.10/src/interface/netcf_driver.c /* open netcf */ if (ncf_init(&driverState->netcf, NULL) != 0) { -Index: libvirt-0.9.10/tools/virsh.c +Index: libvirt-0.9.11/tools/virsh.c =================================================================== ---- libvirt-0.9.10.orig/tools/virsh.c -+++ libvirt-0.9.10/tools/virsh.c -@@ -19067,6 +19067,10 @@ vshShowVersion(vshControl *ctl ATTRIBUTE +--- libvirt-0.9.11.orig/tools/virsh.c ++++ libvirt-0.9.11/tools/virsh.c +@@ -19821,6 +19821,10 @@ vshShowVersion(vshControl *ctl ATTRIBUTE #endif #ifdef WITH_NETCF vshPrint(ctl, " Netcf"); diff --git a/libvirt.changes b/libvirt.changes index e893278..6269369 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Apr 12 11:19:38 MDT 2012 - jfehlig@suse.com + +- Update to libvirt 0.9.11 + - Add support for the suspend event + - Add support for event tray moved of removable disks + - qemu: Support numad + - cpustats: API, improvements and qemu support + - qemu: support type='hostdev' network devices at domain start + - Introduce virDomainPMWakeup API + - network: support Open vSwitch + - snapshot improvements + ------------------------------------------------------------------- Mon Mar 26 12:59:04 MDT 2012 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index e337695..65bac04 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + # For now, default to a full server + client build %define client_only 0 @@ -78,6 +79,7 @@ %define with_cgconfig 0%{!?_without_cgconfig:0} %define with_sanlock 0%{!?_without_sanlock:0} %define with_systemd 0%{!?_without_systemd:0} +%define with_numad 0%{!?_without_numad:0} # Non-server/HV driver defaults which are always enabled %define with_python 0%{!?_without_python:1} %define with_sasl 0%{!?_without_sasl:1} @@ -223,8 +225,8 @@ BuildRequires: cyrus-sasl-devel BuildRequires: hal-devel %endif %if %{with_udev} -BuildRequires: libudev-devel >= 145 BuildRequires: libpciaccess0-devel >= 0.10.9 +BuildRequires: libudev-devel >= 145 %endif %if %{with_avahi} %if 0%{?suse_version} > 1030 @@ -242,6 +244,9 @@ BuildRequires: libapparmor-devel %if %{with_numactl} BuildRequires: libnuma-devel %endif +%if %{with_numad} +BuildRequires: numad +%endif %if %{with_polkit} %if 0%{?suse_version} > 1110 BuildRequires: polkit >= 0.9 @@ -324,7 +329,7 @@ BuildRequires: systemd Name: libvirt Url: http://libvirt.org/ -Version: 0.9.10 +Version: 0.9.11 Release: 0 Summary: A C toolkit to interact with the virtualization capabilities of Linux License: LGPL-2.1+ @@ -394,6 +399,9 @@ Recommends: device-mapper Recommends: dmidecode %endif %endif +%if %{with_numad} +Requires: numad +%endif # For service management %if %{with_systemd} %{?systemd_requires} @@ -404,8 +412,6 @@ Source1: libvirtd.init Source2: libvirtd-relocation-server.fw Source99: baselibs.conf # Upstream patches -Patch0: c05ec920-polkit0-build.patch -Patch1: fcdfa31f-polkit0-auth.patch # Need to go upstream Patch100: xen-name-for-devid.patch Patch101: clone.patch @@ -442,11 +448,11 @@ Authors: %package client Summary: Client side library and utilities of the libvirt library Group: Development/Libraries/C and C++ -Requires: readline Requires: ncurses +Requires: readline # Needed by libvirt-guests init script. -Requires: gettext Requires: cyrus-sasl +Requires: gettext Recommends: cyrus-sasl-digestmd5 # So remote clients can access libvirt over SSH tunnel # (client invokes 'nc' against the UNIX socket on the server) @@ -468,7 +474,8 @@ Authors: %package devel Summary: A C toolkit to interact with the virtualization capabilities of Linux Group: Development/Libraries/C and C++ -Requires: %{name}-client = %{version}-%{release} libxml2-devel +Requires: %{name}-client = %{version}-%{release} +Requires: libxml2-devel Requires: pkg-config %if %{with_xen} || %{with_libxl} Requires: xen-devel @@ -510,8 +517,8 @@ Summary: Sanlock lock manager plugin for QEMU driver Group: Development/Libraries/C and C++ Requires: sanlock >= 1.8 #for virt-sanlock-cleanup require augeas -Requires: augeas Requires: %{name} = %{version}-%{release} +Requires: augeas %description lock-sanlock Includes the Sanlock lock manager plugin for the QEMU driver @@ -540,8 +547,6 @@ Authors: %prep %setup -q -%patch0 -p1 -%patch1 -p1 %patch100 -p1 %patch101 %patch102 -p1 @@ -615,6 +620,9 @@ Authors: %if ! %{with_numactl} %define _without_numactl --without-numactl %endif +%if ! %{with_numad} +%define _without_numad --without-numad +%endif %if ! %{with_selinux} %define _without_selinux --without-selinux %endif @@ -700,6 +708,7 @@ export CFLAGS="$RPM_OPT_FLAGS" %{?_without_storage_disk} \ %{?_without_storage_mpath} \ %{?_without_numactl} \ + %{?_without_numad} \ %{?_without_selinux} \ %{?_without_apparmor} \ %{?_without_capng} \ @@ -988,6 +997,9 @@ fi %{_includedir}/libvirt %{_libdir}/*.so %{_libdir}/pkgconfig/libvirt.pc +%dir %{_datadir}/libvirt/api/ +%{_datadir}/libvirt/api/libvirt-api.xml +%{_datadir}/libvirt/api/libvirt-qemu-api.xml %files doc %defattr(-, root, root) diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index 78ce3ab..4d177be 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/daemon/libvirtd.conf +Index: libvirt-0.9.11/daemon/libvirtd.conf =================================================================== ---- libvirt-0.9.10.orig/daemon/libvirtd.conf -+++ libvirt-0.9.10/daemon/libvirtd.conf +--- libvirt-0.9.11.orig/daemon/libvirtd.conf ++++ libvirt-0.9.11/daemon/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -13,26 +13,11 @@ Index: libvirt-0.9.10/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 -@@ -53,11 +53,9 @@ - - # Flag toggling mDNS advertizement of the libvirt service. - # --# Alternatively can disable for all services on a host by --# stopping the Avahi daemon --# --# This is enabled by default, uncomment this to disable it --#mdns_adv = 0 -+# Disabled by default. To enable, ensure the Avahi daemon is -+# running and uncomment this flag. -+#mdns_adv = 1 - - # Override the default mDNS advertizement name. This must be - # unique on the immediate broadcast network. -Index: libvirt-0.9.10/daemon/libvirtd.c +Index: libvirt-0.9.11/daemon/libvirtd.c =================================================================== ---- libvirt-0.9.10.orig/daemon/libvirtd.c -+++ libvirt-0.9.10/daemon/libvirtd.c -@@ -871,7 +871,7 @@ daemonConfigNew(bool privileged ATTRIBUT +--- libvirt-0.9.11.orig/daemon/libvirtd.c ++++ libvirt-0.9.11/daemon/libvirtd.c +@@ -872,7 +872,7 @@ daemonConfigNew(bool privileged ATTRIBUT return NULL; } @@ -41,12 +26,3 @@ Index: libvirt-0.9.10/daemon/libvirtd.c data->listen_tcp = 0; if (!(data->tls_port = strdup(LIBVIRTD_TLS_PORT))) -@@ -908,7 +908,7 @@ daemonConfigNew(bool privileged ATTRIBUT - #endif - data->auth_tls = REMOTE_AUTH_NONE; - -- data->mdns_adv = 1; -+ data->mdns_adv = 0; - - data->min_workers = 5; - data->max_workers = 20; diff --git a/relax-qemu-usergroup-check.patch b/relax-qemu-usergroup-check.patch index 4ea7c3a..2476b1a 100644 --- a/relax-qemu-usergroup-check.patch +++ b/relax-qemu-usergroup-check.patch @@ -7,11 +7,11 @@ 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-0.9.10/src/qemu/qemu_conf.c +Index: libvirt-0.9.11/src/qemu/qemu_conf.c =================================================================== ---- libvirt-0.9.10.orig/src/qemu/qemu_conf.c -+++ libvirt-0.9.10/src/qemu/qemu_conf.c -@@ -266,9 +266,7 @@ int qemudLoadDriverConfig(struct qemud_d +--- libvirt-0.9.11.orig/src/qemu/qemu_conf.c ++++ libvirt-0.9.11/src/qemu/qemu_conf.c +@@ -271,9 +271,7 @@ int qemudLoadDriverConfig(struct qemud_d return -1; } if (virGetUserID(user, &driver->user) < 0) { @@ -22,7 +22,7 @@ Index: libvirt-0.9.10/src/qemu/qemu_conf.c } VIR_FREE(user); -@@ -281,9 +279,7 @@ int qemudLoadDriverConfig(struct qemud_d +@@ -286,9 +284,7 @@ int qemudLoadDriverConfig(struct qemud_d return -1; } if (virGetGroupID(group, &driver->group) < 0) { diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index 57a1591..bcf6cb5 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/src/qemu/qemu.conf +Index: libvirt-0.9.11/src/qemu/qemu.conf =================================================================== ---- libvirt-0.9.10.orig/src/qemu/qemu.conf -+++ libvirt-0.9.10/src/qemu/qemu.conf +--- libvirt-0.9.11.orig/src/qemu/qemu.conf ++++ libvirt-0.9.11/src/qemu/qemu.conf @@ -136,7 +136,16 @@ # leaving SELinux enabled for the host in general, then set this # to 'none' instead. @@ -19,7 +19,7 @@ Index: libvirt-0.9.10/src/qemu/qemu.conf # If set to non-zero, then the default security labeling # will make guests confined. If set to zero, then guests -@@ -316,6 +325,15 @@ +@@ -317,6 +326,15 @@ # max_processes = 0 # max_files = 0 diff --git a/use-init-script-redhat.patch b/use-init-script-redhat.patch index a4c6b03..9c4b899 100644 --- a/use-init-script-redhat.patch +++ b/use-init-script-redhat.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/tools/Makefile.am +Index: libvirt-0.9.11/tools/Makefile.am =================================================================== ---- libvirt-0.9.10.orig/tools/Makefile.am -+++ libvirt-0.9.10/tools/Makefile.am +--- libvirt-0.9.11.orig/tools/Makefile.am ++++ libvirt-0.9.11/tools/Makefile.am @@ -182,24 +182,22 @@ install-data-local: install-init install uninstall-local: uninstall-init uninstall-systemd @@ -33,11 +33,11 @@ Index: libvirt-0.9.10/tools/Makefile.am if LIBVIRT_INIT_SCRIPT_RED_HAT -Index: libvirt-0.9.10/tools/libvirt-guests.sysconf +Index: libvirt-0.9.11/tools/libvirt-guests.sysconf =================================================================== ---- libvirt-0.9.10.orig/tools/libvirt-guests.sysconf -+++ libvirt-0.9.10/tools/libvirt-guests.sysconf -@@ -1,18 +1,28 @@ +--- libvirt-0.9.11.orig/tools/libvirt-guests.sysconf ++++ libvirt-0.9.11/tools/libvirt-guests.sysconf +@@ -1,19 +1,29 @@ +## Path: System/Virtualization/libvirt + +## Type: string @@ -60,7 +60,8 @@ Index: libvirt-0.9.10/tools/libvirt-guests.sysconf +## Type: integer +## Default: 0 - # number of seconds to wait between each guest start + # Number of seconds to wait between each guest start. Set to 0 to allow + # parallel startup. -#START_DELAY=0 +START_DELAY=0 @@ -69,7 +70,7 @@ Index: libvirt-0.9.10/tools/libvirt-guests.sysconf # action taken on host shutdown # - suspend all running guests are suspended using virsh managedsave # - shutdown all running guests are asked to shutdown. Please be careful with -@@ -21,11 +31,15 @@ +@@ -22,20 +32,26 @@ # which just needs a long time to shutdown. When setting # ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a # value suitable for your guests. @@ -77,20 +78,33 @@ Index: libvirt-0.9.10/tools/libvirt-guests.sysconf +ON_SHUTDOWN=suspend +## Type: integer -+## Default: 120 - # number of seconds we're willing to wait for a guest to shut down --#SHUTDOWN_TIMEOUT=0 -+SHUTDOWN_TIMEOUT=120 ++## Default: 0 + # If set to non-zero, shutdown will suspend guests concurrently. Number of + # guests on shutdown at any time will not exceed number set in this variable. +-#PARALLEL_SHUTDOWN=0 ++PARALLEL_SHUTDOWN=0 + ++## Type: integer ++## Default: 300 + # Number of seconds we're willing to wait for a guest to shut down. If parallel + # shutdown is enabled, this timeout applies as a timeout for shutting down all + # guests on a single URI defined in the variable URIS. If this is 0, then there + # is no time out (use with caution, as guests might not respond to a shutdown + # request). The default value is 300 seconds (5 minutes). +-#SHUTDOWN_TIMEOUT=300 ++SHUTDOWN_TIMEOUT=300 +## Type: integer +## Default: 0 # If non-zero, try to bypass the file system cache when saving and # restoring guests, even though this may give slower operation for # some file systems. -Index: libvirt-0.9.10/tools/libvirt-guests.init.sh +-#BYPASS_CACHE=0 ++BYPASS_CACHE=0 +Index: libvirt-0.9.11/tools/libvirt-guests.init.sh =================================================================== ---- libvirt-0.9.10.orig/tools/libvirt-guests.init.sh -+++ libvirt-0.9.10/tools/libvirt-guests.init.sh +--- libvirt-0.9.11.orig/tools/libvirt-guests.init.sh ++++ libvirt-0.9.11/tools/libvirt-guests.init.sh @@ -4,10 +4,10 @@ # ### BEGIN INIT INFO @@ -124,12 +138,15 @@ Index: libvirt-0.9.10/tools/libvirt-guests.init.sh # Source gettext library. # Make sure this file is recognized as having translations: _("dummy") . "@bindir@"/gettext.sh -@@ -51,12 +50,10 @@ test -f "$sysconfdir"/sysconfig/libvirt- +@@ -52,15 +51,13 @@ test -f "$sysconfdir"/sysconfig/libvirt- LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests -RETVAL=0 - + # retval COMMAND ARGUMENTS... + # run command with arguments and convert non-zero return value to 1 and set + # the global return variable retval() { "$@" if [ $? -ne 0 ]; then @@ -138,7 +155,7 @@ Index: libvirt-0.9.10/tools/libvirt-guests.init.sh return 1 else return 0 -@@ -78,12 +75,31 @@ run_virsh_c() { +@@ -89,6 +86,25 @@ run_virsh_c() { ( export LC_ALL=C; run_virsh "$@" ) } @@ -161,37 +178,30 @@ Index: libvirt-0.9.10/tools/libvirt-guests.init.sh + return 0 +} + - list_guests() { - uri=$1 + # test_connect URI + # check if URI is reachable + test_connect() +@@ -115,7 +131,7 @@ list_guests() { - list=$(run_virsh_c "$uri" list) + list=$(run_virsh_c "$uri" list --uuid $persistent) if [ $? -ne 0 ]; then - RETVAL=1 + rc_failed 1 return 1 fi -@@ -91,7 +107,7 @@ list_guests() { - for id in $(echo "$list" | awk 'NR > 2 {print $1}'); do - uuid=$(run_virsh_c "$uri" dominfo "$id" | awk '/^UUID:/{print $2}') - if [ -z "$uuid" ]; then -- RETVAL=1 -+ rc_failed 1 - return 1 - fi - uuids="$uuids $uuid" -@@ -118,7 +134,7 @@ guest_is_on() { +@@ -141,7 +157,7 @@ guest_is_on() { guest_running=false - info=$(run_virsh_c "$uri" dominfo "$uuid") + id=$(run_virsh "$uri" domid "$uuid") if [ $? -ne 0 ]; then - RETVAL=1 + rc_failed 1 return 1 fi -@@ -162,6 +178,12 @@ start() { - continue - fi +@@ -189,6 +205,12 @@ start() { + + test_connect "$uri" || continue + await_daemon_up $uri + if [ $? -ne 0 ]; then @@ -202,16 +212,25 @@ Index: libvirt-0.9.10/tools/libvirt-guests.init.sh eval_gettext "Resuming guests on \$uri URI..."; echo for guest in $list; do name=$(guest_name "$uri" "$guest") -@@ -251,7 +273,7 @@ stop() { - if [ $SHUTDOWN_TIMEOUT -le 0 ]; then - gettext "Shutdown action requested but SHUTDOWN_TIMEOUT was not set" +@@ -372,7 +394,7 @@ shutdown_guests_parallel() + timeout=$(($timeout - 1)) + if [ $timeout -le 0 ]; then + eval_gettext "Timeout expired while shutting down domains"; echo +- RETVAL=1 ++ rc_failed 1 + return + fi + fi +@@ -394,7 +416,7 @@ stop() { + if [ $SHUTDOWN_TIMEOUT -lt 0 ]; then + gettext "SHUTDOWN_TIMEOUT must be equal or greater than 0" echo - RETVAL=6 + rc_failed 6 return fi fi -@@ -321,14 +343,13 @@ gueststatus() { +@@ -504,14 +526,13 @@ gueststatus() { rh_status() { if [ -f "$LISTFILE" ]; then gettext "stopped, with saved guests"; echo @@ -227,16 +246,16 @@ Index: libvirt-0.9.10/tools/libvirt-guests.init.sh fi } -@@ -372,4 +393,4 @@ case "$1" in +@@ -555,4 +576,4 @@ case "$1" in usage ;; esac -exit $RETVAL +rc_exit -Index: libvirt-0.9.10/daemon/Makefile.am +Index: libvirt-0.9.11/daemon/Makefile.am =================================================================== ---- libvirt-0.9.10.orig/daemon/Makefile.am -+++ libvirt-0.9.10/daemon/Makefile.am +--- libvirt-0.9.11.orig/daemon/Makefile.am ++++ libvirt-0.9.11/daemon/Makefile.am @@ -249,34 +249,23 @@ uninstall-logrotate: rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || : @@ -275,10 +294,10 @@ Index: libvirt-0.9.10/daemon/Makefile.am else install-init-redhat: uninstall-init-redhat: -Index: libvirt-0.9.10/daemon/libvirtd.sysconf +Index: libvirt-0.9.11/daemon/libvirtd.sysconf =================================================================== ---- libvirt-0.9.10.orig/daemon/libvirtd.sysconf -+++ libvirt-0.9.10/daemon/libvirtd.sysconf +--- libvirt-0.9.11.orig/daemon/libvirtd.sysconf ++++ libvirt-0.9.11/daemon/libvirtd.sysconf @@ -1,16 +1,25 @@ +## Path: System/Virtualization/libvirt + diff --git a/xen-name-for-devid.patch b/xen-name-for-devid.patch index b2d6ff2..328e903 100644 --- a/xen-name-for-devid.patch +++ b/xen-name-for-devid.patch @@ -13,10 +13,10 @@ Date: Wed Jan 27 16:11:41 2010 -0700 This approach allows removing a disk when domain is inactive. We obviously can't search xenstore when the domain is inactive. -Index: libvirt-0.9.10/src/xen/xend_internal.c +Index: libvirt-0.9.11/src/xen/xend_internal.c =================================================================== ---- libvirt-0.9.10.orig/src/xen/xend_internal.c -+++ libvirt-0.9.10/src/xen/xend_internal.c +--- libvirt-0.9.11.orig/src/xen/xend_internal.c ++++ libvirt-0.9.11/src/xen/xend_internal.c @@ -60,6 +60,7 @@ static int @@ -52,7 +52,7 @@ Index: libvirt-0.9.10/src/xen/xend_internal.c goto cleanup; if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) { -@@ -3916,6 +3917,7 @@ struct xenUnifiedDriver xenDaemonDriver +@@ -3914,6 +3915,7 @@ struct xenUnifiedDriver xenDaemonDriver */ static int virDomainXMLDevID(virDomainPtr domain, @@ -60,7 +60,7 @@ Index: libvirt-0.9.10/src/xen/xend_internal.c virDomainDeviceDefPtr dev, char *class, char *ref, -@@ -3924,8 +3926,12 @@ virDomainXMLDevID(virDomainPtr domain, +@@ -3922,8 +3924,12 @@ virDomainXMLDevID(virDomainPtr domain, xenUnifiedPrivatePtr priv = domain->conn->privateData; char *xref; char *tmp; @@ -73,7 +73,7 @@ Index: libvirt-0.9.10/src/xen/xend_internal.c if (dev->data.disk->driverName && STREQ(dev->data.disk->driverName, "tap")) strcpy(class, "tap"); -@@ -3935,19 +3941,21 @@ virDomainXMLDevID(virDomainPtr domain, +@@ -3933,19 +3939,21 @@ virDomainXMLDevID(virDomainPtr domain, else strcpy(class, "vbd"); diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index 89b7bd3..3404c76 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,7 +1,7 @@ -Index: libvirt-0.9.10/src/xenxs/xen_sxpr.c +Index: libvirt-0.9.11/src/xenxs/xen_sxpr.c =================================================================== ---- libvirt-0.9.10.orig/src/xenxs/xen_sxpr.c -+++ libvirt-0.9.10/src/xenxs/xen_sxpr.c +--- libvirt-0.9.11.orig/src/xenxs/xen_sxpr.c ++++ libvirt-0.9.11/src/xenxs/xen_sxpr.c @@ -340,7 +340,7 @@ error: static int xenParseSxprDisks(virDomainDefPtr def,