Accepting request 876096 from Virtualization

OBS-URL: https://build.opensuse.org/request/show/876096
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=326
This commit is contained in:
Richard Brown 2021-03-05 12:43:20 +00:00 committed by Git OBS Bridge
commit bad03753ca
40 changed files with 330 additions and 1267 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-7.0.0/src/conf/domain_stats.c
Index: libvirt-7.1.0/src/conf/domain_stats.c
===================================================================
--- /dev/null
+++ libvirt-7.0.0/src/conf/domain_stats.c
+++ libvirt-7.1.0/src/conf/domain_stats.c
@@ -0,0 +1,119 @@
+/*
+ * domain_stats.c: domain stats extraction helpers
@ -142,10 +142,10 @@ Index: libvirt-7.0.0/src/conf/domain_stats.c
+}
+
+#undef STATS_ADD_NET_PARAM
Index: libvirt-7.0.0/src/conf/domain_stats.h
Index: libvirt-7.1.0/src/conf/domain_stats.h
===================================================================
--- /dev/null
+++ libvirt-7.0.0/src/conf/domain_stats.h
+++ libvirt-7.1.0/src/conf/domain_stats.h
@@ -0,0 +1,62 @@
+/*
+ * domain_stats.h: domain stats extraction helpers
@ -209,11 +209,11 @@ Index: libvirt-7.0.0/src/conf/domain_stats.h
+ virTypedParamListPtr params);
+
+#endif /* __DOMAIN_STATS_H */
Index: libvirt-7.0.0/src/libvirt_private.syms
Index: libvirt-7.1.0/src/libvirt_private.syms
===================================================================
--- libvirt-7.0.0.orig/src/libvirt_private.syms
+++ libvirt-7.0.0/src/libvirt_private.syms
@@ -741,12 +741,16 @@ virDomainConfNWFilterTeardown;
--- libvirt-7.1.0.orig/src/libvirt_private.syms
+++ libvirt-7.1.0/src/libvirt_private.syms
@@ -745,12 +745,16 @@ virDomainConfNWFilterTeardown;
virDomainConfVMNWFilterTeardown;
@ -231,7 +231,7 @@ Index: libvirt-7.0.0/src/libvirt_private.syms
# conf/interface_conf.h
virInterfaceDefFormat;
virInterfaceDefFree;
@@ -1796,6 +1800,7 @@ virCgroupGetMemoryUsage;
@@ -1898,6 +1902,7 @@ virCgroupGetMemoryUsage;
virCgroupGetMemSwapHardLimit;
virCgroupGetMemSwapUsage;
virCgroupGetPercpuStats;
@ -239,10 +239,10 @@ Index: libvirt-7.0.0/src/libvirt_private.syms
virCgroupHasController;
virCgroupHasEmptyTasks;
virCgroupKillPainfully;
Index: libvirt-7.0.0/src/qemu/qemu_driver.c
Index: libvirt-7.1.0/src/qemu/qemu_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_driver.c
+++ libvirt-7.0.0/src/qemu/qemu_driver.c
--- libvirt-7.1.0.orig/src/qemu/qemu_driver.c
+++ libvirt-7.1.0/src/qemu/qemu_driver.c
@@ -67,6 +67,7 @@
#include "virarptable.h"
#include "viruuid.h"
@ -251,7 +251,7 @@ Index: libvirt-7.0.0/src/qemu/qemu_driver.c
#include "domain_audit.h"
#include "domain_cgroup.h"
#include "domain_driver.h"
@@ -17614,13 +17615,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
@@ -17515,13 +17516,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
virTypedParamListPtr params,
unsigned int privflags G_GNUC_UNUSED)
{
@ -266,7 +266,7 @@ Index: libvirt-7.0.0/src/qemu/qemu_driver.c
}
@@ -17914,25 +17909,11 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
@@ -17815,25 +17810,11 @@ qemuDomainGetStatsCpuCgroup(virDomainObj
virTypedParamListPtr params)
{
qemuDomainObjPrivatePtr priv = dom->privateData;
@ -293,7 +293,7 @@ Index: libvirt-7.0.0/src/qemu/qemu_driver.c
}
@@ -18099,76 +18080,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
@@ -18000,76 +17981,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
return ret;
}
@ -371,11 +371,11 @@ Index: libvirt-7.0.0/src/qemu/qemu_driver.c
/* refresh information by opening images on the disk */
static int
Index: libvirt-7.0.0/src/util/vircgroup.c
Index: libvirt-7.1.0/src/util/vircgroup.c
===================================================================
--- libvirt-7.0.0.orig/src/util/vircgroup.c
+++ libvirt-7.0.0/src/util/vircgroup.c
@@ -2799,6 +2799,31 @@ virCgroupControllerAvailable(int control
--- libvirt-7.1.0.orig/src/util/vircgroup.c
+++ libvirt-7.1.0/src/util/vircgroup.c
@@ -2981,6 +2981,31 @@ virCgroupControllerAvailable(int control
return virCgroupHasController(cgroup, controller);
}
@ -407,7 +407,7 @@ Index: libvirt-7.0.0/src/util/vircgroup.c
#else /* !__linux__ */
bool
@@ -2808,6 +2833,14 @@ virCgroupAvailable(void)
@@ -2990,6 +3015,14 @@ virCgroupAvailable(void)
}
@ -422,10 +422,10 @@ Index: libvirt-7.0.0/src/util/vircgroup.c
int
virCgroupNewPartition(const char *path G_GNUC_UNUSED,
bool create G_GNUC_UNUSED,
Index: libvirt-7.0.0/src/util/vircgroup.h
Index: libvirt-7.1.0/src/util/vircgroup.h
===================================================================
--- libvirt-7.0.0.orig/src/util/vircgroup.h
+++ libvirt-7.0.0/src/util/vircgroup.h
--- libvirt-7.1.0.orig/src/util/vircgroup.h
+++ libvirt-7.1.0/src/util/vircgroup.h
@@ -23,6 +23,7 @@
#include "virbitmap.h"
@ -441,10 +441,10 @@ Index: libvirt-7.0.0/src/util/vircgroup.h
+
+int virCgroupGetStatsCpu(virCgroupPtr cgroup,
+ virTypedParamListPtr params);
Index: libvirt-7.0.0/src/conf/meson.build
Index: libvirt-7.1.0/src/conf/meson.build
===================================================================
--- libvirt-7.0.0.orig/src/conf/meson.build
+++ libvirt-7.0.0/src/conf/meson.build
--- libvirt-7.1.0.orig/src/conf/meson.build
+++ libvirt-7.1.0/src/conf/meson.build
@@ -15,6 +15,7 @@ domain_conf_sources = [
'domain_conf.c',
'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-7.0.0/src/libxl/libxl_driver.c
Index: libvirt-7.1.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.0.0/src/libxl/libxl_driver.c
@@ -5317,6 +5317,96 @@ libxlDomainMemoryStats(virDomainPtr dom,
--- libvirt-7.1.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.1.0/src/libxl/libxl_driver.c
@@ -5311,6 +5311,96 @@ libxlDomainMemoryStats(virDomainPtr dom,
#undef LIBXL_SET_MEMSTAT
@ -120,7 +120,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_driver.c
static int
libxlDomainGetJobInfo(virDomainPtr dom,
virDomainJobInfoPtr info)
@@ -6786,6 +6876,7 @@ static virHypervisorDriver libxlHypervis
@@ -6607,6 +6697,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-7.0.0/src/lxc/lxc_driver.c
Index: libvirt-7.1.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/lxc/lxc_driver.c
+++ libvirt-7.0.0/src/lxc/lxc_driver.c
--- libvirt-7.1.0.orig/src/lxc/lxc_driver.c
+++ libvirt-7.1.0/src/lxc/lxc_driver.c
@@ -74,6 +74,8 @@
#include "netdev_bandwidth_conf.h"
#include "virsocket.h"

View File

@ -1,122 +0,0 @@
commit 19d4e467707e187f6736f24a35f5a51275d869ce
Author: Michal Prívozník <mprivozn@redhat.com>
Date: Thu Jan 28 14:13:32 2021 +0100
conf: Improve virDomainVirtioOptionsCheckABIStability()
The virDomainVirtioOptionsCheckABIStability() function is called
from various ABI stability check functions. Every caller checks
if both old and new definitions have virtio options set and only
after that they call the function. This is suboptimal because:
a) this check can be done in the function itself (making all
callers shorter),
b) is inherently wrong, because it doesn't catch case where one
definition has virtio options set and the other doesn't.
Do proper checks at the beginning of the function and simplify
its calls.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-7.0.0/src/conf/domain_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_conf.c
+++ libvirt-7.0.0/src/conf/domain_conf.c
@@ -21491,6 +21491,15 @@ static bool
virDomainVirtioOptionsCheckABIStability(virDomainVirtioOptionsPtr src,
virDomainVirtioOptionsPtr dst)
{
+ if (!src && !dst)
+ return true;
+
+ if (!src || !dst) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Target device virtio options don't match the source"));
+ return false;
+ }
+
if (src->iommu != dst->iommu) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Target device iommu option '%s' does not "
@@ -21575,8 +21584,7 @@ virDomainDiskDefCheckABIStability(virDom
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21635,8 +21643,7 @@ virDomainControllerDefCheckABIStability(
}
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21669,8 +21676,7 @@ virDomainFsDefCheckABIStability(virDomai
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21718,8 +21724,7 @@ virDomainNetDefCheckABIStability(virDoma
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21757,8 +21762,7 @@ virDomainInputDefCheckABIStability(virDo
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21857,8 +21861,7 @@ virDomainVideoDefCheckABIStability(virDo
}
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -22071,8 +22074,7 @@ virDomainMemballoonDefCheckABIStability(
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -22094,8 +22096,7 @@ virDomainRNGDefCheckABIStability(virDoma
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))

View File

@ -1,27 +0,0 @@
commit 32c5e432044689b6679cdedeb1026f27653449d8
Author: Jim Fehlig <jfehlig@suse.com>
Date: Thu Jan 28 12:09:18 2021 -0700
Revert "remote: Add libvirtd dependency to virt-guest-shutdown.target"
Further testing revealed commit f035f53baa regresses Debian bug 955216
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955216
Restarting libvirt-guests on libvirtd restart is worse than the original
dependency issue, so revert the commit until a better solution is found.
This reverts commit f035f53baa2e5dc00b8e866e594672a90b4cea78.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Index: libvirt-7.0.0/src/remote/virt-guest-shutdown.target
===================================================================
--- libvirt-7.0.0.orig/src/remote/virt-guest-shutdown.target
+++ libvirt-7.0.0/src/remote/virt-guest-shutdown.target
@@ -1,4 +1,3 @@
[Unit]
Description=Libvirt guests shutdown
-Requires=libvirtd.service
Documentation=https://libvirt.org

View File

@ -1,120 +0,0 @@
commit 7cf60006ce1e9898b960d7810f146ac6c89f6bb0
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Feb 9 14:57:22 2021 -0700
qemu: Fix swtpm device with aarch64
Starting a VM with swtpm device fails with qemu-system-aarch64.
E.g. with TPM device config
<tpm model='tpm-tis'>
<backend type='emulator' version='2.0'/>
</tpm>
QEMU reports the following error
error: internal error: process exited while connecting to monitor:
2021-02-07T05:15:35.378927Z qemu-system-aarch64: -device
tpm-tis,tpmdev=tpm-tpm0,id=tpm0: 'tpm-tis' is not a valid device model name
Indeed the TPM device name is 'tpm-tis-device' [1][2] for aarch64,
versus the shorter 'tpm-tis' for x86. The devices are the same from
a functional POV, i.e. they both emulate a TPM device conforming to
the TIS specification. Account for the unfortunate name difference
when building the TPM device option in qemuBuildTPMDevStr(). Also
include a test case for 'tpm-tis-device'.
[1] https://qemu.readthedocs.io/en/latest/specs/tpm.html
[2] https://github.com/qemu/qemu/commit/c294ac327ca99342b90bd3a83d2cef9b447afaa7
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Index: libvirt-7.0.0/src/qemu/qemu_command.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_command.c
+++ libvirt-7.0.0/src/qemu/qemu_command.c
@@ -9163,6 +9163,9 @@ qemuBuildTPMDevStr(const virDomainDef *d
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
const char *model = virDomainTPMModelTypeToString(tpm->model);
+ if (tpm->model == VIR_DOMAIN_TPM_MODEL_TIS && def->os.arch == VIR_ARCH_AARCH64)
+ model = "tpm-tis-device";
+
virBufferAsprintf(&buf, "%s,tpmdev=tpm-%s,id=%s",
model, tpm->info.alias, tpm->info.alias);
Index: libvirt-7.0.0/tests/qemuxml2argvdata/aarch64-tpm.aarch64-latest.args
===================================================================
--- /dev/null
+++ libvirt-7.0.0/tests/qemuxml2argvdata/aarch64-tpm.aarch64-latest.args
@@ -0,0 +1,37 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-aarch64test \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-aarch64test/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-aarch64test/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-aarch64test/.config \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-aarch64 \
+-name guest=aarch64test,debug-threads=on \
+-S \
+-object secret,id=masterKey0,format=raw,\
+file=/tmp/lib/domain--1-aarch64test/master-key.aes \
+-machine virt,accel=tcg,usb=off,dump-guest-core=off,gic-version=2,\
+memory-backend=mach-virt.ram \
+-cpu cortex-a15 \
+-m 1024 \
+-object memory-backend-ram,id=mach-virt.ram,size=1073741824 \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid 496d7ea8-9739-544b-4ebd-ef08be936e8b \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-no-acpi \
+-boot strict=on \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-chardev socket,id=chrtpm,path=/dev/test \
+-device tpm-tis-device,tpmdev=tpm-tpm0,id=tpm0 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
+resourcecontrol=deny \
+-msg timestamp=on
Index: libvirt-7.0.0/tests/qemuxml2argvdata/aarch64-tpm.xml
===================================================================
--- /dev/null
+++ libvirt-7.0.0/tests/qemuxml2argvdata/aarch64-tpm.xml
@@ -0,0 +1,15 @@
+<domain type="qemu">
+ <name>aarch64test</name>
+ <uuid>496d7ea8-9739-544b-4ebd-ef08be936e8b</uuid>
+ <memory>1048576</memory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch="aarch64" machine="virt">hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-aarch64</emulator>
+ <tpm model='tpm-tis'>
+ <backend type='emulator' version='2.0'/>
+ </tpm>
+ </devices>
+</domain>
Index: libvirt-7.0.0/tests/qemuxml2argvtest.c
===================================================================
--- libvirt-7.0.0.orig/tests/qemuxml2argvtest.c
+++ libvirt-7.0.0/tests/qemuxml2argvtest.c
@@ -2476,6 +2476,7 @@ mymain(void)
DO_TEST_CAPS_LATEST("tpm-emulator-tpm2-enc");
DO_TEST_CAPS_LATEST("tpm-emulator-tpm2-pstate");
DO_TEST_CAPS_LATEST_PPC64("tpm-emulator-spapr");
+ DO_TEST_CAPS_ARCH_LATEST("aarch64-tpm", "aarch64");
DO_TEST_PARSE_ERROR("pci-domain-invalid", NONE);
DO_TEST_PARSE_ERROR("pci-bus-invalid", NONE);

View File

@ -1,163 +0,0 @@
commit 8a4b8996f78f86bf10fea3e91d54e82db168547b
Author: Michal Prívozník <mprivozn@redhat.com>
Date: Thu Jan 28 14:06:55 2021 +0100
conf: Move virDomainCheckVirtioOptions() into domain_validate.c
The aim of virDomainCheckVirtioOptions() function is to check
whether no virtio options are set, i.e. no @iommu no @ats and no
@packed attributes were present in given device's XML (yeah, the
function has very misleading name). Nevertheless, this kind of
check belongs to validation phase, but now is done in post parse
phase. Move the function and its calls to domain_validate.c so
that future code is not tempted to repeat this mistake.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-7.0.0/src/conf/domain_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_conf.c
+++ libvirt-7.0.0/src/conf/domain_conf.c
@@ -5130,34 +5130,6 @@ virDomainHostdevDefPostParse(virDomainHo
}
-static int
-virDomainCheckVirtioOptions(virDomainVirtioOptionsPtr virtio)
-{
- if (!virtio)
- return 0;
-
- if (virtio->iommu != VIR_TRISTATE_SWITCH_ABSENT) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("iommu driver option is only supported "
- "for virtio devices"));
- return -1;
- }
- if (virtio->ats != VIR_TRISTATE_SWITCH_ABSENT) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("ats driver option is only supported "
- "for virtio devices"));
- return -1;
- }
- if (virtio->packed != VIR_TRISTATE_SWITCH_ABSENT) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("packed driver option is only supported "
- "for virtio devices"));
- return -1;
- }
- return 0;
-}
-
-
static void
virDomainChrDefPostParse(virDomainChrDefPtr chr,
const virDomainDef *def)
@@ -5254,11 +5226,6 @@ virDomainDiskDefPostParse(virDomainDiskD
virDomainPostParseCheckISCSIPath(&disk->src->path);
}
- if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO &&
- virDomainCheckVirtioOptions(disk->virtio) < 0) {
- return -1;
- }
-
if (disk->src->type == VIR_STORAGE_TYPE_NVME) {
if (disk->src->nvme->managed == VIR_TRISTATE_BOOL_ABSENT)
disk->src->nvme->managed = VIR_TRISTATE_BOOL_YES;
@@ -5308,13 +5275,8 @@ virDomainControllerDefPostParse(virDomai
static int
-virDomainNetDefPostParse(virDomainNetDefPtr net)
+virDomainNetDefPostParse(virDomainNetDefPtr net G_GNUC_UNUSED)
{
- if (!virDomainNetIsVirtioModel(net) &&
- virDomainCheckVirtioOptions(net->virtio) < 0) {
- return -1;
- }
-
return 0;
}
Index: libvirt-7.0.0/src/conf/domain_validate.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_validate.c
+++ libvirt-7.0.0/src/conf/domain_validate.c
@@ -226,6 +226,34 @@ virSecurityDeviceLabelDefValidate(virSec
}
+static int
+virDomainCheckVirtioOptions(virDomainVirtioOptionsPtr virtio)
+{
+ if (!virtio)
+ return 0;
+
+ if (virtio->iommu != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("iommu driver option is only supported "
+ "for virtio devices"));
+ return -1;
+ }
+ if (virtio->ats != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("ats driver option is only supported "
+ "for virtio devices"));
+ return -1;
+ }
+ if (virtio->packed != VIR_TRISTATE_SWITCH_ABSENT) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("packed driver option is only supported "
+ "for virtio devices"));
+ return -1;
+ }
+ return 0;
+}
+
+
#define VENDOR_LEN 8
#define PRODUCT_LEN 16
@@ -277,15 +305,19 @@ virDomainDiskDefValidate(const virDomain
return -1;
}
- if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO &&
- (disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO ||
- disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO_TRANSITIONAL ||
- disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO_NON_TRANSITIONAL)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("disk model '%s' not supported for bus '%s'"),
- virDomainDiskModelTypeToString(disk->model),
- virDomainDiskBusTypeToString(disk->bus));
- return -1;
+ if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO) {
+ if (disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO ||
+ disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO_TRANSITIONAL ||
+ disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO_NON_TRANSITIONAL) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("disk model '%s' not supported for bus '%s'"),
+ virDomainDiskModelTypeToString(disk->model),
+ virDomainDiskBusTypeToString(disk->bus));
+ return -1;
+ }
+
+ if (virDomainCheckVirtioOptions(disk->virtio) < 0)
+ return -1;
}
if (disk->src->type == VIR_STORAGE_TYPE_NVME) {
@@ -1330,6 +1362,11 @@ virDomainNetDefValidate(const virDomainN
return -1;
}
+ if (!virDomainNetIsVirtioModel(net) &&
+ virDomainCheckVirtioOptions(net->virtio) < 0) {
+ return -1;
+ }
+
return 0;
}

View File

@ -1,30 +0,0 @@
commit afb823fc501cf5b17d2d2b555487abf67c225a7c
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Feb 9 15:47:30 2021 -0700
qemu: Validate TPM TIS device
TPM devices with model='tpm-tis' are only valid with x86 and aarch64
virt machines. Add a check to qemuValidateDomainDeviceDefTPM() to
ensure VIR_DOMAIN_TPM_MODEL_TIS is only used with these architectures.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Index: libvirt-7.0.0/src/qemu/qemu_validate.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_validate.c
+++ libvirt-7.0.0/src/qemu/qemu_validate.c
@@ -4251,6 +4251,12 @@ qemuValidateDomainDeviceDefTPM(virDomain
switch (tpm->model) {
case VIR_DOMAIN_TPM_MODEL_TIS:
+ if (!ARCH_IS_X86(def->os.arch) && (def->os.arch != VIR_ARCH_AARCH64)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("TPM model '%s' is only available for x86 and aarch64 guests"),
+ virDomainTPMModelTypeToString(tpm->model));
+ return -1;
+ }
flag = QEMU_CAPS_DEVICE_TPM_TIS;
break;
case VIR_DOMAIN_TPM_MODEL_CRB:

View File

@ -1,326 +0,0 @@
commit bd112c9e0f7523b90bf1362cf60deea7db05a32b
Author: Boris Fiuczynski <fiuczy@linux.ibm.com>
Date: Wed Jan 27 19:46:59 2021 +0100
qemu: Add virtio related options to vsock
Add virtio related options iommu, ats and packed as driver element attributes
to vsock devices. Ex:
<vsock model='virtio'>
<cid auto='no' address='3'/>
<driver iommu='on'/>
</vsock>
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Index: libvirt-7.0.0/docs/formatdomain.rst
===================================================================
--- libvirt-7.0.0.orig/docs/formatdomain.rst
+++ libvirt-7.0.0/docs/formatdomain.rst
@@ -7414,6 +7414,8 @@ devices <#elementsVirtioTransitional>`__
attribute ``address`` of the ``cid`` element specifies the CID assigned to the
guest. If the attribute ``auto`` is set to ``yes``, libvirt will assign a free
CID automatically on domain startup. :since:`Since 4.4.0`
+The optional ``driver`` element allows to specify virtio options, see
+`Virtio-specific options <#elementsVirtio>`__ for more details. :since:`Since 7.1.0`
::
Index: libvirt-7.0.0/docs/schemas/domaincommon.rng
===================================================================
--- libvirt-7.0.0.orig/docs/schemas/domaincommon.rng
+++ libvirt-7.0.0/docs/schemas/domaincommon.rng
@@ -4883,6 +4883,11 @@
<optional>
<ref name="alias"/>
</optional>
+ <optional>
+ <element name="driver">
+ <ref name="virtioOptions"/>
+ </element>
+ </optional>
</interleave>
</element>
</define>
Index: libvirt-7.0.0/src/conf/domain_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_conf.c
+++ libvirt-7.0.0/src/conf/domain_conf.c
@@ -2456,6 +2456,7 @@ virDomainVsockDefFree(virDomainVsockDefP
virObjectUnref(vsock->privateData);
virDomainDeviceInfoClear(&vsock->info);
+ VIR_FREE(vsock->virtio);
VIR_FREE(vsock);
}
@@ -15624,6 +15625,11 @@ virDomainVsockDefParseXML(virDomainXMLOp
if (virDomainDeviceInfoParseXML(xmlopt, node, &vsock->info, flags) < 0)
return NULL;
+ if (virDomainVirtioOptionsParseXML(virXPathNode("./driver", ctxt),
+ &vsock->virtio) < 0)
+ return NULL;
+
+
return g_steal_pointer(&vsock);
}
@@ -22806,6 +22812,9 @@ virDomainVsockDefCheckABIStability(virDo
return false;
}
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ return false;
+
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
return false;
@@ -27994,6 +28003,7 @@ virDomainVsockDefFormat(virBufferPtr buf
g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(buf);
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
g_auto(virBuffer) cidAttrBuf = VIR_BUFFER_INITIALIZER;
+ g_auto(virBuffer) drvAttrBuf = VIR_BUFFER_INITIALIZER;
if (vsock->model) {
virBufferAsprintf(&attrBuf, " model='%s'",
@@ -28010,6 +28020,9 @@ virDomainVsockDefFormat(virBufferPtr buf
virDomainDeviceInfoFormat(&childBuf, &vsock->info, 0);
+ virDomainVirtioOptionsFormat(&drvAttrBuf, vsock->virtio);
+
+ virXMLFormatElement(&childBuf, "driver", &drvAttrBuf, NULL);
virXMLFormatElement(buf, "vsock", &attrBuf, &childBuf);
}
Index: libvirt-7.0.0/src/conf/domain_conf.h
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_conf.h
+++ libvirt-7.0.0/src/conf/domain_conf.h
@@ -2542,6 +2542,7 @@ struct _virDomainVsockDef {
virTristateBool auto_cid;
virDomainDeviceInfo info;
+ virDomainVirtioOptionsPtr virtio;
};
struct _virDomainVirtioOptions {
Index: libvirt-7.0.0/src/conf/domain_validate.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_validate.c
+++ libvirt-7.0.0/src/conf/domain_validate.c
@@ -1450,6 +1450,15 @@ virDomainMemoryDefValidate(const virDoma
}
+static bool
+virDomainVsockIsVirtioModel(const virDomainVsockDef *vsock)
+{
+ return (vsock->model == VIR_DOMAIN_VSOCK_MODEL_VIRTIO ||
+ vsock->model == VIR_DOMAIN_VSOCK_MODEL_VIRTIO_TRANSITIONAL ||
+ vsock->model == VIR_DOMAIN_VSOCK_MODEL_VIRTIO_NON_TRANSITIONAL);
+}
+
+
static int
virDomainVsockDefValidate(const virDomainVsockDef *vsock)
{
@@ -1459,6 +1468,10 @@ virDomainVsockDefValidate(const virDomai
return -1;
}
+ if (!virDomainVsockIsVirtioModel(vsock) &&
+ virDomainCheckVirtioOptions(vsock->virtio) < 0)
+ return -1;
+
return 0;
}
Index: libvirt-7.0.0/src/qemu/qemu_command.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_command.c
+++ libvirt-7.0.0/src/qemu/qemu_command.c
@@ -9731,6 +9731,9 @@ qemuBuildVsockDevStr(virDomainDefPtr def
virBufferAsprintf(&buf, ",id=%s", vsock->info.alias);
virBufferAsprintf(&buf, ",guest-cid=%u", vsock->guest_cid);
virBufferAsprintf(&buf, ",vhostfd=%s%u", fdprefix, priv->vhostfd);
+
+ qemuBuildVirtioOptionsStr(&buf, vsock->virtio);
+
if (qemuBuildDeviceAddressStr(&buf, def, &vsock->info, qemuCaps) < 0)
return NULL;
Index: libvirt-7.0.0/src/qemu/qemu_validate.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_validate.c
+++ libvirt-7.0.0/src/qemu/qemu_validate.c
@@ -4200,6 +4200,9 @@ qemuValidateDomainDeviceDefVsock(const v
"vsock"))
return -1;
+ if (qemuValidateDomainVirtioOptions(vsock->virtio, qemuCaps) < 0)
+ return -1;
+
return 0;
}
Index: libvirt-7.0.0/tests/qemuxml2argvdata/vhost-vsock-ccw-iommu.s390x-latest.args
===================================================================
--- /dev/null
+++ libvirt-7.0.0/tests/qemuxml2argvdata/vhost-vsock-ccw-iommu.s390x-latest.args
@@ -0,0 +1,42 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-QEMUGuest1 \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-s390x \
+-name guest=QEMUGuest1,debug-threads=on \
+-S \
+-object secret,id=masterKey0,format=raw,\
+file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
+-machine s390-ccw-virtio,accel=tcg,usb=off,dump-guest-core=off,\
+memory-backend=s390.ram \
+-cpu qemu \
+-m 214 \
+-object memory-backend-ram,id=s390.ram,size=224395264 \
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server,nowait \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=utc \
+-no-shutdown \
+-boot strict=on \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-ccw,devno=fe.0.0000,drive=libvirt-1-format,id=virtio-disk0,\
+bootindex=1 \
+-device virtio-balloon-ccw,id=balloon0,devno=fe.0.0001 \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
+resourcecontrol=deny \
+-device vhost-vsock-ccw,id=vsock0,guest-cid=4,vhostfd=6789,iommu_platform=on,\
+devno=fe.0.0002 \
+-msg timestamp=on
Index: libvirt-7.0.0/tests/qemuxml2argvdata/vhost-vsock-ccw-iommu.xml
===================================================================
--- /dev/null
+++ libvirt-7.0.0/tests/qemuxml2argvdata/vhost-vsock-ccw-iommu.xml
@@ -0,0 +1,37 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='virtio'/>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
+ </disk>
+ <controller type='pci' index='0' model='pci-root'/>
+ <memballoon model='virtio'>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0001'/>
+ </memballoon>
+ <panic model='s390'/>
+ <vsock model='virtio'>
+ <cid auto='no' address='4'/>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0002'/>
+ <driver iommu='on'/>
+ </vsock>
+ </devices>
+</domain>
Index: libvirt-7.0.0/tests/qemuxml2argvtest.c
===================================================================
--- libvirt-7.0.0.orig/tests/qemuxml2argvtest.c
+++ libvirt-7.0.0/tests/qemuxml2argvtest.c
@@ -3400,6 +3400,7 @@ mymain(void)
DO_TEST_CAPS_LATEST("vhost-vsock-auto");
DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw", "s390x");
DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw-auto", "s390x");
+ DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw-iommu", "s390x");
DO_TEST_CAPS_VER("launch-security-sev", "2.12.0");
DO_TEST_CAPS_VER("launch-security-sev-missing-platform-info", "2.12.0");
Index: libvirt-7.0.0/tests/qemuxml2xmloutdata/vhost-vsock-ccw-iommu.s390x-latest.xml
===================================================================
--- /dev/null
+++ libvirt-7.0.0/tests/qemuxml2xmloutdata/vhost-vsock-ccw-iommu.s390x-latest.xml
@@ -0,0 +1,37 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219136</memory>
+ <currentMemory unit='KiB'>219136</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='s390x' machine='s390-ccw-virtio'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <cpu mode='custom' match='exact' check='none'>
+ <model fallback='forbid'>qemu</model>
+ </cpu>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu-system-s390x</emulator>
+ <disk type='block' device='disk'>
+ <driver name='qemu' type='raw'/>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='virtio'/>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
+ </disk>
+ <controller type='pci' index='0' model='pci-root'/>
+ <memballoon model='virtio'>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0001'/>
+ </memballoon>
+ <panic model='s390'/>
+ <vsock model='virtio'>
+ <cid auto='no' address='4'/>
+ <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0002'/>
+ <driver iommu='on'/>
+ </vsock>
+ </devices>
+</domain>
Index: libvirt-7.0.0/tests/qemuxml2xmltest.c
===================================================================
--- libvirt-7.0.0.orig/tests/qemuxml2xmltest.c
+++ libvirt-7.0.0/tests/qemuxml2xmltest.c
@@ -1402,6 +1402,8 @@ mymain(void)
QEMU_CAPS_CCW);
DO_TEST("vhost-vsock-ccw-auto", QEMU_CAPS_DEVICE_VHOST_VSOCK,
QEMU_CAPS_CCW);
+ DO_TEST_CAPS_ARCH_LATEST("vhost-vsock-ccw-iommu", "s390x");
+
DO_TEST_CAPS_LATEST("vhost-user-fs-fd-memory");
DO_TEST_CAPS_LATEST("vhost-user-fs-hugepages");

View File

@ -1,49 +0,0 @@
commit c05f00666c730de95a2e18f75326d3e9ee128bdd
Author: Michal Prívozník <mprivozn@redhat.com>
Date: Thu Jan 28 14:08:24 2021 +0100
conf: Drop empty virDomainNetDefPostParse()
The previous commit rendered this function empty and needless.
Remove it.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-7.0.0/src/conf/domain_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_conf.c
+++ libvirt-7.0.0/src/conf/domain_conf.c
@@ -5274,13 +5274,6 @@ virDomainControllerDefPostParse(virDomai
}
-static int
-virDomainNetDefPostParse(virDomainNetDefPtr net G_GNUC_UNUSED)
-{
- return 0;
-}
-
-
static void
virDomainVsockDefPostParse(virDomainVsockDefPtr vsock)
{
@@ -5329,10 +5322,6 @@ virDomainDeviceDefPostParseCommon(virDom
ret = virDomainControllerDefPostParse(dev->data.controller);
break;
- case VIR_DOMAIN_DEVICE_NET:
- ret = virDomainNetDefPostParse(dev->data.net);
- break;
-
case VIR_DOMAIN_DEVICE_VSOCK:
virDomainVsockDefPostParse(dev->data.vsock);
ret = 0;
@@ -5340,6 +5329,7 @@ virDomainDeviceDefPostParseCommon(virDom
case VIR_DOMAIN_DEVICE_LEASE:
case VIR_DOMAIN_DEVICE_FS:
+ case VIR_DOMAIN_DEVICE_NET:
case VIR_DOMAIN_DEVICE_INPUT:
case VIR_DOMAIN_DEVICE_SOUND:
case VIR_DOMAIN_DEVICE_WATCHDOG:

View File

@ -1,34 +0,0 @@
commit e3d60f761c7fc1c254e39ea8e42161698c0ee7b5
Author: Jim Fehlig <jfehlig@suse.com>
Date: Tue Feb 9 08:55:41 2021 -0700
build: Fix generation of virtproxyd socket files
The various virtproxyd socket files are generated with invalid syntax,
e.g. from virtproxyd.socket
[Unit]
Description=Libvirt proxy local socket
Before=virtproxyd.service
libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tcp.socket libvirtd-tls.socket
Note the missing 'Conflicts=' in the last line. Fix it by prepending
'Conflicts=' to libvirtd_socket_conflicts when adding virtproxyd
to virt_daemon_units.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Index: libvirt-7.0.0/src/remote/meson.build
===================================================================
--- libvirt-7.0.0.orig/src/remote/meson.build
+++ libvirt-7.0.0/src/remote/meson.build
@@ -230,7 +230,7 @@ if conf.has('WITH_REMOTE')
'name': 'Libvirt proxy',
'sockprefix': 'libvirt',
'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ],
- 'deps': libvirtd_socket_conflicts,
+ 'deps': 'Conflicts=' + libvirtd_socket_conflicts,
}
openrc_init_files += {

View File

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

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEERTtlMQWVVihVRxGZymi+gBAITJwFAmABWDMACgkQymi+gBAI
TJw++g//bm0kEnJtFg5dtirTqDrOVoots/9QJsAyjOq7o/BeKlTzbIeGScRSfYIm
iMDnRqtNSihunntklmP6uetzXBTJIqzyKAi/dMM2mVY7ueC4EK34WoQswPOQVMuc
o4qU4zF0+pJexorKlBQce35gQsHy73mqUAOx+sf6ndGAHPNbZhJ6G60uqwrRfwRl
OWbBqCKp3SJ34tMN2wd2bB7yBK2eD0oGbyAcQZ58kfcbJSSmqagfDQko6lCJcx9K
QAbN3XdMyvUJL6o/Yqu9h7hs1k3QUjUqdXpVVwV1EGStZFylP3fmos5m/OM82tmY
rmViyaDQU05eDrYtwy6pfabdgibOhIt/YUkxnY+ey1GZwSlUqdwxyEkfWGL5tn75
41qyiltV3NLS/C8ZOTGla/ZGj4Q7fkXo6u0bLk8TPypsywHh1wRp8Azns+NDLgP3
tMirz3Suqbrwgfs6mfD87Nw5C/MAJcdFshamKvX/j89Bas+rjeoFs37P2ggvcdWl
HcFmhgAk2Me/LbkSbcSiaUreq1EUM4CzmAoHYVFmYSw9Ycb83/+WHm2uQnIyHGfM
7U3F8cuBVKE/mj6bEVbBDHBf6Vx/EkQdS+J0rmGYZaIStlSatnZoI7dWOa1pqY3X
Tqk8syK9KqmQaWM2Fa/OKkHBIxbf9hLgvewEI1vt+Vt/rIj/JHQ=
=ROx5
-----END PGP SIGNATURE-----

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

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

16
libvirt-7.1.0.tar.xz.asc Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEERTtlMQWVVihVRxGZymi+gBAITJwFAmA8ySIACgkQymi+gBAI
TJz9lA/+P9rkzHysDajRUdQB35uW3a2xT/wS598J2sucJ1Ff6UTvwbyuLwLm9qE8
2X0dZWpNshjnQ/Oj5F/qMa/MRQK3pSSks6gWmWFUw5eW/sQydxn41OIFEuLbAmdT
W6538/vLVGakVLhJlvL9DxBC5kXzESkik3I5ORHNGMEAgDkSF1rj4MFYhYqNNV0B
pwVIkbSBTWyW0bsqID1KT3ygq5qYWTwE9Gd06uAORCmZebpBgtdldLnkqAp4rog0
gDyAY0AQ9PnsqCUowpgKzK2tPtJZ+lRz9M0xFG3OypNEmoqcnc3OlNVONB+7EYKW
dmLNwa24UWyOJMjKmZivvC2kqhQ0YqLxjb3oMUiLFkn4ahAspCfySG2fb9wfo3wh
Z5p1j/gpbSJU/hD7ifkqNPxIGDZHuzmTDeLZ6Q7kBENY3/aS99dOKHfpPV2/gYoJ
ZvVbzraUBsl1rTkK3btKevq/0LGJDfM5/YmEPrH6auXLq0a/TNDv19uZaqpPr8Gh
Y5r3gXS8RUmgG7zH0acaCYBXM02INNmVrlc6n4BGFnWgsqgEzdEgGtsfBcMoqhan
/pBzs33FZxaMhFLPpqLamR7aDxkrlpynWYqKnAKxymwPZR7DgoeMbJEabWiDuwDN
OA7MkTcyGa1OXaymUf7MYD3y0aDl4Uh2tNd80RmE+DTm9UvGH9M=
=4z9B
-----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-7.0.0/src/cpu_map/ppc64_POWER8.xml
Index: libvirt-7.1.0/src/cpu_map/ppc64_POWER8.xml
===================================================================
--- libvirt-7.0.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-7.0.0/src/cpu_map/ppc64_POWER8.xml
--- libvirt-7.1.0.orig/src/cpu_map/ppc64_POWER8.xml
+++ libvirt-7.1.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-7.0.0/tools/virsh.c
Index: libvirt-7.1.0/tools/virsh.c
===================================================================
--- libvirt-7.0.0.orig/tools/virsh.c
+++ libvirt-7.0.0/tools/virsh.c
--- libvirt-7.1.0.orig/tools/virsh.c
+++ libvirt-7.1.0/tools/virsh.c
@@ -543,6 +543,8 @@ virshShowVersion(vshControl *ctl G_GNUC_
vshPrint(ctl, " Interface");
# if defined(WITH_NETCF)
@ -11,10 +11,10 @@ Index: libvirt-7.0.0/tools/virsh.c
# elif defined(WITH_UDEV)
vshPrint(ctl, " udev");
# endif
Index: libvirt-7.0.0/src/interface/interface_backend_netcf.c
Index: libvirt-7.1.0/src/interface/interface_backend_netcf.c
===================================================================
--- libvirt-7.0.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-7.0.0/src/interface/interface_backend_netcf.c
--- libvirt-7.1.0.orig/src/interface/interface_backend_netcf.c
+++ libvirt-7.1.0/src/interface/interface_backend_netcf.c
@@ -21,7 +21,12 @@
#include <config.h>
@ -126,10 +126,10 @@ Index: libvirt-7.0.0/src/interface/interface_backend_netcf.c
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
return -1;
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
Index: libvirt-7.0.0/src/interface/interface_driver.c
Index: libvirt-7.1.0/src/interface/interface_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/interface/interface_driver.c
+++ libvirt-7.0.0/src/interface/interface_driver.c
--- libvirt-7.1.0.orig/src/interface/interface_driver.c
+++ libvirt-7.1.0/src/interface/interface_driver.c
@@ -30,8 +30,15 @@ interfaceRegister(void)
if (netcfIfaceRegister() == 0)
return 0;
@ -147,12 +147,12 @@ Index: libvirt-7.0.0/src/interface/interface_driver.c
if (udevIfaceRegister() == 0)
return 0;
#endif /* WITH_UDEV */
Index: libvirt-7.0.0/meson.build
Index: libvirt-7.1.0/meson.build
===================================================================
--- libvirt-7.0.0.orig/meson.build
+++ libvirt-7.0.0/meson.build
@@ -1159,6 +1159,12 @@ if netcf_dep.found()
conf.set('WITH_NETCF', 1)
--- libvirt-7.1.0.orig/meson.build
+++ libvirt-7.1.0/meson.build
@@ -1162,6 +1162,12 @@ if not get_option('netcf').disabled()
endif
endif
+netcontrol_version = '0.2.0'
@ -164,12 +164,12 @@ Index: libvirt-7.0.0/meson.build
have_gnu_gettext_tools = false
if not get_option('nls').disabled()
have_gettext = cc.has_function('gettext')
@@ -1550,10 +1556,10 @@ elif get_option('driver_hyperv').enabled
@@ -1553,10 +1559,10 @@ elif get_option('driver_hyperv').enabled
error('openwsman is required for the Hyper-V driver')
endif
-if not get_option('driver_interface').disabled() and conf.has('WITH_LIBVIRTD') and (udev_dep.found() or netcf_dep.found())
+if not get_option('driver_interface').disabled() and conf.has('WITH_LIBVIRTD') and (udev_dep.found() or netcf_dep.found() or netcontrol_dep.found())
-if not get_option('driver_interface').disabled() and conf.has('WITH_LIBVIRTD') and (udev_dep.found() or conf.has('WITH_NETCF'))
+if not get_option('driver_interface').disabled() and conf.has('WITH_LIBVIRTD') and (udev_dep.found() or conf.has('WITH_NETCF') or netcontrol_dep.found())
conf.set('WITH_INTERFACE', 1)
elif get_option('driver_interface').enabled()
- error('Requested the Interface driver without netcf or udev and libvirtd support')
@ -177,18 +177,18 @@ Index: libvirt-7.0.0/meson.build
endif
if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
@@ -2363,6 +2369,7 @@ libs_summary = {
@@ -2360,6 +2366,7 @@ libs_summary = {
'libssh2': libssh2_dep.found(),
'libutil': libutil_dep.found(),
'netcf': netcf_dep.found(),
'netcf': conf.has('WITH_NETCF'),
+ 'netcontrol': netcontrol_dep.found(),
'NLS': have_gnu_gettext_tools,
'numactl': numactl_dep.found(),
'openwsman': openwsman_dep.found(),
Index: libvirt-7.0.0/src/interface/meson.build
Index: libvirt-7.1.0/src/interface/meson.build
===================================================================
--- libvirt-7.0.0.orig/src/interface/meson.build
+++ libvirt-7.0.0/src/interface/meson.build
--- libvirt-7.1.0.orig/src/interface/meson.build
+++ libvirt-7.1.0/src/interface/meson.build
@@ -2,7 +2,7 @@ interface_driver_sources = [
'interface_driver.c',
]
@ -206,10 +206,10 @@ Index: libvirt-7.0.0/src/interface/meson.build
udev_dep,
],
'link_args': [
Index: libvirt-7.0.0/meson_options.txt
Index: libvirt-7.1.0/meson_options.txt
===================================================================
--- libvirt-7.0.0.orig/meson_options.txt
+++ libvirt-7.0.0/meson_options.txt
--- libvirt-7.1.0.orig/meson_options.txt
+++ libvirt-7.1.0/meson_options.txt
@@ -28,6 +28,7 @@ option('libpcap', type: 'feature', value
option('libssh', type: 'feature', value: 'auto', description: 'libssh support')
option('libssh2', type: 'feature', value: 'auto', description: 'libssh2 support')

View File

@ -1,3 +1,35 @@
-------------------------------------------------------------------
Mon Mar 1 23:06:57 UTC 2021 - James Fehlig <jfehlig@suse.com>
- libxl: Fix node device detach when driver unspecified
libxl-default-pcistub-name.patch
boo#1182885
- spec: Bump minimum glib version to 2.56
-------------------------------------------------------------------
Mon Mar 1 15:27:37 UTC 2021 - James Fehlig <jfehlig@suse.com>
- Update to libvirt 7.1.0
- Many incremental improvements and bug fixes, see
https://libvirt.org/news.html
- bsc#1182367, bsc#1182515
- Dropped patches:
32c5e432-revert-f035f53b.patch,
e3d60f76-fix-socket-file-gen.patch,
7cf60006-qemu-swtpm-aarch64.patch,
afb823fc-qemu-validate-swtpm.patch,
8a4b8996-conf-move-virDomainCheckVirtioOptions.patch,
c05f0066-conf-drop-empty-virDomainNetDefPostParse.patch,
19d4e467-conf-improve-virDomainVirtioOptionsCheckABIStability.patch,
bd112c9e-qemu-virtio-options-vsock.patch
-------------------------------------------------------------------
Sat Feb 20 00:51:09 UTC 2021 - James Fehlig <jfehlig@suse.com>
- Remove old initscript patching of libvirt-guests.sh
Modified suse-libvirt-guests-service.patch
boo#1182494
-------------------------------------------------------------------
Wed Feb 17 15:11:25 UTC 2021 - James Fehlig <jfehlig@suse.com>

View File

@ -141,7 +141,7 @@
Name: libvirt
URL: http://libvirt.org/
Version: 7.0.0
Version: 7.1.0
Release: 0
Summary: Library providing a virtualization API
License: LGPL-2.1-or-later
@ -190,7 +190,7 @@ BuildRequires: qemu-tools
%endif
BuildRequires: bash-completion-devel >= 2.0
BuildRequires: fdupes
BuildRequires: glib2-devel >= 2.48
BuildRequires: glib2-devel >= 2.56
BuildRequires: libattr-devel
BuildRequires: libgcrypt-devel
BuildRequires: libgnutls-devel
@ -291,17 +291,10 @@ Source6: libvirtd-relocation-server.xml
Source99: baselibs.conf
Source100: %{name}-rpmlintrc
# Upstream patches
Patch0: 32c5e432-revert-f035f53b.patch
Patch1: e3d60f76-fix-socket-file-gen.patch
Patch2: 7cf60006-qemu-swtpm-aarch64.patch
Patch3: afb823fc-qemu-validate-swtpm.patch
Patch4: 8a4b8996-conf-move-virDomainCheckVirtioOptions.patch
Patch5: c05f0066-conf-drop-empty-virDomainNetDefPostParse.patch
Patch6: 19d4e467-conf-improve-virDomainVirtioOptionsCheckABIStability.patch
Patch7: bd112c9e-qemu-virtio-options-vsock.patch
# Patches pending upstream review
Patch100: libxl-dom-reset.patch
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
Patch102: libxl-default-pcistub-name.patch
# Need to go upstream
Patch150: libvirt-power8-models.patch
Patch151: ppc64le-canonical-name.patch
@ -1440,6 +1433,7 @@ fi
%doc %{_mandir}/man8/libvirtd.8*
%doc %{_mandir}/man8/virtlogd.8*
%doc %{_mandir}/man8/virtlockd.8*
%doc %{_mandir}/man8/virtproxyd.8*
%doc %{_mandir}/man7/virkey*.7*
%if %{with_apparmor}
%dir %{_sysconfdir}/apparmor.d
@ -1486,6 +1480,7 @@ fi
%{_sbindir}/rcvirtinterfaced
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_interface.so
%doc %{_mandir}/man8/virtinterfaced.8*
%files daemon-driver-network
%{_fillupdir}/sysconfig.virtnetworkd
@ -1510,6 +1505,7 @@ fi
%dir %{_prefix}/lib/firewalld/zones/
%{_prefix}/lib/firewalld/zones/libvirt.xml
%endif
%doc %{_mandir}/man8/virtnetworkd.8*
%files daemon-driver-nodedev
%{_fillupdir}/sysconfig.virtnodedevd
@ -1524,6 +1520,7 @@ fi
%{_sbindir}/rcvirtnodedevd
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so
%doc %{_mandir}/man8/virtnodedevd.8*
%files daemon-driver-nwfilter
%{_fillupdir}/sysconfig.virtnwfilterd
@ -1539,6 +1536,7 @@ fi
%dir %attr(0700, root, root) %{_sysconfdir}/%{name}/nwfilter/
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_nwfilter.so
%doc %{_mandir}/man8/virtnwfilterd.8*
%files daemon-driver-secret
%{_fillupdir}/sysconfig.virtsecretd
@ -1553,6 +1551,7 @@ fi
%{_sbindir}/rcvirtsecretd
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_secret.so
%doc %{_mandir}/man8/virtsecretd.8*
%files daemon-driver-storage
@ -1574,6 +1573,7 @@ fi
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_fs.so
%dir %{_libdir}/%{name}/storage-file
%{_libdir}/%{name}/storage-file/libvirt_storage_file_fs.so
%doc %{_mandir}/man8/virtstoraged.8*
%files daemon-driver-storage-disk
%{_libdir}/%{name}/storage-backend/libvirt_storage_backend_disk.so
@ -1639,7 +1639,8 @@ fi
%dir %attr(0711, root, root) %{_localstatedir}/log/swtpm/%{name}/
%dir %attr(0731, tss, tss) %{_localstatedir}/log/swtpm/%{name}/qemu/
%{_bindir}/virt-qemu-run
%{_mandir}/man1/virt-qemu-run.1*
%doc %{_mandir}/man1/virt-qemu-run.1*
%doc %{_mandir}/man8/virtqemud.8*
%endif
%if %{with_lxc}
@ -1666,6 +1667,7 @@ fi
%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
%{_bindir}/virt-create-rootfs
%doc %{_mandir}/man1/virt-create-rootfs.1*
%doc %{_mandir}/man8/virtlxcd.8*
%endif
%if %{with_libxl}
@ -1690,6 +1692,7 @@ fi
%dir %attr(0700, root, root) %{_localstatedir}/log/%{name}/libxl/
%dir %{_libdir}/%{name}/connection-driver
%{_libdir}/%{name}/connection-driver/libvirt_driver_libxl.so
%doc %{_mandir}/man8/virtxend.8*
%endif
%if %{with_vbox}
@ -1706,6 +1709,7 @@ fi
%{_sbindir}/virtvboxd
%{_sbindir}/rcvirtvboxd
%{_libdir}/%{name}/connection-driver/libvirt_driver_vbox.so
%doc %{_mandir}/man8/virtvboxd.8*
%endif
%if %{with_qemu}

View File

@ -0,0 +1,33 @@
commit 844c278ad2a957592ba9fbf93c6aa076a2b3d216
Author: Jim Fehlig <jfehlig@suse.com>
Date: Mon Mar 1 15:41:44 2021 -0700
libxl: Fix node device detach when driver unspecified
Commit 887dd0d331 caused a small regression in NodeDeviceDetach in the libxl
driver when the 'driver' parameter is not specified. E.g.
error: Failed to detach device pci_0000_0a_10_0
error: An error occurred, but the cause is unknown
If the driver name is not specified, NULL is passed to
virDomainDriverNodeDeviceDetachFlags, in which case virPCIDeviceSetStubDriver
is never called to set the stub to pciback. Fix it by setting the driver to
"xen" if it is not specified when invoking NodeDeviceDetach.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 75a8d46af0..348434ca72 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -5777,6 +5777,9 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev,
virCheckFlags(0, -1);
+ if (!driverName)
+ driverName = "xen";
+
if (driverName && STRNEQ(driverName, "xen")) {
virReportError(VIR_ERR_INVALID_ARG,
_("unsupported driver name '%s'"), driverName);

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
forcibly destroying the domain and starting it again.
Index: libvirt-7.0.0/src/libxl/libxl_driver.c
Index: libvirt-7.1.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.0.0/src/libxl/libxl_driver.c
--- libvirt-7.1.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.1.0/src/libxl/libxl_driver.c
@@ -1372,6 +1372,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
}
@ -74,7 +74,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_driver.c
libxlDomainDestroyFlags(virDomainPtr dom,
unsigned int flags)
{
@@ -6664,6 +6719,7 @@ static virHypervisorDriver libxlHypervis
@@ -6485,6 +6540,7 @@ static virHypervisorDriver libxlHypervis
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
.domainReboot = libxlDomainReboot, /* 0.9.0 */

View File

@ -3,10 +3,10 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
Index: libvirt-7.0.0/src/libxl/libxl_conf.c
Index: libvirt-7.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.0.0/src/libxl/libxl_conf.c
--- libvirt-7.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.1.0/src/libxl/libxl_conf.c
@@ -921,6 +921,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -38,7 +38,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_conf.c
static char *
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
const char *username,
@@ -1159,6 +1183,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1163,6 +1187,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-7.0.0/docs/manpages/virsh.rst
Index: libvirt-7.1.0/docs/manpages/virsh.rst
===================================================================
--- libvirt-7.0.0.orig/docs/manpages/virsh.rst
+++ libvirt-7.0.0/docs/manpages/virsh.rst
--- libvirt-7.1.0.orig/docs/manpages/virsh.rst
+++ libvirt-7.1.0/docs/manpages/virsh.rst
@@ -3145,7 +3145,8 @@ migrate
[--postcopy-bandwidth bandwidth]
[--parallel [--parallel-connections connections]]
@ -43,10 +43,10 @@ Index: libvirt-7.0.0/docs/manpages/virsh.rst
Running migration can be canceled by interrupting virsh (usually using
``Ctrl-C``) or by ``domjobabort`` command sent from another virsh instance.
Index: libvirt-7.0.0/include/libvirt/libvirt-domain.h
Index: libvirt-7.1.0/include/libvirt/libvirt-domain.h
===================================================================
--- libvirt-7.0.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-7.0.0/include/libvirt/libvirt-domain.h
--- libvirt-7.1.0.orig/include/libvirt/libvirt-domain.h
+++ libvirt-7.1.0/include/libvirt/libvirt-domain.h
@@ -1078,6 +1078,25 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_TLS_DESTINATION "tls.destination"
@ -73,11 +73,11 @@ Index: libvirt-7.0.0/include/libvirt/libvirt-domain.h
/* Domain migration. */
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
unsigned long flags, const char *dname,
Index: libvirt-7.0.0/src/libxl/libxl_driver.c
Index: libvirt-7.1.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.0.0/src/libxl/libxl_driver.c
@@ -6226,6 +6226,9 @@ libxlDomainMigratePerform3Params(virDoma
--- libvirt-7.1.0.orig/src/libxl/libxl_driver.c
+++ libvirt-7.1.0/src/libxl/libxl_driver.c
@@ -6047,6 +6047,9 @@ libxlDomainMigratePerform3Params(virDoma
const char *dname = NULL;
const char *uri = NULL;
int ret = -1;
@ -87,7 +87,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_driver.c
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
virReportUnsupportedError();
@@ -6242,6 +6245,15 @@ libxlDomainMigratePerform3Params(virDoma
@@ -6063,6 +6066,15 @@ libxlDomainMigratePerform3Params(virDoma
virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_DEST_NAME,
&dname) < 0 ||
@ -103,7 +103,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_driver.c
virTypedParamsGetString(params, nparams,
VIR_MIGRATE_PARAM_URI,
&uri) < 0)
@@ -6256,11 +6268,11 @@ libxlDomainMigratePerform3Params(virDoma
@@ -6077,11 +6089,11 @@ libxlDomainMigratePerform3Params(virDoma
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
@ -117,11 +117,11 @@ Index: libvirt-7.0.0/src/libxl/libxl_driver.c
goto cleanup;
}
Index: libvirt-7.0.0/src/libxl/libxl_migration.c
Index: libvirt-7.1.0/src/libxl/libxl_migration.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_migration.c
+++ libvirt-7.0.0/src/libxl/libxl_migration.c
@@ -341,18 +341,38 @@ libxlMigrateDstReceive(virNetSocketPtr s
--- libvirt-7.1.0.orig/src/libxl/libxl_migration.c
+++ libvirt-7.1.0/src/libxl/libxl_migration.c
@@ -340,18 +340,38 @@ libxlMigrateDstReceive(virNetSocketPtr s
static int
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
@ -162,7 +162,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
if (ret != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to send migration data to destination host"));
@@ -905,7 +925,7 @@ struct libxlTunnelControl {
@@ -900,7 +920,7 @@ struct libxlTunnelControl {
static int
libxlMigrationSrcStartTunnel(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
@ -171,7 +171,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
virStreamPtr st,
struct libxlTunnelControl **tnl)
{
@@ -938,7 +958,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
@@ -933,7 +953,7 @@ libxlMigrationSrcStartTunnel(libxlDriver
virObjectUnlock(vm);
/* Send data to pipe */
@ -180,7 +180,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
virObjectLock(vm);
out:
@@ -974,7 +994,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -969,7 +989,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
const char *dconnuri G_GNUC_UNUSED,
const char *dname,
const char *uri,
@ -189,7 +189,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
{
virDomainPtr ddomain = NULL;
virTypedParameterPtr params = NULL;
@@ -1019,11 +1039,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1014,11 +1034,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
/* We don't require the destination to have P2P support
* as it looks to be normal migration from the receiver perspective.
*/
@ -203,7 +203,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
if (!(st = virStreamNew(dconn, 0)))
goto confirm;
ret = dconn->driver->domainMigratePrepareTunnel3Params
@@ -1037,7 +1057,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1032,7 +1052,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
if (ret == -1)
goto confirm;
@ -212,7 +212,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
if (uri_out) {
if (virTypedParamsReplaceString(&params, &nparams,
VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
@@ -1052,11 +1072,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1047,11 +1067,11 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
}
VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
@ -227,7 +227,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
if (ret < 0) {
notify_source = false;
virErrorPreserveLast(&orig_err);
@@ -1091,7 +1111,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1086,7 +1106,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
confirm:
if (notify_source) {
VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
@ -236,7 +236,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
if (ret < 0)
VIR_WARN("Guest %s probably left in 'paused' state on source",
@@ -1099,7 +1119,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
@@ -1094,7 +1114,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
}
cleanup:
@ -245,7 +245,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
libxlMigrationSrcStopTunnel(tc);
virObjectUnref(st);
}
@@ -1143,7 +1163,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
@@ -1138,7 +1158,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
const char *dconnuri,
const char *uri_str G_GNUC_UNUSED,
const char *dname,
@ -254,7 +254,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
{
int ret = -1;
int useParams;
@@ -1180,7 +1200,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
@@ -1175,7 +1195,7 @@ libxlDomainMigrationSrcPerformP2P(libxlD
}
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
@ -263,7 +263,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
if (ret < 0) {
/*
@@ -1207,7 +1227,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
@@ -1202,7 +1222,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
const char *dconnuri G_GNUC_UNUSED,
const char *uri_str,
const char *dname G_GNUC_UNUSED,
@ -272,7 +272,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
{
libxlDomainObjPrivatePtr priv = vm->privateData;
char *hostname = NULL;
@@ -1243,7 +1263,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
@@ -1238,7 +1258,7 @@ libxlDomainMigrationSrcPerform(libxlDriv
/* suspend vm and send saved data to dst through socket fd */
virObjectUnlock(vm);
@ -281,10 +281,10 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.c
virObjectLock(vm);
if (ret == 0) {
Index: libvirt-7.0.0/src/libxl/libxl_migration.h
Index: libvirt-7.1.0/src/libxl/libxl_migration.h
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_migration.h
+++ libvirt-7.0.0/src/libxl/libxl_migration.h
--- libvirt-7.1.0.orig/src/libxl/libxl_migration.h
+++ libvirt-7.1.0/src/libxl/libxl_migration.h
@@ -35,6 +35,9 @@
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
@ -327,11 +327,11 @@ Index: libvirt-7.0.0/src/libxl/libxl_migration.h
virDomainPtr
libxlDomainMigrationDstFinish(virConnectPtr dconn,
Index: libvirt-7.0.0/tools/virsh-domain.c
Index: libvirt-7.1.0/tools/virsh-domain.c
===================================================================
--- libvirt-7.0.0.orig/tools/virsh-domain.c
+++ libvirt-7.0.0/tools/virsh-domain.c
@@ -10707,6 +10707,18 @@ static const vshCmdOptDef opts_migrate[]
--- libvirt-7.1.0.orig/tools/virsh-domain.c
+++ libvirt-7.1.0/tools/virsh-domain.c
@@ -10703,6 +10703,18 @@ static const vshCmdOptDef opts_migrate[]
.type = VSH_OT_STRING,
.help = N_("override the destination host name used for TLS verification")
},
@ -350,7 +350,7 @@ Index: libvirt-7.0.0/tools/virsh-domain.c
{.name = NULL}
};
@@ -10727,6 +10739,7 @@ doMigrate(void *opaque)
@@ -10723,6 +10735,7 @@ doMigrate(void *opaque)
unsigned long long ullOpt = 0;
int rv;
virConnectPtr dconn = data->dconn;
@ -358,7 +358,7 @@ Index: libvirt-7.0.0/tools/virsh-domain.c
#ifndef WIN32
sigset_t sigmask, oldsigmask;
@@ -10857,6 +10870,22 @@ doMigrate(void *opaque)
@@ -10853,6 +10866,22 @@ doMigrate(void *opaque)
goto save_error;
}

View File

@ -7,10 +7,10 @@ and npiv.
For more details, see bsc#954872 and FATE#319810
Index: libvirt-7.0.0/src/libxl/libxl_conf.c
Index: libvirt-7.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.0.0/src/libxl/libxl_conf.c
--- libvirt-7.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.1.0/src/libxl/libxl_conf.c
@@ -921,6 +921,22 @@ libxlDiskSetDiscard(libxl_device_disk *x
#endif
}
@ -34,7 +34,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_conf.c
static void
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
{
@@ -1058,6 +1074,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
@@ -1062,6 +1078,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{
@ -42,7 +42,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_conf.c
const char *driver = virDomainDiskGetDriver(l_disk);
int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src);
@@ -1073,7 +1090,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1077,7 +1094,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1;
} else {
@ -51,7 +51,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_conf.c
}
x_disk->vdev = g_strdup(l_disk->dst);
@@ -1184,6 +1201,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
@@ -1188,6 +1205,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
return -1;
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 +
3 files changed, 4 insertions(+)
Index: libvirt-7.0.0/src/lxc/lxc_controller.c
Index: libvirt-7.1.0/src/lxc/lxc_controller.c
===================================================================
--- libvirt-7.0.0.orig/src/lxc/lxc_controller.c
+++ libvirt-7.0.0/src/lxc/lxc_controller.c
--- libvirt-7.1.0.orig/src/lxc/lxc_controller.c
+++ libvirt-7.1.0/src/lxc/lxc_controller.c
@@ -2015,6 +2015,7 @@ static int virLXCControllerDeleteInterfa
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
ret = -1;
@ -25,10 +25,10 @@ Index: libvirt-7.0.0/src/lxc/lxc_controller.c
return ret;
}
Index: libvirt-7.0.0/src/lxc/lxc_driver.c
Index: libvirt-7.1.0/src/lxc/lxc_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/lxc/lxc_driver.c
+++ libvirt-7.0.0/src/lxc/lxc_driver.c
--- libvirt-7.1.0.orig/src/lxc/lxc_driver.c
+++ libvirt-7.1.0/src/lxc/lxc_driver.c
@@ -67,6 +67,7 @@
#include "virtime.h"
#include "virtypedparam.h"
@ -53,10 +53,10 @@ Index: libvirt-7.0.0/src/lxc/lxc_driver.c
break;
/* It'd be nice to support this, but with macvlan
Index: libvirt-7.0.0/src/lxc/lxc_process.c
Index: libvirt-7.1.0/src/lxc/lxc_process.c
===================================================================
--- libvirt-7.0.0.orig/src/lxc/lxc_process.c
+++ libvirt-7.0.0/src/lxc/lxc_process.c
--- libvirt-7.1.0.orig/src/lxc/lxc_process.c
+++ libvirt-7.1.0/src/lxc/lxc_process.c
@@ -51,6 +51,7 @@
#include "virstring.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 -
2 files changed, 8 insertions(+), 2 deletions(-)
Index: libvirt-7.0.0/src/network/bridge_driver.c
Index: libvirt-7.1.0/src/network/bridge_driver.c
===================================================================
--- libvirt-7.0.0.orig/src/network/bridge_driver.c
+++ libvirt-7.0.0/src/network/bridge_driver.c
--- libvirt-7.1.0.orig/src/network/bridge_driver.c
+++ libvirt-7.1.0/src/network/bridge_driver.c
@@ -1449,7 +1449,14 @@ networkDnsmasqConfContents(virNetworkObj
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
if (ipdef->nranges || ipdef->nhosts) {
@ -37,10 +37,10 @@ Index: libvirt-7.0.0/src/network/bridge_driver.c
}
if (ipdef->tftproot) {
Index: libvirt-7.0.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
Index: libvirt-7.1.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
===================================================================
--- libvirt-7.0.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-7.0.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
--- libvirt-7.1.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
+++ libvirt-7.1.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-7.0.0/src/util/virarch.c
Index: libvirt-7.1.0/src/util/virarch.c
===================================================================
--- libvirt-7.0.0.orig/src/util/virarch.c
+++ libvirt-7.0.0/src/util/virarch.c
--- libvirt-7.1.0.orig/src/util/virarch.c
+++ libvirt-7.1.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-7.0.0/src/security/apparmor/libvirt-qemu
Index: libvirt-7.1.0/src/security/apparmor/libvirt-qemu
===================================================================
--- libvirt-7.0.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-7.0.0/src/security/apparmor/libvirt-qemu
--- libvirt-7.1.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-7.1.0/src/security/apparmor/libvirt-qemu
@@ -244,3 +244,6 @@
# /sys/bus/nd/devices
/ r, # harmless on any lsb compliant system

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-7.0.0/src/security/apparmor/libvirt-qemu
Index: libvirt-7.1.0/src/security/apparmor/libvirt-qemu
===================================================================
--- libvirt-7.0.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-7.0.0/src/security/apparmor/libvirt-qemu
--- libvirt-7.1.0.orig/src/security/apparmor/libvirt-qemu
+++ libvirt-7.1.0/src/security/apparmor/libvirt-qemu
@@ -64,6 +64,7 @@
#/dev/fb* rw,
@ -20,10 +20,10 @@ Index: libvirt-7.0.0/src/security/apparmor/libvirt-qemu
@{HOME}/.pulse-cookie rwk,
owner /root/.pulse-cookie rwk,
owner /root/.pulse/ rw,
Index: libvirt-7.0.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
Index: libvirt-7.1.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
===================================================================
--- libvirt-7.0.0.orig/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ libvirt-7.0.0/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
--- libvirt-7.1.0.orig/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+++ libvirt-7.1.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,11 +9,11 @@ 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-7.0.0/src/libxl/libxl_conf.c
Index: libvirt-7.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.0.0/src/libxl/libxl_conf.c
@@ -1827,7 +1827,7 @@ libxlDriverConfigNew(void)
--- libvirt-7.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.1.0/src/libxl/libxl_conf.c
@@ -1831,7 +1831,7 @@ libxlDriverConfigNew(void)
int
libxlDriverConfigInit(libxlDriverConfigPtr cfg)
{
@ -22,11 +22,11 @@ Index: libvirt-7.0.0/src/libxl/libxl_conf.c
if (virFileMakePath(cfg->logDir) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
Index: libvirt-7.0.0/src/libxl/libxl_domain.c
Index: libvirt-7.1.0/src/libxl/libxl_domain.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_domain.c
+++ libvirt-7.0.0/src/libxl/libxl_domain.c
@@ -1013,8 +1013,8 @@ libxlDomainSetVcpuAffinities(libxlDriver
--- libvirt-7.1.0.orig/src/libxl/libxl_domain.c
+++ libvirt-7.1.0/src/libxl/libxl_domain.c
@@ -1007,8 +1007,8 @@ libxlDomainSetVcpuAffinities(libxlDriver
static int
libxlDomainFreeMem(libxl_ctx *ctx, libxl_domain_config *d_config)
{
@ -37,7 +37,7 @@ Index: libvirt-7.0.0/src/libxl/libxl_domain.c
int32_t target_mem;
int tries = 3;
int wait_secs = 10;
@@ -1404,7 +1404,7 @@ libxlDomainStart(libxlDriverPrivatePtr d
@@ -1397,7 +1397,7 @@ libxlDomainStart(libxlDriverPrivatePtr d
params.stream_version = restore_ver;
#endif
ret = libxl_domain_create_restore(cfg->ctx, &d_config, &domid,
@ -46,10 +46,10 @@ Index: libvirt-7.0.0/src/libxl/libxl_domain.c
&aop_console_how);
libxl_domain_restore_params_dispose(&params);
}
Index: libvirt-7.0.0/tests/libxlmock.c
Index: libvirt-7.1.0/tests/libxlmock.c
===================================================================
--- libvirt-7.0.0.orig/tests/libxlmock.c
+++ libvirt-7.0.0/tests/libxlmock.c
--- libvirt-7.1.0.orig/tests/libxlmock.c
+++ libvirt-7.1.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,
@ -59,11 +59,11 @@ Index: libvirt-7.0.0/tests/libxlmock.c
VIR_MOCK_STUB_RET_ARGS(xc_interface_close,
int, 0,
Index: libvirt-7.0.0/meson.build
Index: libvirt-7.1.0/meson.build
===================================================================
--- libvirt-7.0.0.orig/meson.build
+++ libvirt-7.0.0/meson.build
@@ -1563,7 +1563,7 @@ elif get_option('driver_interface').enab
--- libvirt-7.1.0.orig/meson.build
+++ libvirt-7.1.0/meson.build
@@ -1566,7 +1566,7 @@ elif get_option('driver_interface').enab
endif
if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
@ -72,7 +72,7 @@ Index: libvirt-7.0.0/meson.build
libxl_dep = dependency('xenlight', version: '>=' + libxl_version, required: get_option('driver_libxl'))
if libxl_dep.found()
@@ -1593,7 +1593,7 @@ if not get_option('driver_libxl').disabl
@@ -1596,7 +1596,7 @@ if not get_option('driver_libxl').disabl
endif
libxl_dep = declare_dependency(

View File

@ -1,17 +1,10 @@
Adjust libvirt-guests service to conform to SUSE standards
Index: libvirt-7.0.0/tools/libvirt-guests.sh.in
Index: libvirt-7.1.0/tools/libvirt-guests.sh.in
===================================================================
--- libvirt-7.0.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-7.0.0/tools/libvirt-guests.sh.in
@@ -16,14 +16,13 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
+. /etc/rc.status
+rc_reset
+
sysconfdir="@sysconfdir@"
--- libvirt-7.1.0.orig/tools/libvirt-guests.sh.in
+++ libvirt-7.1.0/tools/libvirt-guests.sh.in
@@ -20,10 +20,6 @@ sysconfdir="@sysconfdir@"
localstatedir="@localstatedir@"
libvirtd="@sbindir@"/libvirtd
@ -22,151 +15,23 @@ Index: libvirt-7.0.0/tools/libvirt-guests.sh.in
# Source gettext library.
# Make sure this file is recognized as having translations: _("dummy")
. "@bindir@"/gettext.sh
@@ -43,9 +42,11 @@ test -f "$sysconfdir"/sysconfig/libvirt-
@@ -43,7 +39,11 @@ test -f "$sysconfdir"/sysconfig/libvirt-
. "$sysconfdir"/sysconfig/libvirt-guests
LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
-VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
-
-RETVAL=0
+if [ -d "$localstatedir"/lock/subsys ]; then
+ VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
+else
+ VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/libvirt-guests
+fi
# retval COMMAND ARGUMENTS...
# run command with arguments and convert non-zero return value to 1 and set
@@ -53,7 +54,7 @@ RETVAL=0
retval() {
"$@"
if [ $? -ne 0 ]; then
- RETVAL=1
+ rc_failed 1
return 1
else
return 0
@@ -82,6 +83,26 @@ run_virsh_c() {
( export LC_ALL=C; run_virsh "$@" )
}
RETVAL=0
+await_daemon_up()
+{
+ uri=$1
+ i=1
+ rets=10
+ run_virsh $uri list > /dev/null 2>&1
+ while test $? -ne 0 && test $i -lt $rets; do
+ sleep 1
+ echo -n .
+ i=$(($i + 1))
+ run_virsh $uri list > /dev/null 2>&1
+ done
+ if [ $i -eq $rets ]; then
+ eval_gettext "libvirt-guests unable to connect to URI: $uri"
+ echo
+ return 1
+ fi
+ return 0
+}
+
# test_connect URI
# check if URI is reachable
test_connect()
@@ -108,7 +129,7 @@ list_guests() {
local list="$(run_virsh_c "$uri" list --uuid $persistent)"
if [ $? -ne 0 ]; then
- RETVAL=1
+ rc_failed 1
return 1
fi
@@ -134,7 +155,7 @@ guest_is_on() {
guest_running="false"
if [ $? -ne 0 ]; then
- RETVAL=1
+ rc_failed 1
return 1
fi
@@ -190,6 +211,13 @@ start() {
test_connect "$uri" || continue
+ await_daemon_up $uri
+ if [ $? -ne 0 ]; then
+ eval_gettext "Ignoring guests on $uri URI, can't connect"
+ echo
+ continue
+ fi
+
eval_gettext "Resuming guests on \$uri URI..."; echo
for guest in $list; do
local name="$(guest_name "$uri" "$guest")"
@@ -418,7 +446,7 @@ shutdown_guests_parallel()
timeout=$(($timeout - 1))
if [ $timeout -le 0 ]; then
eval_gettext "Timeout expired while shutting down domains"; echo
- RETVAL=1
+ rc_failed 1
return
fi
else
@@ -449,7 +477,7 @@ stop() {
if [ $SHUTDOWN_TIMEOUT -lt 0 ]; then
gettext "SHUTDOWN_TIMEOUT must be equal or greater than 0"
echo
- RETVAL=6
+ rc_failed 6
return
fi
fi
@@ -499,14 +527,14 @@ stop() {
if [ $? -ne 0 ]; then
eval_gettext "Failed to list persistent guests on \$uri"
echo
- RETVAL=1
+ rc_failed 1
set +f
return
fi
else
gettext "Failed to list transient guests"
echo
- RETVAL=1
+ rc_failed 1
set +f
return
fi
@@ -567,14 +595,13 @@ gueststatus() {
rh_status() {
if [ -f "$LISTFILE" ]; then
gettext "stopped, with saved guests"; echo
- RETVAL=3
+ rc_failed 3
else
if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then
gettext "started"; echo
- RETVAL=0
else
gettext "stopped, with no saved guests"; echo
- RETVAL=3
+ rc_failed 3
fi
fi
}
@@ -619,4 +646,4 @@ case "$1" in
usage
;;
esac
-exit $RETVAL
+rc_exit
Index: libvirt-7.0.0/tools/libvirt-guests.sysconf
Index: libvirt-7.1.0/tools/libvirt-guests.sysconf
===================================================================
--- libvirt-7.0.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-7.0.0/tools/libvirt-guests.sysconf
--- libvirt-7.1.0.orig/tools/libvirt-guests.sysconf
+++ libvirt-7.1.0/tools/libvirt-guests.sysconf
@@ -1,9 +1,14 @@
+## Path: System/Virtualization/libvirt-guests
# Customizations for the libvirt-guests.service systemd unit

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-7.0.0/src/remote/remote_daemon_config.c
Index: libvirt-7.1.0/src/remote/remote_daemon_config.c
===================================================================
--- libvirt-7.0.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-7.0.0/src/remote/remote_daemon_config.c
--- libvirt-7.1.0.orig/src/remote/remote_daemon_config.c
+++ libvirt-7.1.0/src/remote/remote_daemon_config.c
@@ -98,7 +98,7 @@ daemonConfigNew(bool privileged G_GNUC_U
#ifdef WITH_IP
@ -16,10 +16,10 @@ Index: libvirt-7.0.0/src/remote/remote_daemon_config.c
# else /* ! LIBVIRTD */
data->listen_tls = false; /* Always honoured, --listen doesn't exist. */
# endif /* ! LIBVIRTD */
Index: libvirt-7.0.0/src/remote/libvirtd.conf.in
Index: libvirt-7.1.0/src/remote/libvirtd.conf.in
===================================================================
--- libvirt-7.0.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-7.0.0/src/remote/libvirtd.conf.in
--- libvirt-7.1.0.orig/src/remote/libvirtd.conf.in
+++ libvirt-7.1.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.
@ -31,10 +31,10 @@ Index: libvirt-7.0.0/src/remote/libvirtd.conf.in
# Listen for unencrypted TCP connections on the public TCP/IP port.
# NB, must pass the --listen flag to the @DAEMON_NAME@ process for this to
Index: libvirt-7.0.0/src/remote/test_libvirtd.aug.in
Index: libvirt-7.1.0/src/remote/test_libvirtd.aug.in
===================================================================
--- libvirt-7.0.0.orig/src/remote/test_libvirtd.aug.in
+++ libvirt-7.0.0/src/remote/test_libvirtd.aug.in
--- libvirt-7.1.0.orig/src/remote/test_libvirtd.aug.in
+++ libvirt-7.1.0/src/remote/test_libvirtd.aug.in
@@ -3,7 +3,7 @@ module Test_@DAEMON_NAME@ =
test @DAEMON_NAME_UC@.lns get conf =

View File

@ -1,9 +1,9 @@
Adjust libvirtd sysconfig file to conform to SUSE standards
Index: libvirt-7.0.0/src/remote/libvirtd.sysconf
Index: libvirt-7.1.0/src/remote/libvirtd.sysconf
===================================================================
--- libvirt-7.0.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-7.0.0/src/remote/libvirtd.sysconf
--- libvirt-7.1.0.orig/src/remote/libvirtd.sysconf
+++ libvirt-7.1.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-7.0.0/src/libxl/libxl.conf
Index: libvirt-7.1.0/src/libxl/libxl.conf
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl.conf
+++ libvirt-7.0.0/src/libxl/libxl.conf
--- libvirt-7.1.0.orig/src/libxl/libxl.conf
+++ libvirt-7.1.0/src/libxl/libxl.conf
@@ -4,12 +4,11 @@
# Enable autoballooning of domain0
@ -27,11 +27,11 @@ Index: libvirt-7.0.0/src/libxl/libxl.conf
# In order to prevent accidentally starting two domains that
Index: libvirt-7.0.0/src/libxl/libxl_conf.c
Index: libvirt-7.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.0.0/src/libxl/libxl_conf.c
@@ -1744,15 +1744,12 @@ libxlMakeBuildInfoVfb(virPortAllocatorRa
--- libvirt-7.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.1.0/src/libxl/libxl_conf.c
@@ -1748,15 +1748,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-7.0.0/src/libxl/libxl_conf.c
int res;
res = virConfGetValueBool(conf, "autoballoon", &cfg->autoballoon);
@@ -1761,15 +1758,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
@@ -1765,15 +1762,8 @@ libxlGetAutoballoonConf(libxlDriverConfi
else if (res == 1)
return 0;
@ -66,10 +66,10 @@ Index: libvirt-7.0.0/src/libxl/libxl_conf.c
return 0;
}
Index: libvirt-7.0.0/src/libxl/test_libvirtd_libxl.aug.in
Index: libvirt-7.1.0/src/libxl/test_libvirtd_libxl.aug.in
===================================================================
--- libvirt-7.0.0.orig/src/libxl/test_libvirtd_libxl.aug.in
+++ libvirt-7.0.0/src/libxl/test_libvirtd_libxl.aug.in
--- libvirt-7.1.0.orig/src/libxl/test_libvirtd_libxl.aug.in
+++ libvirt-7.1.0/src/libxl/test_libvirtd_libxl.aug.in
@@ -2,7 +2,7 @@ module Test_libvirtd_libxl =
@CONFIG@

View File

@ -1,9 +1,9 @@
Adjust paths of OVMF firmwares on SUSE distros
Index: libvirt-7.0.0/src/qemu/qemu.conf
Index: libvirt-7.1.0/src/qemu/qemu.conf
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu.conf
+++ libvirt-7.0.0/src/qemu/qemu.conf
--- libvirt-7.1.0.orig/src/qemu/qemu.conf
+++ libvirt-7.1.0/src/qemu/qemu.conf
@@ -858,10 +858,9 @@
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
# follows this scheme.
@ -18,10 +18,10 @@ Index: libvirt-7.0.0/src/qemu/qemu.conf
#]
# The backend to use for handling stdout/stderr output from
Index: libvirt-7.0.0/src/qemu/qemu_conf.c
Index: libvirt-7.1.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_conf.c
+++ libvirt-7.0.0/src/qemu/qemu_conf.c
--- libvirt-7.1.0.orig/src/qemu/qemu_conf.c
+++ libvirt-7.1.0/src/qemu/qemu_conf.c
@@ -98,10 +98,9 @@ qemuDriverUnlock(virQEMUDriverPtr driver
#ifndef DEFAULT_LOADER_NVRAM
@ -36,11 +36,11 @@ Index: libvirt-7.0.0/src/qemu/qemu_conf.c
#endif
Index: libvirt-7.0.0/src/security/virt-aa-helper.c
Index: libvirt-7.1.0/src/security/virt-aa-helper.c
===================================================================
--- libvirt-7.0.0.orig/src/security/virt-aa-helper.c
+++ libvirt-7.0.0/src/security/virt-aa-helper.c
@@ -479,7 +479,8 @@ valid_path(const char *path, const bool
--- libvirt-7.1.0.orig/src/security/virt-aa-helper.c
+++ libvirt-7.1.0/src/security/virt-aa-helper.c
@@ -480,7 +480,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 */
@ -50,10 +50,10 @@ Index: libvirt-7.0.0/src/security/virt-aa-helper.c
};
/* override the above with these */
const char * const override[] = {
Index: libvirt-7.0.0/src/qemu/test_libvirtd_qemu.aug.in
Index: libvirt-7.1.0/src/qemu/test_libvirtd_qemu.aug.in
===================================================================
--- libvirt-7.0.0.orig/src/qemu/test_libvirtd_qemu.aug.in
+++ libvirt-7.0.0/src/qemu/test_libvirtd_qemu.aug.in
--- libvirt-7.1.0.orig/src/qemu/test_libvirtd_qemu.aug.in
+++ libvirt-7.1.0/src/qemu/test_libvirtd_qemu.aug.in
@@ -96,10 +96,9 @@ module Test_libvirtd_qemu =
{ "migration_port_max" = "49215" }
{ "log_timestamp" = "0" }

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-7.0.0/src/qemu/qemu.conf
Index: libvirt-7.1.0/src/qemu/qemu.conf
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu.conf
+++ libvirt-7.0.0/src/qemu/qemu.conf
--- libvirt-7.1.0.orig/src/qemu/qemu.conf
+++ libvirt-7.1.0/src/qemu/qemu.conf
@@ -491,10 +491,19 @@
# isolation, but it cannot appear in a list of drivers.
#
@ -60,10 +60,10 @@ Index: libvirt-7.0.0/src/qemu/qemu.conf
#
#lock_manager = "lockd"
Index: libvirt-7.0.0/src/qemu/qemu_conf.c
Index: libvirt-7.1.0/src/qemu/qemu_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/qemu/qemu_conf.c
+++ libvirt-7.0.0/src/qemu/qemu_conf.c
--- libvirt-7.1.0.orig/src/qemu/qemu_conf.c
+++ libvirt-7.1.0/src/qemu/qemu_conf.c
@@ -272,7 +272,7 @@ virQEMUDriverConfigPtr virQEMUDriverConf
cfg->slirpHelperName = g_strdup(QEMU_SLIRP_HELPER);
cfg->dbusDaemonName = g_strdup(QEMU_DBUS_DAEMON);
@ -73,10 +73,10 @@ Index: libvirt-7.0.0/src/qemu/qemu_conf.c
cfg->securityRequireConfined = false;
cfg->keepAliveInterval = 5;
Index: libvirt-7.0.0/src/qemu/test_libvirtd_qemu.aug.in
Index: libvirt-7.1.0/src/qemu/test_libvirtd_qemu.aug.in
===================================================================
--- libvirt-7.0.0.orig/src/qemu/test_libvirtd_qemu.aug.in
+++ libvirt-7.0.0/src/qemu/test_libvirtd_qemu.aug.in
--- libvirt-7.1.0.orig/src/qemu/test_libvirtd_qemu.aug.in
+++ libvirt-7.1.0/src/qemu/test_libvirtd_qemu.aug.in
@@ -45,6 +45,7 @@ module Test_libvirtd_qemu =
{ "remote_websocket_port_min" = "5700" }
{ "remote_websocket_port_max" = "65535" }

View File

@ -1,9 +1,9 @@
Adjust virtlockd sysconfig file to conform to SUSE standards
Index: libvirt-7.0.0/src/locking/virtlockd.sysconf
Index: libvirt-7.1.0/src/locking/virtlockd.sysconf
===================================================================
--- libvirt-7.0.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-7.0.0/src/locking/virtlockd.sysconf
--- libvirt-7.1.0.orig/src/locking/virtlockd.sysconf
+++ libvirt-7.1.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-7.0.0/src/logging/virtlogd.sysconf
Index: libvirt-7.1.0/src/logging/virtlogd.sysconf
===================================================================
--- libvirt-7.0.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-7.0.0/src/logging/virtlogd.sysconf
--- libvirt-7.1.0.orig/src/logging/virtlogd.sysconf
+++ libvirt-7.1.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-7.0.0/src/libxl/libxl_conf.c
Index: libvirt-7.1.0/src/libxl/libxl_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.0.0/src/libxl/libxl_conf.c
@@ -1784,6 +1784,15 @@ libxlDriverConfigNew(void)
--- libvirt-7.1.0.orig/src/libxl/libxl_conf.c
+++ libvirt-7.1.0/src/libxl/libxl_conf.c
@@ -1788,6 +1788,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-7.0.0/tools/virt-create-rootfs
Index: libvirt-7.1.0/tools/virt-create-rootfs
===================================================================
--- /dev/null
+++ libvirt-7.0.0/tools/virt-create-rootfs
+++ libvirt-7.1.0/tools/virt-create-rootfs
@@ -0,0 +1,231 @@
+#!/bin/sh
+set -e
@ -234,10 +234,10 @@ Index: libvirt-7.0.0/tools/virt-create-rootfs
+ echo "pts/0" >> "$ROOT/etc/securetty"
+ chroot "$ROOT" /usr/bin/passwd
+fi
Index: libvirt-7.0.0/docs/manpages/virt-create-rootfs.rst
Index: libvirt-7.1.0/docs/manpages/virt-create-rootfs.rst
===================================================================
--- /dev/null
+++ libvirt-7.0.0/docs/manpages/virt-create-rootfs.rst
+++ libvirt-7.1.0/docs/manpages/virt-create-rootfs.rst
@@ -0,0 +1,88 @@
+==================
+virt-create-rootfs
@ -327,10 +327,10 @@ Index: libvirt-7.0.0/docs/manpages/virt-create-rootfs.rst
+========
+
+virsh(1), `https://libvirt.org/ <https://libvirt.org/>`_
Index: libvirt-7.0.0/docs/manpages/meson.build
Index: libvirt-7.1.0/docs/manpages/meson.build
===================================================================
--- libvirt-7.0.0.orig/docs/manpages/meson.build
+++ libvirt-7.0.0/docs/manpages/meson.build
--- libvirt-7.1.0.orig/docs/manpages/meson.build
+++ libvirt-7.1.0/docs/manpages/meson.build
@@ -19,6 +19,7 @@ docs_man_files = [
{ 'name': 'virt-pki-validate', 'section': '1', 'install': true },
{ 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') },
@ -339,10 +339,10 @@ Index: libvirt-7.0.0/docs/manpages/meson.build
{ 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
{ 'name': 'virt-sanlock-cleanup', 'section': '8', 'install': conf.has('WITH_SANLOCK') },
Index: libvirt-7.0.0/tools/meson.build
Index: libvirt-7.1.0/tools/meson.build
===================================================================
--- libvirt-7.0.0.orig/tools/meson.build
+++ libvirt-7.0.0/tools/meson.build
--- libvirt-7.1.0.orig/tools/meson.build
+++ libvirt-7.1.0/tools/meson.build
@@ -149,6 +149,8 @@ else
virsh_icon_res = []
endif