diff --git a/apparmor-fixes.patch b/apparmor-fixes.patch index 69f43f5..a2ed5c6 100644 --- a/apparmor-fixes.patch +++ b/apparmor-fixes.patch @@ -1,7 +1,7 @@ -Index: libvirt-2.2.0/examples/apparmor/libvirt-qemu +Index: libvirt-2.3.0/examples/apparmor/libvirt-qemu =================================================================== ---- libvirt-2.2.0.orig/examples/apparmor/libvirt-qemu -+++ libvirt-2.2.0/examples/apparmor/libvirt-qemu +--- libvirt-2.3.0.orig/examples/apparmor/libvirt-qemu ++++ libvirt-2.3.0/examples/apparmor/libvirt-qemu @@ -143,6 +143,9 @@ # for restore /bin/bash rmix, diff --git a/apparmor-no-mount.patch b/apparmor-no-mount.patch index 90da985..7ec6afc 100644 --- a/apparmor-no-mount.patch +++ b/apparmor-no-mount.patch @@ -1,7 +1,7 @@ -Index: libvirt-2.2.0/examples/apparmor/libvirt-lxc +Index: libvirt-2.3.0/examples/apparmor/libvirt-lxc =================================================================== ---- libvirt-2.2.0.orig/examples/apparmor/libvirt-lxc -+++ libvirt-2.2.0/examples/apparmor/libvirt-lxc +--- libvirt-2.3.0.orig/examples/apparmor/libvirt-lxc ++++ libvirt-2.3.0/examples/apparmor/libvirt-lxc @@ -2,39 +2,15 @@ #include diff --git a/apparmor-qemu-bridge-helper.patch b/apparmor-qemu-bridge-helper.patch deleted file mode 100644 index d1f0c0e..0000000 --- a/apparmor-qemu-bridge-helper.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 430cd5a72cf1f5c3e56cf1b4b40385812477aef3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= -Date: Fri, 5 Aug 2016 09:32:54 +0200 -Subject: [PATCH] apparmor: move qemu-bridge-helper to libvirtd profile - -qemu-bridge-helper is only called from libvirtd, it has to be moved -from the qemu domain abstraction to the usr.sbin.libvirtd profile. ---- - examples/apparmor/libvirt-qemu | 19 ------------------- - examples/apparmor/usr.sbin.libvirtd | 18 ++++++++++++++++++ - 2 files changed, 18 insertions(+), 19 deletions(-) - -Index: libvirt-2.2.0/examples/apparmor/libvirt-qemu -=================================================================== ---- libvirt-2.2.0.orig/examples/apparmor/libvirt-qemu -+++ libvirt-2.2.0/examples/apparmor/libvirt-qemu -@@ -151,22 +151,3 @@ - /etc/udev/udev.conf r, - /sys/bus/ r, - /sys/class/ r, -- -- /usr/{lib,libexec}/qemu-bridge-helper Cx -> qemu_bridge_helper, -- # child profile for bridge helper process -- profile qemu_bridge_helper { -- #include -- -- capability setuid, -- capability setgid, -- capability setpcap, -- capability net_admin, -- -- network inet stream, -- -- /dev/net/tun rw, -- /etc/qemu/** r, -- owner @{PROC}/*/status r, -- -- /usr/{lib,libexec}/qemu-bridge-helper rmix, -- } -Index: libvirt-2.2.0/examples/apparmor/usr.sbin.libvirtd -=================================================================== ---- libvirt-2.2.0.orig/examples/apparmor/usr.sbin.libvirtd -+++ libvirt-2.2.0/examples/apparmor/usr.sbin.libvirtd -@@ -67,4 +67,22 @@ - # allow changing to our UUID-based named profiles - change_profile -> @{LIBVIRT}-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*, - -+ /usr/{lib,libexec}/qemu-bridge-helper Cx -> qemu_bridge_helper, -+ # child profile for bridge helper process -+ profile qemu_bridge_helper { -+ #include -+ -+ capability setuid, -+ capability setgid, -+ capability setpcap, -+ capability net_admin, -+ -+ network inet stream, -+ -+ /dev/net/tun rw, -+ /etc/qemu/** r, -+ owner @{PROC}/*/status r, -+ -+ /usr/{lib,libexec}/qemu-bridge-helper rmix, -+ } - } diff --git a/blockcopy-check-dst-identical-device.patch b/blockcopy-check-dst-identical-device.patch index d0a91be..b1b86f1 100644 --- a/blockcopy-check-dst-identical-device.patch +++ b/blockcopy-check-dst-identical-device.patch @@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu src/qemu/qemu_driver.c | 7 +++++++ 1 file changed, 7 insertions(+) -Index: libvirt-2.2.0/src/qemu/qemu_driver.c +Index: libvirt-2.3.0/src/qemu/qemu_driver.c =================================================================== ---- libvirt-2.2.0.orig/src/qemu/qemu_driver.c -+++ libvirt-2.2.0/src/qemu/qemu_driver.c -@@ -16578,6 +16578,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt +--- libvirt-2.3.0.orig/src/qemu/qemu_driver.c ++++ libvirt-2.3.0/src/qemu/qemu_driver.c +@@ -16622,6 +16622,15 @@ qemuDomainBlockCopyCommon(virDomainObjPt _("non-file destination not supported yet")); goto endjob; } diff --git a/libvirt-2.2.0.tar.xz b/libvirt-2.2.0.tar.xz deleted file mode 100644 index 55f2295..0000000 --- a/libvirt-2.2.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e315a8d66aeeb0e7b6459e20b8abae16a23764c3f5d24c7d9462465d26791699 -size 13209684 diff --git a/libvirt-2.2.0.tar.xz.asc b/libvirt-2.2.0.tar.xz.asc deleted file mode 100644 index cf50faf..0000000 --- a/libvirt-2.2.0.tar.xz.asc +++ /dev/null @@ -1,6 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iEYEABECAAYFAlfJfmsACgkQRga4pd6VvB9J1gCdGxdMVSocMiKYnKPh4sY3Gp3r -kP8AnAgpRQ+Hn48/YIflP9dKacy+yEkF -=x1Mw ------END PGP SIGNATURE----- diff --git a/libvirt-2.3.0.tar.xz b/libvirt-2.3.0.tar.xz new file mode 100644 index 0000000..672ddff --- /dev/null +++ b/libvirt-2.3.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e430e69b27d3f6c97255e638617b59b179618d531d81ac7dfe0783a1c1eeafd1 +size 13224384 diff --git a/libvirt-2.3.0.tar.xz.asc b/libvirt-2.3.0.tar.xz.asc new file mode 100644 index 0000000..54bbcd3 --- /dev/null +++ b/libvirt-2.3.0.tar.xz.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iEYEABECAAYFAlfz22MACgkQRga4pd6VvB+odwCdHUMccQTnLQfnwqcRCY+T2m5t +9rkAn2EsUm3CmPF+M0PX3+5GMdnjJW8X +=tiI+ +-----END PGP SIGNATURE----- diff --git a/libvirt-guests-init-script.patch b/libvirt-guests-init-script.patch index d97abe4..61925bc 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-2.2.0/tools/libvirt-guests.init.in +Index: libvirt-2.3.0/tools/libvirt-guests.init.in =================================================================== ---- libvirt-2.2.0.orig/tools/libvirt-guests.init.in -+++ libvirt-2.2.0/tools/libvirt-guests.init.in +--- libvirt-2.3.0.orig/tools/libvirt-guests.init.in ++++ libvirt-2.3.0/tools/libvirt-guests.init.in @@ -4,27 +4,27 @@ # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html # @@ -45,10 +45,10 @@ Index: libvirt-2.2.0/tools/libvirt-guests.init.in # exec @libexecdir@/libvirt-guests.sh "$@" -Index: libvirt-2.2.0/tools/libvirt-guests.sh.in +Index: libvirt-2.3.0/tools/libvirt-guests.sh.in =================================================================== ---- libvirt-2.2.0.orig/tools/libvirt-guests.sh.in -+++ libvirt-2.2.0/tools/libvirt-guests.sh.in +--- libvirt-2.3.0.orig/tools/libvirt-guests.sh.in ++++ libvirt-2.3.0/tools/libvirt-guests.sh.in @@ -16,14 +16,13 @@ # License along with this library. If not, see # . @@ -208,10 +208,10 @@ Index: libvirt-2.2.0/tools/libvirt-guests.sh.in esac -exit $RETVAL +rc_exit -Index: libvirt-2.2.0/tools/libvirt-guests.sysconf +Index: libvirt-2.3.0/tools/libvirt-guests.sysconf =================================================================== ---- libvirt-2.2.0.orig/tools/libvirt-guests.sysconf -+++ libvirt-2.2.0/tools/libvirt-guests.sysconf +--- libvirt-2.3.0.orig/tools/libvirt-guests.sysconf ++++ libvirt-2.3.0/tools/libvirt-guests.sysconf @@ -1,19 +1,29 @@ +## Path: System/Virtualization/libvirt-guests + diff --git a/libvirt-power8-models.patch b/libvirt-power8-models.patch index f2877cc..f3c90e5 100644 --- a/libvirt-power8-models.patch +++ b/libvirt-power8-models.patch @@ -1,7 +1,11 @@ -Index: libvirt-2.2.0/src/cpu/cpu_map.xml +Add POWER8 v2.0 and v2.1 to cpu map XML + +From: + +Index: libvirt-2.3.0/src/cpu/cpu_map.xml =================================================================== ---- libvirt-2.2.0.orig/src/cpu/cpu_map.xml -+++ libvirt-2.2.0/src/cpu/cpu_map.xml +--- libvirt-2.3.0.orig/src/cpu/cpu_map.xml ++++ libvirt-2.3.0/src/cpu/cpu_map.xml @@ -1542,6 +1542,16 @@ @@ -19,3 +23,15 @@ Index: libvirt-2.2.0/src/cpu/cpu_map.xml +Index: libvirt-2.3.0/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml +=================================================================== +--- libvirt-2.3.0.orig/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml ++++ libvirt-2.3.0/tests/domaincapsschemadata/qemu_2.6.0.ppc64le.xml +@@ -26,6 +26,7 @@ + + POWER8 + POWER7 ++ POWER8_v2.0 + + + diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch index 54fbf50..60f32ed 100644 --- a/libvirt-suse-netcontrol.patch +++ b/libvirt-suse-netcontrol.patch @@ -1,7 +1,7 @@ -Index: libvirt-2.2.0/configure.ac +Index: libvirt-2.3.0/configure.ac =================================================================== ---- libvirt-2.2.0.orig/configure.ac -+++ libvirt-2.2.0/configure.ac +--- libvirt-2.3.0.orig/configure.ac ++++ libvirt-2.3.0/configure.ac @@ -248,6 +248,7 @@ LIBVIRT_CHECK_FUSE LIBVIRT_CHECK_GLUSTER LIBVIRT_CHECK_HAL @@ -34,10 +34,10 @@ Index: libvirt-2.2.0/configure.ac LIBVIRT_RESULT_NUMACTL LIBVIRT_RESULT_OPENWSMAN LIBVIRT_RESULT_PCIACCESS -Index: libvirt-2.2.0/src/Makefile.am +Index: libvirt-2.3.0/src/Makefile.am =================================================================== ---- libvirt-2.2.0.orig/src/Makefile.am -+++ libvirt-2.2.0/src/Makefile.am +--- libvirt-2.3.0.orig/src/Makefile.am ++++ libvirt-2.3.0/src/Makefile.am @@ -952,6 +952,10 @@ if WITH_NETCF INTERFACE_DRIVER_SOURCES += \ interface/interface_backend_netcf.c @@ -60,11 +60,11 @@ Index: libvirt-2.2.0/src/Makefile.am if WITH_UDEV libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS) libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS) -Index: libvirt-2.2.0/tools/virsh.c +Index: libvirt-2.3.0/tools/virsh.c =================================================================== ---- libvirt-2.2.0.orig/tools/virsh.c -+++ libvirt-2.2.0/tools/virsh.c -@@ -640,6 +640,8 @@ virshShowVersion(vshControl *ctl ATTRIBU +--- libvirt-2.3.0.orig/tools/virsh.c ++++ libvirt-2.3.0/tools/virsh.c +@@ -602,6 +602,8 @@ virshShowVersion(vshControl *ctl ATTRIBU vshPrint(ctl, " Interface"); # if defined(WITH_NETCF) vshPrint(ctl, " netcf"); @@ -73,10 +73,10 @@ Index: libvirt-2.2.0/tools/virsh.c # elif defined(WITH_UDEV) vshPrint(ctl, " udev"); # endif -Index: libvirt-2.2.0/src/interface/interface_backend_netcf.c +Index: libvirt-2.3.0/src/interface/interface_backend_netcf.c =================================================================== ---- libvirt-2.2.0.orig/src/interface/interface_backend_netcf.c -+++ libvirt-2.2.0/src/interface/interface_backend_netcf.c +--- libvirt-2.3.0.orig/src/interface/interface_backend_netcf.c ++++ libvirt-2.3.0/src/interface/interface_backend_netcf.c @@ -23,7 +23,12 @@ #include @@ -160,10 +160,10 @@ Index: libvirt-2.2.0/src/interface/interface_backend_netcf.c if (virSetSharedInterfaceDriver(&interfaceDriver) < 0) return -1; if (virRegisterStateDriver(&interfaceStateDriver) < 0) -Index: libvirt-2.2.0/src/interface/interface_driver.c +Index: libvirt-2.3.0/src/interface/interface_driver.c =================================================================== ---- libvirt-2.2.0.orig/src/interface/interface_driver.c -+++ libvirt-2.2.0/src/interface/interface_driver.c +--- libvirt-2.3.0.orig/src/interface/interface_driver.c ++++ libvirt-2.3.0/src/interface/interface_driver.c @@ -30,8 +30,15 @@ interfaceRegister(void) if (netcfIfaceRegister() == 0) return 0; @@ -181,10 +181,10 @@ Index: libvirt-2.2.0/src/interface/interface_driver.c if (udevIfaceRegister() == 0) return 0; #endif /* WITH_UDEV */ -Index: libvirt-2.2.0/m4/virt-netcontrol.m4 +Index: libvirt-2.3.0/m4/virt-netcontrol.m4 =================================================================== --- /dev/null -+++ libvirt-2.2.0/m4/virt-netcontrol.m4 ++++ libvirt-2.3.0/m4/virt-netcontrol.m4 @@ -0,0 +1,35 @@ +dnl The libnetcontrol library +dnl diff --git a/libvirt.changes b/libvirt.changes index 4970bfe..15dde6f 100644 --- a/libvirt.changes +++ b/libvirt.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Wed Oct 5 13:58:27 UTC 2016 - jfehlig@suse.com + +- Update to libvirt 2.3.0 + - Many incremental improvements and bug fixes, see + http://libvirt.org/news.html + - Dropped patches: + pci-use-driver-override-sysfs.patch, + virHostdevFindUSBDevice-privsyms.patch, libxl-usb-vendor.patch, + apparmor-qemu-bridge-helper.patch + ------------------------------------------------------------------- Fri Sep 2 18:30:27 UTC 2016 - jfehlig@suse.com diff --git a/libvirt.spec b/libvirt.spec index d16ceba..9d17b50 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -174,7 +174,7 @@ Name: libvirt Url: http://libvirt.org/ -Version: 2.2.0 +Version: 2.3.0 Release: 0 Summary: Library providing a simple virtualization API License: LGPL-2.1+ @@ -316,9 +316,6 @@ Source100: %{name}-rpmlintrc # Upstream patches # Patches pending upstream review Patch100: libxl-dom-reset.patch -Patch101: pci-use-driver-override-sysfs.patch -Patch102: virHostdevFindUSBDevice-privsyms.patch -Patch103: libxl-usb-vendor.patch # Need to go upstream Patch150: xen-pv-cdrom.patch Patch151: blockcopy-check-dst-identical-device.patch @@ -327,7 +324,6 @@ Patch153: ppc64le-canonical-name.patch Patch154: libxl-set-migration-constraints.patch Patch155: libxl-set-cach-mode.patch Patch156: apparmor-fixes.patch -Patch157: apparmor-qemu-bridge-helper.patch # Our patches Patch200: libvirtd-defaults.patch Patch201: libvirtd-init-script.patch @@ -787,9 +783,6 @@ libvirt plugin for NSS for translating domain names into IP addresses. %prep %setup -q %patch100 -p1 -%patch101 -p1 -%patch102 -p1 -%patch103 -p1 %patch150 -p1 %patch151 -p1 %patch152 -p1 @@ -797,7 +790,6 @@ libvirt plugin for NSS for translating domain names into IP addresses. %patch154 -p1 %patch155 -p1 %patch156 -p1 -%patch157 -p1 %patch200 -p1 %patch201 -p1 %patch202 -p1 @@ -1535,6 +1527,7 @@ fi %{_datadir}/libvirt/schemas/basictypes.rng %{_datadir}/libvirt/schemas/capability.rng %{_datadir}/libvirt/schemas/domain.rng +%{_datadir}/libvirt/schemas/cputypes.rng %{_datadir}/libvirt/schemas/domaincaps.rng %{_datadir}/libvirt/schemas/domaincommon.rng %{_datadir}/libvirt/schemas/domainsnapshot.rng diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch index 648f88b..96086ec 100644 --- a/libvirtd-defaults.patch +++ b/libvirtd-defaults.patch @@ -1,7 +1,7 @@ -Index: libvirt-2.2.0/daemon/libvirtd.conf +Index: libvirt-2.3.0/daemon/libvirtd.conf =================================================================== ---- libvirt-2.2.0.orig/daemon/libvirtd.conf -+++ libvirt-2.2.0/daemon/libvirtd.conf +--- libvirt-2.3.0.orig/daemon/libvirtd.conf ++++ libvirt-2.3.0/daemon/libvirtd.conf @@ -18,8 +18,8 @@ # It is necessary to setup a CA and issue server certificates before # using this capability. @@ -13,10 +13,10 @@ Index: libvirt-2.2.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-2.2.0/daemon/libvirtd-config.c +Index: libvirt-2.3.0/daemon/libvirtd-config.c =================================================================== ---- libvirt-2.2.0.orig/daemon/libvirtd-config.c -+++ libvirt-2.2.0/daemon/libvirtd-config.c +--- libvirt-2.3.0.orig/daemon/libvirtd-config.c ++++ libvirt-2.3.0/daemon/libvirtd-config.c @@ -109,7 +109,7 @@ daemonConfigNew(bool privileged ATTRIBUT if (VIR_ALLOC(data) < 0) return NULL; @@ -26,10 +26,10 @@ Index: libvirt-2.2.0/daemon/libvirtd-config.c data->listen_tcp = 0; if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 || -Index: libvirt-2.2.0/daemon/test_libvirtd.aug.in +Index: libvirt-2.3.0/daemon/test_libvirtd.aug.in =================================================================== ---- libvirt-2.2.0.orig/daemon/test_libvirtd.aug.in -+++ libvirt-2.2.0/daemon/test_libvirtd.aug.in +--- libvirt-2.3.0.orig/daemon/test_libvirtd.aug.in ++++ libvirt-2.3.0/daemon/test_libvirtd.aug.in @@ -2,7 +2,7 @@ module Test_libvirtd = ::CONFIG:: diff --git a/libvirtd-init-script.patch b/libvirtd-init-script.patch index 74057c2..c96303e 100644 --- a/libvirtd-init-script.patch +++ b/libvirtd-init-script.patch @@ -1,9 +1,9 @@ Adjust libvirtd sysconfig file to conform to SUSE standards -Index: libvirt-2.2.0/daemon/libvirtd.sysconf +Index: libvirt-2.3.0/daemon/libvirtd.sysconf =================================================================== ---- libvirt-2.2.0.orig/daemon/libvirtd.sysconf -+++ libvirt-2.2.0/daemon/libvirtd.sysconf +--- libvirt-2.3.0.orig/daemon/libvirtd.sysconf ++++ libvirt-2.3.0/daemon/libvirtd.sysconf @@ -1,16 +1,25 @@ +## Path: System/Virtualization/libvirt + diff --git a/libxl-dom-reset.patch b/libxl-dom-reset.patch index c294887..c453ff3 100644 --- a/libxl-dom-reset.patch +++ b/libxl-dom-reset.patch @@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600 option, but domainReset can be implemented in the libxl driver by forcibly destroying the domain and starting it again. -Index: libvirt-2.2.0/src/libxl/libxl_driver.c +Index: libvirt-2.3.0/src/libxl/libxl_driver.c =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_driver.c -+++ libvirt-2.2.0/src/libxl/libxl_driver.c -@@ -1376,6 +1376,61 @@ libxlDomainReboot(virDomainPtr dom, unsi +--- libvirt-2.3.0.orig/src/libxl/libxl_driver.c ++++ libvirt-2.3.0/src/libxl/libxl_driver.c +@@ -1384,6 +1384,61 @@ libxlDomainReboot(virDomainPtr dom, unsi } static int @@ -74,7 +74,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_driver.c libxlDomainDestroyFlags(virDomainPtr dom, unsigned int flags) { -@@ -6370,6 +6425,7 @@ static virHypervisorDriver libxlHypervis +@@ -6426,6 +6481,7 @@ static virHypervisorDriver libxlHypervis .domainShutdown = libxlDomainShutdown, /* 0.9.0 */ .domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */ .domainReboot = libxlDomainReboot, /* 0.9.0 */ diff --git a/libxl-qemu-emulator-caps.patch b/libxl-qemu-emulator-caps.patch index 6cb89b0..a5167f1 100644 --- a/libxl-qemu-emulator-caps.patch +++ b/libxl-qemu-emulator-caps.patch @@ -8,19 +8,19 @@ as the default , instead of the qemu-xen one. See FATE#320638 for details. -Index: libvirt-2.2.0/src/libxl/libxl_capabilities.c +Index: libvirt-2.3.0/src/libxl/libxl_capabilities.c =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_capabilities.c -+++ libvirt-2.2.0/src/libxl/libxl_capabilities.c -@@ -36,6 +36,7 @@ - #include "domain_capabilities.h" - #include "vircommand.h" +--- libvirt-2.3.0.orig/src/libxl/libxl_capabilities.c ++++ libvirt-2.3.0/src/libxl/libxl_capabilities.c +@@ -38,6 +38,7 @@ #include "libxl_capabilities.h" + #include "cpu/cpu_x86.h" + #include "cpu/cpu_x86_data.h" +#include "configmake.h" #define VIR_FROM_THIS VIR_FROM_LIBXL -@@ -335,7 +336,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virC +@@ -483,7 +484,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virC if ((guest = virCapabilitiesAddGuest(caps, guest_archs[i].hvm ? VIR_DOMAIN_OSTYPE_HVM : VIR_DOMAIN_OSTYPE_XEN, guest_archs[i].arch, diff --git a/libxl-set-cach-mode.patch b/libxl-set-cach-mode.patch index 637fb86..f3638c4 100644 --- a/libxl-set-cach-mode.patch +++ b/libxl-set-cach-mode.patch @@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425 src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) -Index: libvirt-2.2.0/src/libxl/libxl_conf.c +Index: libvirt-2.3.0/src/libxl/libxl_conf.c =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_conf.c -+++ libvirt-2.2.0/src/libxl/libxl_conf.c -@@ -557,6 +557,30 @@ libxlDiskSetDiscard(libxl_device_disk *x +--- libvirt-2.3.0.orig/src/libxl/libxl_conf.c ++++ libvirt-2.3.0/src/libxl/libxl_conf.c +@@ -584,6 +584,30 @@ libxlDiskSetDiscard(libxl_device_disk *x #endif } @@ -38,7 +38,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_conf.c static char * libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src, const char *username, -@@ -799,6 +823,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk +@@ -826,6 +850,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0; if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0) return -1; diff --git a/libxl-set-migration-constraints.patch b/libxl-set-migration-constraints.patch index adea039..b1ccdeb 100644 --- a/libxl-set-migration-constraints.patch +++ b/libxl-set-migration-constraints.patch @@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig tools/virsh.pod | 8 ++++++++ 6 files changed, 125 insertions(+), 6 deletions(-) -Index: libvirt-2.2.0/include/libvirt/libvirt-domain.h +Index: libvirt-2.3.0/include/libvirt/libvirt-domain.h =================================================================== ---- libvirt-2.2.0.orig/include/libvirt/libvirt-domain.h -+++ libvirt-2.2.0/include/libvirt/libvirt-domain.h +--- libvirt-2.3.0.orig/include/libvirt/libvirt-domain.h ++++ libvirt-2.3.0/include/libvirt/libvirt-domain.h @@ -889,6 +889,31 @@ typedef enum { */ # define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment" @@ -52,11 +52,11 @@ Index: libvirt-2.2.0/include/libvirt/libvirt-domain.h /* Domain migration. */ virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn, unsigned long flags, const char *dname, -Index: libvirt-2.2.0/src/libxl/libxl_driver.c +Index: libvirt-2.3.0/src/libxl/libxl_driver.c =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_driver.c -+++ libvirt-2.2.0/src/libxl/libxl_driver.c -@@ -6035,6 +6035,9 @@ libxlDomainMigratePerform3Params(virDoma +--- libvirt-2.3.0.orig/src/libxl/libxl_driver.c ++++ libvirt-2.3.0/src/libxl/libxl_driver.c +@@ -6044,6 +6044,9 @@ libxlDomainMigratePerform3Params(virDoma const char *dname = NULL; const char *uri = NULL; int ret = -1; @@ -66,7 +66,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_driver.c #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME virReportUnsupportedError(); -@@ -6051,6 +6054,18 @@ libxlDomainMigratePerform3Params(virDoma +@@ -6060,6 +6063,18 @@ libxlDomainMigratePerform3Params(virDoma virTypedParamsGetString(params, nparams, VIR_MIGRATE_PARAM_DEST_NAME, &dname) < 0 || @@ -85,7 +85,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_driver.c virTypedParamsGetString(params, nparams, VIR_MIGRATE_PARAM_URI, &uri) < 0) -@@ -6065,11 +6080,11 @@ libxlDomainMigratePerform3Params(virDoma +@@ -6074,11 +6089,11 @@ libxlDomainMigratePerform3Params(virDoma if (flags & VIR_MIGRATE_PEER2PEER) { if (libxlDomainMigrationPerformP2P(driver, vm, dom->conn, dom_xml, @@ -99,10 +99,10 @@ Index: libvirt-2.2.0/src/libxl/libxl_driver.c goto cleanup; } -Index: libvirt-2.2.0/src/libxl/libxl_migration.c +Index: libvirt-2.3.0/src/libxl/libxl_migration.c =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_migration.c -+++ libvirt-2.2.0/src/libxl/libxl_migration.c +--- libvirt-2.3.0.orig/src/libxl/libxl_migration.c ++++ libvirt-2.3.0/src/libxl/libxl_migration.c @@ -358,18 +358,39 @@ libxlMigrateReceive(virNetSocketPtr sock static int libxlDoMigrateSend(libxlDriverPrivatePtr driver, @@ -145,7 +145,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c if (ret != 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to send migration data to destination host")); -@@ -720,7 +741,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr +@@ -723,7 +744,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr const char *dconnuri ATTRIBUTE_UNUSED, const char *dname, const char *uri, @@ -154,7 +154,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c { virDomainPtr ddomain = NULL; virTypedParameterPtr params = NULL; -@@ -757,7 +778,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr +@@ -760,7 +781,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr /* We don't require the destination to have P2P support * as it looks to be normal migration from the receiver perpective. */ @@ -163,7 +163,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c VIR_DEBUG("Prepare3"); virObjectUnlock(vm); -@@ -782,7 +803,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr +@@ -785,7 +806,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out)); ret = libxlDomainMigrationPerform(driver, vm, NULL, NULL, @@ -172,7 +172,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c if (ret < 0) orig_err = virSaveLastError(); -@@ -814,7 +835,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr +@@ -817,7 +838,7 @@ libxlDoMigrateP2P(libxlDriverPrivatePtr orig_err = virSaveLastError(); VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm); @@ -181,7 +181,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c if (ret < 0) VIR_WARN("Guest %s probably left in 'paused' state on source", -@@ -863,7 +884,7 @@ libxlDomainMigrationPerformP2P(libxlDriv +@@ -866,7 +887,7 @@ libxlDomainMigrationPerformP2P(libxlDriv const char *dconnuri, const char *uri_str ATTRIBUTE_UNUSED, const char *dname, @@ -190,7 +190,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c { int ret = -1; bool useParams; -@@ -898,7 +919,7 @@ libxlDomainMigrationPerformP2P(libxlDriv +@@ -901,7 +922,7 @@ libxlDomainMigrationPerformP2P(libxlDriv } ret = libxlDoMigrateP2P(driver, vm, sconn, xmlin, dconn, dconnuri, @@ -199,7 +199,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c cleanup: orig_err = virSaveLastError(); -@@ -920,7 +941,7 @@ libxlDomainMigrationPerform(libxlDriverP +@@ -923,7 +944,7 @@ libxlDomainMigrationPerform(libxlDriverP const char *dconnuri ATTRIBUTE_UNUSED, const char *uri_str, const char *dname ATTRIBUTE_UNUSED, @@ -208,7 +208,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c { libxlDomainObjPrivatePtr priv = vm->privateData; char *hostname = NULL; -@@ -960,7 +981,7 @@ libxlDomainMigrationPerform(libxlDriverP +@@ -963,7 +984,7 @@ libxlDomainMigrationPerform(libxlDriverP /* suspend vm and send saved data to dst through socket fd */ virObjectUnlock(vm); @@ -217,11 +217,11 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.c virObjectLock(vm); cleanup: -Index: libvirt-2.2.0/src/libxl/libxl_migration.h +Index: libvirt-2.3.0/src/libxl/libxl_migration.h =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_migration.h -+++ libvirt-2.2.0/src/libxl/libxl_migration.h -@@ -37,6 +37,10 @@ +--- libvirt-2.3.0.orig/src/libxl/libxl_migration.h ++++ libvirt-2.3.0/src/libxl/libxl_migration.h +@@ -38,6 +38,10 @@ VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \ VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \ VIR_MIGRATE_PARAM_DEST_XML, VIR_TYPED_PARAM_STRING, \ @@ -232,7 +232,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.h NULL char * -@@ -60,6 +64,14 @@ libxlDomainMigrationPrepare(virConnectPt +@@ -61,6 +65,14 @@ libxlDomainMigrationPrepare(virConnectPt int cookieinlen, unsigned int flags); @@ -247,7 +247,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.h int libxlDomainMigrationPerformP2P(libxlDriverPrivatePtr driver, virDomainObjPtr vm, -@@ -68,7 +80,7 @@ libxlDomainMigrationPerformP2P(libxlDriv +@@ -69,7 +81,7 @@ libxlDomainMigrationPerformP2P(libxlDriv const char *dconnuri, const char *uri_str, const char *dname, @@ -256,7 +256,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.h int libxlDomainMigrationPerform(libxlDriverPrivatePtr driver, -@@ -77,7 +89,7 @@ libxlDomainMigrationPerform(libxlDriverP +@@ -78,7 +90,7 @@ libxlDomainMigrationPerform(libxlDriverP const char *dconnuri, const char *uri_str, const char *dname, @@ -265,11 +265,11 @@ Index: libvirt-2.2.0/src/libxl/libxl_migration.h virDomainPtr libxlDomainMigrationFinish(virConnectPtr dconn, -Index: libvirt-2.2.0/tools/virsh-domain.c +Index: libvirt-2.3.0/tools/virsh-domain.c =================================================================== ---- libvirt-2.2.0.orig/tools/virsh-domain.c -+++ libvirt-2.2.0/tools/virsh-domain.c -@@ -9972,6 +9972,22 @@ static const vshCmdOptDef opts_migrate[] +--- libvirt-2.3.0.orig/tools/virsh-domain.c ++++ libvirt-2.3.0/tools/virsh-domain.c +@@ -9980,6 +9980,22 @@ static const vshCmdOptDef opts_migrate[] .type = VSH_OT_INT, .help = N_("CPU throttling rate increment for auto-convergence") }, @@ -292,7 +292,7 @@ Index: libvirt-2.2.0/tools/virsh-domain.c {.name = NULL} }; -@@ -9995,6 +10011,7 @@ doMigrate(void *opaque) +@@ -10003,6 +10019,7 @@ doMigrate(void *opaque) unsigned long long ullOpt = 0; int rv; virConnectPtr dconn = data->dconn; @@ -300,7 +300,7 @@ Index: libvirt-2.2.0/tools/virsh-domain.c sigemptyset(&sigmask); sigaddset(&sigmask, SIGINT); -@@ -10114,6 +10131,27 @@ doMigrate(void *opaque) +@@ -10122,6 +10139,27 @@ doMigrate(void *opaque) goto save_error; } @@ -328,11 +328,11 @@ Index: libvirt-2.2.0/tools/virsh-domain.c if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0) goto out; if (opt) { -Index: libvirt-2.2.0/tools/virsh.pod +Index: libvirt-2.3.0/tools/virsh.pod =================================================================== ---- libvirt-2.2.0.orig/tools/virsh.pod -+++ libvirt-2.2.0/tools/virsh.pod -@@ -1662,6 +1662,14 @@ compression. I<--comp-mt-threads> and I< +--- libvirt-2.3.0.orig/tools/virsh.pod ++++ libvirt-2.3.0/tools/virsh.pod +@@ -1668,6 +1668,14 @@ compression. I<--comp-mt-threads> and I< of compress threads on source and the number of decompress threads on target respectively. I<--comp-xbzrle-cache> sets size of page cache in bytes. diff --git a/libxl-support-block-script.patch b/libxl-support-block-script.patch index 497eafe..0e46acd 100644 --- a/libxl-support-block-script.patch +++ b/libxl-support-block-script.patch @@ -7,11 +7,11 @@ and npiv. For more details, see bsc#954872 and FATE#319810 -Index: libvirt-2.2.0/src/libxl/libxl_conf.c +Index: libvirt-2.3.0/src/libxl/libxl_conf.c =================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_conf.c -+++ libvirt-2.2.0/src/libxl/libxl_conf.c -@@ -557,6 +557,25 @@ libxlDiskSetDiscard(libxl_device_disk *x +--- libvirt-2.3.0.orig/src/libxl/libxl_conf.c ++++ libvirt-2.3.0/src/libxl/libxl_conf.c +@@ -584,6 +584,25 @@ libxlDiskSetDiscard(libxl_device_disk *x #endif } @@ -37,7 +37,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_conf.c static void libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode) { -@@ -701,6 +720,7 @@ libxlMakeNetworkDiskSrc(virStorageSource +@@ -728,6 +747,7 @@ libxlMakeNetworkDiskSrc(virStorageSource int libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) { @@ -45,7 +45,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_conf.c const char *driver = virDomainDiskGetDriver(l_disk); int format = virDomainDiskGetFormat(l_disk); int actual_type = virStorageSourceGetActualType(l_disk->src); -@@ -716,7 +736,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk +@@ -743,7 +763,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0) return -1; } else { @@ -54,7 +54,7 @@ Index: libvirt-2.2.0/src/libxl/libxl_conf.c return -1; } -@@ -824,6 +844,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk +@@ -851,6 +871,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0) return -1; libxlDiskSetCacheMode(x_disk, l_disk->cachemode); diff --git a/libxl-usb-vendor.patch b/libxl-usb-vendor.patch deleted file mode 100644 index 45cd319..0000000 --- a/libxl-usb-vendor.patch +++ /dev/null @@ -1,61 +0,0 @@ -commit e7af9dcf1fb0703828ef9740cb9b9c00f2fa00a4 -Author: Cédric Bosdonnat -Date: Fri Aug 5 09:10:50 2016 +0200 - - libxl: allow vendor/product addressing for USB hostdevs - - libxl only has API to address the host USB devices by bus/device. - Find the bus/device if the user only provided the vendor/product - of the USB device. - -Index: libvirt-2.2.0/src/libxl/libxl_conf.c -=================================================================== ---- libvirt-2.2.0.orig/src/libxl/libxl_conf.c -+++ libvirt-2.2.0/src/libxl/libxl_conf.c -@@ -1559,23 +1559,36 @@ int - libxlMakeUSB(virDomainHostdevDefPtr hostdev, libxl_device_usbdev *usbdev) - { - virDomainHostdevSubsysUSBPtr usbsrc = &hostdev->source.subsys.u.usb; -+ virUSBDevicePtr usb = NULL; -+ int ret = -1; - - if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) -- return -1; -+ goto cleanup; - if (hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) -- return -1; -+ goto cleanup; - -- if (usbsrc->bus <= 0 || usbsrc->device <= 0) { -- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", -- _("libxenlight supports only USB device " -- "specified by busnum:devnum")); -- return -1; -+ if (usbsrc->bus > 0 && usbsrc->device > 0) { -+ usbdev->u.hostdev.hostbus = usbsrc->bus; -+ usbdev->u.hostdev.hostaddr = usbsrc->device; -+ } else { -+ if (virHostdevFindUSBDevice(hostdev, true, &usb) < 0) { -+ virReportError(VIR_ERR_OPERATION_FAILED, -+ _("failed to find USB device busnum:devnum " -+ "for %x:%x"), -+ usbsrc->vendor, usbsrc->product); -+ goto cleanup; -+ } -+ -+ usbdev->u.hostdev.hostbus = virUSBDeviceGetBus(usb); -+ usbdev->u.hostdev.hostaddr = virUSBDeviceGetDevno(usb); - } - -- usbdev->u.hostdev.hostbus = usbsrc->bus; -- usbdev->u.hostdev.hostaddr = usbsrc->device; -+ ret = 0; -+ -+ cleanup: -+ virUSBDeviceFree(usb); - -- return 0; -+ return ret; - } - - static int diff --git a/lxc-wait-after-eth-del.patch b/lxc-wait-after-eth-del.patch index c0e4ceb..ee86e54 100644 --- a/lxc-wait-after-eth-del.patch +++ b/lxc-wait-after-eth-del.patch @@ -13,10 +13,10 @@ device with the same name that is being created. src/lxc/lxc_process.c | 1 + 3 files changed, 4 insertions(+) -Index: libvirt-2.2.0/src/lxc/lxc_controller.c +Index: libvirt-2.3.0/src/lxc/lxc_controller.c =================================================================== ---- libvirt-2.2.0.orig/src/lxc/lxc_controller.c -+++ libvirt-2.2.0/src/lxc/lxc_controller.c +--- libvirt-2.3.0.orig/src/lxc/lxc_controller.c ++++ libvirt-2.3.0/src/lxc/lxc_controller.c @@ -2009,6 +2009,7 @@ static int virLXCControllerDeleteInterfa if (virNetDevVethDelete(ctrl->veths[i]) < 0) ret = -1; @@ -25,10 +25,10 @@ Index: libvirt-2.2.0/src/lxc/lxc_controller.c return ret; } -Index: libvirt-2.2.0/src/lxc/lxc_driver.c +Index: libvirt-2.3.0/src/lxc/lxc_driver.c =================================================================== ---- libvirt-2.2.0.orig/src/lxc/lxc_driver.c -+++ libvirt-2.2.0/src/lxc/lxc_driver.c +--- libvirt-2.3.0.orig/src/lxc/lxc_driver.c ++++ libvirt-2.3.0/src/lxc/lxc_driver.c @@ -4025,6 +4025,7 @@ lxcDomainAttachDeviceNetLive(virConnectP case VIR_DOMAIN_NET_TYPE_NETWORK: case VIR_DOMAIN_NET_TYPE_ETHERNET: @@ -45,10 +45,10 @@ Index: libvirt-2.2.0/src/lxc/lxc_driver.c break; /* It'd be nice to support this, but with macvlan -Index: libvirt-2.2.0/src/lxc/lxc_process.c +Index: libvirt-2.3.0/src/lxc/lxc_process.c =================================================================== ---- libvirt-2.2.0.orig/src/lxc/lxc_process.c -+++ libvirt-2.2.0/src/lxc/lxc_process.c +--- libvirt-2.3.0.orig/src/lxc/lxc_process.c ++++ libvirt-2.3.0/src/lxc/lxc_process.c @@ -221,6 +221,7 @@ static void virLXCProcessCleanup(virLXCD } networkReleaseActualDevice(vm->def, iface); diff --git a/pci-use-driver-override-sysfs.patch b/pci-use-driver-override-sysfs.patch deleted file mode 100644 index 4d4959d..0000000 --- a/pci-use-driver-override-sysfs.patch +++ /dev/null @@ -1,210 +0,0 @@ -From 9bd9a05b8b64489598ca4e0d241247cb99406d20 Mon Sep 17 00:00:00 2001 -From: Jim Fehlig -Date: Mon, 1 Aug 2016 21:16:43 -0600 -Subject: [PATCH] virpci: support driver_override sysfs interface - -libvirt uses the new_id PCI sysfs interface to bind a PCI stub driver -to a PCI device. The new_id interface is known to be buggy and racey, -hence a more deterministic interface was introduced in the 3.12 kernel: -driver_override. For more details see - -https://www.redhat.com/archives/libvir-list/2016-June/msg02124.html - -This patch adds support for the driver_override interface by - -- adding new virPCIDevice{BindTo,UnbindFrom}StubWithOverride functions - that use the driver_override interface -- renames the existing virPCIDevice{BindTo,UnbindFrom}Stub functions - to virPCIDevice{BindTo,UnbindFrom}StubWithNewid to perserve existing - behavior on new_id interface -- changes virPCIDevice{BindTo,UnbindFrom}Stub function to call one of - the above depending on availability of driver_override - -The patch includes a bit of duplicate code, but allows for easily -dropping the new_id code once support for older kernels is no -longer desired. - -Signed-off-by: Jim Fehlig ---- - src/util/virpci.c | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 149 insertions(+), 2 deletions(-) - -Index: libvirt-2.2.0/src/util/virpci.c -=================================================================== ---- libvirt-2.2.0.orig/src/util/virpci.c -+++ libvirt-2.2.0/src/util/virpci.c -@@ -1089,8 +1089,54 @@ virPCIDeviceUnbind(virPCIDevicePtr dev) - return ret; - } - -+/* -+ * Bind a PCI device to a driver using driver_override sysfs interface. -+ * E.g. -+ * -+ * echo driver-name > /sys/bus/pci/devices/0000:03:00.0/driver_override -+ * echo 0000:03:00.0 > /sys/bus/pci/devices/0000:03:00.0/driver/unbind -+ * echo 0000:03:00.0 > /sys/bus/pci/drivers_probe -+ * -+ * An empty driverName will cause the device to be bound to its -+ * preferred driver. -+ */ - static int --virPCIDeviceUnbindFromStub(virPCIDevicePtr dev) -+virPCIDeviceBindWithDriverOverride(virPCIDevicePtr dev, -+ const char *driverName) -+{ -+ int ret = -1; -+ char *path; -+ -+ if (!(path = virPCIFile(dev->name, "driver_override"))) -+ return -1; -+ -+ if (virFileWriteStr(path, driverName, 0) < 0) { -+ virReportSystemError(errno, -+ _("Failed to add driver '%s' to driver_override " -+ " interface of PCI device '%s'"), -+ driverName, dev->name); -+ goto cleanup; -+ } -+ -+ if (virPCIDeviceUnbind(dev) < 0) -+ goto cleanup; -+ -+ if (virFileWriteStr(PCI_SYSFS "drivers_probe", dev->name, 0) < 0) { -+ virReportSystemError(errno, -+ _("Failed to trigger a probe for PCI device '%s'"), -+ dev->name); -+ goto cleanup; -+ } -+ -+ ret = 0; -+ -+ cleanup: -+ VIR_FREE(path); -+ return ret; -+} -+ -+static int -+virPCIDeviceUnbindFromStubWithNewid(virPCIDevicePtr dev) - { - int result = -1; - char *drvdir = NULL; -@@ -1191,9 +1237,41 @@ virPCIDeviceUnbindFromStub(virPCIDeviceP - return result; - } - -+static int -+virPCIDeviceUnbindFromStubWithOverride(virPCIDevicePtr dev) -+{ -+ if (!dev->unbind_from_stub) { -+ VIR_DEBUG("Unbind from stub skipped for PCI device %s", dev->name); -+ return 0; -+ } -+ -+ return virPCIDeviceBindWithDriverOverride(dev, "\n"); -+} -+ -+static int -+virPCIDeviceUnbindFromStub(virPCIDevicePtr dev) -+{ -+ int ret; -+ char *path; -+ -+ /* -+ * Prefer using the device's driver_override interface, falling back -+ * to the unpleasant new_id interface. -+ */ -+ if (!(path = virPCIFile(dev->name, "driver_override"))) -+ return -1; -+ -+ if (virFileExists(path)) -+ ret = virPCIDeviceUnbindFromStubWithOverride(dev); -+ else -+ ret = virPCIDeviceUnbindFromStubWithNewid(dev); -+ -+ VIR_FREE(path); -+ return ret; -+} - - static int --virPCIDeviceBindToStub(virPCIDevicePtr dev) -+virPCIDeviceBindToStubWithNewid(virPCIDevicePtr dev) - { - int result = -1; - bool reprobe = false; -@@ -1345,6 +1423,75 @@ virPCIDeviceBindToStub(virPCIDevicePtr d - return result; - } - -+static int -+virPCIDeviceBindToStubWithOverride(virPCIDevicePtr dev) -+{ -+ int ret = -1; -+ const char *stubDriverName; -+ char *stubDriverPath = NULL; -+ char *driverLink = NULL; -+ -+ /* Check the device is configured to use one of the known stub drivers */ -+ if (dev->stubDriver == VIR_PCI_STUB_DRIVER_NONE) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("No stub driver configured for PCI device %s"), -+ dev->name); -+ return -1; -+ } else if (!(stubDriverName = virPCIStubDriverTypeToString(dev->stubDriver))) { -+ virReportError(VIR_ERR_INTERNAL_ERROR, -+ _("Unknown stub driver configured for PCI device %s"), -+ dev->name); -+ return -1; -+ } -+ -+ if (!(stubDriverPath = virPCIDriverDir(stubDriverName)) || -+ !(driverLink = virPCIFile(dev->name, "driver"))) -+ goto cleanup; -+ -+ if (virFileExists(driverLink)) { -+ if (virFileLinkPointsTo(driverLink, stubDriverPath)) { -+ /* The device is already bound to the correct driver */ -+ VIR_DEBUG("Device %s is already bound to %s", -+ dev->name, stubDriverName); -+ ret = 0; -+ goto cleanup; -+ } -+ } -+ -+ if (virPCIDeviceBindWithDriverOverride(dev, stubDriverName) < 0) -+ goto cleanup; -+ -+ dev->unbind_from_stub = true; -+ ret = 0; -+ -+ cleanup: -+ VIR_FREE(stubDriverPath); -+ VIR_FREE(driverLink); -+ return ret; -+} -+ -+static int -+virPCIDeviceBindToStub(virPCIDevicePtr dev) -+{ -+ int ret; -+ char *path; -+ -+ /* -+ * Prefer using the device's driver_override interface, falling back -+ * to the unpleasant new_id interface. -+ */ -+ if (!(path = virPCIFile(dev->name, "driver_override"))) -+ return -1; -+ -+ if (virFileExists(path)) -+ ret = virPCIDeviceBindToStubWithOverride(dev); -+ else -+ ret = virPCIDeviceBindToStubWithNewid(dev); -+ -+ VIR_FREE(path); -+ return ret; -+} -+ - /* virPCIDeviceDetach: - * - * Detach this device from the host driver, attach it to the stub diff --git a/ppc64le-canonical-name.patch b/ppc64le-canonical-name.patch index 90329cf..cb95408 100644 --- a/ppc64le-canonical-name.patch +++ b/ppc64le-canonical-name.patch @@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64 See bnc#894956 -Index: libvirt-2.2.0/src/util/virarch.c +Index: libvirt-2.3.0/src/util/virarch.c =================================================================== ---- libvirt-2.2.0.orig/src/util/virarch.c -+++ libvirt-2.2.0/src/util/virarch.c +--- libvirt-2.3.0.orig/src/util/virarch.c ++++ libvirt-2.3.0/src/util/virarch.c @@ -169,6 +169,8 @@ virArch virArchFromHost(void) arch = VIR_ARCH_I686; } else if (STREQ(ut.machine, "amd64")) { diff --git a/qemu-apparmor-screenshot.patch b/qemu-apparmor-screenshot.patch index a5a750d..c3ed855 100644 --- a/qemu-apparmor-screenshot.patch +++ b/qemu-apparmor-screenshot.patch @@ -1,7 +1,7 @@ -Index: libvirt-2.2.0/examples/apparmor/libvirt-qemu +Index: libvirt-2.3.0/examples/apparmor/libvirt-qemu =================================================================== ---- libvirt-2.2.0.orig/examples/apparmor/libvirt-qemu -+++ libvirt-2.2.0/examples/apparmor/libvirt-qemu +--- libvirt-2.3.0.orig/examples/apparmor/libvirt-qemu ++++ libvirt-2.3.0/examples/apparmor/libvirt-qemu @@ -151,3 +151,6 @@ /etc/udev/udev.conf r, /sys/bus/ r, diff --git a/support-managed-pci-xen-driver.patch b/support-managed-pci-xen-driver.patch index fb2103c..6157ca1 100644 --- a/support-managed-pci-xen-driver.patch +++ b/support-managed-pci-xen-driver.patch @@ -8,10 +8,10 @@ Subject: [PATCH] support managed pci devices in xen driver src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 15 deletions(-) -Index: libvirt-2.2.0/src/xenconfig/xen_common.c +Index: libvirt-2.3.0/src/xenconfig/xen_common.c =================================================================== ---- libvirt-2.2.0.orig/src/xenconfig/xen_common.c -+++ libvirt-2.2.0/src/xenconfig/xen_common.c +--- libvirt-2.3.0.orig/src/xenconfig/xen_common.c ++++ libvirt-2.3.0/src/xenconfig/xen_common.c @@ -394,6 +394,8 @@ xenParsePCI(virConfPtr conf, virDomainDe { virConfValuePtr list = virConfGetValue(conf, "pci"); @@ -66,10 +66,10 @@ Index: libvirt-2.2.0/src/xenconfig/xen_common.c hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI; hostdev->source.subsys.u.pci.addr.domain = domainID; hostdev->source.subsys.u.pci.addr.bus = busID; -Index: libvirt-2.2.0/src/xenconfig/xen_sxpr.c +Index: libvirt-2.3.0/src/xenconfig/xen_sxpr.c =================================================================== ---- libvirt-2.2.0.orig/src/xenconfig/xen_sxpr.c -+++ libvirt-2.2.0/src/xenconfig/xen_sxpr.c +--- libvirt-2.3.0.orig/src/xenconfig/xen_sxpr.c ++++ libvirt-2.3.0/src/xenconfig/xen_sxpr.c @@ -1062,6 +1062,7 @@ xenParseSxprPCI(virDomainDefPtr def, int busID; int slotID; diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch index 06b28bb..09462ce 100644 --- a/suse-qemu-conf.patch +++ b/suse-qemu-conf.patch @@ -7,11 +7,11 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch, etc.), but for now they are all lumped together in this single patch. -Index: libvirt-2.2.0/src/qemu/qemu.conf +Index: libvirt-2.3.0/src/qemu/qemu.conf =================================================================== ---- libvirt-2.2.0.orig/src/qemu/qemu.conf -+++ libvirt-2.2.0/src/qemu/qemu.conf -@@ -212,11 +212,20 @@ +--- libvirt-2.3.0.orig/src/qemu/qemu.conf ++++ libvirt-2.3.0/src/qemu/qemu.conf +@@ -259,11 +259,20 @@ # isolation, but it cannot appear in a list of drivers. # #security_driver = "selinux" @@ -34,7 +34,7 @@ Index: libvirt-2.2.0/src/qemu/qemu.conf # If set to non-zero, then attempts to create unconfined # guests will be blocked. Defaults to 0. -@@ -428,11 +437,22 @@ +@@ -507,11 +516,22 @@ #allow_disk_format_probing = 1 @@ -62,7 +62,7 @@ Index: libvirt-2.2.0/src/qemu/qemu.conf # #lock_manager = "lockd" -@@ -523,9 +543,8 @@ +@@ -602,9 +622,8 @@ # for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default # follows this scheme. #nvram = [ diff --git a/systemd-service-xen.patch b/systemd-service-xen.patch index 4e642f1..1e791c4 100644 --- a/systemd-service-xen.patch +++ b/systemd-service-xen.patch @@ -1,8 +1,8 @@ -Index: libvirt-2.2.0/daemon/libvirtd.service.in +Index: libvirt-2.3.0/daemon/libvirtd.service.in =================================================================== ---- libvirt-2.2.0.orig/daemon/libvirtd.service.in -+++ libvirt-2.2.0/daemon/libvirtd.service.in -@@ -12,6 +12,7 @@ After=iscsid.service +--- libvirt-2.3.0.orig/daemon/libvirtd.service.in ++++ libvirt-2.3.0/daemon/libvirtd.service.in +@@ -13,6 +13,7 @@ After=iscsid.service After=apparmor.service After=local-fs.target After=remote-fs.target diff --git a/virHostdevFindUSBDevice-privsyms.patch b/virHostdevFindUSBDevice-privsyms.patch deleted file mode 100644 index a27639f..0000000 --- a/virHostdevFindUSBDevice-privsyms.patch +++ /dev/null @@ -1,51 +0,0 @@ -commit e05e2dba970d3f4b5ec9bed80a7f0bb4ccc43dc8 -Author: Cédric Bosdonnat -Date: Fri Aug 5 09:10:49 2016 +0200 - - Add virHostdevFindUSBDevice to private symbols - - Finding an USB device from the vendor/device values will be needed - by libxl driver to convert from vendor/device to bus/dev addresses. - -Index: libvirt-2.2.0/src/libvirt_private.syms -=================================================================== ---- libvirt-2.2.0.orig/src/libvirt_private.syms -+++ libvirt-2.2.0/src/libvirt_private.syms -@@ -1648,6 +1648,7 @@ virHookPresent; - - - # util/virhostdev.h -+virHostdevFindUSBDevice; - virHostdevManagerGetDefault; - virHostdevPCINodeDeviceDetach; - virHostdevPCINodeDeviceReAttach; -Index: libvirt-2.2.0/src/util/virhostdev.c -=================================================================== ---- libvirt-2.2.0.orig/src/util/virhostdev.c -+++ libvirt-2.2.0/src/util/virhostdev.c -@@ -1178,7 +1178,7 @@ virHostdevMarkUSBDevices(virHostdevManag - } - - --static int -+int - virHostdevFindUSBDevice(virDomainHostdevDefPtr hostdev, - bool mandatory, - virUSBDevicePtr *usb) -Index: libvirt-2.2.0/src/util/virhostdev.h -=================================================================== ---- libvirt-2.2.0.orig/src/util/virhostdev.h -+++ libvirt-2.2.0/src/util/virhostdev.h -@@ -66,6 +66,12 @@ virHostdevPreparePCIDevices(virHostdevMa - unsigned int flags) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) - ATTRIBUTE_NONNULL(4); -+ -+int -+virHostdevFindUSBDevice(virDomainHostdevDefPtr hostdev, -+ bool mandatory, -+ virUSBDevicePtr *usb) -+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3); - int - virHostdevPrepareUSBDevices(virHostdevManagerPtr hostdev_mgr, - const char *drv_name, diff --git a/virtlockd-init-script.patch b/virtlockd-init-script.patch index d1f2a91..cde8ed1 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-2.2.0/src/locking/virtlockd.sysconf +Index: libvirt-2.3.0/src/locking/virtlockd.sysconf =================================================================== ---- libvirt-2.2.0.orig/src/locking/virtlockd.sysconf -+++ libvirt-2.2.0/src/locking/virtlockd.sysconf +--- libvirt-2.3.0.orig/src/locking/virtlockd.sysconf ++++ libvirt-2.3.0/src/locking/virtlockd.sysconf @@ -1,3 +1,7 @@ +## Path: System/Virtualization/virtlockd + @@ -12,10 +12,10 @@ Index: libvirt-2.2.0/src/locking/virtlockd.sysconf # # Pass extra arguments to virtlockd #VIRTLOCKD_ARGS= -Index: libvirt-2.2.0/src/locking/virtlockd.init.in +Index: libvirt-2.3.0/src/locking/virtlockd.init.in =================================================================== ---- libvirt-2.2.0.orig/src/locking/virtlockd.init.in -+++ libvirt-2.2.0/src/locking/virtlockd.init.in +--- libvirt-2.3.0.orig/src/locking/virtlockd.init.in ++++ libvirt-2.3.0/src/locking/virtlockd.init.in @@ -4,59 +4,57 @@ # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html # diff --git a/virtlogd-init-script.patch b/virtlogd-init-script.patch index 3091707..b8d8a31 100644 --- a/virtlogd-init-script.patch +++ b/virtlogd-init-script.patch @@ -1,9 +1,9 @@ Adjust virtlogd init files to conform to SUSE standards -Index: libvirt-2.2.0/src/logging/virtlogd.init.in +Index: libvirt-2.3.0/src/logging/virtlogd.init.in =================================================================== ---- libvirt-2.2.0.orig/src/logging/virtlogd.init.in -+++ libvirt-2.2.0/src/logging/virtlogd.init.in +--- libvirt-2.3.0.orig/src/logging/virtlogd.init.in ++++ libvirt-2.3.0/src/logging/virtlogd.init.in @@ -4,59 +4,56 @@ # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html # @@ -126,10 +126,10 @@ Index: libvirt-2.2.0/src/logging/virtlogd.init.in esac -exit $RETVAL +rc_exit -Index: libvirt-2.2.0/src/logging/virtlogd.sysconf +Index: libvirt-2.3.0/src/logging/virtlogd.sysconf =================================================================== ---- libvirt-2.2.0.orig/src/logging/virtlogd.sysconf -+++ libvirt-2.2.0/src/logging/virtlogd.sysconf +--- libvirt-2.3.0.orig/src/logging/virtlogd.sysconf ++++ libvirt-2.3.0/src/logging/virtlogd.sysconf @@ -1,3 +1,7 @@ +## Path: System/Virtualization/virtlogd + diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch index 6e3ab9e..7c60e38 100644 --- a/xen-pv-cdrom.patch +++ b/xen-pv-cdrom.patch @@ -1,7 +1,7 @@ -Index: libvirt-2.2.0/src/xenconfig/xen_sxpr.c +Index: libvirt-2.3.0/src/xenconfig/xen_sxpr.c =================================================================== ---- libvirt-2.2.0.orig/src/xenconfig/xen_sxpr.c -+++ libvirt-2.2.0/src/xenconfig/xen_sxpr.c +--- libvirt-2.3.0.orig/src/xenconfig/xen_sxpr.c ++++ libvirt-2.3.0/src/xenconfig/xen_sxpr.c @@ -392,7 +392,7 @@ xenParseSxprVifRate(const char *rate, un static int xenParseSxprDisks(virDomainDefPtr def, diff --git a/xen-sxpr-disk-type.patch b/xen-sxpr-disk-type.patch index 3575082..fe783cc 100644 --- a/xen-sxpr-disk-type.patch +++ b/xen-sxpr-disk-type.patch @@ -6,10 +6,10 @@ and 'file'. This was implicitly done prior to commit 9673418c. https://bugzilla.suse.com/show_bug.cgi?id=938228 -Index: libvirt-2.2.0/src/xenconfig/xen_sxpr.c +Index: libvirt-2.3.0/src/xenconfig/xen_sxpr.c =================================================================== ---- libvirt-2.2.0.orig/src/xenconfig/xen_sxpr.c -+++ libvirt-2.2.0/src/xenconfig/xen_sxpr.c +--- libvirt-2.3.0.orig/src/xenconfig/xen_sxpr.c ++++ libvirt-2.3.0/src/xenconfig/xen_sxpr.c @@ -506,10 +506,11 @@ xenParseSxprDisks(virDomainDefPtr def, omnipotent, we can revisit this, perhaps stat()'ing the src file in question */