-@@ -7407,6 +7409,26 @@ qemu-kvm -net nic,model=? /dev/null
- Currently only the intel model is supported.
-
-
-+
driver
-+
-+
-+ The driver subelement can be used to configure
-+ additional options:
-+
-+
-+
intremap
-+
-+
-+ The intremap attribute with possible values
-+ on and off can be used to
-+ turn on interrupt remapping, a part of the VT-d functionality.
-+ Currently this requires split I/O APIC
-+ (<ioapic driver='qemu'/>).
-+ Since 3.4.0 (QEMU/KVM only)
-+
Tune the I/O APIC. Possible values for the
-+ driver attribute are:
-+ kvm (default for KVM domains)
-+ and qemu which puts I/O APIC in userspace
-+ which is also known as a split I/O APIC mode.
-+ Since 3.4.0 (QEMU/KVM only)
-+
-+ The caching_mode attribute with possible values
-+ on and off can be used to
-+ turn on the VT-d caching mode (useful for assigned devices).
-+ Since 3.4.0 (QEMU/KVM only)
-+
-+
-
-
-
-Index: libvirt-3.3.0/docs/schemas/domaincommon.rng
-===================================================================
---- libvirt-3.3.0.orig/docs/schemas/domaincommon.rng
-+++ libvirt-3.3.0/docs/schemas/domaincommon.rng
-@@ -3954,6 +3954,11 @@
-
-
-
-+
-+
-+
-+
-+
-
-
-
-Index: libvirt-3.3.0/src/conf/domain_conf.c
-===================================================================
---- libvirt-3.3.0.orig/src/conf/domain_conf.c
-+++ libvirt-3.3.0/src/conf/domain_conf.c
-@@ -14176,6 +14176,15 @@ virDomainIOMMUDefParseXML(xmlNodePtr nod
- iommu->intremap = val;
- }
-
-+ VIR_FREE(tmp);
-+ if ((tmp = virXPathString("string(./driver/@caching_mode)", ctxt))) {
-+ if ((val = virTristateSwitchTypeFromString(tmp)) < 0) {
-+ virReportError(VIR_ERR_XML_ERROR, _("unknown caching_mode value: %s"), tmp);
-+ goto cleanup;
-+ }
-+ iommu->caching_mode = val;
-+ }
-+
- ret = iommu;
- iommu = NULL;
-
-@@ -24143,9 +24152,18 @@ virDomainIOMMUDefFormat(virBufferPtr buf
-
- virBufferAdjustIndent(&childBuf, virBufferGetIndent(buf, false) + 2);
-
-- if (iommu->intremap != VIR_TRISTATE_SWITCH_ABSENT) {
-- virBufferAsprintf(&childBuf, "\n",
-- virTristateSwitchTypeToString(iommu->intremap));
-+ if (iommu->intremap != VIR_TRISTATE_SWITCH_ABSENT ||
-+ iommu->caching_mode != VIR_TRISTATE_SWITCH_ABSENT) {
-+ virBufferAddLit(&childBuf, "intremap != VIR_TRISTATE_SWITCH_ABSENT) {
-+ virBufferAsprintf(&childBuf, " intremap='%s'",
-+ virTristateSwitchTypeToString(iommu->intremap));
-+ }
-+ if (iommu->caching_mode != VIR_TRISTATE_SWITCH_ABSENT) {
-+ virBufferAsprintf(&childBuf, " caching_mode='%s'",
-+ virTristateSwitchTypeToString(iommu->caching_mode));
-+ }
-+ virBufferAddLit(&childBuf, "/>\n");
- }
-
- virBufferAsprintf(buf, "
-+ QEMUGuest1
-+ c7a5fdbd-edaf-9455-926a-d65c16db1809
-+ 219100
-+ 219100
-+ 1
-+
-+ hvm
-+
-+
-+
-+ destroy
-+ restart
-+ destroy
-+
-+ /usr/bin/qemu-system-x86_64
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-Index: libvirt-3.3.0/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-caching-mode.xml
-===================================================================
---- /dev/null
-+++ libvirt-3.3.0/tests/qemuxml2xmloutdata/qemuxml2xmlout-intel-iommu-caching-mode.xml
-@@ -0,0 +1,50 @@
-+
-+ QEMUGuest1
-+ c7a5fdbd-edaf-9455-926a-d65c16db1809
-+ 219100
-+ 219100
-+ 1
-+
-+ hvm
-+
-+
-+
-+ destroy
-+ restart
-+ destroy
-+
-+ /usr/bin/qemu-system-x86_64
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-Index: libvirt-3.3.0/tests/qemuxml2xmltest.c
-===================================================================
---- libvirt-3.3.0.orig/tests/qemuxml2xmltest.c
-+++ libvirt-3.3.0/tests/qemuxml2xmltest.c
-@@ -1123,6 +1123,7 @@ mymain(void)
- QEMU_CAPS_MACHINE_OPT,
- QEMU_CAPS_MACHINE_IOMMU);
- DO_TEST("intel-iommu-ioapic", NONE);
-+ DO_TEST("intel-iommu-caching-mode", NONE);
-
- DO_TEST("cpu-check-none", NONE);
- DO_TEST("cpu-check-partial", NONE);
diff --git a/dbb85e0c-libxl-graphics-listen-addr.patch b/dbb85e0c-libxl-graphics-listen-addr.patch
deleted file mode 100644
index 21b9d3f..0000000
--- a/dbb85e0c-libxl-graphics-listen-addr.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-commit dbb85e0c15593661ee8e5d95a6160ebdbaa2c9b5
-Author: Jim Fehlig
-Date: Fri May 19 15:52:04 2017 -0600
-
- libxl: add default listen address for VNC and spice
-
- If a VNC listen address is not specified in domXML, libxl
- will default to 127.0.0.1, but this is never reflected in the domXML.
- In the case of spice, a missing listen address resulted in listening
- on all interfaces, i.e. '0.0.0.0'. If not specified, set the listen
- address in virDomainGraphicsDef struct to the libxl default when
- creating the frame buffer device. Additionally, set default spice
- listen address to 127.0.0.1.
-
-Index: libvirt-3.3.0/src/libxl/libxl_conf.c
-===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_conf.c
-+++ libvirt-3.3.0/src/libxl/libxl_conf.c
-@@ -1227,13 +1227,18 @@ libxlMakeVfb(virPortAllocatorPtr graphic
- }
- x_vfb->vnc.display = l_vfb->data.vnc.port - LIBXL_VNC_PORT_MIN;
-
-- if ((glisten = virDomainGraphicsGetListen(l_vfb, 0)) &&
-- glisten->address) {
-- /* libxl_device_vfb_init() does VIR_STRDUP("127.0.0.1") */
-- VIR_FREE(x_vfb->vnc.listen);
-- if (VIR_STRDUP(x_vfb->vnc.listen, glisten->address) < 0)
-- return -1;
-+ if ((glisten = virDomainGraphicsGetListen(l_vfb, 0))) {
-+ if (glisten->address) {
-+ /* libxl_device_vfb_init() does VIR_STRDUP("127.0.0.1") */
-+ VIR_FREE(x_vfb->vnc.listen);
-+ if (VIR_STRDUP(x_vfb->vnc.listen, glisten->address) < 0)
-+ return -1;
-+ } else {
-+ if (VIR_STRDUP(glisten->address, VIR_LOOPBACK_IPV4_ADDR) < 0)
-+ return -1;
-+ }
- }
-+
- if (VIR_STRDUP(x_vfb->vnc.passwd, l_vfb->data.vnc.auth.passwd) < 0)
- return -1;
- if (VIR_STRDUP(x_vfb->keymap, l_vfb->data.vnc.keymap) < 0)
-@@ -1335,10 +1340,16 @@ libxlMakeBuildInfoVfb(virPortAllocatorPt
- }
- b_info->u.hvm.spice.port = l_vfb->data.spice.port;
-
-- if ((glisten = virDomainGraphicsGetListen(l_vfb, 0)) &&
-- glisten->address &&
-- VIR_STRDUP(b_info->u.hvm.spice.host, glisten->address) < 0)
-- return -1;
-+ if ((glisten = virDomainGraphicsGetListen(l_vfb, 0))) {
-+ if (glisten->address) {
-+ if (VIR_STRDUP(b_info->u.hvm.spice.host, glisten->address) < 0)
-+ return -1;
-+ } else {
-+ if (VIR_STRDUP(b_info->u.hvm.spice.host, VIR_LOOPBACK_IPV4_ADDR) < 0 ||
-+ VIR_STRDUP(glisten->address, VIR_LOOPBACK_IPV4_ADDR) < 0)
-+ return -1;
-+ }
-+ }
-
- if (VIR_STRDUP(b_info->u.hvm.keymap, l_vfb->data.spice.keymap) < 0)
- return -1;
diff --git a/libvirt-3.3.0.tar.xz b/libvirt-3.3.0.tar.xz
deleted file mode 100644
index 95770b1..0000000
--- a/libvirt-3.3.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:29e00984174e33cf2183b478382c017de26860452ffee17b73871051264ebb1b
-size 14043384
diff --git a/libvirt-3.3.0.tar.xz.asc b/libvirt-3.3.0.tar.xz.asc
deleted file mode 100644
index ae4c8f9..0000000
--- a/libvirt-3.3.0.tar.xz.asc
+++ /dev/null
@@ -1,10 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQEcBAABAgAGBQJZDNY6AAoJEBVYiyZZa+pdBgEIAKfTozMEi/ZI2NTtpjoZXzDn
-gGcSEAZUJj3Chp9LkY/daAgL8RCNKU3c9Y/QgmTflJYEsAZsIRW9rJ3zsCHfPnC1
-rty3NulfCujrsLsZEqXHADjbmiTQ/H7WUoStIPBYLkERxrZ+qQ0egsA6qSqe8hy5
-6u/cXm8Yav9QvIfp8ikdKcJl+SUQT/yGXXzR7udr/ra8rCfqgvJqKkg+NDLNXB17
-kAz4guvjivfAOEel1RASoTyvnXjLzMtG4InfTz0+8cGomLDS1sWmCW+gW519juPm
-6TaHbQ1hDnLZvCy3h7TmeUJxLgvyV8Ul2VlZRCytXlJ//IcVlvgDq2+7SpBvjgA=
-=fQOM
------END PGP SIGNATURE-----
diff --git a/libvirt-3.4.0.tar.xz b/libvirt-3.4.0.tar.xz
new file mode 100644
index 0000000..8e7de60
--- /dev/null
+++ b/libvirt-3.4.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42186af6225904d2ada0b494fda4fa777fe5e662a9134686816e7919332c248d
+size 14630904
diff --git a/libvirt-3.4.0.tar.xz.asc b/libvirt-3.4.0.tar.xz.asc
new file mode 100644
index 0000000..c4fc4e2
--- /dev/null
+++ b/libvirt-3.4.0.tar.xz.asc
@@ -0,0 +1,10 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEcBAABAgAGBQJZMQ/gAAoJEBVYiyZZa+pdv+sH/0K892tvUFgjvCwv1nsZih6c
+u9h/4VRdCXYBD/ND3rhTitW5hWnNITxrf/Cqz5I4H5vinn9i04AqDC6Nj2WA3g3z
+uRXD+X4sd4Uv5A7MI6ySVW5B7KKyWXoRq+NjRd1XPdflnqpznlDI+n32TgkFf+OG
+S8vZyPv9IKUa4NW2tkr7rYNhPS8KIck4IJj0cU502yCygWDwJN1yOTHsVFZdTpEV
+mx4HbQozPg/4isOqcicfdGJEy+5D4kGxzjxoiw13vMC02mjLxQqWcui1kJW3uuv1
+AF4M4VERMcPDQWGN6oCw4aahg8YvLcEOSonoYSpoxdqBmhkPHQ0dZcdG9zY4zMU=
+=X6h6
+-----END PGP SIGNATURE-----
diff --git a/libvirt-guests-init-script.patch b/libvirt-guests-init-script.patch
index 4e304af..defbd21 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-3.3.0/tools/libvirt-guests.init.in
+Index: libvirt-3.4.0/tools/libvirt-guests.init.in
===================================================================
---- libvirt-3.3.0.orig/tools/libvirt-guests.init.in
-+++ libvirt-3.3.0/tools/libvirt-guests.init.in
+--- libvirt-3.4.0.orig/tools/libvirt-guests.init.in
++++ libvirt-3.4.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-3.3.0/tools/libvirt-guests.init.in
#
exec @libexecdir@/libvirt-guests.sh "$@"
-Index: libvirt-3.3.0/tools/libvirt-guests.sh.in
+Index: libvirt-3.4.0/tools/libvirt-guests.sh.in
===================================================================
---- libvirt-3.3.0.orig/tools/libvirt-guests.sh.in
-+++ libvirt-3.3.0/tools/libvirt-guests.sh.in
+--- libvirt-3.4.0.orig/tools/libvirt-guests.sh.in
++++ libvirt-3.4.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# .
@@ -208,10 +208,10 @@ Index: libvirt-3.3.0/tools/libvirt-guests.sh.in
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-3.3.0/tools/libvirt-guests.sysconf
+Index: libvirt-3.4.0/tools/libvirt-guests.sysconf
===================================================================
---- libvirt-3.3.0.orig/tools/libvirt-guests.sysconf
-+++ libvirt-3.3.0/tools/libvirt-guests.sysconf
+--- libvirt-3.4.0.orig/tools/libvirt-guests.sysconf
++++ libvirt-3.4.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 05b09cc..d1f8b76 100644
--- a/libvirt-power8-models.patch
+++ b/libvirt-power8-models.patch
@@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
From:
-Index: libvirt-3.3.0/src/cpu/cpu_map.xml
+Index: libvirt-3.4.0/src/cpu/cpu_map.xml
===================================================================
---- libvirt-3.3.0.orig/src/cpu/cpu_map.xml
-+++ libvirt-3.3.0/src/cpu/cpu_map.xml
+--- libvirt-3.4.0.orig/src/cpu/cpu_map.xml
++++ libvirt-3.4.0/src/cpu/cpu_map.xml
@@ -1569,6 +1569,8 @@
@@ -14,4 +14,4 @@ Index: libvirt-3.3.0/src/cpu/cpu_map.xml
+
-
+
diff --git a/libvirt-suse-netcontrol.patch b/libvirt-suse-netcontrol.patch
index 7fb6bd0..1673d4b 100644
--- a/libvirt-suse-netcontrol.patch
+++ b/libvirt-suse-netcontrol.patch
@@ -1,7 +1,7 @@
-Index: libvirt-3.3.0/configure.ac
+Index: libvirt-3.4.0/configure.ac
===================================================================
---- libvirt-3.3.0.orig/configure.ac
-+++ libvirt-3.3.0/configure.ac
+--- libvirt-3.4.0.orig/configure.ac
++++ libvirt-3.4.0/configure.ac
@@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH
LIBVIRT_ARG_LIBXML
LIBVIRT_ARG_MACVTAP
@@ -18,7 +18,7 @@ Index: libvirt-3.3.0/configure.ac
LIBVIRT_CHECK_NUMACTL
LIBVIRT_CHECK_NWFILTER
LIBVIRT_CHECK_OPENWSMAN
-@@ -969,6 +971,7 @@ LIBVIRT_RESULT_LIBXL
+@@ -979,6 +981,7 @@ LIBVIRT_RESULT_LIBXL
LIBVIRT_RESULT_LIBXML
LIBVIRT_RESULT_MACVTAP
LIBVIRT_RESULT_NETCF
@@ -26,10 +26,10 @@ Index: libvirt-3.3.0/configure.ac
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL
LIBVIRT_RESULT_OPENWSMAN
-Index: libvirt-3.3.0/src/Makefile.am
+Index: libvirt-3.4.0/src/Makefile.am
===================================================================
---- libvirt-3.3.0.orig/src/Makefile.am
-+++ libvirt-3.3.0/src/Makefile.am
+--- libvirt-3.4.0.orig/src/Makefile.am
++++ libvirt-3.4.0/src/Makefile.am
@@ -1034,6 +1034,10 @@ if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c
@@ -52,11 +52,11 @@ Index: libvirt-3.3.0/src/Makefile.am
if WITH_UDEV
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
-Index: libvirt-3.3.0/tools/virsh.c
+Index: libvirt-3.4.0/tools/virsh.c
===================================================================
---- libvirt-3.3.0.orig/tools/virsh.c
-+++ libvirt-3.3.0/tools/virsh.c
-@@ -567,6 +567,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
+--- libvirt-3.4.0.orig/tools/virsh.c
++++ libvirt-3.4.0/tools/virsh.c
+@@ -570,6 +570,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
vshPrint(ctl, " netcf");
@@ -65,10 +65,10 @@ Index: libvirt-3.3.0/tools/virsh.c
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
-Index: libvirt-3.3.0/src/interface/interface_backend_netcf.c
+Index: libvirt-3.4.0/src/interface/interface_backend_netcf.c
===================================================================
---- libvirt-3.3.0.orig/src/interface/interface_backend_netcf.c
-+++ libvirt-3.3.0/src/interface/interface_backend_netcf.c
+--- libvirt-3.4.0.orig/src/interface/interface_backend_netcf.c
++++ libvirt-3.4.0/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@
#include
@@ -152,10 +152,10 @@ Index: libvirt-3.3.0/src/interface/interface_backend_netcf.c
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
return -1;
if (virRegisterStateDriver(&interfaceStateDriver) < 0)
-Index: libvirt-3.3.0/src/interface/interface_driver.c
+Index: libvirt-3.4.0/src/interface/interface_driver.c
===================================================================
---- libvirt-3.3.0.orig/src/interface/interface_driver.c
-+++ libvirt-3.3.0/src/interface/interface_driver.c
+--- libvirt-3.4.0.orig/src/interface/interface_driver.c
++++ libvirt-3.4.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@@ -173,10 +173,10 @@ Index: libvirt-3.3.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
-Index: libvirt-3.3.0/m4/virt-netcontrol.m4
+Index: libvirt-3.4.0/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
-+++ libvirt-3.3.0/m4/virt-netcontrol.m4
++++ libvirt-3.4.0/m4/virt-netcontrol.m4
@@ -0,0 +1,39 @@
+dnl The libnetcontrol library
+dnl
diff --git a/libvirt.changes b/libvirt.changes
index 1b3af32..bdf9d9c 100644
--- a/libvirt.changes
+++ b/libvirt.changes
@@ -1,3 +1,23 @@
+-------------------------------------------------------------------
+Fri Jun 2 17:23:04 UTC 2017 - jfehlig@suse.com
+
+- Update to libvirt 3.4.0
+ - Many incremental improvements and bug fixes, see
+ http://libvirt.org/news.html
+ - Dropped patches:
+ aeda1b8c-qemu-no-error-shutdown.patch,
+ 8023b21a-conf-ioapic.patch, 6b5c6314-qemu-irqchip.patch,
+ 2020e2c6-conf-intremap.patch, 04028a9d-qemu-intremap.patch,
+ d12781b4-conf-iommu-cache-mode-attr.patch,
+ a5691448-qemu-iommu-cache-mode.patch,
+ 3a276c65-conf-iommu-def-stability-check.patch,
+ 935d927a-conf-iommu-ABI-stability-check.patch,
+ 4cd3f241-fix-NULL-disk-source.patch,
+ 975ea20f-loopback-macro.patch,
+ dbb85e0c-libxl-graphics-listen-addr.patch,
+ libxl-def-usbctrl.patch, revert-2841e675-mtu.patch
+ - FATE#321335, bsc#1031056, bsc#1037774, bsc#1040207, bsc#1040213
+
-------------------------------------------------------------------
Mon May 22 17:30:44 UTC 2017 - jfehlig@suse.com
diff --git a/libvirt.spec b/libvirt.spec
index 9e9e906..e7aadae 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -175,7 +175,7 @@
Name: libvirt
Url: http://libvirt.org/
-Version: 3.3.0
+Version: 3.4.0
Release: 0
Summary: Library providing a simple virtualization API
License: LGPL-2.1+
@@ -317,22 +317,9 @@ Source4: libvirtd-relocation-server.fw
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
-Patch0: aeda1b8c-qemu-no-error-shutdown.patch
-Patch1: 8023b21a-conf-ioapic.patch
-Patch2: 6b5c6314-qemu-irqchip.patch
-Patch3: 2020e2c6-conf-intremap.patch
-Patch4: 04028a9d-qemu-intremap.patch
-Patch5: d12781b4-conf-iommu-cache-mode-attr.patch
-Patch6: a5691448-qemu-iommu-cache-mode.patch
-Patch7: 3a276c65-conf-iommu-def-stability-check.patch
-Patch8: 935d927a-conf-iommu-ABI-stability-check.patch
-Patch9: 4cd3f241-fix-NULL-disk-source.patch
-Patch10: 975ea20f-loopback-macro.patch
-Patch11: dbb85e0c-libxl-graphics-listen-addr.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
-Patch102: libxl-def-usbctrl.patch
# Need to go upstream
Patch150: xen-pv-cdrom.patch
Patch151: blockcopy-check-dst-identical-device.patch
@@ -341,7 +328,6 @@ Patch153: ppc64le-canonical-name.patch
Patch154: libxl-set-migration-constraints.patch
Patch155: libxl-set-cach-mode.patch
Patch156: apparmor-fixes.patch
-Patch157: revert-2841e675-mtu.patch
# Our patches
Patch200: libvirtd-defaults.patch
Patch201: libvirtd-init-script.patch
@@ -831,9 +817,9 @@ capabilities of recent versions of Linux (and other OSes).
%package libs
Summary: Client side libraries for libvirt
+Group: Development/Libraries/C and C++
# So remote clients can access libvirt over SSH tunnel
# (client invokes 'nc' against the UNIX socket on the server)
-Group: Development/Libraries/C and C++
Requires: netcat-openbsd
# Not technically required, but makes 'out-of-box' config
# work correctly & doesn't have onerous dependencies
@@ -899,21 +885,8 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep
%setup -q
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
%patch100 -p1
%patch101 -p1
-%patch102 -p1
%patch150 -p1
%patch151 -p1
%patch152 -p1
@@ -921,7 +894,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
@@ -1765,6 +1737,7 @@ fi
%doc %{_docdir}/%{name}/html
%doc %{_docdir}/%{name}/internals
%doc %{_docdir}/%{name}/logos
+%doc %{_docdir}/%{name}/fonts
# API docs
%dir %{_datadir}/gtk-doc/html/libvirt/
diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch
index 4f4b87c..270e028 100644
--- a/libvirtd-defaults.patch
+++ b/libvirtd-defaults.patch
@@ -1,7 +1,7 @@
-Index: libvirt-3.3.0/daemon/libvirtd.conf
+Index: libvirt-3.4.0/daemon/libvirtd.conf
===================================================================
---- libvirt-3.3.0.orig/daemon/libvirtd.conf
-+++ libvirt-3.3.0/daemon/libvirtd.conf
+--- libvirt-3.4.0.orig/daemon/libvirtd.conf
++++ libvirt-3.4.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-3.3.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-3.3.0/daemon/libvirtd-config.c
+Index: libvirt-3.4.0/daemon/libvirtd-config.c
===================================================================
---- libvirt-3.3.0.orig/daemon/libvirtd-config.c
-+++ libvirt-3.3.0/daemon/libvirtd-config.c
+--- libvirt-3.4.0.orig/daemon/libvirtd-config.c
++++ libvirt-3.4.0/daemon/libvirtd-config.c
@@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0)
return NULL;
@@ -26,10 +26,10 @@ Index: libvirt-3.3.0/daemon/libvirtd-config.c
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
-Index: libvirt-3.3.0/daemon/test_libvirtd.aug.in
+Index: libvirt-3.4.0/daemon/test_libvirtd.aug.in
===================================================================
---- libvirt-3.3.0.orig/daemon/test_libvirtd.aug.in
-+++ libvirt-3.3.0/daemon/test_libvirtd.aug.in
+--- libvirt-3.4.0.orig/daemon/test_libvirtd.aug.in
++++ libvirt-3.4.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 e73a60a..a318f75 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-3.3.0/daemon/libvirtd.sysconf
+Index: libvirt-3.4.0/daemon/libvirtd.sysconf
===================================================================
---- libvirt-3.3.0.orig/daemon/libvirtd.sysconf
-+++ libvirt-3.3.0/daemon/libvirtd.sysconf
+--- libvirt-3.4.0.orig/daemon/libvirtd.sysconf
++++ libvirt-3.4.0/daemon/libvirtd.sysconf
@@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt
+
diff --git a/libxl-def-usbctrl.patch b/libxl-def-usbctrl.patch
deleted file mode 100644
index 301cd9d..0000000
--- a/libxl-def-usbctrl.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From c55c2ba0a26b0074e73f281810ad3e4a70bc4910 Mon Sep 17 00:00:00 2001
-From: Jim Fehlig
-Date: Tue, 28 Mar 2017 17:34:16 -0600
-Subject: [PATCH] libxl: add default controllers for USB devices
-
-Attempting to start a domain with USB hostdevs but no USB controllers
-fails with the rather cryptic error
-
-libxl: error: libxl_qmp.c:287:qmp_handle_error_response: received an
-error message from QMP server: Bus 'xenusb-0.0' not found
-
-This can be fixed by creating default USB controllers. When no USB
-controllers are defined, create the number of 8 port controllers
-necessary to accommodate the number of defined USB devices.
-
-Note that USB controllers are already created as needed in the
-domainAttachDevice code path. E.g. a USB controller will be created,
-if necessary, when attaching a USB device with
-'virsh attach-device dom usbdev.xml'.
-
-Signed-off-by: Jim Fehlig
----
- src/libxl/libxl_conf.c | 82 +++++++++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 71 insertions(+), 11 deletions(-)
-
-Index: libvirt-3.3.0/src/libxl/libxl_conf.c
-===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_conf.c
-+++ libvirt-3.3.0/src/libxl/libxl_conf.c
-@@ -1833,34 +1833,94 @@ libxlMakeUSBController(virDomainControll
- }
-
- static int
-+libxlMakeDefaultUSBControllers(virDomainDefPtr def,
-+ libxl_domain_config *d_config)
-+{
-+ virDomainControllerDefPtr l_controller = NULL;
-+ libxl_device_usbctrl *x_controllers = NULL;
-+ size_t nusbdevs = 0;
-+ size_t ncontrollers;
-+ size_t i;
-+
-+ 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_USB)
-+ nusbdevs++;
-+ }
-+
-+ /* No controllers needed if there are no USB devs */
-+ if (nusbdevs == 0)
-+ return 0;
-+
-+ /* Create USB controllers with 8 ports */
-+ ncontrollers = VIR_DIV_UP(nusbdevs, 8);
-+ if (VIR_ALLOC_N(x_controllers, ncontrollers) < 0)
-+ return -1;
-+
-+ for (i = 0; i < ncontrollers; i++) {
-+ if (!(l_controller = virDomainControllerDefNew(VIR_DOMAIN_CONTROLLER_TYPE_USB)))
-+ goto error;
-+
-+ l_controller->model = VIR_DOMAIN_CONTROLLER_MODEL_USB_QUSB2;
-+ l_controller->idx = i;
-+ l_controller->opts.usbopts.ports = 8;
-+
-+ libxl_device_usbctrl_init(&x_controllers[i]);
-+
-+ if (libxlMakeUSBController(l_controller, &x_controllers[i]) < 0)
-+ goto error;
-+
-+ if (virDomainControllerInsert(def, l_controller) < 0)
-+ goto error;
-+
-+ l_controller = NULL;
-+ }
-+
-+ d_config->usbctrls = x_controllers;
-+ d_config->num_usbctrls = ncontrollers;
-+ return 0;
-+
-+ error:
-+ virDomainControllerDefFree(l_controller);
-+ for (i = 0; i < ncontrollers; i++)
-+ libxl_device_usbctrl_dispose(&x_controllers[i]);
-+ VIR_FREE(x_controllers);
-+ return -1;
-+}
-+
-+static int
- libxlMakeUSBControllerList(virDomainDefPtr def, libxl_domain_config *d_config)
- {
- virDomainControllerDefPtr *l_controllers = def->controllers;
- size_t ncontrollers = def->ncontrollers;
- size_t nusbctrls = 0;
- libxl_device_usbctrl *x_usbctrls;
-- size_t i;
-+ size_t i, j;
-
-- if (ncontrollers == 0)
-- return 0;
-+ for (i = 0; i < ncontrollers; i++) {
-+ if (l_controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_USB)
-+ nusbctrls++;
-+ }
-+
-+ if (nusbctrls == 0)
-+ return libxlMakeDefaultUSBControllers(def, d_config);
-
-- if (VIR_ALLOC_N(x_usbctrls, ncontrollers) < 0)
-+ if (VIR_ALLOC_N(x_usbctrls, nusbctrls) < 0)
- return -1;
-
-- for (i = 0; i < ncontrollers; i++) {
-+ for (i = 0, j = 0; i < ncontrollers && j < nusbctrls; i++) {
- if (l_controllers[i]->type != VIR_DOMAIN_CONTROLLER_TYPE_USB)
- continue;
-
-- libxl_device_usbctrl_init(&x_usbctrls[nusbctrls]);
-+ libxl_device_usbctrl_init(&x_usbctrls[j]);
-
- if (libxlMakeUSBController(l_controllers[i],
-- &x_usbctrls[nusbctrls]) < 0)
-+ &x_usbctrls[j]) < 0)
- goto error;
-
-- nusbctrls++;
-+ j++;
- }
-
-- VIR_SHRINK_N(x_usbctrls, ncontrollers, ncontrollers - nusbctrls);
- d_config->usbctrls = x_usbctrls;
- d_config->num_usbctrls = nusbctrls;
-
diff --git a/libxl-dom-reset.patch b/libxl-dom-reset.patch
index 222db0f..c918065 100644
--- a/libxl-dom-reset.patch
+++ b/libxl-dom-reset.patch
@@ -8,10 +8,10 @@ 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-3.3.0/src/libxl/libxl_driver.c
+Index: libvirt-3.4.0/src/libxl/libxl_driver.c
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_driver.c
-+++ libvirt-3.3.0/src/libxl/libxl_driver.c
+--- libvirt-3.4.0.orig/src/libxl/libxl_driver.c
++++ libvirt-3.4.0/src/libxl/libxl_driver.c
@@ -1381,6 +1381,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
}
diff --git a/libxl-qemu-emulator-caps.patch b/libxl-qemu-emulator-caps.patch
index 85d03f7..fd73398 100644
--- a/libxl-qemu-emulator-caps.patch
+++ b/libxl-qemu-emulator-caps.patch
@@ -8,10 +8,10 @@ as the default , instead of the qemu-xen one.
See FATE#320638 for details.
-Index: libvirt-3.3.0/src/libxl/libxl_capabilities.c
+Index: libvirt-3.4.0/src/libxl/libxl_capabilities.c
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_capabilities.c
-+++ libvirt-3.3.0/src/libxl/libxl_capabilities.c
+--- libvirt-3.4.0.orig/src/libxl/libxl_capabilities.c
++++ libvirt-3.4.0/src/libxl/libxl_capabilities.c
@@ -38,6 +38,7 @@
#include "libxl_capabilities.h"
#include "cpu/cpu_x86.h"
@@ -20,7 +20,7 @@ Index: libvirt-3.3.0/src/libxl/libxl_capabilities.c
#define VIR_FROM_THIS VIR_FROM_LIBXL
-@@ -491,7 +492,7 @@ libxlCapsInitGuests(libxl_ctx *ctx, virC
+@@ -506,7 +507,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 56fcb46..f8e540b 100644
--- a/libxl-set-cach-mode.patch
+++ b/libxl-set-cach-mode.patch
@@ -3,10 +3,10 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
-Index: libvirt-3.3.0/src/libxl/libxl_conf.c
+Index: libvirt-3.4.0/src/libxl/libxl_conf.c
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_conf.c
-+++ libvirt-3.3.0/src/libxl/libxl_conf.c
+--- libvirt-3.4.0.orig/src/libxl/libxl_conf.c
++++ libvirt-3.4.0/src/libxl/libxl_conf.c
@@ -645,6 +645,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
diff --git a/libxl-set-migration-constraints.patch b/libxl-set-migration-constraints.patch
index ed34f55..efe694d 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-3.3.0/include/libvirt/libvirt-domain.h
+Index: libvirt-3.4.0/include/libvirt/libvirt-domain.h
===================================================================
---- libvirt-3.3.0.orig/include/libvirt/libvirt-domain.h
-+++ libvirt-3.3.0/include/libvirt/libvirt-domain.h
+--- libvirt-3.4.0.orig/include/libvirt/libvirt-domain.h
++++ libvirt-3.4.0/include/libvirt/libvirt-domain.h
@@ -1008,6 +1008,31 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment"
@@ -52,10 +52,10 @@ Index: libvirt-3.3.0/include/libvirt/libvirt-domain.h
/* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname,
-Index: libvirt-3.3.0/src/libxl/libxl_driver.c
+Index: libvirt-3.4.0/src/libxl/libxl_driver.c
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_driver.c
-+++ libvirt-3.3.0/src/libxl/libxl_driver.c
+--- libvirt-3.4.0.orig/src/libxl/libxl_driver.c
++++ libvirt-3.4.0/src/libxl/libxl_driver.c
@@ -6105,6 +6105,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL;
const char *uri = NULL;
@@ -99,10 +99,10 @@ Index: libvirt-3.3.0/src/libxl/libxl_driver.c
goto cleanup;
}
-Index: libvirt-3.3.0/src/libxl/libxl_migration.c
+Index: libvirt-3.4.0/src/libxl/libxl_migration.c
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_migration.c
-+++ libvirt-3.3.0/src/libxl/libxl_migration.c
+--- libvirt-3.4.0.orig/src/libxl/libxl_migration.c
++++ libvirt-3.4.0/src/libxl/libxl_migration.c
@@ -359,18 +359,39 @@ libxlMigrateReceive(virNetSocketPtr sock
static int
libxlDoMigrateSend(libxlDriverPrivatePtr driver,
@@ -263,10 +263,10 @@ Index: libvirt-3.3.0/src/libxl/libxl_migration.c
virObjectLock(vm);
cleanup:
-Index: libvirt-3.3.0/src/libxl/libxl_migration.h
+Index: libvirt-3.4.0/src/libxl/libxl_migration.h
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_migration.h
-+++ libvirt-3.3.0/src/libxl/libxl_migration.h
+--- libvirt-3.4.0.orig/src/libxl/libxl_migration.h
++++ libvirt-3.4.0/src/libxl/libxl_migration.h
@@ -39,6 +39,10 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@@ -311,11 +311,11 @@ Index: libvirt-3.3.0/src/libxl/libxl_migration.h
virDomainPtr
libxlDomainMigrationFinish(virConnectPtr dconn,
-Index: libvirt-3.3.0/tools/virsh-domain.c
+Index: libvirt-3.4.0/tools/virsh-domain.c
===================================================================
---- libvirt-3.3.0.orig/tools/virsh-domain.c
-+++ libvirt-3.3.0/tools/virsh-domain.c
-@@ -10205,6 +10205,22 @@ static const vshCmdOptDef opts_migrate[]
+--- libvirt-3.4.0.orig/tools/virsh-domain.c
++++ libvirt-3.4.0/tools/virsh-domain.c
+@@ -10213,6 +10213,22 @@ static const vshCmdOptDef opts_migrate[]
.type = VSH_OT_BOOL,
.help = N_("use TLS for migration")
},
@@ -338,7 +338,7 @@ Index: libvirt-3.3.0/tools/virsh-domain.c
{.name = NULL}
};
-@@ -10228,6 +10244,7 @@ doMigrate(void *opaque)
+@@ -10236,6 +10252,7 @@ doMigrate(void *opaque)
unsigned long long ullOpt = 0;
int rv;
virConnectPtr dconn = data->dconn;
@@ -346,7 +346,7 @@ Index: libvirt-3.3.0/tools/virsh-domain.c
sigemptyset(&sigmask);
sigaddset(&sigmask, SIGINT);
-@@ -10347,6 +10364,27 @@ doMigrate(void *opaque)
+@@ -10355,6 +10372,27 @@ doMigrate(void *opaque)
goto save_error;
}
@@ -374,13 +374,13 @@ Index: libvirt-3.3.0/tools/virsh-domain.c
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
goto out;
if (opt) {
-Index: libvirt-3.3.0/tools/virsh.pod
+Index: libvirt-3.4.0/tools/virsh.pod
===================================================================
---- libvirt-3.3.0.orig/tools/virsh.pod
-+++ libvirt-3.3.0/tools/virsh.pod
-@@ -1753,6 +1753,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.
+--- libvirt-3.4.0.orig/tools/virsh.pod
++++ libvirt-3.4.0/tools/virsh.pod
+@@ -1758,6 +1758,14 @@ Providing I<--tls> causes the migration
+ the migration of the domain. Usage requires proper TLS setup for both source
+ and target.
+SUSE-specific options for Xen: I<--max_iters> B allows specifying the maximum
+number of iterations before final suspend. Default is 30. I<--max_factor> B
diff --git a/libxl-support-block-script.patch b/libxl-support-block-script.patch
index 5551416..64033c9 100644
--- a/libxl-support-block-script.patch
+++ b/libxl-support-block-script.patch
@@ -7,10 +7,10 @@ and npiv.
For more details, see bsc#954872 and FATE#319810
-Index: libvirt-3.3.0/src/libxl/libxl_conf.c
+Index: libvirt-3.4.0/src/libxl/libxl_conf.c
===================================================================
---- libvirt-3.3.0.orig/src/libxl/libxl_conf.c
-+++ libvirt-3.3.0/src/libxl/libxl_conf.c
+--- libvirt-3.4.0.orig/src/libxl/libxl_conf.c
++++ libvirt-3.4.0/src/libxl/libxl_conf.c
@@ -645,6 +645,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
diff --git a/lxc-wait-after-eth-del.patch b/lxc-wait-after-eth-del.patch
index 3ce24ee..13c8c5d 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-3.3.0/src/lxc/lxc_controller.c
+Index: libvirt-3.4.0/src/lxc/lxc_controller.c
===================================================================
---- libvirt-3.3.0.orig/src/lxc/lxc_controller.c
-+++ libvirt-3.3.0/src/lxc/lxc_controller.c
+--- libvirt-3.4.0.orig/src/lxc/lxc_controller.c
++++ libvirt-3.4.0/src/lxc/lxc_controller.c
@@ -73,6 +73,7 @@
#include "rpc/virnetdaemon.h"
#include "virstring.h"
@@ -33,10 +33,10 @@ Index: libvirt-3.3.0/src/lxc/lxc_controller.c
return ret;
}
-Index: libvirt-3.3.0/src/lxc/lxc_driver.c
+Index: libvirt-3.4.0/src/lxc/lxc_driver.c
===================================================================
---- libvirt-3.3.0.orig/src/lxc/lxc_driver.c
-+++ libvirt-3.3.0/src/lxc/lxc_driver.c
+--- libvirt-3.4.0.orig/src/lxc/lxc_driver.c
++++ libvirt-3.4.0/src/lxc/lxc_driver.c
@@ -76,6 +76,7 @@
#include "virtime.h"
#include "virtypedparam.h"
@@ -61,10 +61,10 @@ Index: libvirt-3.3.0/src/lxc/lxc_driver.c
break;
/* It'd be nice to support this, but with macvlan
-Index: libvirt-3.3.0/src/lxc/lxc_process.c
+Index: libvirt-3.4.0/src/lxc/lxc_process.c
===================================================================
---- libvirt-3.3.0.orig/src/lxc/lxc_process.c
-+++ libvirt-3.3.0/src/lxc/lxc_process.c
+--- libvirt-3.4.0.orig/src/lxc/lxc_process.c
++++ libvirt-3.4.0/src/lxc/lxc_process.c
@@ -52,6 +52,7 @@
#include "viratomic.h"
#include "virprocess.h"
diff --git a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch
index 59915d3..2d3182f 100644
--- a/network-don-t-use-dhcp-authoritative-on-static-netwo.patch
+++ b/network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@@ -17,10 +17,10 @@ Signed-off-by: Martin Wilck
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
2 files changed, 8 insertions(+), 2 deletions(-)
-Index: libvirt-3.3.0/src/network/bridge_driver.c
+Index: libvirt-3.4.0/src/network/bridge_driver.c
===================================================================
---- libvirt-3.3.0.orig/src/network/bridge_driver.c
-+++ libvirt-3.3.0/src/network/bridge_driver.c
+--- libvirt-3.4.0.orig/src/network/bridge_driver.c
++++ libvirt-3.4.0/src/network/bridge_driver.c
@@ -1409,7 +1409,14 @@ networkDnsmasqConfContents(virNetworkObj
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) {
@@ -37,10 +37,10 @@ Index: libvirt-3.3.0/src/network/bridge_driver.c
}
if (ipdef->tftproot) {
-Index: libvirt-3.3.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
+Index: libvirt-3.4.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
===================================================================
---- libvirt-3.3.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
-+++ libvirt-3.3.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
+--- libvirt-3.4.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
++++ libvirt-3.4.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
@@ -10,7 +10,6 @@ bind-dynamic
interface=virbr1
dhcp-range=192.168.122.1,static
diff --git a/ppc64le-canonical-name.patch b/ppc64le-canonical-name.patch
index a05ce11..ced5827 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-3.3.0/src/util/virarch.c
+Index: libvirt-3.4.0/src/util/virarch.c
===================================================================
---- libvirt-3.3.0.orig/src/util/virarch.c
-+++ libvirt-3.3.0/src/util/virarch.c
+--- libvirt-3.4.0.orig/src/util/virarch.c
++++ libvirt-3.4.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 3e90074..2742c44 100644
--- a/qemu-apparmor-screenshot.patch
+++ b/qemu-apparmor-screenshot.patch
@@ -1,7 +1,7 @@
-Index: libvirt-3.3.0/examples/apparmor/libvirt-qemu
+Index: libvirt-3.4.0/examples/apparmor/libvirt-qemu
===================================================================
---- libvirt-3.3.0.orig/examples/apparmor/libvirt-qemu
-+++ libvirt-3.3.0/examples/apparmor/libvirt-qemu
+--- libvirt-3.4.0.orig/examples/apparmor/libvirt-qemu
++++ libvirt-3.4.0/examples/apparmor/libvirt-qemu
@@ -154,3 +154,6 @@
/etc/udev/udev.conf r,
/sys/bus/ r,
diff --git a/revert-2841e675-mtu.patch b/revert-2841e675-mtu.patch
deleted file mode 100644
index ee9a714..0000000
--- a/revert-2841e675-mtu.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 306b412857870d1952850b511011909066089af7 Mon Sep 17 00:00:00 2001
-From: Jim Fehlig
-Date: Mon, 15 May 2017 09:47:39 -0600
-Subject: [PATCH] Revert "qemu: propagate bridge MTU into qemu "host_mtu"
- option"
-
-This reverts commit 2841e6756d5807a4119e004bc5fb8e7d70806458.
-
-The change causes a guest ABI change. See following bugs for details
-
-https://bugzilla.suse.com/show_bug.cgi?id=1037774
-https://bugzilla.redhat.com/show_bug.cgi?id=1449346
-Signed-off-by: Jim Fehlig
----
- src/qemu/qemu_command.c | 32 ++++++++++----------------------
- src/qemu/qemu_command.h | 3 +--
- src/qemu/qemu_hotplug.c | 5 ++---
- src/qemu/qemu_interface.c | 5 ++---
- src/qemu/qemu_interface.h | 3 +--
- 5 files changed, 16 insertions(+), 32 deletions(-)
-
-Index: libvirt-3.3.0/src/qemu/qemu_command.c
-===================================================================
---- libvirt-3.3.0.orig/src/qemu/qemu_command.c
-+++ libvirt-3.3.0/src/qemu/qemu_command.c
-@@ -3633,8 +3633,7 @@ qemuBuildNicDevStr(virDomainDefPtr def,
- int vlan,
- unsigned int bootindex,
- size_t vhostfdSize,
-- virQEMUCapsPtr qemuCaps,
-- unsigned int mtu)
-+ virQEMUCapsPtr qemuCaps)
- {
- virBuffer buf = VIR_BUFFER_INITIALIZER;
- const char *nic = net->model;
-@@ -3758,23 +3757,13 @@ qemuBuildNicDevStr(virDomainDefPtr def,
- virBufferAsprintf(&buf, ",rx_queue_size=%u", net->driver.virtio.rx_queue_size);
- }
-
-- if (usingVirtio && mtu) {
-- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_HOST_MTU)) {
--
-- virBufferAsprintf(&buf, ",host_mtu=%u", mtu);
--
-- } else {
-- /* log an error if mtu was requested specifically for this
-- * interface, otherwise, if it's just what was reported by
-- * the attached network, ignore it.
-- */
-- if (net->mtu) {
-- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-- _("setting MTU is not supported with "
-- "this QEMU binary"));
-- goto error;
-- }
-+ if (usingVirtio && net->mtu) {
-+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_HOST_MTU)) {
-+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-+ _("setting MTU is not supported with this QEMU binary"));
-+ goto error;
- }
-+ virBufferAsprintf(&buf, ",host_mtu=%u", net->mtu);
- }
-
- if (vlan == -1)
-@@ -8320,7 +8309,7 @@ qemuBuildVhostuserCommandLine(virQEMUDri
- VIR_FREE(netdev);
-
- if (!(nic = qemuBuildNicDevStr(def, net, -1, bootindex,
-- queues, qemuCaps, net->mtu))) {
-+ queues, qemuCaps))) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- "%s", _("Error generating NIC -device string"));
- goto error;
-@@ -8366,7 +8355,6 @@ qemuBuildInterfaceCommandLine(virQEMUDri
- virDomainNetType actualType = virDomainNetGetActualType(net);
- virNetDevBandwidthPtr actualBandwidth;
- size_t i;
-- unsigned int mtu = net->mtu;
-
-
- if (!bootindex)
-@@ -8421,7 +8409,7 @@ qemuBuildInterfaceCommandLine(virQEMUDri
- memset(tapfd, -1, tapfdSize * sizeof(tapfd[0]));
-
- if (qemuInterfaceBridgeConnect(def, driver, net,
-- tapfd, &tapfdSize, &mtu) < 0)
-+ tapfd, &tapfdSize) < 0)
- goto cleanup;
- break;
-
-@@ -8601,7 +8589,7 @@ qemuBuildInterfaceCommandLine(virQEMUDri
- }
- if (qemuDomainSupportsNicdev(def, net)) {
- if (!(nic = qemuBuildNicDevStr(def, net, vlan, bootindex,
-- vhostfdSize, qemuCaps, mtu)))
-+ vhostfdSize, qemuCaps)))
- goto cleanup;
- virCommandAddArgList(cmd, "-device", nic, NULL);
- } else {
-Index: libvirt-3.3.0/src/qemu/qemu_command.h
-===================================================================
---- libvirt-3.3.0.orig/src/qemu/qemu_command.h
-+++ libvirt-3.3.0/src/qemu/qemu_command.h
-@@ -101,8 +101,7 @@ char *qemuBuildNicDevStr(virDomainDefPtr
- int vlan,
- unsigned int bootindex,
- size_t vhostfdSize,
-- virQEMUCapsPtr qemuCaps,
-- unsigned int mtu);
-+ virQEMUCapsPtr qemuCaps);
-
- char *qemuDeviceDriveHostAlias(virDomainDiskDefPtr disk);
-
-Index: libvirt-3.3.0/src/qemu/qemu_hotplug.c
-===================================================================
---- libvirt-3.3.0.orig/src/qemu/qemu_hotplug.c
-+++ libvirt-3.3.0/src/qemu/qemu_hotplug.c
-@@ -968,7 +968,6 @@ qemuDomainAttachNetDevice(virQEMUDriverP
- bool charDevPlugged = false;
- bool netdevPlugged = false;
- bool hostPlugged = false;
-- unsigned int mtu = net->mtu;
-
- /* preallocate new slot for device */
- if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets + 1) < 0)
-@@ -1025,7 +1024,7 @@ qemuDomainAttachNetDevice(virQEMUDriverP
- goto cleanup;
- memset(vhostfd, -1, sizeof(*vhostfd) * vhostfdSize);
- if (qemuInterfaceBridgeConnect(vm->def, driver, net,
-- tapfd, &tapfdSize, &mtu) < 0)
-+ tapfd, &tapfdSize) < 0)
- goto cleanup;
- iface_connected = true;
- if (qemuInterfaceOpenVhostNet(vm->def, net, priv->qemuCaps,
-@@ -1239,7 +1238,7 @@ qemuDomainAttachNetDevice(virQEMUDriverP
- VIR_FORCE_CLOSE(vhostfd[i]);
-
- if (!(nicstr = qemuBuildNicDevStr(vm->def, net, vlan, 0,
-- queueSize, priv->qemuCaps, mtu)))
-+ queueSize, priv->qemuCaps)))
- goto try_remove;
-
- qemuDomainObjEnterMonitor(driver, vm);
-Index: libvirt-3.3.0/src/qemu/qemu_interface.c
-===================================================================
---- libvirt-3.3.0.orig/src/qemu/qemu_interface.c
-+++ libvirt-3.3.0/src/qemu/qemu_interface.c
-@@ -503,8 +503,7 @@ qemuInterfaceBridgeConnect(virDomainDefP
- virQEMUDriverPtr driver,
- virDomainNetDefPtr net,
- int *tapfd,
-- size_t *tapfdSize,
-- unsigned int *mtu)
-+ size_t *tapfdSize)
- {
- const char *brname;
- int ret = -1;
-@@ -545,7 +544,7 @@ qemuInterfaceBridgeConnect(virDomainDefP
- def->uuid, tunpath, tapfd, *tapfdSize,
- virDomainNetGetActualVirtPortProfile(net),
- virDomainNetGetActualVlan(net),
-- net->coalesce, net->mtu, mtu,
-+ NULL, 0, NULL,
- tap_create_flags) < 0) {
- virDomainAuditNetDevice(def, net, tunpath, false);
- goto cleanup;
-Index: libvirt-3.3.0/src/qemu/qemu_interface.h
-===================================================================
---- libvirt-3.3.0.orig/src/qemu/qemu_interface.h
-+++ libvirt-3.3.0/src/qemu/qemu_interface.h
-@@ -51,8 +51,7 @@ int qemuInterfaceBridgeConnect(virDomain
- virQEMUDriverPtr driver,
- virDomainNetDefPtr net,
- int *tapfd,
-- size_t *tapfdSize,
-- unsigned int *mtu)
-+ size_t *tapfdSize)
- ATTRIBUTE_NONNULL(2);
-
- int qemuInterfaceOpenVhostNet(virDomainDefPtr def,
diff --git a/support-managed-pci-xen-driver.patch b/support-managed-pci-xen-driver.patch
index 40de22d..099b51b 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-3.3.0/src/xenconfig/xen_common.c
+Index: libvirt-3.4.0/src/xenconfig/xen_common.c
===================================================================
---- libvirt-3.3.0.orig/src/xenconfig/xen_common.c
-+++ libvirt-3.3.0/src/xenconfig/xen_common.c
+--- libvirt-3.4.0.orig/src/xenconfig/xen_common.c
++++ libvirt-3.4.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-3.3.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-3.3.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-3.4.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-3.3.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-3.3.0/src/xenconfig/xen_sxpr.c
+--- libvirt-3.4.0.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-3.4.0/src/xenconfig/xen_sxpr.c
@@ -1062,6 +1062,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID;
int slotID;
diff --git a/suse-libvirtd-service.patch b/suse-libvirtd-service.patch
index 21c87b7..ea4ade8 100644
--- a/suse-libvirtd-service.patch
+++ b/suse-libvirtd-service.patch
@@ -5,10 +5,10 @@ tools. If a user installs libvirt on their SUSE Xen host, then libvirt
should be king and override xendomains.
bsc#1015348
-Index: libvirt-3.3.0/daemon/libvirtd.service.in
+Index: libvirt-3.4.0/daemon/libvirtd.service.in
===================================================================
---- libvirt-3.3.0.orig/daemon/libvirtd.service.in
-+++ libvirt-3.3.0/daemon/libvirtd.service.in
+--- libvirt-3.4.0.orig/daemon/libvirtd.service.in
++++ libvirt-3.4.0/daemon/libvirtd.service.in
@@ -15,6 +15,7 @@ After=apparmor.service
After=local-fs.target
After=remote-fs.target
diff --git a/suse-qemu-conf.patch b/suse-qemu-conf.patch
index 30066df..18601b9 100644
--- a/suse-qemu-conf.patch
+++ b/suse-qemu-conf.patch
@@ -7,10 +7,10 @@ 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-3.3.0/src/qemu/qemu.conf
+Index: libvirt-3.4.0/src/qemu/qemu.conf
===================================================================
---- libvirt-3.3.0.orig/src/qemu/qemu.conf
-+++ libvirt-3.3.0/src/qemu/qemu.conf
+--- libvirt-3.4.0.orig/src/qemu/qemu.conf
++++ libvirt-3.4.0/src/qemu/qemu.conf
@@ -332,11 +332,20 @@
# isolation, but it cannot appear in a list of drivers.
#
diff --git a/systemd-service-xen.patch b/systemd-service-xen.patch
index 7529123..58deddc 100644
--- a/systemd-service-xen.patch
+++ b/systemd-service-xen.patch
@@ -1,7 +1,7 @@
-Index: libvirt-3.3.0/daemon/libvirtd.service.in
+Index: libvirt-3.4.0/daemon/libvirtd.service.in
===================================================================
---- libvirt-3.3.0.orig/daemon/libvirtd.service.in
-+++ libvirt-3.3.0/daemon/libvirtd.service.in
+--- libvirt-3.4.0.orig/daemon/libvirtd.service.in
++++ libvirt-3.4.0/daemon/libvirtd.service.in
@@ -14,6 +14,7 @@ After=iscsid.service
After=apparmor.service
After=local-fs.target
diff --git a/virtlockd-init-script.patch b/virtlockd-init-script.patch
index fd69e45..11047ff 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-3.3.0/src/locking/virtlockd.sysconf
+Index: libvirt-3.4.0/src/locking/virtlockd.sysconf
===================================================================
---- libvirt-3.3.0.orig/src/locking/virtlockd.sysconf
-+++ libvirt-3.3.0/src/locking/virtlockd.sysconf
+--- libvirt-3.4.0.orig/src/locking/virtlockd.sysconf
++++ libvirt-3.4.0/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd
+
@@ -12,10 +12,10 @@ Index: libvirt-3.3.0/src/locking/virtlockd.sysconf
#
# Pass extra arguments to virtlockd
#VIRTLOCKD_ARGS=
-Index: libvirt-3.3.0/src/locking/virtlockd.init.in
+Index: libvirt-3.4.0/src/locking/virtlockd.init.in
===================================================================
---- libvirt-3.3.0.orig/src/locking/virtlockd.init.in
-+++ libvirt-3.3.0/src/locking/virtlockd.init.in
+--- libvirt-3.4.0.orig/src/locking/virtlockd.init.in
++++ libvirt-3.4.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 75e6a92..83ce397 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-3.3.0/src/logging/virtlogd.init.in
+Index: libvirt-3.4.0/src/logging/virtlogd.init.in
===================================================================
---- libvirt-3.3.0.orig/src/logging/virtlogd.init.in
-+++ libvirt-3.3.0/src/logging/virtlogd.init.in
+--- libvirt-3.4.0.orig/src/logging/virtlogd.init.in
++++ libvirt-3.4.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-3.3.0/src/logging/virtlogd.init.in
esac
-exit $RETVAL
+rc_exit
-Index: libvirt-3.3.0/src/logging/virtlogd.sysconf
+Index: libvirt-3.4.0/src/logging/virtlogd.sysconf
===================================================================
---- libvirt-3.3.0.orig/src/logging/virtlogd.sysconf
-+++ libvirt-3.3.0/src/logging/virtlogd.sysconf
+--- libvirt-3.4.0.orig/src/logging/virtlogd.sysconf
++++ libvirt-3.4.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 ca51db0..14dd090 100644
--- a/xen-pv-cdrom.patch
+++ b/xen-pv-cdrom.patch
@@ -1,7 +1,7 @@
-Index: libvirt-3.3.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-3.4.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-3.3.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-3.3.0/src/xenconfig/xen_sxpr.c
+--- libvirt-3.4.0.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-3.4.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 2c8cbbe..cbd53d9 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-3.3.0/src/xenconfig/xen_sxpr.c
+Index: libvirt-3.4.0/src/xenconfig/xen_sxpr.c
===================================================================
---- libvirt-3.3.0.orig/src/xenconfig/xen_sxpr.c
-+++ libvirt-3.3.0/src/xenconfig/xen_sxpr.c
+--- libvirt-3.4.0.orig/src/xenconfig/xen_sxpr.c
++++ libvirt-3.4.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 */
From 82e6ddc91c4eac2bb9a1c76b64acfd436d9baf3d3d003af97c94c475fd793be2 Mon Sep 17 00:00:00 2001
From: James Fehlig
Date: Tue, 6 Jun 2017 22:05:12 +0000
Subject: [PATCH 2/3] Fix a regression in libvirt 3.4.0 found by libvirt-tck.
- Don't exceed specified length when reading from stream
5004f121-virFdStreamThread-dont-exceed-length.patch
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=607
---
...virFdStreamThread-dont-exceed-length.patch | 85 +++++++++++++++++++
libvirt.changes | 6 ++
libvirt.spec | 2 +
3 files changed, 93 insertions(+)
create mode 100644 5004f121-virFdStreamThread-dont-exceed-length.patch
diff --git a/5004f121-virFdStreamThread-dont-exceed-length.patch b/5004f121-virFdStreamThread-dont-exceed-length.patch
new file mode 100644
index 0000000..3b6989e
--- /dev/null
+++ b/5004f121-virFdStreamThread-dont-exceed-length.patch
@@ -0,0 +1,85 @@
+commit 5004f121bc572c58d9721bf7bf3c3a1988720ba8
+Author: Michal Privoznik
+Date: Mon Jun 5 13:22:23 2017 +0200
+
+ virFDStreamThread: Make sure we won't exceed @length
+
+ There's a problem with current streams after I switched them from
+ iohelper to thread implementation. Previously, iohelper made sure
+ not to exceed specified @length resulting in the pipe EOF
+ appearing at the exact right moment (the pipe was used to tunnel
+ the data from the iohelper to the daemon). Anyway, when switching
+ to thread I had to write the I/O code from scratch. Whilst doing
+ that I took an inspiration from the iohelper code, but since the
+ usage of pipe switched to slightly different meaning, there was
+ no 1:1 relationship between the codes.
+
+ Moreover, after introducing VIR_FDSTREAM_MSG_TYPE_HOLE, the
+ condition that should made sure we won't exceed @length was
+ completely wrong.
+
+ The fix is to:
+
+ a) account for holes for @length
+ b) cap not just data sections but holes too (if @length would be
+ exceeded)
+
+ For this purpose, the condition needs to be brought closer to the
+ code that handles holes and data sections.
+
+ Signed-off-by: Michal Privoznik
+
+Index: libvirt-3.4.0/src/util/virfdstream.c
+===================================================================
+--- libvirt-3.4.0.orig/src/util/virfdstream.c
++++ libvirt-3.4.0/src/util/virfdstream.c
+@@ -420,6 +420,8 @@ virFDStreamThreadDoRead(virFDStreamDataP
+ const int fdout,
+ const char *fdinname,
+ const char *fdoutname,
++ size_t length,
++ size_t total,
+ size_t *dataLen,
+ size_t buflen)
+ {
+@@ -433,10 +435,18 @@ virFDStreamThreadDoRead(virFDStreamDataP
+ if (virFileInData(fdin, &inData, §ionLen) < 0)
+ goto error;
+
++ if (length &&
++ sectionLen > length - total)
++ sectionLen = length - total;
++
+ if (inData)
+ *dataLen = sectionLen;
+ }
+
++ if (length &&
++ buflen > length - total)
++ buflen = length - total;
++
+ if (VIR_ALLOC(msg) < 0)
+ goto error;
+
+@@ -578,13 +588,6 @@ virFDStreamThread(void *opaque)
+ while (1) {
+ ssize_t got;
+
+- if (length &&
+- (length - total) < buflen)
+- buflen = length - total;
+-
+- if (buflen == 0)
+- break; /* End of requested data from client */
+-
+ while (doRead == (fdst->msg != NULL) &&
+ !fdst->threadQuit) {
+ if (virCondWait(&fdst->threadCond, &fdst->parent.lock)) {
+@@ -608,6 +611,7 @@ virFDStreamThread(void *opaque)
+ got = virFDStreamThreadDoRead(fdst, sparse,
+ fdin, fdout,
+ fdinname, fdoutname,
++ length, total,
+ &dataLen, buflen);
+ else
+ got = virFDStreamThreadDoWrite(fdst, sparse,
diff --git a/libvirt.changes b/libvirt.changes
index bdf9d9c..fa2b16f 100644
--- a/libvirt.changes
+++ b/libvirt.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Tue Jun 6 22:01:24 UTC 2017 - jfehlig@suse.com
+
+- Don't exceed specified length when reading from stream
+ 5004f121-virFdStreamThread-dont-exceed-length.patch
+
-------------------------------------------------------------------
Fri Jun 2 17:23:04 UTC 2017 - jfehlig@suse.com
diff --git a/libvirt.spec b/libvirt.spec
index e7aadae..3e75e53 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -317,6 +317,7 @@ Source4: libvirtd-relocation-server.fw
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
+Patch0: 5004f121-virFdStreamThread-dont-exceed-length.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@@ -885,6 +886,7 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep
%setup -q
+%patch0 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1
From f044c9550b27e298e5fb37d51a143656fda71fb62f9618dc6265370ece1459e8 Mon Sep 17 00:00:00 2001
From: James Fehlig
Date: Wed, 7 Jun 2017 23:56:21 +0000
Subject: [PATCH 3/3] Accepting request 501831 from
home:jfehlig:branches:Virtualization
Miscellaneous spec file improvements.
- misc spec file cleanup
- remove checks for old distros well beyond EOL
- enable wireshark dissector for Leap >= 42.2 and Factory
- remove support for old, non-systemd distros
- replace $RPM_ shell vars with modern macros
5004f121-virFdStreamThread-dont-exceed-length.patch,
1a4b21f1-set-EOF-on-end-of-stream.patch
OBS-URL: https://build.opensuse.org/request/show/501831
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=608
---
1a4b21f1-set-EOF-on-end-of-stream.patch | 39 ++++
libvirt.changes | 12 +-
libvirt.spec | 241 ++++++++----------------
libvirtd.init | 93 ---------
4 files changed, 125 insertions(+), 260 deletions(-)
create mode 100644 1a4b21f1-set-EOF-on-end-of-stream.patch
delete mode 100644 libvirtd.init
diff --git a/1a4b21f1-set-EOF-on-end-of-stream.patch b/1a4b21f1-set-EOF-on-end-of-stream.patch
new file mode 100644
index 0000000..b9e1281
--- /dev/null
+++ b/1a4b21f1-set-EOF-on-end-of-stream.patch
@@ -0,0 +1,39 @@
+commit 1a4b21f1c67a3ddf39d11bba39c1dee869131636
+Author: Michal Privoznik
+Date: Tue Jun 6 14:45:55 2017 +0200
+
+ virNetClientStreamQueuePacket: Set st->incomingEOF on the end of stream
+
+ While reworking client side of streams, I had to postpone payload
+ decoding so that stream holes and stream data can be
+ distinguished in virNetClientStreamRecvPacket. That's merely what
+ 18944b7aea46d does. However, I accidentally removed one important
+ bit: when server sends us an empty STREAM packet (with no
+ payload) - meaning end of stream - st->incomingEOF flag needs to
+ be set. It used to be before I touched the code. After I removed
+ it, virNetClientStreamRecvPacket will try to fetch more data from
+ the stream, but it will never come.
+
+ Signed-off-by: Michal Privoznik
+ Reviewed-by: Jim Fehlig
+
+Index: libvirt-3.4.0/src/rpc/virnetclientstream.c
+===================================================================
+--- libvirt-3.4.0.orig/src/rpc/virnetclientstream.c
++++ libvirt-3.4.0/src/rpc/virnetclientstream.c
+@@ -278,6 +278,15 @@ int virNetClientStreamQueuePacket(virNet
+
+ VIR_DEBUG("Incoming stream message: stream=%p message=%p", st, msg);
+
++ if (msg->bufferLength == msg->bufferOffset) {
++ /* No payload means end of the stream. */
++ virObjectLock(st);
++ st->incomingEOF = true;
++ virNetClientStreamEventTimerUpdate(st);
++ virObjectUnlock(st);
++ return 0;
++ }
++
+ /* Unfortunately, we must allocate new message as the one we
+ * get in @msg is going to be cleared later in the process. */
+
diff --git a/libvirt.changes b/libvirt.changes
index fa2b16f..4cb09b8 100644
--- a/libvirt.changes
+++ b/libvirt.changes
@@ -1,8 +1,18 @@
+-------------------------------------------------------------------
+Wed Jun 7 22:07:38 UTC 2017 - jfehlig@suse.com
+
+- misc spec file cleanup
+ - remove checks for old distros well beyond EOL
+ - enable wireshark dissector for Leap >= 42.2 and Factory
+ - remove support for old, non-systemd distros
+ - replace $RPM_ shell vars with modern macros
+
-------------------------------------------------------------------
Tue Jun 6 22:01:24 UTC 2017 - jfehlig@suse.com
- Don't exceed specified length when reading from stream
- 5004f121-virFdStreamThread-dont-exceed-length.patch
+ 5004f121-virFdStreamThread-dont-exceed-length.patch,
+ 1a4b21f1-set-EOF-on-end-of-stream.patch
-------------------------------------------------------------------
Fri Jun 2 17:23:04 UTC 2017 - jfehlig@suse.com
diff --git a/libvirt.spec b/libvirt.spec
index 3e75e53..1bbe0d2 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -19,12 +19,6 @@
# The configuration of libvirt is modified slightly for SLE
%define with_sle_build %{?is_opensuse:0}%{!?is_opensuse:1}
-# openSUSE13.1 and 13.2 do not understand %is_opensuse. Check for those
-# explicitly and disable SLE build
-%if 0%{?suse_version} == 1310 || 0%{?suse_version} == 1320
- %define with_sle_build 0
-%endif
-
# The hypervisor drivers that run in libvirtd
%define with_xen 0%{!?_without_xen:1}
%define with_qemu 0%{!?_without_qemu:1}
@@ -52,7 +46,6 @@
# A few optional bits off by default, we enable later
%define with_cgconfig 0%{!?_without_cgconfig:0}
-%define with_systemd 0%{!?_without_systemd:0}
%define with_numactl 0%{!?_without_numactl:0}
%define with_numad 0%{!?_without_numad:0}
%define with_firewalld 0%{!?_without_firewalld:0}
@@ -70,7 +63,7 @@
%define with_libxl 0
%endif
-# For SLE, further restrice Xen support to x86_64 only
+# For SLE, further restrict Xen support to x86_64 only
%if %{with_sle_build}
%ifarch %arm aarch64
%define with_xen 0
@@ -136,16 +129,13 @@
%endif
%endif
-# Support systemd on 12.1 and later
-%if 0%{?suse_version} >= 1210
- %define with_systemd 0%{!?_without_systemd:1}
+# libvirt commit 37397320 changed the configure check for wireshark to use
+# pkgconfig. Currently only the Leap 42.2 and Factory wireshark-devel packages
+# provide wireshark.pc. Disable the dissector for SLE and Leap <= 42.1
+%if 0%{?sle_version} < 120200 && %{with_sle_build}
+ %define with_wireshark 0
%endif
-# libvirt commit 37397320 changed the configure check for wireshark to
-# use pkgconfig, but our wireshark packages do not provide wireshark.pc.
-# Disable the dissector for now
-%define with_wireshark 0
-
# numad is used to manage the CPU and memory placement dynamically for
# qemu, lxc, and uml drivers
%if %{with_qemu} || %{with_lxc} || %{with_uml}
@@ -219,10 +209,8 @@ BuildRequires: gettext-tools
BuildRequires: libtool
# Needed for virkmodtest in 'make check'
BuildRequires: modutils
-%if %{with_systemd}
BuildRequires: systemd
BuildRequires: pkgconfig(systemd)
-%endif
%if %{with_xen} || %{with_libxl}
BuildRequires: xen-devel
%endif
@@ -312,12 +300,12 @@ BuildRequires: libssh-devel >= 0.7.0
Source0: %{name}-%{version}.tar.xz
Source1: %{name}-%{version}.tar.xz.asc
Source2: %{name}.keyring
-Source3: libvirtd.init
-Source4: libvirtd-relocation-server.fw
+Source3: libvirtd-relocation-server.fw
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
Patch0: 5004f121-virFdStreamThread-dont-exceed-length.patch
+Patch1: 1a4b21f1-set-EOF-on-end-of-stream.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@@ -390,10 +378,8 @@ Recommends: polkit >= 0.93
# For virConnectGetSysinfo
Requires: dmidecode
%endif
-%if %{with_systemd}
# For service management
%{?systemd_requires}
-%endif
%if %{with_numad}
Requires: numad
%endif
@@ -818,9 +804,9 @@ capabilities of recent versions of Linux (and other OSes).
%package libs
Summary: Client side libraries for libvirt
-Group: Development/Libraries/C and C++
# So remote clients can access libvirt over SSH tunnel
# (client invokes 'nc' against the UNIX socket on the server)
+Group: Development/Libraries/C and C++
Requires: netcat-openbsd
# Not technically required, but makes 'out-of-box' config
# work correctly & doesn't have onerous dependencies
@@ -887,6 +873,7 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1
@@ -1008,11 +995,6 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%else
%define arg_sanlock --without-sanlock
%endif
-%if %{with_systemd}
- %define arg_init_script --with-init-script=systemd
-%else
- %define arg_init_script --with-init-script=redhat
-%endif
%if %{with_firewalld}
%define arg_firewalld --with-firewalld
%else
@@ -1035,7 +1017,7 @@ LOADERS="$LOADERS:/usr/share/qemu/aavmf-aarch64-code.bin:/usr/share/qemu/aavmf-a
%define arg_loader_nvram --with-loader-nvram="$LOADERS"
autoreconf -f -i
-export CFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS="%{optflags}"
%configure --disable-static --with-pic \
%{?arg_xen} \
%{?arg_qemu} \
@@ -1094,7 +1076,7 @@ export CFLAGS="$RPM_OPT_FLAGS"
--with-qemu-group=%{qemu_group} \
%{?arg_loader_nvram} \
--without-login-shell \
- %{arg_init_script} \
+ --with-init-script=systemd \
ac_cv_path_MODPROBE=/sbin/modprobe \
ac_cv_path_UDEVADM=/sbin/udevadm \
ac_cv_path_SHOWMOUNT=/usr/sbin/showmount \
@@ -1106,146 +1088,124 @@ gzip -9 ChangeLog
%install
%makeinstall SYSTEMD_UNIT_DIR=%{_unitdir} HTML_DIR=%{_docdir}/%{name}
make %{?jobs:-j%jobs} -C examples distclean
-cp examples/lxcconvert/virt-lxc-convert $RPM_BUILD_ROOT%{_bindir}
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+cp examples/lxcconvert/virt-lxc-convert %{buildroot}/%{_bindir}
+rm -f %{buildroot}/%{_libdir}/*.la
%if %{with_wireshark}
-rm -f $RPM_BUILD_ROOT%{_libdir}/wireshark/plugins/libvirt.la
+rm -f %{buildroot}/%{_libdir}/wireshark/plugins/libvirt.la
%endif
-rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/lock-driver/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/lock-driver/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/connection-driver/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/connection-driver/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/storage-backend/*.la
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/storage-backend/*.a
+rm -f %{buildroot}/%{_libdir}/*.a
+rm -f %{buildroot}/%{_libdir}/%{name}/lock-driver/*.la
+rm -f %{buildroot}/%{_libdir}/%{name}/lock-driver/*.a
+rm -f %{buildroot}/%{_libdir}/%{name}/connection-driver/*.la
+rm -f %{buildroot}/%{_libdir}/%{name}/connection-driver/*.a
+rm -f %{buildroot}/%{_libdir}/%{name}/storage-backend/*.la
+rm -f %{buildroot}/%{_libdir}/%{name}/storage-backend/*.a
# remove currently unsupported locale(s)
-for dir in $RPM_BUILD_ROOT/usr/share/locale/*
+for dir in %{buildroot}/usr/share/locale/*
do
- sdir=`echo $dir | sed "s|$RPM_BUILD_ROOT||"`
+ sdir=`echo $dir | sed "s|%{buildroot}||"`
if test -d $sdir ; then continue ; fi
rm -rfv "$dir"
done
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/hooks
+mkdir -p %{buildroot}/%{_localstatedir}/lib/libvirt
+mkdir -p %{buildroot}/%{_sysconfdir}/libvirt/hooks
%find_lang %{name}
# Add a README to the libvirt package with a note about the empty
# file list
-cat > $RPM_BUILD_ROOT%{_docdir}/libvirt/libvirt.README << 'EOF'
+cat > %{buildroot}/%{_docdir}/libvirt/libvirt.README << 'EOF'
The libvirt package no longer contains any files. It exists now
only to fulfill its 'Provides' contract.
EOF
-install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt/dnsmasq/
-install -d -m 0755 $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/
-cp $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml \
- $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
+install -d -m 0755 %{buildroot}/%{_localstatedir}/lib/libvirt/dnsmasq/
+install -d -m 0755 %{buildroot}/%{_datadir}/libvirt/networks/
+cp %{buildroot}/%{_sysconfdir}/libvirt/qemu/networks/default.xml \
+ %{buildroot}/%{_datadir}/libvirt/networks/default.xml
+rm -f %{buildroot}/%{_sysconfdir}/libvirt/qemu/networks/default.xml
+rm -f %{buildroot}/%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
# Strip auto-generated UUID - we need it generated per-install
-sed -i -e "//d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
+sed -i -e "//d" %{buildroot}/%{_datadir}/libvirt/networks/default.xml
%if %{with_lxc}
-cat > $RPM_BUILD_ROOT%{_docdir}/libvirt/libvirt-daemon-lxc.README << 'EOF'
+cat > %{buildroot}/%{_docdir}/libvirt/libvirt-daemon-lxc.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing LXC.
EOF
%else
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/lxc.conf
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_lxc.aug
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.lxc
+rm -rf %{buildroot}/%{_sysconfdir}/libvirt/lxc.conf
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/libvirtd_lxc.aug
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirtd_lxc.aug
+rm -rf %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.lxc
%endif
%if %{with_qemu}
-cat > $RPM_BUILD_ROOT%{_docdir}/libvirt/libvirt-daemon-qemu.README << 'EOF'
+cat > %{buildroot}/%{_docdir}/libvirt/libvirt-daemon-qemu.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing QEMU/KVM.
EOF
%else
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.qemu
+rm -rf %{buildroot}/%{_sysconfdir}/libvirt/qemu.conf
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/libvirtd_qemu.aug
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
+rm -rf %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.qemu
%endif
%if %{with_uml}
-cat > $RPM_BUILD_ROOT%{_docdir}/libvirt/libvirt-daemon-uml.README << 'EOF'
+cat > %{buildroot}/%{_docdir}/libvirt/libvirt-daemon-uml.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing UML.
EOF
%else
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
+rm -rf %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.uml
%endif
%if %{with_vbox}
-cat > $RPM_BUILD_ROOT%{_docdir}/libvirt/libvirt-daemon-vbox.README << 'EOF'
+cat > %{buildroot}/%{_docdir}/libvirt/libvirt-daemon-vbox.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing VirtualBox.
EOF
%endif
%if %{with_xen} || %{with_libxl}
-cat > $RPM_BUILD_ROOT%{_docdir}/libvirt/libvirt-daemon-xen.README << 'EOF'
+cat > %{buildroot}/%{_docdir}/libvirt/libvirt-daemon-xen.README << 'EOF'
Any empty package encapsulating requirements for a libvirtd capable
of managing Xen.
EOF
%endif
%if ! %{with_libxl}
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libxl.conf
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
+rm -f %{buildroot}/%{_sysconfdir}/libvirt/libxl.conf
+rm -f %{buildroot}/%{_sysconfdir}/logrotate.d/libvirtd.libxl
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/libvirtd_libxl.aug
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
%endif
%if ! %{with_sanlock}
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirt_sanlock.aug
-rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/libvirt_sanlock.aug
+rm -f %{buildroot}/%{_datadir}/augeas/lenses/tests/test_libvirt_sanlock.aug
%endif
# init scripts
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates
-# Currently using our own libvirtd init script
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/libvirtd
-%if %{with_systemd}
-ln -s %{_sbindir}/service $RPM_BUILD_ROOT%{_sbindir}/rclibvirtd
-%else
-install %SOURCE3 $RPM_BUILD_ROOT%{_sysconfdir}/init.d/libvirtd
-ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT%{_sbindir}/rclibvirtd
-%endif
-mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/libvirtd $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.libvirtd
-rm -f $RPM_BUILD_ROOT/usr/lib/sysctl.d/60-libvirtd.conf
-# For other services, use the in-tree scripts
-%if %{with_systemd}
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlogd
-ln -s %{_sbindir}/service $RPM_BUILD_ROOT%{_sbindir}/rcvirtlogd
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlockd
-ln -s %{_sbindir}/service $RPM_BUILD_ROOT%{_sbindir}/rcvirtlockd
-%else
-mv $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlogd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/virtlogd
-ln -s /etc/init.d/virtlogd $RPM_BUILD_ROOT%{_sbindir}/rcvirtlogd
-mv $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/virtlockd $RPM_BUILD_ROOT%{_sysconfdir}/init.d/virtlockd
-ln -s /etc/init.d/virtlockd $RPM_BUILD_ROOT%{_sbindir}/rcvirtlockd
-%endif
-mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/virtlogd $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.virtlogd
-mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/virtlockd $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.virtlockd
+mkdir -p %{buildroot}/%{_localstatedir}/adm/fillup-templates
+rm -f %{buildroot}/usr/lib/sysctl.d/60-libvirtd.conf
+mv %{buildroot}/%{_sysconfdir}/sysconfig/libvirtd %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.libvirtd
+mv %{buildroot}/%{_sysconfdir}/sysconfig/virtlogd %{buildroot}/%{_localstatedir}/adm/fillup-templates/sysconfig.virtlogd
+mv %{buildroot}/%{_sysconfdir}/sysconfig/virtlockd %{buildroot}/%{_localstatedir}/adm/fillup-templates/sysconfig.virtlockd
+mv %{buildroot}/%{_sysconfdir}/sysconfig/libvirt-guests %{buildroot}/%{_localstatedir}/adm/fillup-templates/sysconfig.libvirt-guests
+# Provide rc symlink backward compatibility
+ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirtd
+ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlogd
+ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rcvirtlockd
+ln -s %{_sbindir}/service %{buildroot}/%{_sbindir}/rclibvirt-guests
+
#install firewall definitions format is described here:
#/usr/share/SuSEfirewall2/services/TEMPLATE
-mkdir -p $RPM_BUILD_ROOT%{_fwdefdir}
-install -m 644 %{S:4} $RPM_BUILD_ROOT%{_fwdefdir}/libvirtd-relocation-server
-%if %{with_systemd}
-rm -f $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/libvirt-guests
-ln -s %{_sbindir}/service $RPM_BUILD_ROOT%{_sbindir}/rclibvirt-guests
-%else
-mv $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/libvirt-guests $RPM_BUILD_ROOT%{_sysconfdir}/init.d/libvirt-guests
-mkdir -p $RPM_BUILD_ROOT%{_sbindir}
-ln -s %{_sysconfdir}/init.d/libvirt-guests $RPM_BUILD_ROOT%{_sbindir}/rclibvirt-guests
-%endif
-mv $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/libvirt-guests $RPM_BUILD_ROOT%{_localstatedir}/adm/fillup-templates/sysconfig.libvirt-guests
+mkdir -p %{buildroot}/%{_fwdefdir}
+install -m 644 %{S:3} %{buildroot}/%{_fwdefdir}/libvirtd-relocation-server
+
%ifarch %{power64} s390x x86_64
-mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes.stp \
- $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
-mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
- $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
+mv %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_probes.stp \
+ %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_probes-64.stp
+mv %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
+ %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_qemu_probes-64.stp
%endif
-%fdupes -s $RPM_BUILD_ROOT
+%fdupes -s %{buildroot}
%clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
%check
cd tests
@@ -1271,39 +1231,28 @@ then
fi
%pre daemon
-%if %{with_systemd}
%service_add_pre libvirtd.service
%service_add_pre virtlockd.service virtlockd.socket
%service_add_pre virtlogd.service virtlogd.socket
-%endif
%{_bindir}/getent group libvirt >/dev/null || \
%{_sbindir}/groupadd -r libvirt || :
%post daemon
/sbin/ldconfig
-%if %{with_systemd}
%service_add_post libvirtd.service
%service_add_post virtlockd.service virtlockd.socket
%service_add_post virtlogd.service virtlogd.socket
-%endif
%{fillup_only -n libvirtd}
%{fillup_only -n virtlockd}
%{fillup_only -n virtlogd}
%preun daemon
-%if %{with_systemd}
%service_del_preun libvirtd.service
%service_del_preun virtlockd.service virtlockd.socket
%service_del_preun virtlogd.service virtlogd.socket
-%else
-%stop_on_removal libvirtd
-%stop_on_removal virtlockd
-%stop_on_removal virtlogd
-%endif
%postun daemon
/sbin/ldconfig
-%if %{with_systemd}
# On upgrade, defer restarting daemons until %posttrans
if test $1 -eq 0 ; then
for service in libvirtd virtlockd virtlogd ; do
@@ -1311,29 +1260,18 @@ if test $1 -eq 0 ; then
done
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi
-%else
-%restart_on_update libvirtd
-%restart_on_update virtlockd
-%restart_on_update virtlogd
-%endif
-%if %{with_systemd}
%service_del_postun libvirtd.service
%service_del_postun virtlockd.service virtlockd.socket
%service_del_postun virtlogd.service virtlogd.socket
-%else
- %insserv_cleanup
-%endif
%posttrans daemon
# All connection drivers should be installed post transaction.
# Time to restart daemons.
-%if %{with_systemd}
if test "$YAST_IS_RUNNING" != "instsys" -a "$DISABLE_RESTART_ON_UPDATE" != yes ; then
for service in libvirtd virtlockd virtlogd ; do
/usr/bin/systemctl try-restart ${service}.service >/dev/null 2>&1 || :
done
fi
-%endif
# In upgrade scenario we must explicitly enable virtlockd/virtlogd
# sockets, if libvirtd is already enabled and start them if
@@ -1341,17 +1279,10 @@ fi
# guests
%triggerpostun daemon -- libvirt-daemon < 1.3.0
if [ $1 -ge 1 ] ; then
-%if %{with_systemd}
/usr/bin/systemctl is-enabled libvirtd.service 1>/dev/null 2>&1 &&
/usr/bin/systemctl enable virtlogd.socket || :
/usr/bin/systemctl is-active libvirtd.service 1>/dev/null 2>&1 &&
/usr/bin/systemctl start virtlogd.socket || :
-%else
- /sbin/chkconfig libvirtd 1>/dev/null 2>&1 &&
- /sbin/chkconfig virtlogd on || :
- /sbin/service libvirtd status 1>/dev/null 2>&1 &&
- /sbin/service virtlogd start || :
-%endif
fi
%post daemon-config-network
@@ -1364,32 +1295,20 @@ if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ;
fi
%pre client
-%if %{with_systemd}
%service_add_pre libvirt-guests.service
-%endif
%post client
-%if %{with_systemd}
%service_add_post libvirt-guests.service
-%endif
%{fillup_only -n libvirt-guests}
%preun client
-%if %{with_systemd}
%service_del_preun libvirt-guests.service
-%else
-%stop_on_removal libvirt-guests
-%endif
if [ $1 = 0 ]; then
rm -f /var/lib/libvirt/libvirt-guests
fi
%postun client
-%if %{with_systemd}
%service_del_postun libvirt-guests.service
-%else
-%insserv_cleanup
-%endif
%post libs
/sbin/ldconfig
@@ -1416,18 +1335,12 @@ fi
%{_localstatedir}/adm/fillup-templates/sysconfig.libvirtd
%{_localstatedir}/adm/fillup-templates/sysconfig.virtlogd
%{_localstatedir}/adm/fillup-templates/sysconfig.virtlockd
-%if %{with_systemd}
%{_unitdir}/libvirtd.service
%{_unitdir}/virt-guest-shutdown.target
%{_unitdir}/virtlogd.service
%{_unitdir}/virtlogd.socket
%{_unitdir}/virtlockd.service
%{_unitdir}/virtlockd.socket
-%else
-%config /etc/init.d/libvirtd
-%config /etc/init.d/virtlogd
-%config /etc/init.d/virtlockd
-%endif
%{_sbindir}/rclibvirtd
%{_sbindir}/rcvirtlogd
%{_sbindir}/rcvirtlockd
@@ -1668,11 +1581,7 @@ fi
%dir %{_libdir}/%{name}
%attr(0755, root, root) %{_libdir}/%{name}/libvirt-guests.sh
%{_localstatedir}/adm/fillup-templates/sysconfig.libvirt-guests
-%if %{with_systemd}
%{_unitdir}/libvirt-guests.service
-%else
-%config /etc/init.d/libvirt-guests
-%endif
%{_sbindir}/rclibvirt-guests
%files libs -f %{name}.lang
diff --git a/libvirtd.init b/libvirtd.init
deleted file mode 100644
index 24dc963..0000000
--- a/libvirtd.init
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/sh
-
-# the following is the LSB init header see
-# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
-#
-### BEGIN INIT INFO
-# Provides: libvirtd
-# Required-Start: $network $remote_fs
-# Should-Start: xend cgconfig
-# Default-Start: 3 5
-# Required-Stop: $network $remote_fs
-# Should-Stop: xend cgconfig
-# Default-Stop: 0 1 2 4 6
-# Short-Description: daemon for libvirt virtualization API
-# Description: This is a daemon for managing QEMU guest instances
-# and libvirt virtual networks
-# See http://libvirt.org
-### END INIT INFO
-
-
-LIBVIRTD_BIN=/usr/sbin/libvirtd
-LIBVIRTD_PIDFILE=/var/run/libvirtd.pid
-test -x $LIBVIRTD_BIN || { echo "$LIBVIRD_BIN not installed";
- if [ "$1" = "stop" ]; then exit 0;
- else exit 5; fi; }
-
-
-. /etc/rc.status
-rc_reset
-
-test -f /etc/sysconfig/libvirtd && . /etc/sysconfig/libvirtd
-
-LIBVIRTD_CONFIG_ARGS=
-if [ -n "$LIBVIRTD_CONFIG" ]
-then
- LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG"
-fi
-
-case "$1" in
- start)
- if [ -e $LIBVIRTD_PIDFILE ]; then
- if checkproc $LIBVIRTD_BIN ; then
- echo -n "libvirtd is already running."
- rc_status -v
- exit
- else
- echo "Removing stale PID file $LIBVIRTD_PIDFILE."
- rm -f $LIBVIRTD_PIDFILE
- fi
- fi
- echo -n "Starting libvirtd "
- mkdir -p /var/cache/libvirt
- rm -rf /var/cache/libvirt/*
- # LIBVIRTD_NOFILES_LIMIT from /etc/sysconfig/libvirtd is not handled
- # automatically
- if [ -n "$LIBVIRTD_NOFILES_LIMIT" ]; then
- ulimit -n "$LIBVIRTD_NOFILES_LIMIT"
- fi
- startproc $LIBVIRTD_BIN --daemon $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS
- rc_status -v
- ;;
- stop)
- echo -n "Shutting down libvirtd "
- rm -rf /var/cache/libvirt/*
- killproc -TERM $LIBVIRTD_BIN > /dev/null 2>&1
- rm -f $LIBVIRTD_PIDFILE
- rc_status -v
- ;;
- try-restart)
- $0 status >/dev/null && $0 restart
- rc_status
- ;;
- restart)
- $0 stop
- $0 start
- rc_status
- ;;
- reload)
- killproc -HUP $LIBVIRTD_BIN
- rc_status -v
- ;;
- status)
- echo -n "Checking status of libvirtd "
- checkproc $LIBVIRTD_BIN
- rc_status -v
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|try-restart|reload|status}"
- rc_failed 2
- rc_exit
- ;;
-esac
-rc_exit