Accepting request 547322 from Virtualization

libvirt 3.10.0 rc2 for Factory and SLE15 beta2. I will resubmit libvirt
3.10.0 final if it is released before beta4 submission deadline.

- Update to libvirt 3.10.0 RC2
  - Many incremental improvements and bug fixes, see
    http://libvirt.org/news.html
  - Dropped patches:
    8056721c-qemu-null-storage-source.patch,
    74a13be4-xdr-flags.patch,
    apparmor-rules-for-new-mediation-features.patch,
    apparmor-fine-grained-mount-rules.patch
  - bsc#1070285, bsc#1070478, FATE#323473, FATE#324479

- spec: remove use of 'systemctl enable'
  bsc#1038401

- spec: enable firewalld support for SLE15, Leap15, and Tumbleweed
  FATE#320794

OBS-URL: https://build.opensuse.org/request/show/547322
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=242
This commit is contained in:
Dominique Leuenberger 2017-12-04 08:59:32 +00:00 committed by Git OBS Bridge
commit 0d05e17462
37 changed files with 206 additions and 456 deletions

View File

@ -1,56 +0,0 @@
commit 74a13be4a4562affcf721ba32f42f8a27ec3557d
Author: Martin Kletzander <mkletzan@redhat.com>
Date: Thu Nov 16 14:24:45 2017 +0100
build: Use XDR_CFLAGS in more places
Since update to glibc-2.26 removed the /usr/include/rpc/rpc.h we used until now,
it showed us a problem with not using XDR_CFLAGS properly. On linux that
variable has usually -I/usr/include/tirpc because we already probe for it
properly, we just don't use it everywhere we need. It is needed by wireshark
dissector as well as testutilsqemu.c (through includes) so the build fails with:
wireshark/src/packet-libvirt.c:33:10: fatal error: rpc/xdr.h: No such file or directory
#include <rpc/xdr.h>
^~~~~~~~~~~
and
In file included from ../src/logging/log_manager.h:29:0,
from ../src/qemu/qemu_domain.h:40,
from testutilsqemu.c:11:
../src/logging/log_protocol.h:9:10: fatal error: rpc/rpc.h: No such file or directory
#include <rpc/rpc.h>
^~~~~~~~~~~
Since lot of tests use testutilsqemu.c it is easier to add XDR_CFLAGS to
AM_CFLAGS than adding it to all $binary_CFLAGS. It's just for tests and we
already have bunch of CFLAGS there anyway.
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Index: libvirt-3.9.0/tests/Makefile.am
===================================================================
--- libvirt-3.9.0.orig/tests/Makefile.am
+++ libvirt-3.9.0/tests/Makefile.am
@@ -48,6 +48,7 @@ AM_CFLAGS = \
$(APPARMOR_CFLAGS) \
$(YAJL_CFLAGS) \
$(COVERAGE_CFLAGS) \
+ $(XDR_CFLAGS) \
$(WARN_CFLAGS)
AM_LDFLAGS = \
Index: libvirt-3.9.0/tools/Makefile.am
===================================================================
--- libvirt-3.9.0.orig/tools/Makefile.am
+++ libvirt-3.9.0/tools/Makefile.am
@@ -428,7 +428,7 @@ if WITH_WIRESHARK_DISSECTOR
ws_plugin_LTLIBRARIES = wireshark/src/libvirt.la
wireshark_src_libvirt_la_CPPFLAGS = \
- -I wireshark/src $(WIRESHARK_DISSECTOR_CFLAGS)
+ -I wireshark/src $(WIRESHARK_DISSECTOR_CFLAGS) $(XDR_CFLAGS)
wireshark_src_libvirt_la_LDFLAGS = -avoid-version -module
nodist_wireshark_src_libvirt_la_SOURCES = wireshark/src/plugin.c
wireshark_src_libvirt_la_SOURCES = \

View File

@ -1,115 +0,0 @@
commit 8056721cbb75a717604a1f7971440726d9d85045
Author: Peter Krempa <pkrempa@redhat.com>
Date: Thu Nov 9 12:51:25 2017 +0100
qemu: Tolerate storage source private data being NULL
In some cases it does not make sense to pursue that the private data
will be allocated (especially when we don't need to put anything in it).
Ensure that the code works without it.
This also fixes few crashes pointed out in
https://bugzilla.redhat.com/show_bug.cgi?id=1510323
Index: libvirt-3.9.0/src/qemu/qemu_command.c
===================================================================
--- libvirt-3.9.0.orig/src/qemu/qemu_command.c
+++ libvirt-3.9.0/src/qemu/qemu_command.c
@@ -1362,12 +1362,17 @@ qemuBuildDriveSourceStr(virDomainDiskDef
{
int actualType = virStorageSourceGetActualType(disk->src);
qemuDomainStorageSourcePrivatePtr srcpriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
- qemuDomainSecretInfoPtr secinfo = srcpriv->secinfo;
- qemuDomainSecretInfoPtr encinfo = srcpriv->encinfo;
+ qemuDomainSecretInfoPtr secinfo = NULL;
+ qemuDomainSecretInfoPtr encinfo = NULL;
virJSONValuePtr srcprops = NULL;
char *source = NULL;
int ret = -1;
+ if (srcpriv) {
+ secinfo = srcpriv->secinfo;
+ encinfo = srcpriv->encinfo;
+ }
+
if (qemuDiskSourceNeedsProps(disk->src) &&
!(srcprops = qemuDiskSourceGetProps(disk->src)))
goto cleanup;
@@ -2239,8 +2244,13 @@ qemuBuildDiskDriveCommandLine(virCommand
bool driveBoot = false;
virDomainDiskDefPtr disk = def->disks[i];
qemuDomainStorageSourcePrivatePtr srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
- qemuDomainSecretInfoPtr secinfo = srcPriv->secinfo;
- qemuDomainSecretInfoPtr encinfo = srcPriv->encinfo;
+ qemuDomainSecretInfoPtr secinfo = NULL;
+ qemuDomainSecretInfoPtr encinfo = NULL;
+
+ if (srcPriv) {
+ secinfo = srcPriv->secinfo;
+ encinfo = srcPriv->encinfo;
+ }
if (disk->info.bootIndex) {
bootindex = disk->info.bootIndex;
Index: libvirt-3.9.0/src/qemu/qemu_hotplug.c
===================================================================
--- libvirt-3.9.0.orig/src/qemu/qemu_hotplug.c
+++ libvirt-3.9.0/src/qemu/qemu_hotplug.c
@@ -259,6 +259,7 @@ qemuDomainChangeEjectableMedia(virQEMUDr
qemuDomainObjPrivatePtr priv = vm->privateData;
qemuDomainDiskPrivatePtr diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
qemuDomainStorageSourcePrivatePtr srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
+ qemuDomainSecretInfoPtr secinfo = NULL;
const char *format = NULL;
char *sourcestr = NULL;
@@ -268,6 +269,9 @@ qemuDomainChangeEjectableMedia(virQEMUDr
goto cleanup;
}
+ if (srcPriv)
+ secinfo = srcPriv->secinfo;
+
if (disk->device != VIR_DOMAIN_DISK_DEVICE_FLOPPY &&
disk->device != VIR_DOMAIN_DISK_DEVICE_CDROM) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -300,7 +304,7 @@ qemuDomainChangeEjectableMedia(virQEMUDr
}
if (!virStorageSourceIsEmpty(newsrc)) {
- if (qemuGetDriveSourceString(newsrc, srcPriv->secinfo, &sourcestr) < 0)
+ if (qemuGetDriveSourceString(newsrc, secinfo, &sourcestr) < 0)
goto error;
if (virStorageSourceGetActualType(newsrc) != VIR_STORAGE_TYPE_DIR) {
@@ -371,8 +375,8 @@ qemuDomainAttachDiskGeneric(virConnectPt
virJSONValuePtr secobjProps = NULL;
virJSONValuePtr encobjProps = NULL;
qemuDomainStorageSourcePrivatePtr srcPriv;
- qemuDomainSecretInfoPtr secinfo;
- qemuDomainSecretInfoPtr encinfo;
+ qemuDomainSecretInfoPtr secinfo = NULL;
+ qemuDomainSecretInfoPtr encinfo = NULL;
if (qemuDomainPrepareDisk(driver, vm, disk, NULL, false) < 0)
goto cleanup;
@@ -384,13 +388,16 @@ qemuDomainAttachDiskGeneric(virConnectPt
goto error;
srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
- secinfo = srcPriv->secinfo;
+ if (srcPriv) {
+ secinfo = srcPriv->secinfo;
+ encinfo = srcPriv->encinfo;
+ }
+
if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
if (qemuBuildSecretInfoProps(secinfo, &secobjProps) < 0)
goto error;
}
- encinfo = srcPriv->encinfo;
if (encinfo && qemuBuildSecretInfoProps(encinfo, &encobjProps) < 0)
goto error;

View File

@ -1,35 +0,0 @@
commit 97853972e6e5a92b56e1ec0841aa27043ac1301b
Author: intrigeri <intrigeri+libvirt@boum.org>
Date: Sun Nov 5 15:29:58 2017 +0000
AppArmor: use fine-grained mount rules instead of a blanket catch-all one
This set of rules was proposed by Christian Boltz <apparmor@cboltz.de>
on https://bugzilla.opensuse.org/show_bug.cgi?id=1065123.
Index: libvirt-3.9.0/examples/apparmor/usr.sbin.libvirtd
===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/usr.sbin.libvirtd
+++ libvirt-3.9.0/examples/apparmor/usr.sbin.libvirtd
@@ -30,7 +30,20 @@
# Needed for vfio
capability sys_resource,
- mount,
+ mount options=(rw,rslave) -> /,
+ mount options=(rw, nosuid) -> /{var/,}run/libvirt/qemu/*.dev/,
+
+ mount options=(rw, move) /dev/ -> /{var/,}run/libvirt/qemu/*.dev/,
+ mount options=(rw, move) /dev/hugepages/ -> /{var/,}run/libvirt/qemu/*.hugepages/,
+ mount options=(rw, move) /dev/mqueue/ -> /{var/,}run/libvirt/qemu/*.mqueue/,
+ mount options=(rw, move) /dev/pts/ -> /{var/,}run/libvirt/qemu/*.pts/,
+ mount options=(rw, move) /dev/shm/ -> /{var/,}run/libvirt/qemu/*.shm/,
+
+ mount options=(rw, move) /{var/,}run/libvirt/qemu/*.dev/ -> /dev/,
+ mount options=(rw, move) /{var/,}run/libvirt/qemu/*.hugepages/ -> /dev/hugepages/,
+ mount options=(rw, move) /{var/,}run/libvirt/qemu/*.mqueue/ -> /dev/mqueue/,
+ mount options=(rw, move) /{var/,}run/libvirt/qemu/*.pts/ -> /dev/pts/,
+ mount options=(rw, move) /{var/,}run/libvirt/qemu/*.shm/ -> /dev/shm/,
network inet stream,
network inet dgram,

View File

@ -1,7 +1,7 @@
Index: libvirt-3.9.0/examples/apparmor/libvirt-lxc Index: libvirt-3.10.0/examples/apparmor/libvirt-lxc
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/libvirt-lxc --- libvirt-3.10.0.orig/examples/apparmor/libvirt-lxc
+++ libvirt-3.9.0/examples/apparmor/libvirt-lxc +++ libvirt-3.10.0/examples/apparmor/libvirt-lxc
@@ -2,39 +2,15 @@ @@ -2,39 +2,15 @@
#include <abstractions/base> #include <abstractions/base>

View File

@ -1,49 +0,0 @@
commit 141103378a74c68cbd775a306cdfd641119debbd
Author: intrigeri <intrigeri+libvirt@boum.org>
Date: Sun Nov 5 15:29:57 2017 +0000
AppArmor: add rules needed with additional mediation features brought by Linux 4.14.
Index: libvirt-3.9.0/examples/apparmor/libvirt-qemu
===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-3.9.0/examples/apparmor/libvirt-qemu
@@ -16,6 +16,10 @@
network inet stream,
network inet6 stream,
+ ptrace (readby, tracedby) peer=/usr/sbin/libvirtd,
+
+ signal (receive) peer=/usr/sbin/libvirtd,
+
/dev/net/tun rw,
/dev/kvm rw,
/dev/ptmx rw,
Index: libvirt-3.9.0/examples/apparmor/usr.sbin.libvirtd
===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/usr.sbin.libvirtd
+++ libvirt-3.9.0/examples/apparmor/usr.sbin.libvirtd
@@ -30,10 +30,13 @@
# Needed for vfio
capability sys_resource,
+ mount,
+
network inet stream,
network inet dgram,
network inet6 stream,
network inet6 dgram,
+ network netlink raw,
network packet dgram,
network packet raw,
@@ -42,6 +45,9 @@
ptrace (trace) peer=/usr/sbin/dnsmasq,
ptrace (trace) peer=libvirt-*,
+ signal (send) peer=/usr/sbin/dnsmasq,
+ signal (read, send) peer=libvirt-*,
+
# Very lenient profile for libvirtd since we want to first focus on confining
# the guests. Guests will have a very restricted profile.
/ r,

View File

@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
src/qemu/qemu_driver.c | 7 +++++++ src/qemu/qemu_driver.c | 7 +++++++
1 file changed, 7 insertions(+) 1 file changed, 7 insertions(+)
Index: libvirt-3.9.0/src/qemu/qemu_driver.c Index: libvirt-3.10.0/src/qemu/qemu_driver.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/qemu/qemu_driver.c --- libvirt-3.10.0.orig/src/qemu/qemu_driver.c
+++ libvirt-3.9.0/src/qemu/qemu_driver.c +++ libvirt-3.10.0/src/qemu/qemu_driver.c
@@ -17112,6 +17112,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt @@ -17145,6 +17145,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
goto endjob; goto endjob;
} }
@ -27,6 +27,6 @@ Index: libvirt-3.9.0/src/qemu/qemu_driver.c
+ goto endjob; + goto endjob;
+ } + }
+ +
if (qemuDomainStorageFileInit(driver, vm, mirror) < 0) if (qemuDomainStorageFileInit(driver, vm, mirror, NULL) < 0)
goto endjob; goto endjob;

3
libvirt-3.10.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:160a1aecba20e02b64cd8abb09af317f6f74f812ac85150dc18b7b00f328025b
size 15108260

10
libvirt-3.10.0.tar.xz.asc Normal file
View File

@ -0,0 +1,10 @@
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJaIbQHAAoJEBVYiyZZa+pdnl8IALzjje7+JWY0ejR/wlNSO/dC
8l4ztCgbZAT7CuhI+nB8dPFWG5Dgh1QaPYeM4Oepu3ZPesEy1L8DNf8YBFVUtYoG
5HinDWm5kucNsZAMQiyygvmcnmuA7y8vflIL5kPiZyYShkNaIOaJwVU1bAF3utmi
p62trxo+ygekB6XMKaQQlaQVU3LGw27bBp+G5X4uRklgZTB1jHjJKpf7EUGPVN7/
+VWaUSyqIQG1kUaa6puczFrBEIJ6WWba8aB5ojYxrSoonjLl4pDZC5wubq7V7wQs
cWPrea5uqt7Jo5SRdvCxJ+Wj4kJnJTK1AEHo8Ys3FeXXWzRsrEiYb0Y78SdGmUI=
=M6UV
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:89fc63213291d329d537ea96e363fd609160da080322973bd1126d431ff63424
size 15010344

View File

@ -1,10 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJZ+1FGAAoJEBVYiyZZa+pdIt0H/j6P8c3DObAleafFE9BOev03
24GQzGP8/Fh5Yr8mRPITg1nhFQ7MQdznDh80zhhExC8iBIG8/Ne4yuM27R+yVEZ7
YEyxOCe0lwyGkzWe7jaRwBnr4iweYRI2wY+i49TJUxSGOD12j7eCAiv/OdsGCVVg
+FlfxqXNMy6c49i49NNoECS/rP8q854hEjT0WjFFtnYSs32AtfN31vKbLBbuMCQz
uaXYTtmtCbe+ugNkzkhfUZlJ8sn2LdJo4NrjRS0VVlooDM/QDaWKpnj+uf0GrZtr
oO872FrdsVRqw19HTJyu+SL6xbZoMGXGfqVfWCIuk5bRbVVPHfhbUPkySSbY5oA=
=1FsG
-----END PGP SIGNATURE-----

View File

@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
From: <ro@suse.de> From: <ro@suse.de>
Index: libvirt-3.9.0/src/cpu/cpu_map.xml Index: libvirt-3.10.0/src/cpu/cpu_map.xml
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/cpu/cpu_map.xml --- libvirt-3.10.0.orig/src/cpu/cpu_map.xml
+++ libvirt-3.9.0/src/cpu/cpu_map.xml +++ libvirt-3.10.0/src/cpu/cpu_map.xml
@@ -1724,6 +1724,8 @@ @@ -1724,6 +1724,8 @@
<pvr value='0x004b0000' mask='0xffff0000'/> <pvr value='0x004b0000' mask='0xffff0000'/>
<pvr value='0x004c0000' mask='0xffff0000'/> <pvr value='0x004c0000' mask='0xffff0000'/>

View File

@ -1,7 +1,7 @@
Index: libvirt-3.9.0/configure.ac Index: libvirt-3.10.0/configure.ac
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/configure.ac --- libvirt-3.10.0.orig/configure.ac
+++ libvirt-3.9.0/configure.ac +++ libvirt-3.10.0/configure.ac
@@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH @@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH
LIBVIRT_ARG_LIBXML LIBVIRT_ARG_LIBXML
LIBVIRT_ARG_MACVTAP LIBVIRT_ARG_MACVTAP
@ -26,22 +26,22 @@ Index: libvirt-3.9.0/configure.ac
LIBVIRT_RESULT_NSS LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL LIBVIRT_RESULT_NUMACTL
LIBVIRT_RESULT_OPENWSMAN LIBVIRT_RESULT_OPENWSMAN
Index: libvirt-3.9.0/src/Makefile.am Index: libvirt-3.10.0/src/Makefile.am
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/Makefile.am --- libvirt-3.10.0.orig/src/Makefile.am
+++ libvirt-3.9.0/src/Makefile.am +++ libvirt-3.10.0/src/Makefile.am
@@ -1037,6 +1037,10 @@ if WITH_NETCF @@ -1038,6 +1038,10 @@ if WITH_NETCF
INTERFACE_DRIVER_SOURCES += \ INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_netcf.c interface/interface_backend_netcf.c
endif WITH_NETCF endif WITH_NETCF
+if WITH_NETCONTROL +if WITH_NETCONTROL
+INTERFACE_DRIVER_SOURCES += \ +INTERFACE_DRIVER_SOURCES += \
+ interface/interface_backend_netcf.c + interface/interface_backend_netcf.c
+endif WITH_NETCONTROL +endif WITH_NETCONTROL
if WITH_UDEV if WITH_UDEV
INTERFACE_DRIVER_SOURCES += \ INTERFACE_DRIVER_SOURCES += \
interface/interface_backend_udev.c interface/interface_backend_udev.c
@@ -1657,6 +1661,10 @@ if WITH_NETCF @@ -1658,6 +1662,10 @@ if WITH_NETCF
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS) libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS) libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
endif WITH_NETCF endif WITH_NETCF
@ -52,11 +52,11 @@ Index: libvirt-3.9.0/src/Makefile.am
if WITH_UDEV if WITH_UDEV
libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS) libvirt_driver_interface_la_CFLAGS += $(UDEV_CFLAGS)
libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS) libvirt_driver_interface_la_LIBADD += $(UDEV_LIBS)
Index: libvirt-3.9.0/tools/virsh.c Index: libvirt-3.10.0/tools/virsh.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tools/virsh.c --- libvirt-3.10.0.orig/tools/virsh.c
+++ libvirt-3.9.0/tools/virsh.c +++ libvirt-3.10.0/tools/virsh.c
@@ -576,6 +576,8 @@ virshShowVersion(vshControl *ctl ATTRIBU @@ -578,6 +578,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
vshPrint(ctl, " Interface"); vshPrint(ctl, " Interface");
# if defined(WITH_NETCF) # if defined(WITH_NETCF)
vshPrint(ctl, " netcf"); vshPrint(ctl, " netcf");
@ -65,10 +65,10 @@ Index: libvirt-3.9.0/tools/virsh.c
# elif defined(WITH_UDEV) # elif defined(WITH_UDEV)
vshPrint(ctl, " udev"); vshPrint(ctl, " udev");
# endif # endif
Index: libvirt-3.9.0/src/interface/interface_backend_netcf.c Index: libvirt-3.10.0/src/interface/interface_backend_netcf.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/interface/interface_backend_netcf.c --- libvirt-3.10.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-3.9.0/src/interface/interface_backend_netcf.c +++ libvirt-3.10.0/src/interface/interface_backend_netcf.c
@@ -23,7 +23,12 @@ @@ -23,7 +23,12 @@
#include <config.h> #include <config.h>
@ -152,10 +152,10 @@ Index: libvirt-3.9.0/src/interface/interface_backend_netcf.c
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0) if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
return -1; return -1;
if (virRegisterStateDriver(&interfaceStateDriver) < 0) if (virRegisterStateDriver(&interfaceStateDriver) < 0)
Index: libvirt-3.9.0/src/interface/interface_driver.c Index: libvirt-3.10.0/src/interface/interface_driver.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/interface/interface_driver.c --- libvirt-3.10.0.orig/src/interface/interface_driver.c
+++ libvirt-3.9.0/src/interface/interface_driver.c +++ libvirt-3.10.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void) @@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0) if (netcfIfaceRegister() == 0)
return 0; return 0;
@ -173,10 +173,10 @@ Index: libvirt-3.9.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0) if (udevIfaceRegister() == 0)
return 0; return 0;
#endif /* WITH_UDEV */ #endif /* WITH_UDEV */
Index: libvirt-3.9.0/m4/virt-netcontrol.m4 Index: libvirt-3.10.0/m4/virt-netcontrol.m4
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ libvirt-3.9.0/m4/virt-netcontrol.m4 +++ libvirt-3.10.0/m4/virt-netcontrol.m4
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
+dnl The libnetcontrol library +dnl The libnetcontrol library
+dnl +dnl

View File

@ -1,3 +1,28 @@
-------------------------------------------------------------------
Fri Dec 1 21:54:24 UTC 2017 - jfehlig@suse.com
- Update to libvirt 3.10.0 RC2
- Many incremental improvements and bug fixes, see
http://libvirt.org/news.html
- Dropped patches:
8056721c-qemu-null-storage-source.patch,
74a13be4-xdr-flags.patch,
apparmor-rules-for-new-mediation-features.patch,
apparmor-fine-grained-mount-rules.patch
- bsc#1070285, bsc#1070478, FATE#323473, FATE#324479
-------------------------------------------------------------------
Thu Nov 30 18:18:35 UTC 2017 - jfehlig@suse.com
- spec: remove use of 'systemctl enable'
bsc#1038401
-------------------------------------------------------------------
Thu Nov 30 02:18:23 UTC 2017 - jfehlig@suse.com
- spec: enable firewalld support for SLE15, Leap15, and Tumbleweed
FATE#320794
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Nov 23 13:47:54 UTC 2017 - rbrown@suse.com Thu Nov 23 13:47:54 UTC 2017 - rbrown@suse.com

View File

@ -105,8 +105,8 @@
%define with_phyp 1 %define with_phyp 1
%endif %endif
# Enable firewalld support for openSUSE >= 42.2 # Enable firewalld support in newer code bases
%if 0%{?sle_version} >= 120200 && 0%{?is_opensuse} %if 0%{?suse_version} >= 1330
%define with_firewalld 1 %define with_firewalld 1
%endif %endif
@ -165,7 +165,7 @@
Name: libvirt Name: libvirt
Url: http://libvirt.org/ Url: http://libvirt.org/
Version: 3.9.0 Version: 3.10.0
Release: 0 Release: 0
Summary: Library providing a simple virtualization API Summary: Library providing a simple virtualization API
License: LGPL-2.1+ License: LGPL-2.1+
@ -308,13 +308,9 @@ Source4: libvirt-supportconfig
Source99: baselibs.conf Source99: baselibs.conf
Source100: %{name}-rpmlintrc Source100: %{name}-rpmlintrc
# Upstream patches # Upstream patches
Patch0: 8056721c-qemu-null-storage-source.patch
Patch1: 74a13be4-xdr-flags.patch
# Patches pending upstream review # Patches pending upstream review
Patch100: libxl-dom-reset.patch Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
Patch102: apparmor-rules-for-new-mediation-features.patch
Patch103: apparmor-fine-grained-mount-rules.patch
# Need to go upstream # Need to go upstream
Patch150: xen-pv-cdrom.patch Patch150: xen-pv-cdrom.patch
Patch151: blockcopy-check-dst-identical-device.patch Patch151: blockcopy-check-dst-identical-device.patch
@ -887,12 +883,8 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%prep %prep
%setup -q %setup -q
%patch0 -p1
%patch1 -p1
%patch100 -p1 %patch100 -p1
%patch101 -p1 %patch101 -p1
%patch102 -p1
%patch103 -p1
%patch150 -p1 %patch150 -p1
%patch151 -p1 %patch151 -p1
%patch152 -p1 %patch152 -p1
@ -1296,18 +1288,6 @@ if test "$YAST_IS_RUNNING" != "instsys" -a "$DISABLE_RESTART_ON_UPDATE" != yes ;
done done
fi fi
# In upgrade scenario we must explicitly enable virtlockd/virtlogd
# sockets, if libvirtd is already enabled and start them if
# libvirtd is running, otherwise you'll get failures to start
# guests
%triggerpostun daemon -- %{name}-daemon < 1.3.0
if [ $1 -ge 1 ] ; then
/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 || :
fi
%post daemon-config-network %post daemon-config-network
# Install the default network if one doesn't exist # Install the default network if one doesn't exist
if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then

View File

@ -8,10 +8,10 @@ Date: Mon Jun 23 15:51:20 2014 -0600
option, but domainReset can be implemented in the libxl driver by option, but domainReset can be implemented in the libxl driver by
forcibly destroying the domain and starting it again. forcibly destroying the domain and starting it again.
Index: libvirt-3.9.0/src/libxl/libxl_driver.c Index: libvirt-3.10.0/src/libxl/libxl_driver.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_driver.c --- libvirt-3.10.0.orig/src/libxl/libxl_driver.c
+++ libvirt-3.9.0/src/libxl/libxl_driver.c +++ libvirt-3.10.0/src/libxl/libxl_driver.c
@@ -1381,6 +1381,61 @@ libxlDomainReboot(virDomainPtr dom, unsi @@ -1381,6 +1381,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
} }

View File

@ -8,10 +8,10 @@ as the default <emulator>, instead of the qemu-xen one.
See FATE#320638 for details. See FATE#320638 for details.
Index: libvirt-3.9.0/src/libxl/libxl_capabilities.c Index: libvirt-3.10.0/src/libxl/libxl_capabilities.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_capabilities.c --- libvirt-3.10.0.orig/src/libxl/libxl_capabilities.c
+++ libvirt-3.9.0/src/libxl/libxl_capabilities.c +++ libvirt-3.10.0/src/libxl/libxl_capabilities.c
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
#include "libxl_capabilities.h" #include "libxl_capabilities.h"
#include "cpu/cpu_x86.h" #include "cpu/cpu_x86.h"

View File

@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++ src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+) 1 file changed, 25 insertions(+)
Index: libvirt-3.9.0/src/libxl/libxl_conf.c Index: libvirt-3.10.0/src/libxl/libxl_conf.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_conf.c --- libvirt-3.10.0.orig/src/libxl/libxl_conf.c
+++ libvirt-3.9.0/src/libxl/libxl_conf.c +++ libvirt-3.10.0/src/libxl/libxl_conf.c
@@ -621,6 +621,30 @@ libxlDiskSetDiscard(libxl_device_disk *x @@ -735,6 +735,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif #endif
} }
@ -38,7 +38,7 @@ Index: libvirt-3.9.0/src/libxl/libxl_conf.c
static char * static char *
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src, libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
const char *username, const char *username,
@@ -869,6 +893,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk @@ -983,6 +1007,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0; x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0) if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1; return -1;

View File

@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
tools/virsh.pod | 8 ++++++++ tools/virsh.pod | 8 ++++++++
6 files changed, 125 insertions(+), 6 deletions(-) 6 files changed, 125 insertions(+), 6 deletions(-)
Index: libvirt-3.9.0/include/libvirt/libvirt-domain.h Index: libvirt-3.10.0/include/libvirt/libvirt-domain.h
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/include/libvirt/libvirt-domain.h --- libvirt-3.10.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-3.9.0/include/libvirt/libvirt-domain.h +++ libvirt-3.10.0/include/libvirt/libvirt-domain.h
@@ -1008,6 +1008,31 @@ typedef enum { @@ -1008,6 +1008,31 @@ typedef enum {
*/ */
# define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment" # define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment"
@ -52,10 +52,10 @@ Index: libvirt-3.9.0/include/libvirt/libvirt-domain.h
/* Domain migration. */ /* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn, virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname, unsigned long flags, const char *dname,
Index: libvirt-3.9.0/src/libxl/libxl_driver.c Index: libvirt-3.10.0/src/libxl/libxl_driver.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_driver.c --- libvirt-3.10.0.orig/src/libxl/libxl_driver.c
+++ libvirt-3.9.0/src/libxl/libxl_driver.c +++ libvirt-3.10.0/src/libxl/libxl_driver.c
@@ -6099,6 +6099,9 @@ libxlDomainMigratePerform3Params(virDoma @@ -6099,6 +6099,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL; const char *dname = NULL;
const char *uri = NULL; const char *uri = NULL;
@ -99,10 +99,10 @@ Index: libvirt-3.9.0/src/libxl/libxl_driver.c
goto cleanup; goto cleanup;
} }
Index: libvirt-3.9.0/src/libxl/libxl_migration.c Index: libvirt-3.10.0/src/libxl/libxl_migration.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_migration.c --- libvirt-3.10.0.orig/src/libxl/libxl_migration.c
+++ libvirt-3.9.0/src/libxl/libxl_migration.c +++ libvirt-3.10.0/src/libxl/libxl_migration.c
@@ -359,18 +359,39 @@ libxlMigrateReceive(virNetSocketPtr sock @@ -359,18 +359,39 @@ libxlMigrateReceive(virNetSocketPtr sock
static int static int
libxlDoMigrateSend(libxlDriverPrivatePtr driver, libxlDoMigrateSend(libxlDriverPrivatePtr driver,
@ -263,10 +263,10 @@ Index: libvirt-3.9.0/src/libxl/libxl_migration.c
virObjectLock(vm); virObjectLock(vm);
cleanup: cleanup:
Index: libvirt-3.9.0/src/libxl/libxl_migration.h Index: libvirt-3.10.0/src/libxl/libxl_migration.h
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_migration.h --- libvirt-3.10.0.orig/src/libxl/libxl_migration.h
+++ libvirt-3.9.0/src/libxl/libxl_migration.h +++ libvirt-3.10.0/src/libxl/libxl_migration.h
@@ -39,6 +39,10 @@ @@ -39,6 +39,10 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \ VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \ VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@ -311,10 +311,10 @@ Index: libvirt-3.9.0/src/libxl/libxl_migration.h
virDomainPtr virDomainPtr
libxlDomainMigrationFinish(virConnectPtr dconn, libxlDomainMigrationFinish(virConnectPtr dconn,
Index: libvirt-3.9.0/tools/virsh-domain.c Index: libvirt-3.10.0/tools/virsh-domain.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tools/virsh-domain.c --- libvirt-3.10.0.orig/tools/virsh-domain.c
+++ libvirt-3.9.0/tools/virsh-domain.c +++ libvirt-3.10.0/tools/virsh-domain.c
@@ -10536,6 +10536,22 @@ static const vshCmdOptDef opts_migrate[] @@ -10536,6 +10536,22 @@ static const vshCmdOptDef opts_migrate[]
.type = VSH_OT_BOOL, .type = VSH_OT_BOOL,
.help = N_("use TLS for migration") .help = N_("use TLS for migration")
@ -374,10 +374,10 @@ Index: libvirt-3.9.0/tools/virsh-domain.c
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0) if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
goto out; goto out;
if (opt) { if (opt) {
Index: libvirt-3.9.0/tools/virsh.pod Index: libvirt-3.10.0/tools/virsh.pod
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tools/virsh.pod --- libvirt-3.10.0.orig/tools/virsh.pod
+++ libvirt-3.9.0/tools/virsh.pod +++ libvirt-3.10.0/tools/virsh.pod
@@ -1849,6 +1849,14 @@ Providing I<--tls> causes the migration @@ -1849,6 +1849,14 @@ Providing I<--tls> causes the migration
the migration of the domain. Usage requires proper TLS setup for both source the migration of the domain. Usage requires proper TLS setup for both source
and target. and target.

View File

@ -7,11 +7,11 @@ and npiv.
For more details, see bsc#954872 and FATE#319810 For more details, see bsc#954872 and FATE#319810
Index: libvirt-3.9.0/src/libxl/libxl_conf.c Index: libvirt-3.10.0/src/libxl/libxl_conf.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/libxl/libxl_conf.c --- libvirt-3.10.0.orig/src/libxl/libxl_conf.c
+++ libvirt-3.9.0/src/libxl/libxl_conf.c +++ libvirt-3.10.0/src/libxl/libxl_conf.c
@@ -621,6 +621,25 @@ libxlDiskSetDiscard(libxl_device_disk *x @@ -735,6 +735,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif #endif
} }
@ -37,7 +37,7 @@ Index: libvirt-3.9.0/src/libxl/libxl_conf.c
static void static void
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode) libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{ {
@@ -766,6 +785,7 @@ libxlMakeNetworkDiskSrc(virStorageSource @@ -880,6 +899,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk) libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{ {
@ -45,7 +45,7 @@ Index: libvirt-3.9.0/src/libxl/libxl_conf.c
const char *driver = virDomainDiskGetDriver(l_disk); const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk); int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src); int actual_type = virStorageSourceGetActualType(l_disk->src);
@@ -781,7 +801,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk @@ -895,7 +915,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0) if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1; return -1;
} else { } else {
@ -54,7 +54,7 @@ Index: libvirt-3.9.0/src/libxl/libxl_conf.c
return -1; return -1;
} }
@@ -894,6 +914,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk @@ -1008,6 +1028,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0) if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1; return -1;
libxlDiskSetCacheMode(x_disk, l_disk->cachemode); libxlDiskSetCacheMode(x_disk, l_disk->cachemode);

View File

@ -13,10 +13,10 @@ device with the same name that is being created.
src/lxc/lxc_process.c | 1 + src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+) 3 files changed, 4 insertions(+)
Index: libvirt-3.9.0/src/lxc/lxc_controller.c Index: libvirt-3.10.0/src/lxc/lxc_controller.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/lxc/lxc_controller.c --- libvirt-3.10.0.orig/src/lxc/lxc_controller.c
+++ libvirt-3.9.0/src/lxc/lxc_controller.c +++ libvirt-3.10.0/src/lxc/lxc_controller.c
@@ -73,6 +73,7 @@ @@ -73,6 +73,7 @@
#include "rpc/virnetdaemon.h" #include "rpc/virnetdaemon.h"
#include "virstring.h" #include "virstring.h"
@ -33,10 +33,10 @@ Index: libvirt-3.9.0/src/lxc/lxc_controller.c
return ret; return ret;
} }
Index: libvirt-3.9.0/src/lxc/lxc_driver.c Index: libvirt-3.10.0/src/lxc/lxc_driver.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/lxc/lxc_driver.c --- libvirt-3.10.0.orig/src/lxc/lxc_driver.c
+++ libvirt-3.9.0/src/lxc/lxc_driver.c +++ libvirt-3.10.0/src/lxc/lxc_driver.c
@@ -76,6 +76,7 @@ @@ -76,6 +76,7 @@
#include "virtime.h" #include "virtime.h"
#include "virtypedparam.h" #include "virtypedparam.h"
@ -61,10 +61,10 @@ Index: libvirt-3.9.0/src/lxc/lxc_driver.c
break; break;
/* It'd be nice to support this, but with macvlan /* It'd be nice to support this, but with macvlan
Index: libvirt-3.9.0/src/lxc/lxc_process.c Index: libvirt-3.10.0/src/lxc/lxc_process.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/lxc/lxc_process.c --- libvirt-3.10.0.orig/src/lxc/lxc_process.c
+++ libvirt-3.9.0/src/lxc/lxc_process.c +++ libvirt-3.10.0/src/lxc/lxc_process.c
@@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
#include "viratomic.h" #include "viratomic.h"
#include "virprocess.h" #include "virprocess.h"

View File

@ -17,10 +17,10 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 - tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
2 files changed, 8 insertions(+), 2 deletions(-) 2 files changed, 8 insertions(+), 2 deletions(-)
Index: libvirt-3.9.0/src/network/bridge_driver.c Index: libvirt-3.10.0/src/network/bridge_driver.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/network/bridge_driver.c --- libvirt-3.10.0.orig/src/network/bridge_driver.c
+++ libvirt-3.9.0/src/network/bridge_driver.c +++ libvirt-3.10.0/src/network/bridge_driver.c
@@ -1393,7 +1393,14 @@ networkDnsmasqConfContents(virNetworkObj @@ -1393,7 +1393,14 @@ networkDnsmasqConfContents(virNetworkObj
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) { if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) { if (ipdef->nranges || ipdef->nhosts) {
@ -37,10 +37,10 @@ Index: libvirt-3.9.0/src/network/bridge_driver.c
} }
if (ipdef->tftproot) { if (ipdef->tftproot) {
Index: libvirt-3.9.0/tests/networkxml2confdata/dhcp6host-routed-network.conf Index: libvirt-3.10.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf --- libvirt-3.10.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-3.9.0/tests/networkxml2confdata/dhcp6host-routed-network.conf +++ libvirt-3.10.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
@@ -10,7 +10,6 @@ bind-dynamic @@ -10,7 +10,6 @@ bind-dynamic
interface=virbr1 interface=virbr1
dhcp-range=192.168.122.1,static dhcp-range=192.168.122.1,static

View File

@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
See bnc#894956 See bnc#894956
Index: libvirt-3.9.0/src/util/virarch.c Index: libvirt-3.10.0/src/util/virarch.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/util/virarch.c --- libvirt-3.10.0.orig/src/util/virarch.c
+++ libvirt-3.9.0/src/util/virarch.c +++ libvirt-3.10.0/src/util/virarch.c
@@ -169,6 +169,8 @@ virArch virArchFromHost(void) @@ -169,6 +169,8 @@ virArch virArchFromHost(void)
arch = VIR_ARCH_I686; arch = VIR_ARCH_I686;
} else if (STREQ(ut.machine, "amd64")) { } else if (STREQ(ut.machine, "amd64")) {

View File

@ -1,8 +1,8 @@
Index: libvirt-3.9.0/examples/apparmor/libvirt-qemu Index: libvirt-3.10.0/examples/apparmor/libvirt-qemu
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/libvirt-qemu --- libvirt-3.10.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-3.9.0/examples/apparmor/libvirt-qemu +++ libvirt-3.10.0/examples/apparmor/libvirt-qemu
@@ -184,3 +184,6 @@ @@ -187,3 +187,6 @@
/sys/devices/system/node/ r, /sys/devices/system/node/ r,
/sys/devices/system/node/node[0-9]*/meminfo r, /sys/devices/system/node/node[0-9]*/meminfo r,
/sys/module/vhost/parameters/max_mem_regions r, /sys/module/vhost/parameters/max_mem_regions r,

View File

@ -8,10 +8,10 @@ Subject: [PATCH] support managed pci devices in xen driver
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++- src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
2 files changed, 35 insertions(+), 15 deletions(-) 2 files changed, 35 insertions(+), 15 deletions(-)
Index: libvirt-3.9.0/src/xenconfig/xen_common.c Index: libvirt-3.10.0/src/xenconfig/xen_common.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/xenconfig/xen_common.c --- libvirt-3.10.0.orig/src/xenconfig/xen_common.c
+++ libvirt-3.9.0/src/xenconfig/xen_common.c +++ libvirt-3.10.0/src/xenconfig/xen_common.c
@@ -394,6 +394,8 @@ xenParsePCI(virConfPtr conf, virDomainDe @@ -394,6 +394,8 @@ xenParsePCI(virConfPtr conf, virDomainDe
{ {
virConfValuePtr list = virConfGetValue(conf, "pci"); virConfValuePtr list = virConfGetValue(conf, "pci");
@ -58,7 +58,7 @@ Index: libvirt-3.9.0/src/xenconfig/xen_common.c
+ goto skippci; + goto skippci;
+ } + }
+ +
if (!(hostdev = virDomainHostdevDefNew(NULL))) if (!(hostdev = virDomainHostdevDefNew()))
return -1; return -1;
- hostdev->managed = false; - hostdev->managed = false;
@ -66,10 +66,10 @@ Index: libvirt-3.9.0/src/xenconfig/xen_common.c
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI; hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
hostdev->source.subsys.u.pci.addr.domain = domainID; hostdev->source.subsys.u.pci.addr.domain = domainID;
hostdev->source.subsys.u.pci.addr.bus = busID; hostdev->source.subsys.u.pci.addr.bus = busID;
Index: libvirt-3.9.0/src/xenconfig/xen_sxpr.c Index: libvirt-3.10.0/src/xenconfig/xen_sxpr.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/xenconfig/xen_sxpr.c --- libvirt-3.10.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-3.9.0/src/xenconfig/xen_sxpr.c +++ libvirt-3.10.0/src/xenconfig/xen_sxpr.c
@@ -1057,6 +1057,7 @@ xenParseSxprPCI(virDomainDefPtr def, @@ -1057,6 +1057,7 @@ xenParseSxprPCI(virDomainDefPtr def,
int busID; int busID;
int slotID; int slotID;
@ -84,7 +84,7 @@ Index: libvirt-3.9.0/src/xenconfig/xen_sxpr.c
+ managed = sexpr_int(node, "dev/opts/managed"); + managed = sexpr_int(node, "dev/opts/managed");
+ +
if (!(dev = virDomainHostdevDefNew(NULL))) if (!(dev = virDomainHostdevDefNew()))
goto error; goto error;
dev->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS; dev->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;

View File

@ -8,11 +8,11 @@ It was also noticed that the per-domain profiles need a libnl rule
to squelch a denial when starting confined domains. to squelch a denial when starting confined domains.
Found while investigating bsc#1058847 Found while investigating bsc#1058847
Index: libvirt-3.9.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper Index: libvirt-3.10.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper --- libvirt-3.10.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+++ libvirt-3.9.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper +++ libvirt-3.10.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
@@ -16,7 +16,7 @@ profile virt-aa-helper /usr/{lib,lib64}/ @@ -17,7 +17,7 @@ profile virt-aa-helper /usr/{lib,lib64}/
owner @{PROC}/[0-9]*/status r, owner @{PROC}/[0-9]*/status r,
@{PROC}/filesystems r, @{PROC}/filesystems r,
@ -21,10 +21,10 @@ Index: libvirt-3.9.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
# for hostdev # for hostdev
/sys/devices/ r, /sys/devices/ r,
Index: libvirt-3.9.0/examples/apparmor/libvirt-qemu Index: libvirt-3.10.0/examples/apparmor/libvirt-qemu
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/libvirt-qemu --- libvirt-3.10.0.orig/examples/apparmor/libvirt-qemu
+++ libvirt-3.9.0/examples/apparmor/libvirt-qemu +++ libvirt-3.10.0/examples/apparmor/libvirt-qemu
@@ -58,6 +58,7 @@ @@ -58,6 +58,7 @@
#/dev/fb* rw, #/dev/fb* rw,

View File

@ -10,10 +10,10 @@ type=AVC msg=audit(1510951646.581:939): apparmor="DENIED" operation="signal"
profile="/usr/sbin/libvirtd" pid=18891 comm="libvirtd" requested_mask="send" profile="/usr/sbin/libvirtd" pid=18891 comm="libvirtd" requested_mask="send"
denied_mask="send" signal=term peer="unconfined" denied_mask="send" signal=term peer="unconfined"
Index: libvirt-3.9.0/examples/apparmor/usr.sbin.libvirtd Index: libvirt-3.10.0/examples/apparmor/usr.sbin.libvirtd
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/examples/apparmor/usr.sbin.libvirtd --- libvirt-3.10.0.orig/examples/apparmor/usr.sbin.libvirtd
+++ libvirt-3.9.0/examples/apparmor/usr.sbin.libvirtd +++ libvirt-3.10.0/examples/apparmor/usr.sbin.libvirtd
@@ -60,6 +60,9 @@ @@ -60,6 +60,9 @@
signal (send) peer=/usr/sbin/dnsmasq, signal (send) peer=/usr/sbin/dnsmasq,

View File

@ -1,9 +1,9 @@
Adjust libvirt-guests service to conform to SUSE standards Adjust libvirt-guests service to conform to SUSE standards
Index: libvirt-3.9.0/tools/libvirt-guests.init.in Index: libvirt-3.10.0/tools/libvirt-guests.init.in
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tools/libvirt-guests.init.in --- libvirt-3.10.0.orig/tools/libvirt-guests.init.in
+++ libvirt-3.9.0/tools/libvirt-guests.init.in +++ libvirt-3.10.0/tools/libvirt-guests.init.in
@@ -4,27 +4,27 @@ @@ -4,27 +4,27 @@
# http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html # http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
# #
@ -46,10 +46,10 @@ Index: libvirt-3.9.0/tools/libvirt-guests.init.in
+ +
exec @libexecdir@/libvirt-guests.sh "$@" exec @libexecdir@/libvirt-guests.sh "$@"
Index: libvirt-3.9.0/tools/libvirt-guests.sh.in Index: libvirt-3.10.0/tools/libvirt-guests.sh.in
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tools/libvirt-guests.sh.in --- libvirt-3.10.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-3.9.0/tools/libvirt-guests.sh.in +++ libvirt-3.10.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@ @@ -16,14 +16,13 @@
# License along with this library. If not, see # License along with this library. If not, see
# <http://www.gnu.org/licenses/>. # <http://www.gnu.org/licenses/>.
@ -209,10 +209,10 @@ Index: libvirt-3.9.0/tools/libvirt-guests.sh.in
esac esac
-exit $RETVAL -exit $RETVAL
+rc_exit +rc_exit
Index: libvirt-3.9.0/tools/libvirt-guests.sysconf Index: libvirt-3.10.0/tools/libvirt-guests.sysconf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/tools/libvirt-guests.sysconf --- libvirt-3.10.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-3.9.0/tools/libvirt-guests.sysconf +++ libvirt-3.10.0/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@ @@ -1,19 +1,29 @@
+## Path: System/Virtualization/libvirt-guests +## Path: System/Virtualization/libvirt-guests
+ +

View File

@ -3,10 +3,10 @@ Disable TLS by default
On SUSE distros, the default is for libvirtd to listen only on the On SUSE distros, the default is for libvirtd to listen only on the
Unix Domain Socket. The libvirt client still provides remote access Unix Domain Socket. The libvirt client still provides remote access
via a SSH tunnel. via a SSH tunnel.
Index: libvirt-3.9.0/daemon/libvirtd.conf Index: libvirt-3.10.0/daemon/libvirtd.conf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/daemon/libvirtd.conf --- libvirt-3.10.0.orig/daemon/libvirtd.conf
+++ libvirt-3.9.0/daemon/libvirtd.conf +++ libvirt-3.10.0/daemon/libvirtd.conf
@@ -18,8 +18,8 @@ @@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before # It is necessary to setup a CA and issue server certificates before
# using this capability. # using this capability.
@ -18,10 +18,10 @@ Index: libvirt-3.9.0/daemon/libvirtd.conf
# Listen for unencrypted TCP connections on the public TCP/IP port. # Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the libvirtd process for this to # NB, must pass the --listen flag to the libvirtd process for this to
Index: libvirt-3.9.0/daemon/libvirtd-config.c Index: libvirt-3.10.0/daemon/libvirtd-config.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/daemon/libvirtd-config.c --- libvirt-3.10.0.orig/daemon/libvirtd-config.c
+++ libvirt-3.9.0/daemon/libvirtd-config.c +++ libvirt-3.10.0/daemon/libvirtd-config.c
@@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT @@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT
if (VIR_ALLOC(data) < 0) if (VIR_ALLOC(data) < 0)
return NULL; return NULL;
@ -31,10 +31,10 @@ Index: libvirt-3.9.0/daemon/libvirtd-config.c
data->listen_tcp = 0; data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 || if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
Index: libvirt-3.9.0/daemon/test_libvirtd.aug.in Index: libvirt-3.10.0/daemon/test_libvirtd.aug.in
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/daemon/test_libvirtd.aug.in --- libvirt-3.10.0.orig/daemon/test_libvirtd.aug.in
+++ libvirt-3.9.0/daemon/test_libvirtd.aug.in +++ libvirt-3.10.0/daemon/test_libvirtd.aug.in
@@ -2,7 +2,7 @@ module Test_libvirtd = @@ -2,7 +2,7 @@ module Test_libvirtd =
::CONFIG:: ::CONFIG::

View File

@ -7,10 +7,10 @@ On SUSE distros, we promote libvirt and all the libvirt-based
tools. If a user installs libvirt on their SUSE Xen host, then tools. If a user installs libvirt on their SUSE Xen host, then
libvirt should be king and override xendomains. See bsc#1015348 libvirt should be king and override xendomains. See bsc#1015348
Index: libvirt-3.9.0/daemon/libvirtd.service.in Index: libvirt-3.10.0/daemon/libvirtd.service.in
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/daemon/libvirtd.service.in --- libvirt-3.10.0.orig/daemon/libvirtd.service.in
+++ libvirt-3.9.0/daemon/libvirtd.service.in +++ libvirt-3.10.0/daemon/libvirtd.service.in
@@ -14,6 +14,8 @@ After=iscsid.service @@ -14,6 +14,8 @@ After=iscsid.service
After=apparmor.service After=apparmor.service
After=local-fs.target After=local-fs.target

View File

@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards Adjust libvirtd sysconfig file to conform to SUSE standards
Index: libvirt-3.9.0/daemon/libvirtd.sysconf Index: libvirt-3.10.0/daemon/libvirtd.sysconf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/daemon/libvirtd.sysconf --- libvirt-3.10.0.orig/daemon/libvirtd.sysconf
+++ libvirt-3.9.0/daemon/libvirtd.sysconf +++ libvirt-3.10.0/daemon/libvirtd.sysconf
@@ -1,16 +1,25 @@ @@ -1,16 +1,25 @@
+## Path: System/Virtualization/libvirt +## Path: System/Virtualization/libvirt
+ +

View File

@ -1,9 +1,9 @@
Adjust paths of OVMF firmwares on SUSE distros Adjust paths of OVMF firmwares on SUSE distros
Index: libvirt-3.9.0/src/qemu/qemu.conf Index: libvirt-3.10.0/src/qemu/qemu.conf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/qemu/qemu.conf --- libvirt-3.10.0.orig/src/qemu/qemu.conf
+++ libvirt-3.9.0/src/qemu/qemu.conf +++ libvirt-3.10.0/src/qemu/qemu.conf
@@ -743,10 +743,9 @@ security_default_confined = 0 @@ -743,10 +743,9 @@ security_default_confined = 0
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default # for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme. # follows this scheme.
@ -18,10 +18,10 @@ Index: libvirt-3.9.0/src/qemu/qemu.conf
#] #]
# The backend to use for handling stdout/stderr output from # The backend to use for handling stdout/stderr output from
Index: libvirt-3.9.0/src/qemu/qemu_conf.c Index: libvirt-3.10.0/src/qemu/qemu_conf.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/qemu/qemu_conf.c --- libvirt-3.10.0.orig/src/qemu/qemu_conf.c
+++ libvirt-3.9.0/src/qemu/qemu_conf.c +++ libvirt-3.10.0/src/qemu/qemu_conf.c
@@ -127,10 +127,9 @@ void qemuDomainCmdlineDefFree(qemuDomain @@ -127,10 +127,9 @@ void qemuDomainCmdlineDefFree(qemuDomain
#ifndef DEFAULT_LOADER_NVRAM #ifndef DEFAULT_LOADER_NVRAM

View File

@ -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 etc.), but for now they are all lumped together in this
single patch. single patch.
Index: libvirt-3.9.0/src/qemu/qemu.conf Index: libvirt-3.10.0/src/qemu/qemu.conf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/qemu/qemu.conf --- libvirt-3.10.0.orig/src/qemu/qemu.conf
+++ libvirt-3.9.0/src/qemu/qemu.conf +++ libvirt-3.10.0/src/qemu/qemu.conf
@@ -380,11 +380,20 @@ @@ -380,11 +380,20 @@
# isolation, but it cannot appear in a list of drivers. # isolation, but it cannot appear in a list of drivers.
# #

View File

@ -1,9 +1,9 @@
Adjust virtlockd sysconfig file to conform to SUSE standards Adjust virtlockd sysconfig file to conform to SUSE standards
Index: libvirt-3.9.0/src/locking/virtlockd.sysconf Index: libvirt-3.10.0/src/locking/virtlockd.sysconf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/locking/virtlockd.sysconf --- libvirt-3.10.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-3.9.0/src/locking/virtlockd.sysconf +++ libvirt-3.10.0/src/locking/virtlockd.sysconf
@@ -1,3 +1,7 @@ @@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlockd +## Path: System/Virtualization/virtlockd
+ +

View File

@ -1,9 +1,9 @@
Adjust virtlogd sysconfig file to conform to SUSE standards Adjust virtlogd sysconfig file to conform to SUSE standards
Index: libvirt-3.9.0/src/logging/virtlogd.sysconf Index: libvirt-3.10.0/src/logging/virtlogd.sysconf
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/logging/virtlogd.sysconf --- libvirt-3.10.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-3.9.0/src/logging/virtlogd.sysconf +++ libvirt-3.10.0/src/logging/virtlogd.sysconf
@@ -1,3 +1,7 @@ @@ -1,3 +1,7 @@
+## Path: System/Virtualization/virtlogd +## Path: System/Virtualization/virtlogd
+ +

View File

@ -1,8 +1,8 @@
Index: libvirt-3.1.0/tools/Makefile.am Index: libvirt-3.10.0/tools/Makefile.am
=================================================================== ===================================================================
--- libvirt-3.1.0.orig/tools/Makefile.am --- libvirt-3.10.0.orig/tools/Makefile.am
+++ libvirt-3.1.0/tools/Makefile.am +++ libvirt-3.10.0/tools/Makefile.am
@@ -43,6 +43,7 @@ PODFILES = \ @@ -52,6 +52,7 @@ PODFILES = \
virt-sanlock-cleanup.pod \ virt-sanlock-cleanup.pod \
virt-xml-validate.pod \ virt-xml-validate.pod \
virsh.pod \ virsh.pod \
@ -10,7 +10,7 @@ Index: libvirt-3.1.0/tools/Makefile.am
$(NULL) $(NULL)
MANINFILES = \ MANINFILES = \
@@ -76,7 +77,7 @@ MAINTAINERCLEANFILES = @@ -85,7 +86,7 @@ MAINTAINERCLEANFILES =
confdir = $(sysconfdir)/libvirt confdir = $(sysconfdir)/libvirt
conf_DATA = conf_DATA =
@ -19,7 +19,7 @@ Index: libvirt-3.1.0/tools/Makefile.am
bin_PROGRAMS = virsh virt-admin bin_PROGRAMS = virsh virt-admin
libexec_SCRIPTS = libvirt-guests.sh libexec_SCRIPTS = libvirt-guests.sh
man1_MANS = \ man1_MANS = \
@@ -102,6 +103,8 @@ bin_PROGRAMS += virt-host-validate @@ -111,6 +112,8 @@ bin_PROGRAMS += virt-host-validate
man1_MANS += virt-host-validate.1 man1_MANS += virt-host-validate.1
endif WITH_HOST_VALIDATE endif WITH_HOST_VALIDATE
@ -28,10 +28,10 @@ Index: libvirt-3.1.0/tools/Makefile.am
virt-xml-validate: virt-xml-validate.in Makefile virt-xml-validate: virt-xml-validate.in Makefile
$(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|g' \ $(AM_V_GEN)sed -e 's|[@]schemadir@|$(pkgdatadir)/schemas|g' \
-e 's|[@]VERSION@|$(VERSION)|g' \ -e 's|[@]VERSION@|$(VERSION)|g' \
Index: libvirt-3.1.0/tools/virt-create-rootfs Index: libvirt-3.10.0/tools/virt-create-rootfs
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ libvirt-3.1.0/tools/virt-create-rootfs +++ libvirt-3.10.0/tools/virt-create-rootfs
@@ -0,0 +1,214 @@ @@ -0,0 +1,214 @@
+#!/bin/sh +#!/bin/sh
+set -e +set -e
@ -247,10 +247,10 @@ Index: libvirt-3.1.0/tools/virt-create-rootfs
+ echo "pts/0" >> "$ROOT/etc/securetty" + echo "pts/0" >> "$ROOT/etc/securetty"
+ chroot "$ROOT" /usr/bin/passwd + chroot "$ROOT" /usr/bin/passwd
+fi +fi
Index: libvirt-3.1.0/tools/virt-create-rootfs.pod Index: libvirt-3.10.0/tools/virt-create-rootfs.pod
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ libvirt-3.1.0/tools/virt-create-rootfs.pod +++ libvirt-3.10.0/tools/virt-create-rootfs.pod
@@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
+=head1 NAME +=head1 NAME
+ +

View File

@ -1,7 +1,7 @@
Index: libvirt-3.9.0/src/xenconfig/xen_sxpr.c Index: libvirt-3.10.0/src/xenconfig/xen_sxpr.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/xenconfig/xen_sxpr.c --- libvirt-3.10.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-3.9.0/src/xenconfig/xen_sxpr.c +++ libvirt-3.10.0/src/xenconfig/xen_sxpr.c
@@ -387,7 +387,7 @@ xenParseSxprVifRate(const char *rate, un @@ -387,7 +387,7 @@ xenParseSxprVifRate(const char *rate, un
static int static int
xenParseSxprDisks(virDomainDefPtr def, xenParseSxprDisks(virDomainDefPtr def,

View File

@ -6,10 +6,10 @@ and 'file'. This was implicitly done prior to commit 9673418c.
https://bugzilla.suse.com/show_bug.cgi?id=938228 https://bugzilla.suse.com/show_bug.cgi?id=938228
Index: libvirt-3.9.0/src/xenconfig/xen_sxpr.c Index: libvirt-3.10.0/src/xenconfig/xen_sxpr.c
=================================================================== ===================================================================
--- libvirt-3.9.0.orig/src/xenconfig/xen_sxpr.c --- libvirt-3.10.0.orig/src/xenconfig/xen_sxpr.c
+++ libvirt-3.9.0/src/xenconfig/xen_sxpr.c +++ libvirt-3.10.0/src/xenconfig/xen_sxpr.c
@@ -501,10 +501,11 @@ xenParseSxprDisks(virDomainDefPtr def, @@ -501,10 +501,11 @@ xenParseSxprDisks(virDomainDefPtr def,
omnipotent, we can revisit this, perhaps stat()'ing omnipotent, we can revisit this, perhaps stat()'ing
the src file in question */ the src file in question */