Accepting request 792818 from Virtualization

- libxl: Add support for max event channels with maxEventChannel
  attribute on the xenbus controller
  8e669b38-conf-add-event-channels.patch,
  a93f55c5-libxl-add-event-channels.patch,
  967f4eeb-xenconfig-event-channels.patch
  bsc#1168767

- libxl: fix crash when initializing driver
  88011ed2-libxl-driver-crash-fix.patch

- Update to libvirt 6.2.0
  - Many incremental improvements and bug fixes, see
    https://libvirt.org/news.html
  - CVE-2020-10701
    bsc#1168680
  - Dropped patches:
    a30078cb-qemu-create-mp-target.patch,
    aeb909bf-qemu-multipath-fix.patch
  - Added patch:
    disable-multipath-pr-tests.patch

OBS-URL: https://build.opensuse.org/request/show/792818
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=303
This commit is contained in:
Dominique Leuenberger 2020-04-10 21:52:41 +00:00 committed by Git OBS Bridge
commit c26ba24ce8
39 changed files with 862 additions and 642 deletions

View File

@ -18,10 +18,10 @@ them.
create mode 100644 src/conf/domain_stats.c
create mode 100644 src/conf/domain_stats.h
Index: libvirt-6.1.0/src/conf/domain_stats.c
Index: libvirt-6.2.0/src/conf/domain_stats.c
===================================================================
--- /dev/null
+++ libvirt-6.1.0/src/conf/domain_stats.c
+++ libvirt-6.2.0/src/conf/domain_stats.c
@@ -0,0 +1,119 @@
+/*
+ * domain_stats.c: domain stats extraction helpers
@ -142,10 +142,10 @@ Index: libvirt-6.1.0/src/conf/domain_stats.c
+}
+
+#undef STATS_ADD_NET_PARAM
Index: libvirt-6.1.0/src/conf/domain_stats.h
Index: libvirt-6.2.0/src/conf/domain_stats.h
===================================================================
--- /dev/null
+++ libvirt-6.1.0/src/conf/domain_stats.h
+++ libvirt-6.2.0/src/conf/domain_stats.h
@@ -0,0 +1,62 @@
+/*
+ * domain_stats.h: domain stats extraction helpers
@ -209,10 +209,10 @@ Index: libvirt-6.1.0/src/conf/domain_stats.h
+ virTypedParamListPtr params);
+
+#endif /* __DOMAIN_STATS_H */
Index: libvirt-6.1.0/src/libvirt_private.syms
Index: libvirt-6.2.0/src/libvirt_private.syms
===================================================================
--- libvirt-6.1.0.orig/src/libvirt_private.syms
+++ libvirt-6.1.0/src/libvirt_private.syms
--- libvirt-6.2.0.orig/src/libvirt_private.syms
+++ libvirt-6.2.0/src/libvirt_private.syms
@@ -725,6 +725,9 @@ virDomainConfNWFilterInstantiate;
virDomainConfNWFilterTeardown;
virDomainConfVMNWFilterTeardown;
@ -223,7 +223,7 @@ Index: libvirt-6.1.0/src/libvirt_private.syms
# conf/interface_conf.h
virInterfaceDefFormat;
@@ -1752,6 +1755,7 @@ virCgroupGetMemoryUsage;
@@ -1751,6 +1754,7 @@ virCgroupGetMemoryUsage;
virCgroupGetMemSwapHardLimit;
virCgroupGetMemSwapUsage;
virCgroupGetPercpuStats;
@ -231,10 +231,10 @@ Index: libvirt-6.1.0/src/libvirt_private.syms
virCgroupHasController;
virCgroupHasEmptyTasks;
virCgroupKillPainfully;
Index: libvirt-6.1.0/src/qemu/qemu_driver.c
Index: libvirt-6.2.0/src/qemu/qemu_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu_driver.c
+++ libvirt-6.1.0/src/qemu/qemu_driver.c
--- libvirt-6.2.0.orig/src/qemu/qemu_driver.c
+++ libvirt-6.2.0/src/qemu/qemu_driver.c
@@ -64,6 +64,7 @@
#include "virarptable.h"
#include "viruuid.h"
@ -243,7 +243,7 @@ Index: libvirt-6.1.0/src/qemu/qemu_driver.c
#include "domain_audit.h"
#include "domain_cgroup.h"
#include "domain_driver.h"
@@ -20458,13 +20459,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
@@ -20642,13 +20643,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
virTypedParamListPtr params,
unsigned int privflags G_GNUC_UNUSED)
{
@ -258,7 +258,7 @@ Index: libvirt-6.1.0/src/qemu/qemu_driver.c
}
@@ -20767,17 +20762,7 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
@@ -20951,17 +20946,7 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
if (!priv->cgroup)
return 0;
@ -277,7 +277,7 @@ Index: libvirt-6.1.0/src/qemu/qemu_driver.c
}
@@ -20945,76 +20930,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
@@ -21129,76 +21114,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
return ret;
}
@ -355,10 +355,10 @@ Index: libvirt-6.1.0/src/qemu/qemu_driver.c
/* refresh information by opening images on the disk */
static int
Index: libvirt-6.1.0/src/util/vircgroup.c
Index: libvirt-6.2.0/src/util/vircgroup.c
===================================================================
--- libvirt-6.1.0.orig/src/util/vircgroup.c
+++ libvirt-6.1.0/src/util/vircgroup.c
--- libvirt-6.2.0.orig/src/util/vircgroup.c
+++ libvirt-6.2.0/src/util/vircgroup.c
@@ -2779,6 +2779,31 @@ virCgroupControllerAvailable(int control
return ret;
}
@ -406,10 +406,10 @@ Index: libvirt-6.1.0/src/util/vircgroup.c
int
virCgroupNewPartition(const char *path G_GNUC_UNUSED,
bool create G_GNUC_UNUSED,
Index: libvirt-6.1.0/src/util/vircgroup.h
Index: libvirt-6.2.0/src/util/vircgroup.h
===================================================================
--- libvirt-6.1.0.orig/src/util/vircgroup.h
+++ libvirt-6.1.0/src/util/vircgroup.h
--- libvirt-6.2.0.orig/src/util/vircgroup.h
+++ libvirt-6.2.0/src/util/vircgroup.h
@@ -23,6 +23,7 @@
#include "virbitmap.h"
@ -425,10 +425,10 @@ Index: libvirt-6.1.0/src/util/vircgroup.h
+
+int virCgroupGetStatsCpu(virCgroupPtr cgroup,
+ virTypedParamListPtr params);
Index: libvirt-6.1.0/src/conf/Makefile.inc.am
Index: libvirt-6.2.0/src/conf/Makefile.inc.am
===================================================================
--- libvirt-6.1.0.orig/src/conf/Makefile.inc.am
+++ libvirt-6.1.0/src/conf/Makefile.inc.am
--- libvirt-6.2.0.orig/src/conf/Makefile.inc.am
+++ libvirt-6.2.0/src/conf/Makefile.inc.am
@@ -28,6 +28,8 @@ DOMAIN_CONF_SOURCES = \
conf/domain_audit.h \
conf/domain_nwfilter.c \

View File

@ -19,11 +19,11 @@ reworking this patch and submitting it to upstream libvirt.
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
Index: libvirt-6.1.0/src/libxl/libxl_driver.c
Index: libvirt-6.2.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.1.0/src/libxl/libxl_driver.c
@@ -5288,6 +5288,96 @@ libxlDomainMemoryStats(virDomainPtr dom,
--- libvirt-6.2.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.2.0/src/libxl/libxl_driver.c
@@ -5287,6 +5287,96 @@ libxlDomainMemoryStats(virDomainPtr dom,
#undef LIBXL_SET_MEMSTAT
@ -120,7 +120,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_driver.c
static int
libxlDomainGetJobInfo(virDomainPtr dom,
virDomainJobInfoPtr info)
@@ -6706,6 +6796,7 @@ static virHypervisorDriver libxlHypervis
@@ -6756,6 +6846,7 @@ static virHypervisorDriver libxlHypervis
#endif
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */

View File

@ -9,10 +9,10 @@ them using the existing API.
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 138 insertions(+)
Index: libvirt-6.1.0/src/lxc/lxc_driver.c
Index: libvirt-6.2.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/lxc/lxc_driver.c
+++ libvirt-6.1.0/src/lxc/lxc_driver.c
--- libvirt-6.2.0.orig/src/lxc/lxc_driver.c
+++ libvirt-6.2.0/src/lxc/lxc_driver.c
@@ -74,6 +74,7 @@
#include "netdev_bandwidth_conf.h"
#include "virsocket.h"

View File

@ -0,0 +1,38 @@
commit 88011ed280c4f946a7b8e7ffcea2335eb075de60
Author: Jim Fehlig <jfehlig@suse.com>
Date: Fri Apr 3 15:51:48 2020 -0600
libxl: fix crash when initializing driver
Commit 54a401af478 split out DriverConfigInit from DriverConfigNew, but
then called it a bit late from libxlStateInitialize. The cfg is used in
libxlDriverConfigLoadFile and when uninitialized results in a crash.
Calling DriverConfigInit immediately after DriverConfigNew fixes the
crash.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-6.2.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-6.2.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.2.0/src/libxl/libxl_driver.c
@@ -702,14 +702,14 @@ libxlStateInitialize(bool privileged,
if (!(cfg = libxlDriverConfigNew()))
goto error;
+ if (libxlDriverConfigInit(cfg) < 0)
+ goto error;
+
driverConf = g_strdup_printf("%s/libxl.conf", cfg->configBaseDir);
if (libxlDriverConfigLoadFile(cfg, driverConf) < 0)
goto error;
- if (libxlDriverConfigInit(cfg) < 0)
- goto error;
-
/* Register the callbacks providing access to libvirt's event loop */
libxl_osevent_register_hooks(cfg->ctx, &libxl_osevent_callbacks, cfg->ctx);

View File

@ -0,0 +1,120 @@
commit 8e669b382c3533793356261c6d748df56162a2c6
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Apr 7 16:37:09 2020 -0600
conf: Add a new xenbus controller option for event channels
Event channels are like PV interrupts and in conjuction with grant frames
form a data transfer mechanism for PV drivers. They are also used for
inter-processor interrupts. Guests with a large number of vcpus and/or
many PV devices many need to increase the maximum default value of 1023.
For this reason the native Xen config format supports the
'max_event_channels' setting. See xl.cfg(5) man page for more details.
Similar to the existing maxGrantFrames option, add a new xenbus controller
option 'maxEventChannels', allowing to adjust the maximum value via libvirt.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Index: libvirt-6.2.0/docs/formatdomain.html.in
===================================================================
--- libvirt-6.2.0.orig/docs/formatdomain.html.in
+++ libvirt-6.2.0/docs/formatdomain.html.in
@@ -4416,7 +4416,7 @@
&lt;driver iothread='4'/&gt;
&lt;address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/&gt;
&lt;/controller&gt;
- &lt;controller type='xenbus' maxGrantFrames='64'/&gt;
+ &lt;controller type='xenbus' maxGrantFrames='64' maxEventChannels='2047'/&gt;
...
&lt;/devices&gt;
...</pre>
@@ -4476,7 +4476,11 @@
<dd><span class="since">Since 5.2.0</span>, the <code>xenbus</code>
controller has an optional attribute <code>maxGrantFrames</code>,
which specifies the maximum number of grant frames the controller
- makes available for connected devices.</dd>
+ makes available for connected devices.
+ <span class="since">Since 6.3.0</span>, the xenbus controller
+ supports the optional <code>maxEventChannels</code> attribute,
+ which specifies maximum number of event channels (PV interrupts)
+ that can be used by the guest.</dd>
</dl>
<p>
Index: libvirt-6.2.0/docs/schemas/domaincommon.rng
===================================================================
--- libvirt-6.2.0.orig/docs/schemas/domaincommon.rng
+++ libvirt-6.2.0/docs/schemas/domaincommon.rng
@@ -2548,6 +2548,11 @@
<ref name="unsignedInt"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="maxEventChannels">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </optional>
</group>
</choice>
<optional>
Index: libvirt-6.2.0/src/conf/domain_conf.c
===================================================================
--- libvirt-6.2.0.orig/src/conf/domain_conf.c
+++ libvirt-6.2.0/src/conf/domain_conf.c
@@ -2245,6 +2245,7 @@ virDomainControllerDefNew(virDomainContr
break;
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS:
def->opts.xenbusopts.maxGrantFrames = -1;
+ def->opts.xenbusopts.maxEventChannels = -1;
break;
case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
case VIR_DOMAIN_CONTROLLER_TYPE_FDC:
@@ -11337,6 +11338,7 @@ virDomainControllerDefParseXML(virDomain
break;
case VIR_DOMAIN_CONTROLLER_TYPE_XENBUS: {
g_autofree char *gntframes = virXMLPropString(node, "maxGrantFrames");
+ g_autofree char *eventchannels = virXMLPropString(node, "maxEventChannels");
if (gntframes) {
int r = virStrToLong_i(gntframes, NULL, 10,
@@ -11347,6 +11349,15 @@ virDomainControllerDefParseXML(virDomain
goto error;
}
}
+ if (eventchannels) {
+ int r = virStrToLong_i(eventchannels, NULL, 10,
+ &def->opts.xenbusopts.maxEventChannels);
+ if (r != 0 || def->opts.xenbusopts.maxEventChannels < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Invalid maxEventChannels: %s"), eventchannels);
+ goto error;
+ }
+ }
break;
}
@@ -25267,6 +25278,10 @@ virDomainControllerDefFormat(virBufferPt
virBufferAsprintf(&attrBuf, " maxGrantFrames='%d'",
def->opts.xenbusopts.maxGrantFrames);
}
+ if (def->opts.xenbusopts.maxEventChannels != -1) {
+ virBufferAsprintf(&attrBuf, " maxEventChannels='%d'",
+ def->opts.xenbusopts.maxEventChannels);
+ }
break;
default:
Index: libvirt-6.2.0/src/conf/domain_conf.h
===================================================================
--- libvirt-6.2.0.orig/src/conf/domain_conf.h
+++ libvirt-6.2.0/src/conf/domain_conf.h
@@ -730,6 +730,7 @@ struct _virDomainUSBControllerOpts {
struct _virDomainXenbusControllerOpts {
int maxGrantFrames; /* -1 == undef */
+ int maxEventChannels; /* -1 == undef */
};
/* Stores the virtual disk controller configuration */

View File

@ -0,0 +1,210 @@
commit 967f4eebdcfed014fb8ad4569e9a04cdc731e9a6
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Apr 7 17:33:26 2020 -0600
xenconfig: Add support for max_event_channels
Add support in the domXML<->native config converter for max_event_channels.
The parser and formater functions for max_grant_frames were reworked to
also parse max_event_channels. In doing so the xenbus controller is added
earlier in the config parsing, requiring a small adjustment to one of the
existing tests. Include a new test for the event channel conversion.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Index: libvirt-6.2.0/src/libxl/xen_xl.c
===================================================================
--- libvirt-6.2.0.orig/src/libxl/xen_xl.c
+++ libvirt-6.2.0/src/libxl/xen_xl.c
@@ -597,19 +597,12 @@ xenParseXLVnuma(virConfPtr conf,
}
#endif
-#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
static int
-xenParseXLGntLimits(virConfPtr conf, virDomainDefPtr def)
+xenParseXLXenbusLimits(virConfPtr conf, virDomainDefPtr def)
{
- unsigned long max_gntframes;
int ctlr_idx;
virDomainControllerDefPtr xenbus_ctlr;
-
- if (xenConfigGetULong(conf, "max_grant_frames", &max_gntframes, 0) < 0)
- return -1;
-
- if (max_gntframes <= 0)
- return 0;
+ unsigned long limit;
ctlr_idx = virDomainControllerFindByType(def, VIR_DOMAIN_CONTROLLER_TYPE_XENBUS);
if (ctlr_idx == -1)
@@ -620,10 +613,20 @@ xenParseXLGntLimits(virConfPtr conf, vir
if (xenbus_ctlr == NULL)
return -1;
- xenbus_ctlr->opts.xenbusopts.maxGrantFrames = max_gntframes;
+ if (xenConfigGetULong(conf, "max_event_channels", &limit, 0) < 0)
+ return -1;
+ if (limit > 0)
+ xenbus_ctlr->opts.xenbusopts.maxEventChannels = limit;
+
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ if (xenConfigGetULong(conf, "max_grant_frames", &limit, 0) < 0)
+ return -1;
+ if (limit > 0)
+ xenbus_ctlr->opts.xenbusopts.maxGrantFrames = limit;
+#endif
+
return 0;
}
-#endif
static int
xenParseXLDiskSrc(virDomainDiskDefPtr disk, char *srcstr)
@@ -1180,10 +1183,8 @@ xenParseXL(virConfPtr conf,
goto cleanup;
#endif
-#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
- if (xenParseXLGntLimits(conf, def) < 0)
+ if (xenParseXLXenbusLimits(conf, def) < 0)
goto cleanup;
-#endif
if (xenParseXLCPUID(conf, def) < 0)
goto cleanup;
@@ -1532,23 +1533,31 @@ xenFormatXLDomainVnuma(virConfPtr conf,
}
#endif
-#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
static int
-xenFormatXLGntLimits(virConfPtr conf, virDomainDefPtr def)
+xenFormatXLXenbusLimits(virConfPtr conf, virDomainDefPtr def)
{
size_t i;
for (i = 0; i < def->ncontrollers; i++) {
- if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS &&
- def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0) {
- if (xenConfigSetInt(conf, "max_grant_frames",
- def->controllers[i]->opts.xenbusopts.maxGrantFrames) < 0)
- return -1;
+ if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS) {
+ if (def->controllers[i]->opts.xenbusopts.maxEventChannels > 0) {
+ if (xenConfigSetInt(conf, "max_event_channels",
+ def->controllers[i]->opts.xenbusopts.maxEventChannels) < 0)
+ return -1;
+ }
+
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ if (def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0) {
+ if (xenConfigSetInt(conf, "max_grant_frames",
+ def->controllers[i]->opts.xenbusopts.maxGrantFrames) < 0)
+ return -1;
+ }
+#endif
}
}
+
return 0;
}
-#endif
static char *
xenFormatXLDiskSrcNet(virStorageSourcePtr src)
@@ -2191,10 +2200,8 @@ xenFormatXL(virDomainDefPtr def, virConn
return NULL;
#endif
-#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
- if (xenFormatXLGntLimits(conf, def) < 0)
+ if (xenFormatXLXenbusLimits(conf, def) < 0)
return NULL;
-#endif
if (xenFormatXLDomainDisks(conf, def) < 0)
return NULL;
Index: libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.cfg
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.cfg
@@ -0,0 +1,13 @@
+name = "XenGuest1"
+uuid = "45b60f51-88a9-47a8-a3b3-5e66d71b2283"
+maxmem = 512
+memory = 512
+vcpus = 1
+localtime = 0
+on_poweroff = "preserve"
+on_reboot = "restart"
+on_crash = "preserve"
+vif = [ "mac=5a:36:0e:be:00:09" ]
+bootloader = "/usr/bin/pygrub"
+max_event_channels = 2047
+disk = [ "format=qcow2,vdev=xvda,access=rw,backendtype=qdisk,target=/var/lib/xen/images/debian/disk.qcow2" ]
Index: libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.xml
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tests/xlconfigdata/test-max-eventchannels.xml
@@ -0,0 +1,32 @@
+<domain type='xen'>
+ <name>XenGuest1</name>
+ <uuid>45b60f51-88a9-47a8-a3b3-5e66d71b2283</uuid>
+ <memory unit='KiB'>524288</memory>
+ <currentMemory unit='KiB'>524288</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <bootloader>/usr/bin/pygrub</bootloader>
+ <os>
+ <type arch='x86_64' machine='xenpv'>linux</type>
+ </os>
+ <clock offset='utc' adjustment='reset'/>
+ <on_poweroff>preserve</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>preserve</on_crash>
+ <devices>
+ <disk type='file' device='disk'>
+ <driver name='qemu' type='qcow2'/>
+ <source file='/var/lib/xen/images/debian/disk.qcow2'/>
+ <target dev='xvda' bus='xen'/>
+ </disk>
+ <controller type='xenbus' index='0' maxEventChannels='2047'/>
+ <interface type='ethernet'>
+ <mac address='5a:36:0e:be:00:09'/>
+ </interface>
+ <console type='pty'>
+ <target type='xen' port='0'/>
+ </console>
+ <input type='mouse' bus='xen'/>
+ <input type='keyboard' bus='xen'/>
+ <memballoon model='xen'/>
+ </devices>
+</domain>
Index: libvirt-6.2.0/tests/xlconfigdata/test-usbctrl.xml
===================================================================
--- libvirt-6.2.0.orig/tests/xlconfigdata/test-usbctrl.xml
+++ libvirt-6.2.0/tests/xlconfigdata/test-usbctrl.xml
@@ -18,8 +18,8 @@
<source file='/var/lib/xen/images/debian/disk.qcow2'/>
<target dev='xvda' bus='xen'/>
</disk>
- <controller type='usb' index='0' model='qusb2' ports='6'/>
<controller type='xenbus' index='0'/>
+ <controller type='usb' index='0' model='qusb2' ports='6'/>
<interface type='ethernet'>
<mac address='5a:36:0e:be:00:09'/>
</interface>
Index: libvirt-6.2.0/tests/xlconfigtest.c
===================================================================
--- libvirt-6.2.0.orig/tests/xlconfigtest.c
+++ libvirt-6.2.0/tests/xlconfigtest.c
@@ -294,6 +294,8 @@ mymain(void)
DO_TEST("max-gntframes");
#endif
+ DO_TEST("max-eventchannels");
+
DO_TEST("vif-typename");
DO_TEST("vif-multi-ip");
DO_TEST("usb");

View File

@ -1,336 +0,0 @@
commit a30078cb832646177defd256e77c632905f1e6d0
Author: Michal Prívozník <mprivozn@redhat.com>
Date: Wed Nov 13 15:34:50 2019 +0100
qemu: Create multipath targets for PRs
If a disk has persistent reservations enabled, qemu-pr-helper
might open not only /dev/mapper/control but also individual
targets of the multipath device. We are already querying for them
in CGroups, but now we have to create them in the namespace too.
This was brought up in [1].
1: https://bugzilla.redhat.com/show_bug.cgi?id=1711045#c61
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Tested-by: Lin Ma <LMa@suse.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
Index: libvirt-6.1.0/src/qemu/qemu_domain.c
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu_domain.c
+++ libvirt-6.1.0/src/qemu/qemu_domain.c
@@ -62,6 +62,7 @@
#include "virdomaincheckpointobjlist.h"
#include "backup_conf.h"
#include "virutil.h"
+#include "virdevmapper.h"
#ifdef __linux__
# include <sys/sysmacros.h>
@@ -14495,6 +14496,9 @@ qemuDomainSetupDisk(virQEMUDriverConfigP
bool hasNVMe = false;
for (next = disk->src; virStorageSourceIsBacking(next); next = next->backingStore) {
+ VIR_AUTOSTRINGLIST targetPaths = NULL;
+ size_t i;
+
if (next->type == VIR_STORAGE_TYPE_NVME) {
g_autofree char *nvmePath = NULL;
@@ -14513,6 +14517,19 @@ qemuDomainSetupDisk(virQEMUDriverConfigP
if (qemuDomainCreateDevice(next->path, data, false) < 0)
return -1;
+
+ if (virDevMapperGetTargets(next->path, &targetPaths) < 0 &&
+ errno != ENOSYS && errno != EBADF) {
+ virReportSystemError(errno,
+ _("Unable to get devmapper targets for %s"),
+ next->path);
+ return -1;
+ }
+
+ for (i = 0; targetPaths && targetPaths[i]; i++) {
+ if (qemuDomainCreateDevice(targetPaths[i], data, false) < 0)
+ return -1;
+ }
}
}
@@ -15528,21 +15545,19 @@ qemuDomainNamespaceSetupDisk(virDomainOb
virStorageSourcePtr src)
{
virStorageSourcePtr next;
- char **paths = NULL;
+ VIR_AUTOSTRINGLIST paths = NULL;
size_t npaths = 0;
bool hasNVMe = false;
- g_autofree char *dmPath = NULL;
- g_autofree char *vfioPath = NULL;
- int ret = -1;
for (next = src; virStorageSourceIsBacking(next); next = next->backingStore) {
+ VIR_AUTOSTRINGLIST targetPaths = NULL;
g_autofree char *tmpPath = NULL;
if (next->type == VIR_STORAGE_TYPE_NVME) {
hasNVMe = true;
if (!(tmpPath = virPCIDeviceAddressGetIOMMUGroupDev(&next->nvme->pciAddr)))
- goto cleanup;
+ return -1;
} else {
if (virStorageSourceIsEmpty(next) ||
!virStorageSourceIsLocalStorage(next)) {
@@ -15553,30 +15568,35 @@ qemuDomainNamespaceSetupDisk(virDomainOb
tmpPath = g_strdup(next->path);
}
- if (VIR_APPEND_ELEMENT(paths, npaths, tmpPath) < 0)
- goto cleanup;
+ if (virStringListAdd(&paths, tmpPath) < 0)
+ return -1;
+
+ if (virDevMapperGetTargets(next->path, &targetPaths) < 0 &&
+ errno != ENOSYS && errno != EBADF) {
+ virReportSystemError(errno,
+ _("Unable to get devmapper targets for %s"),
+ next->path);
+ return -1;
+ }
+
+ if (virStringListMerge(&paths, &targetPaths) < 0)
+ return -1;
}
/* qemu-pr-helper might require access to /dev/mapper/control. */
- if (src->pr) {
- dmPath = g_strdup(QEMU_DEVICE_MAPPER_CONTROL_PATH);
- if (VIR_APPEND_ELEMENT_COPY(paths, npaths, dmPath) < 0)
- goto cleanup;
- }
+ if (src->pr &&
+ virStringListAdd(&paths, QEMU_DEVICE_MAPPER_CONTROL_PATH) < 0)
+ return -1;
- if (hasNVMe) {
- vfioPath = g_strdup(QEMU_DEV_VFIO);
- if (VIR_APPEND_ELEMENT(paths, npaths, vfioPath) < 0)
- goto cleanup;
- }
+ if (hasNVMe &&
+ virStringListAdd(&paths, QEMU_DEV_VFIO) < 0)
+ return -1;
+ npaths = virStringListLength((const char **) paths);
if (qemuDomainNamespaceMknodPaths(vm, (const char **) paths, npaths) < 0)
- goto cleanup;
+ return -1;
- ret = 0;
- cleanup:
- virStringListFreeCount(paths, npaths);
- return ret;
+ return 0;
}
Index: libvirt-6.1.0/src/util/virdevmapper.h
===================================================================
--- libvirt-6.1.0.orig/src/util/virdevmapper.h
+++ libvirt-6.1.0/src/util/virdevmapper.h
@@ -20,6 +20,8 @@
#pragma once
+#include "internal.h"
+
int
virDevMapperGetTargets(const char *path,
- char ***devPaths);
+ char ***devPaths) G_GNUC_NO_INLINE;
Index: libvirt-6.1.0/src/util/virutil.h
===================================================================
--- libvirt-6.1.0.orig/src/util/virutil.h
+++ libvirt-6.1.0/src/util/virutil.h
@@ -120,7 +120,7 @@ bool virValidateWWN(const char *wwn);
int virGetDeviceID(const char *path,
int *maj,
- int *min);
+ int *min) G_GNUC_NO_INLINE;
int virSetDeviceUnprivSGIO(const char *path,
const char *sysfs_dir,
int unpriv_sgio);
Index: libvirt-6.1.0/tests/qemuhotplugmock.c
===================================================================
--- libvirt-6.1.0.orig/tests/qemuhotplugmock.c
+++ libvirt-6.1.0/tests/qemuhotplugmock.c
@@ -19,7 +19,24 @@
#include <config.h>
#include "qemu/qemu_hotplug.h"
+#include "qemu/qemu_process.h"
#include "conf/domain_conf.h"
+#include "virdevmapper.h"
+#include "virutil.h"
+#include "virmock.h"
+
+static int (*real_virGetDeviceID)(const char *path, int *maj, int *min);
+static bool (*real_virFileExists)(const char *path);
+
+static void
+init_syms(void)
+{
+ if (real_virFileExists)
+ return;
+
+ VIR_MOCK_REAL_INIT(virGetDeviceID);
+ VIR_MOCK_REAL_INIT(virFileExists);
+}
unsigned long long
qemuDomainGetUnplugTimeout(virDomainObjPtr vm G_GNUC_UNUSED)
@@ -31,3 +48,61 @@ qemuDomainGetUnplugTimeout(virDomainObjP
return 200;
return 100;
}
+
+
+int
+virDevMapperGetTargets(const char *path,
+ char ***devPaths)
+{
+ *devPaths = NULL;
+
+ if (STREQ(path, "/dev/mapper/virt")) {
+ *devPaths = g_new(char *, 4);
+ (*devPaths)[0] = g_strdup("/dev/block/8:0"); /* /dev/sda */
+ (*devPaths)[1] = g_strdup("/dev/block/8:16"); /* /dev/sdb */
+ (*devPaths)[2] = g_strdup("/dev/block/8:32"); /* /dev/sdc */
+ (*devPaths)[3] = NULL;
+ }
+
+ return 0;
+}
+
+
+int
+virGetDeviceID(const char *path, int *maj, int *min)
+{
+ init_syms();
+
+ if (STREQ(path, "/dev/mapper/virt")) {
+ *maj = 254;
+ *min = 0;
+ return 0;
+ }
+
+ return real_virGetDeviceID(path, maj, min);
+}
+
+
+bool
+virFileExists(const char *path)
+{
+ init_syms();
+
+ if (STREQ(path, "/dev/mapper/virt"))
+ return true;
+
+ return real_virFileExists(path);
+}
+
+
+int
+qemuProcessStartManagedPRDaemon(virDomainObjPtr vm G_GNUC_UNUSED)
+{
+ return 0;
+}
+
+
+void
+qemuProcessKillManagedPRDaemon(virDomainObjPtr vm G_GNUC_UNUSED)
+{
+}
Index: libvirt-6.1.0/tests/qemuhotplugtestdevices/qemuhotplug-disk-scsi-multipath.xml
===================================================================
--- /dev/null
+++ libvirt-6.1.0/tests/qemuhotplugtestdevices/qemuhotplug-disk-scsi-multipath.xml
@@ -0,0 +1,8 @@
+<disk type='block' device='lun'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/mapper/virt'>
+ <reservations managed='yes'/>
+ </source>
+ <target dev='sda' bus='scsi'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+</disk>
Index: libvirt-6.1.0/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-multipath.xml
===================================================================
--- /dev/null
+++ libvirt-6.1.0/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-multipath.xml
@@ -0,0 +1,62 @@
+<domain type='kvm' id='7'>
+ <name>hotplug</name>
+ <uuid>d091ea82-29e6-2e34-3005-f02617b36e87</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <currentMemory unit='KiB'>4194304</currentMemory>
+ <vcpu placement='static'>4</vcpu>
+ <os>
+ <type arch='x86_64' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <acpi/>
+ <apic/>
+ <pae/>
+ </features>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <disk type='block' device='lun'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/mapper/virt'>
+ <reservations managed='yes'>
+ <source type='unix' path='/tmp/lib/domain-7-hotplug/pr-helper0.sock' mode='client'/>
+ </reservations>
+ </source>
+ <backingStore/>
+ <target dev='sda' bus='scsi'/>
+ <alias name='scsi0-0-0-0'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='usb' index='0'>
+ <alias name='usb'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
+ </controller>
+ <controller type='ide' index='0'>
+ <alias name='ide'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
+ </controller>
+ <controller type='scsi' index='0' model='virtio-scsi'>
+ <alias name='scsi0'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
+ </controller>
+ <controller type='pci' index='0' model='pci-root'>
+ <alias name='pci'/>
+ </controller>
+ <controller type='virtio-serial' index='0'>
+ <alias name='virtio-serial0'/>
+ <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
+ </controller>
+ <input type='mouse' bus='ps2'>
+ <alias name='input0'/>
+ </input>
+ <input type='keyboard' bus='ps2'>
+ <alias name='input1'/>
+ </input>
+ <memballoon model='none'/>
+ </devices>
+ <seclabel type='none' model='none'/>
+</domain>

View File

@ -0,0 +1,190 @@
commit a93f55c53d83ec63fe703db38cb519465b1d2445
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Apr 7 17:15:04 2020 -0600
libxl: Add support for max_event_channels
Add support for setting event_channels in libxl domain config object and
include a test to check that it is properly converted from XML to libxl
domain config.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-6.2.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.2.0/src/libxl/libxl_conf.c
@@ -380,13 +380,17 @@ libxlMakeDomBuildInfo(virDomainDefPtr de
b_info->max_memkb = virDomainDefGetMemoryInitial(def);
b_info->target_memkb = def->mem.cur_balloon;
-#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
for (i = 0; i < def->ncontrollers; i++) {
- if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS &&
- def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0)
- b_info->max_grant_frames = def->controllers[i]->opts.xenbusopts.maxGrantFrames;
- }
+ if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_XENBUS) {
+ if (def->controllers[i]->opts.xenbusopts.maxEventChannels > 0)
+ b_info->event_channels = def->controllers[i]->opts.xenbusopts.maxEventChannels;
+
+#ifdef LIBXL_HAVE_BUILDINFO_GRANT_LIMITS
+ if (def->controllers[i]->opts.xenbusopts.maxGrantFrames > 0)
+ b_info->max_grant_frames = def->controllers[i]->opts.xenbusopts.maxGrantFrames;
#endif
+ }
+ }
if (hvm || pvh) {
if (caps &&
Index: libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.json
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.json
@@ -0,0 +1,90 @@
+{
+ "c_info": {
+ "type": "hvm",
+ "name": "test-hvm",
+ "uuid": "2147d599-9cc6-c0dc-92ab-4064b5446e9b"
+ },
+ "b_info": {
+ "max_vcpus": 4,
+ "avail_vcpus": [
+ 0,
+ 1,
+ 2,
+ 3
+ ],
+ "max_memkb": 1048576,
+ "target_memkb": 1048576,
+ "video_memkb": 8192,
+ "shadow_memkb": 12288,
+ "event_channels": 2047,
+ "device_model_version": "qemu_xen",
+ "device_model": "/bin/true",
+ "sched_params": {
+
+ },
+ "type.hvm": {
+ "pae": "True",
+ "apic": "True",
+ "acpi": "True",
+ "vga": {
+ "kind": "cirrus"
+ },
+ "vnc": {
+ "enable": "True",
+ "listen": "0.0.0.0",
+ "findunused": "False"
+ },
+ "sdl": {
+ "enable": "False"
+ },
+ "spice": {
+
+ },
+ "boot": "c",
+ "rdm": {
+
+ }
+ },
+ "arch_arm": {
+
+ }
+ },
+ "disks": [
+ {
+ "pdev_path": "/var/lib/xen/images/test-hvm.img",
+ "vdev": "hda",
+ "backend": "qdisk",
+ "format": "raw",
+ "removable": 1,
+ "readwrite": 1
+ }
+ ],
+ "nics": [
+ {
+ "devid": 0,
+ "mac": "00:16:3e:66:12:b4",
+ "bridge": "br0",
+ "script": "/etc/xen/scripts/vif-bridge",
+ "nictype": "vif_ioemu"
+ }
+ ],
+ "vfbs": [
+ {
+ "devid": -1,
+ "vnc": {
+ "enable": "True",
+ "listen": "0.0.0.0",
+ "findunused": "False"
+ },
+ "sdl": {
+ "enable": "False"
+ }
+ }
+ ],
+ "vkbs": [
+ {
+ "devid": -1
+ }
+ ],
+ "on_reboot": "restart"
+}
Index: libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.xml
===================================================================
--- /dev/null
+++ libvirt-6.2.0/tests/libxlxml2domconfigdata/max-eventchannels-hvm.xml
@@ -0,0 +1,37 @@
+<domain type='xen'>
+ <name>test-hvm</name>
+ <description>None</description>
+ <uuid>2147d599-9cc6-c0dc-92ab-4064b5446e9b</uuid>
+ <memory>1048576</memory>
+ <currentMemory>1048576</currentMemory>
+ <vcpu>4</vcpu>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <clock offset='utc'/>
+ <os>
+ <type>hvm</type>
+ <loader>/usr/lib/xen/boot/hvmloader</loader>
+ <boot dev='hd'/>
+ </os>
+ <features>
+ <apic/>
+ <acpi/>
+ <pae/>
+ </features>
+ <devices>
+ <emulator>/bin/true</emulator>
+ <disk type='file' device='disk'>
+ <driver name='qemu'/>
+ <source file='/var/lib/xen/images/test-hvm.img'/>
+ <target dev='hda'/>
+ </disk>
+ <controller type='xenbus' maxEventChannels='2047'/>
+ <interface type='bridge'>
+ <source bridge='br0'/>
+ <mac address='00:16:3e:66:12:b4'/>
+ <script path='/etc/xen/scripts/vif-bridge'/>
+ </interface>
+ <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
+ </devices>
+</domain>
Index: libvirt-6.2.0/tests/libxlxml2domconfigtest.c
===================================================================
--- libvirt-6.2.0.orig/tests/libxlxml2domconfigtest.c
+++ libvirt-6.2.0/tests/libxlxml2domconfigtest.c
@@ -202,6 +202,8 @@ mymain(void)
DO_TEST("max-gntframes-hvm");
# endif
+ DO_TEST("max-eventchannels-hvm");
+
unlink("libxl-driver.log");
testXLFreeDriver(driver);

View File

@ -1,71 +0,0 @@
commit aeb909bf9b4c3fa48d017475545df94f7c5d3b3a
Author: Michal Prívozník <mprivozn@redhat.com>
Date: Thu Mar 19 12:51:55 2020 +0100
qemu: Don't crash when getting targets for a multipath
In one of my previous commits I've introduced code that creates
all devices for given (possible) multipath target. But I've made
a mistake there - the code accesses 'next->path' without checking
if the disk source is local. Note that the 'next->path' is
NULL/doesn't make sense for VIR_STORAGE_TYPE_NVME.
Fixes: a30078cb832646177defd256e77c632905f1e6d0
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1814947
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-6.1.0/src/qemu/qemu_domain.c
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu_domain.c
+++ libvirt-6.1.0/src/qemu/qemu_domain.c
@@ -15550,7 +15550,6 @@ qemuDomainNamespaceSetupDisk(virDomainOb
bool hasNVMe = false;
for (next = src; virStorageSourceIsBacking(next); next = next->backingStore) {
- VIR_AUTOSTRINGLIST targetPaths = NULL;
g_autofree char *tmpPath = NULL;
if (next->type == VIR_STORAGE_TYPE_NVME) {
@@ -15559,6 +15558,8 @@ qemuDomainNamespaceSetupDisk(virDomainOb
if (!(tmpPath = virPCIDeviceAddressGetIOMMUGroupDev(&next->nvme->pciAddr)))
return -1;
} else {
+ VIR_AUTOSTRINGLIST targetPaths = NULL;
+
if (virStorageSourceIsEmpty(next) ||
!virStorageSourceIsLocalStorage(next)) {
/* Not creating device. Just continue. */
@@ -15566,20 +15567,20 @@ qemuDomainNamespaceSetupDisk(virDomainOb
}
tmpPath = g_strdup(next->path);
- }
- if (virStringListAdd(&paths, tmpPath) < 0)
- return -1;
+ if (virDevMapperGetTargets(next->path, &targetPaths) < 0 &&
+ errno != ENOSYS && errno != EBADF) {
+ virReportSystemError(errno,
+ _("Unable to get devmapper targets for %s"),
+ next->path);
+ return -1;
+ }
- if (virDevMapperGetTargets(next->path, &targetPaths) < 0 &&
- errno != ENOSYS && errno != EBADF) {
- virReportSystemError(errno,
- _("Unable to get devmapper targets for %s"),
- next->path);
- return -1;
+ if (virStringListMerge(&paths, &targetPaths) < 0)
+ return -1;
}
- if (virStringListMerge(&paths, &targetPaths) < 0)
+ if (virStringListAdd(&paths, tmpPath) < 0)
return -1;
}

View File

@ -0,0 +1,36 @@
tests: temporarily disable the new multipath PR tests
The new multipath PR tests are failing in a build root env.
Disable them for now until discussing a solution with upstream.
Index: libvirt-6.2.0/tests/qemuhotplugtest.c
===================================================================
--- libvirt-6.2.0.orig/tests/qemuhotplugtest.c
+++ libvirt-6.2.0/tests/qemuhotplugtest.c
@@ -87,8 +87,6 @@ qemuHotplugCreateObjects(virDomainXMLOpt
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_VNC);
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE);
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE);
- virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER);
- virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_BLOCK);
if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0)
return -1;
@@ -757,17 +755,6 @@ mymain(void)
"device_del", QMP_DEVICE_DELETED("scsi3-0-5-6") QMP_OK,
"human-monitor-command", HMP(""));
- DO_TEST_ATTACH("base-live", "disk-scsi-multipath", false, true,
- "object-add", QMP_OK,
- "human-monitor-command", HMP("OK\\r\\n"),
- "device_add", QMP_OK);
- DO_TEST_DETACH("base-live", "disk-scsi-multipath", true, true,
- "device_del", QMP_OK,
- "human-monitor-command", HMP(""));
- DO_TEST_DETACH("base-live", "disk-scsi-multipath", false, false,
- "device_del", QMP_DEVICE_DELETED("scsi0-0-0-0") QMP_OK,
- "human-monitor-command", HMP(""));
-
DO_TEST_ATTACH("base-live", "qemu-agent", false, true,
"chardev-add", QMP_OK,
"device_add", QMP_OK);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:167c185be45560e73dd3e14ed375778b555c01455192de2dafc4d0f74fabebc0
size 8276964

View File

@ -1,11 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl5eV20ACgkQFViLJllr
6l2vngf/Vb7A4RA9HzmrysjfCD7yRYnjX9NzgApyQMsKOursQlXxeAHE9cKpc9hM
NyQ4+f9SVJnJ+Wd2Z8bZDY976Bg6obDdXnEuL00QBrBe+gsTEXf5fc4fRnV8/l3b
en1MEZ+VYFH6mmKUheumybOaPPc0DlgCBRXZj50UDHTdEqB4pQWxL2bIEOVIlepn
WEXv0v3CoWdsVUzvsVz2vNNPt3PW+hFHU4nAcTTMF/IJwbLIGMY3JTVV0imPD1PV
qLb3wSi0INrKLRfOJC51j2ILj1GQe33OTmVmxqJSFDBOvb7yf1j2VQ5T3jfIIpay
oWAnznrtezmG9Pq/hXPIABV7piYAYA==
=7yxg
-----END PGP SIGNATURE-----

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

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

11
libvirt-6.2.0.tar.xz.asc Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl6GOV8ACgkQFViLJllr
6l10PAgAi2s7PQLVyGL7xHK12AO7HfH/e2jNoE+LDJfJa1SQITYLW2x3zdEV27JW
SN8Hokf9dgRke0uJTBsQxcUxyRXFJkaGJ9pkUwkMuiUFA7fUWUPzBlBV8seaEqaf
102Zr/VWsP90FmrZ8oQ14VOEw8IB6Jmi07hd+9I6uY+PdBeUz5YtZ1pQYOda9v+a
yMsCDRusZKnpmVxbN1mlbmowq4rlJWDGouDpOFeB/u6RimdbAucYSfDF0RMz46Jt
wqUne7gAeCeP0GprHrM5/gURFcepXC9muB2iUY/uQyMN96bfVyjU9M1xlSQcGiOZ
Uuv0UCXfBYXFnhwb75RG91hxTGrlUg==
=wKUd
-----END PGP SIGNATURE-----

View File

@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
From: <ro@suse.de>
Index: libvirt-6.1.0/src/cpu_map/ppc64_POWER8.xml
Index: libvirt-6.2.0/src/cpu_map/ppc64_POWER8.xml
===================================================================
--- libvirt-6.1.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-6.1.0/src/cpu_map/ppc64_POWER8.xml
--- libvirt-6.2.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-6.2.0/src/cpu_map/ppc64_POWER8.xml
@@ -4,5 +4,7 @@
<pvr value='0x004b0000' mask='0xffff0000'/>
<pvr value='0x004c0000' mask='0xffff0000'/>

View File

@ -1,7 +1,7 @@
Index: libvirt-6.1.0/configure.ac
Index: libvirt-6.2.0/configure.ac
===================================================================
--- libvirt-6.1.0.orig/configure.ac
+++ libvirt-6.1.0/configure.ac
--- libvirt-6.2.0.orig/configure.ac
+++ libvirt-6.2.0/configure.ac
@@ -278,6 +278,7 @@ LIBVIRT_ARG_LIBSSH
LIBVIRT_ARG_LIBXML
LIBVIRT_ARG_MACVTAP
@ -26,10 +26,10 @@ Index: libvirt-6.1.0/configure.ac
LIBVIRT_RESULT_NLS
LIBVIRT_RESULT_NSS
LIBVIRT_RESULT_NUMACTL
Index: libvirt-6.1.0/tools/virsh.c
Index: libvirt-6.2.0/tools/virsh.c
===================================================================
--- libvirt-6.1.0.orig/tools/virsh.c
+++ libvirt-6.1.0/tools/virsh.c
--- libvirt-6.2.0.orig/tools/virsh.c
+++ libvirt-6.2.0/tools/virsh.c
@@ -547,6 +547,8 @@ virshShowVersion(vshControl *ctl G_GNUC_
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
@ -39,10 +39,10 @@ Index: libvirt-6.1.0/tools/virsh.c
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
Index: libvirt-6.1.0/src/interface/interface_backend_netcf.c
Index: libvirt-6.2.0/src/interface/interface_backend_netcf.c
===================================================================
--- libvirt-6.1.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-6.1.0/src/interface/interface_backend_netcf.c
--- libvirt-6.2.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-6.2.0/src/interface/interface_backend_netcf.c
@@ -21,7 +21,12 @@
#include <config.h>
@ -154,10 +154,10 @@ Index: libvirt-6.1.0/src/interface/interface_backend_netcf.c
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
return -1;
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
Index: libvirt-6.1.0/src/interface/interface_driver.c
Index: libvirt-6.2.0/src/interface/interface_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/interface/interface_driver.c
+++ libvirt-6.1.0/src/interface/interface_driver.c
--- libvirt-6.2.0.orig/src/interface/interface_driver.c
+++ libvirt-6.2.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@ -175,10 +175,10 @@ Index: libvirt-6.1.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
Index: libvirt-6.1.0/m4/virt-netcontrol.m4
Index: libvirt-6.2.0/m4/virt-netcontrol.m4
===================================================================
--- /dev/null
+++ libvirt-6.1.0/m4/virt-netcontrol.m4
+++ libvirt-6.2.0/m4/virt-netcontrol.m4
@@ -0,0 +1,39 @@
+dnl The libnetcontrol library
+dnl
@ -219,10 +219,10 @@ Index: libvirt-6.1.0/m4/virt-netcontrol.m4
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
+ LIBVIRT_RESULT_LIB([NETCONTROL])
+])
Index: libvirt-6.1.0/src/interface/Makefile.inc.am
Index: libvirt-6.2.0/src/interface/Makefile.inc.am
===================================================================
--- libvirt-6.1.0.orig/src/interface/Makefile.inc.am
+++ libvirt-6.1.0/src/interface/Makefile.inc.am
--- libvirt-6.2.0.orig/src/interface/Makefile.inc.am
+++ libvirt-6.2.0/src/interface/Makefile.inc.am
@@ -6,6 +6,7 @@ INTERFACE_DRIVER_SOURCES = \
$(NULL)

View File

@ -1,3 +1,33 @@
-------------------------------------------------------------------
Thu Apr 9 22:04:57 UTC 2020 - James Fehlig <jfehlig@suse.com>
- libxl: Add support for max event channels with maxEventChannel
attribute on the xenbus controller
8e669b38-conf-add-event-channels.patch,
a93f55c5-libxl-add-event-channels.patch,
967f4eeb-xenconfig-event-channels.patch
bsc#1168767
-------------------------------------------------------------------
Mon Apr 6 14:30:29 UTC 2020 - James Fehlig <jfehlig@suse.com>
- libxl: fix crash when initializing driver
88011ed2-libxl-driver-crash-fix.patch
-------------------------------------------------------------------
Fri Apr 3 20:47:27 UTC 2020 - James Fehlig <jfehlig@suse.com>
- Update to libvirt 6.2.0
- Many incremental improvements and bug fixes, see
https://libvirt.org/news.html
- CVE-2020-10701
bsc#1168680
- Dropped patches:
a30078cb-qemu-create-mp-target.patch,
aeb909bf-qemu-multipath-fix.patch
- Added patch:
disable-multipath-pr-tests.patch
-------------------------------------------------------------------
Thu Mar 19 22:59:45 UTC 2020 - James Fehlig <jfehlig@suse.com>

View File

@ -185,7 +185,7 @@
Name: libvirt
URL: http://libvirt.org/
Version: 6.1.0
Version: 6.2.0
Release: 0
Summary: Library providing a virtualization API
License: LGPL-2.1-or-later
@ -338,8 +338,10 @@ Source6: libvirtd-relocation-server.xml
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
Patch0: a30078cb-qemu-create-mp-target.patch
Patch1: aeb909bf-qemu-multipath-fix.patch
Patch0: 88011ed2-libxl-driver-crash-fix.patch
Patch1: 8e669b38-conf-add-event-channels.patch
Patch2: a93f55c5-libxl-add-event-channels.patch
Patch3: 967f4eeb-xenconfig-event-channels.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
@ -368,6 +370,7 @@ Patch212: lxc-wait-after-eth-del.patch
Patch213: suse-libxl-disable-autoballoon.patch
Patch214: suse-xen-ovmf-loaders.patch
Patch215: suse-bump-xen-version.patch
Patch216: disable-multipath-pr-tests.patch
# SLES-Only patches
%if ! 0%{?is_opensuse}
Patch400: virt-create-rootfs.patch
@ -876,6 +879,8 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch100 -p1
%patch101 -p1
%patch150 -p1
@ -901,6 +906,7 @@ libvirt plugin for NSS for translating domain names into IP addresses.
%patch213 -p1
%patch214 -p1
%patch215 -p1
%patch216 -p1
%if ! 0%{?is_opensuse}
%patch400 -p1
%endif
@ -1226,9 +1232,6 @@ mv %{buildroot}/%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
%check
cd tests
SKIP_TESTS=""
# These tests don't current work in a mock build root
# virnetsockettest: needs unsupported linux-user syscalls
SKIP_TESTS="$SKIP_TESTS virnetsockettest"
# virportallocatortest fails on aarch64 due to unsupported IPV6_V6ONLY flag
%ifarch aarch64
SKIP_TESTS="$SKIP_TESTS virportallocatortest"

View File

@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600
option, but domainReset can be implemented in the libxl driver by
forcibly destroying the domain and starting it again.
Index: libvirt-6.1.0/src/libxl/libxl_driver.c
Index: libvirt-6.2.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.1.0/src/libxl/libxl_driver.c
@@ -1372,6 +1372,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
--- libvirt-6.2.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.2.0/src/libxl/libxl_driver.c
@@ -1371,6 +1371,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
}
static int
@ -74,7 +74,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_driver.c
libxlDomainDestroyFlags(virDomainPtr dom,
unsigned int flags)
{
@@ -6581,6 +6636,7 @@ static virHypervisorDriver libxlHypervis
@@ -6631,6 +6686,7 @@ static virHypervisorDriver libxlHypervis
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
.domainReboot = libxlDomainReboot, /* 0.9.0 */

View File

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

View File

@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
tools/virsh.pod | 8 ++++++++
6 files changed, 125 insertions(+), 6 deletions(-)
Index: libvirt-6.1.0/include/libvirt/libvirt-domain.h
Index: libvirt-6.2.0/include/libvirt/libvirt-domain.h
===================================================================
--- libvirt-6.1.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-6.1.0/include/libvirt/libvirt-domain.h
--- libvirt-6.2.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-6.2.0/include/libvirt/libvirt-domain.h
@@ -1065,6 +1065,31 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination"
@ -52,11 +52,11 @@ Index: libvirt-6.1.0/include/libvirt/libvirt-domain.h
/* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname,
Index: libvirt-6.1.0/src/libxl/libxl_driver.c
Index: libvirt-6.2.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.1.0/src/libxl/libxl_driver.c
@@ -6146,6 +6146,9 @@ libxlDomainMigratePerform3Params(virDoma
--- libvirt-6.2.0.orig/src/libxl/libxl_driver.c
+++ libvirt-6.2.0/src/libxl/libxl_driver.c
@@ -6196,6 +6196,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL;
const char *uri = NULL;
int ret = -1;
@ -66,7 +66,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_driver.c
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
virReportUnsupportedError();
@@ -6162,6 +6165,18 @@ libxlDomainMigratePerform3Params(virDoma
@@ -6212,6 +6215,18 @@ libxlDomainMigratePerform3Params(virDoma
virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_DEST_NAME,
&dname) < 0 ||
@ -85,7 +85,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_driver.c
virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_URI,
&uri) < 0)
@@ -6176,11 +6191,11 @@ libxlDomainMigratePerform3Params(virDoma
@@ -6226,11 +6241,11 @@ libxlDomainMigratePerform3Params(virDoma
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
@ -99,11 +99,11 @@ Index: libvirt-6.1.0/src/libxl/libxl_driver.c
goto cleanup;
}
Index: libvirt-6.1.0/src/libxl/libxl_migration.c
Index: libvirt-6.2.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_migration.c
+++ libvirt-6.1.0/src/libxl/libxl_migration.c
@@ -339,18 +339,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
--- libvirt-6.2.0.orig/src/libxl/libxl_migration.c
+++ libvirt-6.2.0/src/libxl/libxl_migration.c
@@ -345,18 +345,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
static int
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
@ -145,7 +145,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
if (ret != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to send migration data to destination host"));
@@ -903,7 +924,7 @@ struct libxlTunnelControl {
@@ -913,7 +934,7 @@ struct libxlTunnelControl {
static int
libxlMigrationSrcStartTunnel(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
@ -154,7 +154,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
virStreamPtr st,
struct libxlTunnelControl **tnl)
{
@@ -934,7 +955,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
@@ -947,7 +968,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
virObjectUnlock(vm);
/* Send data to pipe */
@ -163,7 +163,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
virObjectLock(vm);
out:
@@ -970,7 +991,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -983,7 +1004,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
const char *dconnuri G_GNUC_UNUSED,
const char *dname,
const char *uri,
@ -172,7 +172,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
{
virDomainPtr ddomain = NULL;
virTypedParameterPtr params = NULL;
@@ -1015,11 +1036,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1028,11 +1049,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
/* We don't require the destination to have P2P support
* as it looks to be normal migration from the receiver perspective.
*/
@ -186,7 +186,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
if (!(st = virStreamNew(dconn, 0)))
goto confirm;
ret = dconn->driver->domainMigratePrepareTunnel3Params
@@ -1033,7 +1054,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1046,7 +1067,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
if (ret == -1)
goto confirm;
@ -195,7 +195,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
if (uri_out) {
if (virTypedParamsReplaceString(&params, &nparams,
VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
@@ -1048,11 +1069,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1061,11 +1082,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
}
VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
@ -210,7 +210,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
if (ret < 0) {
notify_source = false;
virErrorPreserveLast(&orig_err);
@@ -1087,7 +1108,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1100,7 +1121,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
confirm:
if (notify_source) {
VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
@ -219,7 +219,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
if (ret < 0)
VIR_WARN("Guest %s probably left in 'paused' state on source",
@@ -1095,7 +1116,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1108,7 +1129,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
}
cleanup:
@ -228,7 +228,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
libxlMigrationSrcStopTunnel(tc);
virObjectUnref(st);
}
@@ -1139,7 +1160,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
@@ -1152,7 +1173,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
const char *dconnuri,
const char *uri_str G_GNUC_UNUSED,
const char *dname,
@ -237,7 +237,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
{
int ret = -1;
bool useParams;
@@ -1174,7 +1195,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
@@ -1187,7 +1208,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
}
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
@ -246,7 +246,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
if (ret < 0) {
/*
@@ -1201,7 +1222,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
@@ -1214,7 +1235,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
const char *dconnuri G_GNUC_UNUSED,
const char *uri_str,
const char *dname G_GNUC_UNUSED,
@ -255,7 +255,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
{
libxlDomainObjPrivatePtr priv = vm->privateData;
char *hostname = NULL;
@@ -1237,7 +1258,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
@@ -1250,7 +1271,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
/* suspend vm and send saved data to dst through socket fd */
virObjectUnlock(vm);
@ -264,10 +264,10 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.c
virObjectLock(vm);
if (ret == 0) {
Index: libvirt-6.1.0/src/libxl/libxl_migration.h
Index: libvirt-6.2.0/src/libxl/libxl_migration.h
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_migration.h
+++ libvirt-6.1.0/src/libxl/libxl_migration.h
--- libvirt-6.2.0.orig/src/libxl/libxl_migration.h
+++ libvirt-6.2.0/src/libxl/libxl_migration.h
@@ -35,6 +35,10 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@ -312,11 +312,11 @@ Index: libvirt-6.1.0/src/libxl/libxl_migration.h
virDomainPtr
libxlDomainMigrationDstFinish(virConnectPtr dconn,
Index: libvirt-6.1.0/tools/virsh-domain.c
Index: libvirt-6.2.0/tools/virsh-domain.c
===================================================================
--- libvirt-6.1.0.orig/tools/virsh-domain.c
+++ libvirt-6.1.0/tools/virsh-domain.c
@@ -10713,6 +10713,22 @@ static const vshCmdOptDef opts_migrate[]
--- libvirt-6.2.0.orig/tools/virsh-domain.c
+++ libvirt-6.2.0/tools/virsh-domain.c
@@ -10716,6 +10716,22 @@ static const vshCmdOptDef opts_migrate[]
.type = VSH_OT_STRING,
.help = N_("override the destination host name used for TLS verification")
},
@ -339,7 +339,7 @@ Index: libvirt-6.1.0/tools/virsh-domain.c
{.name = NULL}
};
@@ -10735,6 +10751,7 @@ doMigrate(void *opaque)
@@ -10738,6 +10754,7 @@ doMigrate(void *opaque)
unsigned long long ullOpt = 0;
int rv;
virConnectPtr dconn = data->dconn;
@ -347,7 +347,7 @@ Index: libvirt-6.1.0/tools/virsh-domain.c
#ifndef WIN32
sigset_t sigmask, oldsigmask;
@@ -10857,6 +10874,27 @@ doMigrate(void *opaque)
@@ -10860,6 +10877,27 @@ doMigrate(void *opaque)
goto save_error;
}
@ -375,10 +375,10 @@ Index: libvirt-6.1.0/tools/virsh-domain.c
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
goto out;
if (opt) {
Index: libvirt-6.1.0/docs/manpages/virsh.rst
Index: libvirt-6.2.0/docs/manpages/virsh.rst
===================================================================
--- libvirt-6.1.0.orig/docs/manpages/virsh.rst
+++ libvirt-6.1.0/docs/manpages/virsh.rst
--- libvirt-6.2.0.orig/docs/manpages/virsh.rst
+++ libvirt-6.2.0/docs/manpages/virsh.rst
@@ -3093,6 +3093,8 @@ migrate
[--postcopy-bandwidth bandwidth]
[--parallel [--parallel-connections connections]]

View File

@ -7,11 +7,11 @@ and npiv.
For more details, see bsc#954872 and FATE#319810
Index: libvirt-6.1.0/src/libxl/libxl_conf.c
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.1.0/src/libxl/libxl_conf.c
@@ -866,6 +866,22 @@ libxlDiskSetDiscard(libxl_device_disk *x
--- libvirt-6.2.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.2.0/src/libxl/libxl_conf.c
@@ -870,6 +870,22 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -34,7 +34,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_conf.c
static void
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{
@@ -1006,6 +1022,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
@@ -1010,6 +1026,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{
@ -42,7 +42,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_conf.c
const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src);
@@ -1021,7 +1038,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1025,7 +1042,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1;
} else {
@ -51,7 +51,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_conf.c
}
x_disk->vdev = g_strdup(l_disk->dst);
@@ -1132,6 +1149,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1136,6 +1153,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;
libxlDiskSetCacheMode(x_disk, l_disk->cachemode);

View File

@ -13,11 +13,11 @@ device with the same name that is being created.
src/lxc/lxc_process.c | 1 +
3 files changed, 4 insertions(+)
Index: libvirt-6.1.0/src/lxc/lxc_controller.c
Index: libvirt-6.2.0/src/lxc/lxc_controller.c
===================================================================
--- libvirt-6.1.0.orig/src/lxc/lxc_controller.c
+++ libvirt-6.1.0/src/lxc/lxc_controller.c
@@ -1985,6 +1985,7 @@ static int virLXCControllerDeleteInterfa
--- libvirt-6.2.0.orig/src/lxc/lxc_controller.c
+++ libvirt-6.2.0/src/lxc/lxc_controller.c
@@ -2056,6 +2056,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1;
}
@ -25,10 +25,10 @@ Index: libvirt-6.1.0/src/lxc/lxc_controller.c
return ret;
}
Index: libvirt-6.1.0/src/lxc/lxc_driver.c
Index: libvirt-6.2.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-6.1.0.orig/src/lxc/lxc_driver.c
+++ libvirt-6.1.0/src/lxc/lxc_driver.c
--- libvirt-6.2.0.orig/src/lxc/lxc_driver.c
+++ libvirt-6.2.0/src/lxc/lxc_driver.c
@@ -67,6 +67,7 @@
#include "virtime.h"
#include "virtypedparam.h"
@ -53,10 +53,10 @@ Index: libvirt-6.1.0/src/lxc/lxc_driver.c
break;
/* It'd be nice to support this, but with macvlan
Index: libvirt-6.1.0/src/lxc/lxc_process.c
Index: libvirt-6.2.0/src/lxc/lxc_process.c
===================================================================
--- libvirt-6.1.0.orig/src/lxc/lxc_process.c
+++ libvirt-6.1.0/src/lxc/lxc_process.c
--- libvirt-6.2.0.orig/src/lxc/lxc_process.c
+++ libvirt-6.2.0/src/lxc/lxc_process.c
@@ -50,6 +50,7 @@
#include "virstring.h"
#include "virprocess.h"
@ -65,7 +65,7 @@ Index: libvirt-6.1.0/src/lxc/lxc_process.c
#include "netdev_bandwidth_conf.h"
#include "virutil.h"
@@ -231,6 +232,7 @@ static void virLXCProcessCleanup(virLXCD
@@ -230,6 +231,7 @@ static void virLXCProcessCleanup(virLXCD
VIR_WARN("Unable to release network device '%s'", NULLSTR(iface->ifname));
}
}

View File

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

View File

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

View File

@ -1,7 +1,7 @@
Index: libvirt-6.1.0/src/security/apparmor/libvirt-qemu
Index: libvirt-6.2.0/src/security/apparmor/libvirt-qemu
===================================================================
--- libvirt-6.1.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.1.0/src/security/apparmor/libvirt-qemu
--- libvirt-6.2.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.2.0/src/security/apparmor/libvirt-qemu
@@ -228,3 +228,6 @@
# required for sasl GSSAPI plugin
/etc/gss/mech.d/ r,

View File

@ -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-6.1.0/src/libxl/xen_common.c
Index: libvirt-6.2.0/src/libxl/xen_common.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/xen_common.c
+++ libvirt-6.1.0/src/libxl/xen_common.c
--- libvirt-6.2.0.orig/src/libxl/xen_common.c
+++ libvirt-6.2.0/src/libxl/xen_common.c
@@ -381,12 +381,19 @@ xenParsePCI(char *entry)
int busID;
int slotID;

View File

@ -8,10 +8,10 @@ It was also noticed that the per-domain profiles need a libnl rule
to squelch a denial when starting confined domains.
Found while investigating bsc#1058847
Index: libvirt-6.1.0/src/security/apparmor/libvirt-qemu
Index: libvirt-6.2.0/src/security/apparmor/libvirt-qemu
===================================================================
--- libvirt-6.1.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.1.0/src/security/apparmor/libvirt-qemu
--- libvirt-6.2.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-6.2.0/src/security/apparmor/libvirt-qemu
@@ -61,6 +61,7 @@
#/dev/fb* rw,
@ -20,10 +20,10 @@ Index: libvirt-6.1.0/src/security/apparmor/libvirt-qemu
@{HOME}/.pulse-cookie rwk,
owner /root/.pulse-cookie rwk,
owner /root/.pulse/ rw,
Index: libvirt-6.1.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
Index: libvirt-6.2.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
===================================================================
--- libvirt-6.1.0.orig/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ libvirt-6.1.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
--- libvirt-6.2.0.orig/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ libvirt-6.2.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
@@ -19,7 +19,7 @@ profile virt-aa-helper @libexecdir@/virt
# Used when internally running another command (namely apparmor_parser)
@{PROC}/@{pid}/fd/ r,

View File

@ -9,10 +9,10 @@ need backporting to anything older. The dependency on xen.git commit
c3999835df makes it hard to upstream this patch.
See bsc#1157490 and bsc#1167007 for more details
Index: libvirt-6.1.0/m4/virt-driver-libxl.m4
Index: libvirt-6.2.0/m4/virt-driver-libxl.m4
===================================================================
--- libvirt-6.1.0.orig/m4/virt-driver-libxl.m4
+++ libvirt-6.1.0/m4/virt-driver-libxl.m4
--- libvirt-6.2.0.orig/m4/virt-driver-libxl.m4
+++ libvirt-6.2.0/m4/virt-driver-libxl.m4
@@ -26,11 +26,11 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [
LIBXL_CFLAGS=""
LIBXL_FIRMWARE_DIR=""
@ -27,24 +27,24 @@ Index: libvirt-6.1.0/m4/virt-driver-libxl.m4
if test "x$with_libxl" = "xyes" ; then
LIBXL_FIRMWARE_DIR=$($PKG_CONFIG --variable xenfirmwaredir xenlight)
LIBXL_EXECBIN_DIR=$($PKG_CONFIG --variable libexec_bin xenlight)
Index: libvirt-6.1.0/src/libxl/libxl_conf.c
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.1.0/src/libxl/libxl_conf.c
@@ -1785,7 +1785,7 @@ int
--- libvirt-6.2.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.2.0/src/libxl/libxl_conf.c
@@ -1788,7 +1788,7 @@ libxlDriverConfigNew(void)
int
libxlDriverConfigInit(libxlDriverConfigPtr cfg)
{
char ebuf[1024];
- unsigned int free_mem;
+ uint64_t free_mem;
if (virFileMakePath(cfg->logDir) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
Index: libvirt-6.1.0/src/libxl/libxl_domain.c
Index: libvirt-6.2.0/src/libxl/libxl_domain.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_domain.c
+++ libvirt-6.1.0/src/libxl/libxl_domain.c
@@ -1006,8 +1006,8 @@ libxlDomainSetVcpuAffinities(libxlDriver
--- libvirt-6.2.0.orig/src/libxl/libxl_domain.c
+++ libvirt-6.2.0/src/libxl/libxl_domain.c
@@ -1020,8 +1020,8 @@ libxlDomainSetVcpuAffinities(libxlDriver
static int
libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config)
{
@ -55,7 +55,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_domain.c
int32_t target_mem;
int tries = 3;
int wait_secs = 10;
@@ -1401,7 +1401,7 @@ libxlDomainStart(libxlDriverPrivatePtr d
@@ -1415,7 +1415,7 @@ libxlDomainStart(libxlDriverPrivatePtr d
params.stream_version = restore_ver;
#endif
ret = libxl_domain_create_restore(cfg->ctx, &d_config, &domid,
@ -64,10 +64,10 @@ Index: libvirt-6.1.0/src/libxl/libxl_domain.c
&aop_console_how);
libxl_domain_restore_params_dispose(&params);
}
Index: libvirt-6.1.0/tests/libxlmock.c
Index: libvirt-6.2.0/tests/libxlmock.c
===================================================================
--- libvirt-6.1.0.orig/tests/libxlmock.c
+++ libvirt-6.1.0/tests/libxlmock.c
--- libvirt-6.2.0.orig/tests/libxlmock.c
+++ libvirt-6.2.0/tests/libxlmock.c
@@ -67,7 +67,7 @@ VIR_MOCK_IMPL_RET_ARGS(libxl_get_version
VIR_MOCK_STUB_RET_ARGS(libxl_get_free_memory,
int, 0,

View File

@ -1,9 +1,9 @@
Adjust libvirt-guests service to conform to SUSE standards
Index: libvirt-6.1.0/tools/libvirt-guests.sh.in
Index: libvirt-6.2.0/tools/libvirt-guests.sh.in
===================================================================
--- libvirt-6.1.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-6.1.0/tools/libvirt-guests.sh.in
--- libvirt-6.2.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-6.2.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
@ -163,10 +163,10 @@ Index: libvirt-6.1.0/tools/libvirt-guests.sh.in
esac
-exit $RETVAL
+rc_exit
Index: libvirt-6.1.0/tools/libvirt-guests.sysconf
Index: libvirt-6.2.0/tools/libvirt-guests.sysconf
===================================================================
--- libvirt-6.1.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-6.1.0/tools/libvirt-guests.sysconf
--- libvirt-6.2.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-6.2.0/tools/libvirt-guests.sysconf
@@ -1,19 +1,29 @@
+## 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
Unix Domain Socket. The libvirt client still provides remote access
via a SSH tunnel.
Index: libvirt-6.1.0/src/remote/remote_daemon_config.c
Index: libvirt-6.2.0/src/remote/remote_daemon_config.c
===================================================================
--- libvirt-6.1.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-6.1.0/src/remote/remote_daemon_config.c
--- libvirt-6.2.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-6.2.0/src/remote/remote_daemon_config.c
@@ -99,7 +99,7 @@ daemonConfigNew(bool privileged G_GNUC_U
#ifdef WITH_IP
@ -16,10 +16,10 @@ Index: libvirt-6.1.0/src/remote/remote_daemon_config.c
# else /* ! LIBVIRTD */
data->listen_tls = 0; /* Always honoured, --listen doesn't exist. */
# endif /* ! LIBVIRTD */
Index: libvirt-6.1.0/src/remote/libvirtd.conf.in
Index: libvirt-6.2.0/src/remote/libvirtd.conf.in
===================================================================
--- libvirt-6.1.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-6.1.0/src/remote/libvirtd.conf.in
--- libvirt-6.2.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-6.2.0/src/remote/libvirtd.conf.in
@@ -17,8 +17,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.

View File

@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
Index: libvirt-6.1.0/src/remote/libvirtd.sysconf
Index: libvirt-6.2.0/src/remote/libvirtd.sysconf
===================================================================
--- libvirt-6.1.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-6.1.0/src/remote/libvirtd.sysconf
--- libvirt-6.2.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-6.2.0/src/remote/libvirtd.sysconf
@@ -1,5 +1,9 @@
+## Path: System/Virtualization/libvirt
# Customizations for the libvirtd.service systemd unit

View File

@ -6,10 +6,10 @@ autoballooning. This patch changes libvirt to also disable autoballooning
by default. It can only be enabled with the 'autoballoon' setting in
libxl.conf. See jsc#SLE-3059 for more details.
Index: libvirt-6.1.0/src/libxl/libxl.conf
Index: libvirt-6.2.0/src/libxl/libxl.conf
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl.conf
+++ libvirt-6.1.0/src/libxl/libxl.conf
--- libvirt-6.2.0.orig/src/libxl/libxl.conf
+++ libvirt-6.2.0/src/libxl/libxl.conf
@@ -4,12 +4,11 @@
# Enable autoballooning of domain0
@ -27,11 +27,11 @@ Index: libvirt-6.1.0/src/libxl/libxl.conf
# In order to prevent accidentally starting two domains that
Index: libvirt-6.1.0/src/libxl/libxl_conf.c
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.1.0/src/libxl/libxl_conf.c
@@ -1698,15 +1698,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
--- libvirt-6.2.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.2.0/src/libxl/libxl_conf.c
@@ -1702,15 +1702,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
/*
* Get domain0 autoballoon configuration. Honor user-specified
* setting in libxl.conf first. If not specified, autoballooning
@ -48,7 +48,7 @@ Index: libvirt-6.1.0/src/libxl/libxl_conf.c
int res;
res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon);
@@ -1715,15 +1712,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
@@ -1719,15 +1716,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
else if (res == 1)
return 0;

View File

@ -1,9 +1,9 @@
Adjust paths of OVMF firmwares on SUSE distros
Index: libvirt-6.1.0/src/qemu/qemu.conf
Index: libvirt-6.2.0/src/qemu/qemu.conf
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu.conf
+++ libvirt-6.1.0/src/qemu/qemu.conf
--- libvirt-6.2.0.orig/src/qemu/qemu.conf
+++ libvirt-6.2.0/src/qemu/qemu.conf
@@ -788,10 +788,9 @@
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme.
@ -18,10 +18,10 @@ Index: libvirt-6.1.0/src/qemu/qemu.conf
#]
# The backend to use for handling stdout/stderr output from
Index: libvirt-6.1.0/src/qemu/qemu_conf.c
Index: libvirt-6.2.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.1.0/src/qemu/qemu_conf.c
--- libvirt-6.2.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.2.0/src/qemu/qemu_conf.c
@@ -95,10 +95,9 @@ qemuDriverUnlock(virQEMUDriverPtr driver
#ifndef DEFAULT_LOADER_NVRAM
@ -36,11 +36,11 @@ Index: libvirt-6.1.0/src/qemu/qemu_conf.c
#endif
Index: libvirt-6.1.0/src/security/virt-aa-helper.c
Index: libvirt-6.2.0/src/security/virt-aa-helper.c
===================================================================
--- libvirt-6.1.0.orig/src/security/virt-aa-helper.c
+++ libvirt-6.1.0/src/security/virt-aa-helper.c
@@ -490,7 +490,8 @@ valid_path(const char *path, const bool
--- libvirt-6.2.0.orig/src/security/virt-aa-helper.c
+++ libvirt-6.2.0/src/security/virt-aa-helper.c
@@ -479,7 +479,8 @@ valid_path(const char *path, const bool
"/usr/share/ovmf/", /* for OVMF images */
"/usr/share/AAVMF/", /* for AAVMF images */
"/usr/share/qemu-efi/", /* for AAVMF images */

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
single patch.
Index: libvirt-6.1.0/src/qemu/qemu.conf
Index: libvirt-6.2.0/src/qemu/qemu.conf
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu.conf
+++ libvirt-6.1.0/src/qemu/qemu.conf
--- libvirt-6.2.0.orig/src/qemu/qemu.conf
+++ libvirt-6.2.0/src/qemu/qemu.conf
@@ -420,10 +420,19 @@
# isolation, but it cannot appear in a list of drivers.
#
@ -60,13 +60,13 @@ Index: libvirt-6.1.0/src/qemu/qemu.conf
#
#lock_manager = "lockd"
Index: libvirt-6.1.0/src/qemu/qemu_conf.c
Index: libvirt-6.2.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-6.1.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.1.0/src/qemu/qemu_conf.c
@@ -263,7 +263,7 @@ virQEMUDriverConfigPtr virQEMUDriverConf
cfg->prHelperName = g_strdup(QEMU_PR_HELPER);
--- libvirt-6.2.0.orig/src/qemu/qemu_conf.c
+++ libvirt-6.2.0/src/qemu/qemu_conf.c
@@ -266,7 +266,7 @@ virQEMUDriverConfigPtr virQEMUDriverConf
cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER);
cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON);
- cfg->securityDefaultConfined = true;
+ cfg->securityDefaultConfined = false;

View File

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

View File

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

View File

@ -5,11 +5,11 @@ upstream support for firmware autoselection in the xen driver. Sadly, the
upstream efforts to improve firmware handling in the qemu driver broke
the firmware handling in the xen driver.
Index: libvirt-6.1.0/src/libxl/libxl_conf.c
Index: libvirt-6.2.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-6.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.1.0/src/libxl/libxl_conf.c
@@ -1738,6 +1738,15 @@ libxlDriverConfigNew(void)
--- libvirt-6.2.0.orig/src/libxl/libxl_conf.c
+++ libvirt-6.2.0/src/libxl/libxl_conf.c
@@ -1742,6 +1742,15 @@ libxlDriverConfigNew(void)
cfg->autoDumpDir = g_strdup(LIBXL_DUMP_DIR);
cfg->channelDir = g_strdup(LIBXL_CHANNEL_DIR);

View File

@ -1,7 +1,7 @@
Index: libvirt-6.1.0/tools/Makefile.am
Index: libvirt-6.2.0/tools/Makefile.am
===================================================================
--- libvirt-6.1.0.orig/tools/Makefile.am
+++ libvirt-6.1.0/tools/Makefile.am
--- libvirt-6.2.0.orig/tools/Makefile.am
+++ libvirt-6.2.0/tools/Makefile.am
@@ -70,7 +70,7 @@ MAINTAINERCLEANFILES =
confdir = $(sysconfdir)/libvirt
conf_DATA =
@ -11,10 +11,10 @@ Index: libvirt-6.1.0/tools/Makefile.am
bin_PROGRAMS = virsh virt-admin
libexec_SCRIPTS = libvirt-guests.sh
Index: libvirt-6.1.0/tools/virt-create-rootfs
Index: libvirt-6.2.0/tools/virt-create-rootfs
===================================================================
--- /dev/null
+++ libvirt-6.1.0/tools/virt-create-rootfs
+++ libvirt-6.2.0/tools/virt-create-rootfs
@@ -0,0 +1,231 @@
+#!/bin/sh
+set -e
@ -247,10 +247,10 @@ Index: libvirt-6.1.0/tools/virt-create-rootfs
+ echo "pts/0" >> "$ROOT/etc/securetty"
+ chroot "$ROOT" /usr/bin/passwd
+fi
Index: libvirt-6.1.0/docs/Makefile.am
Index: libvirt-6.2.0/docs/Makefile.am
===================================================================
--- libvirt-6.1.0.orig/docs/Makefile.am
+++ libvirt-6.1.0/docs/Makefile.am
--- libvirt-6.2.0.orig/docs/Makefile.am
+++ libvirt-6.2.0/docs/Makefile.am
@@ -209,6 +209,7 @@ manpages1_rst = \
manpages/virt-xml-validate.rst \
manpages/virt-admin.rst \
@ -259,10 +259,10 @@ Index: libvirt-6.1.0/docs/Makefile.am
$(NULL)
manpages7_rst = \
$(KEYCODES:%=manpages/virkeycode-%.rst) \
Index: libvirt-6.1.0/docs/manpages/virt-create-rootfs.rst
Index: libvirt-6.2.0/docs/manpages/virt-create-rootfs.rst
===================================================================
--- /dev/null
+++ libvirt-6.1.0/docs/manpages/virt-create-rootfs.rst
+++ libvirt-6.2.0/docs/manpages/virt-create-rootfs.rst
@@ -0,0 +1,88 @@
+==================
+virt-create-rootfs