diff --git a/.gitignore b/.gitignore index 440e0ad..fbb5a7e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libvirt-7.10.0.tar.xz +SOURCES/libvirt-8.0.0.tar.xz diff --git a/.libvirt.metadata b/.libvirt.metadata index 1f9a6ac..76dff0f 100644 --- a/.libvirt.metadata +++ b/.libvirt.metadata @@ -1 +1 @@ -fcaf7b763bf6e930d8b0a131b32752ebc2b8af9f SOURCES/libvirt-7.10.0.tar.xz +e440412e9b45d7e24f0ef492d8edf5cf2cbd3f4c SOURCES/libvirt-8.0.0.tar.xz diff --git a/SOURCES/libvirt-RHEL-Add-rhel-machine-types-to-qemuDomainMachineNeedsFDC.patch b/SOURCES/libvirt-RHEL-Add-rhel-machine-types-to-qemuDomainMachineNeedsFDC.patch index 0988775..df16973 100644 --- a/SOURCES/libvirt-RHEL-Add-rhel-machine-types-to-qemuDomainMachineNeedsFDC.patch +++ b/SOURCES/libvirt-RHEL-Add-rhel-machine-types-to-qemuDomainMachineNeedsFDC.patch @@ -1,5 +1,5 @@ -From 804b6b95f243d4f3dcf4bca3f08e835fc88bfdfd Mon Sep 17 00:00:00 2001 -Message-Id: <804b6b95f243d4f3dcf4bca3f08e835fc88bfdfd@dist-git> +From f0d0a6a9701522eee013682eb0ef566ef7cdac61 Mon Sep 17 00:00:00 2001 +Message-Id: From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Mon, 22 Feb 2016 12:51:51 +0100 Subject: [PATCH] RHEL: Add rhel machine types to qemuDomainMachineNeedsFDC @@ -13,31 +13,35 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1227880 Signed-off-by: Jiri Denemark --- - src/qemu/qemu_domain.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) + src/qemu/qemu_domain.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index 1f45b30975..0f6b9f980a 100644 +index a8401bac30..40fe9985e6 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c -@@ -8696,10 +8696,16 @@ static bool - qemuDomainMachineNeedsFDC(const char *machine, - const virArch arch) +@@ -8767,8 +8767,19 @@ qemuDomainHasBuiltinIDE(const virDomainDef *def) + bool + qemuDomainNeedsFDC(const virDomainDef *def) { -+ const char *p = STRSKIP(machine, "pc-q35-"); +- /* all supported Q35 machines need explicit FDC */ +- return qemuDomainIsQ35(def); ++ const char *p; + - if (!ARCH_IS_X86(arch)) - return false; - -- if (!STRPREFIX(machine, "pc-q35-")) -+ if (!p) ++ /* all supported Q35 machines need explicit FDC except for old RHEL-7 ++ * machine types */ ++ if (!qemuDomainIsQ35(def)) ++ return false; ++ ++ if ((p = STRSKIP(def->os.machine, "pc-q35-")) && ++ (STRPREFIX(p, "rhel7.0.0") || ++ STRPREFIX(p, "rhel7.1.0"))) + return false; + -+ if (STRPREFIX(p, "rhel7.0.0") || -+ STRPREFIX(p, "rhel7.1.0")) - return false; ++ return true; + } + - return true; -- 2.34.1 diff --git a/SOURCES/libvirt-RHEL-Enable-usage-of-x-blockdev-reopen.patch b/SOURCES/libvirt-RHEL-Enable-usage-of-x-blockdev-reopen.patch index a12df1f..1505def 100644 --- a/SOURCES/libvirt-RHEL-Enable-usage-of-x-blockdev-reopen.patch +++ b/SOURCES/libvirt-RHEL-Enable-usage-of-x-blockdev-reopen.patch @@ -1,5 +1,5 @@ -From 10561682792d0ea540235636e80b0b3e85ce412a Mon Sep 17 00:00:00 2001 -Message-Id: <10561682792d0ea540235636e80b0b3e85ce412a@dist-git> +From b2529d5ff3a18a2b0022da75431cea5bf037819e Mon Sep 17 00:00:00 2001 +Message-Id: From: Peter Krempa Date: Wed, 28 Jul 2021 17:37:21 +0200 Subject: [PATCH] RHEL: Enable usage of x-blockdev-reopen @@ -29,20 +29,20 @@ Reviewed-by: Ján Tomko --- src/qemu/qemu_block.c | 24 +++++++++++++++--------- src/qemu/qemu_block.h | 3 ++- - src/qemu/qemu_capabilities.c | 11 +++++++++++ - src/qemu/qemu_capabilities.h | 1 + + src/qemu/qemu_capabilities.c | 13 +++++++++++++ + src/qemu/qemu_capabilities.h | 3 +++ src/qemu/qemu_monitor.c | 5 +++-- src/qemu/qemu_monitor.h | 3 ++- src/qemu/qemu_monitor_json.c | 12 +++++++++--- src/qemu/qemu_monitor_json.h | 3 ++- tests/qemumonitorjsontest.c | 2 +- - 9 files changed, 46 insertions(+), 18 deletions(-) + 9 files changed, 50 insertions(+), 18 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c -index 53a0b919f9..8871eb9fdc 100644 +index e5ff653a60..aa566d0097 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c -@@ -3322,7 +3322,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc, +@@ -3331,7 +3331,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc, int qemuBlockReopenFormatMon(qemuMonitor *mon, @@ -52,7 +52,7 @@ index 53a0b919f9..8871eb9fdc 100644 { g_autoptr(virJSONValue) reopenprops = NULL; g_autoptr(virJSONValue) srcprops = NULL; -@@ -3331,15 +3332,19 @@ qemuBlockReopenFormatMon(qemuMonitor *mon, +@@ -3340,15 +3341,19 @@ qemuBlockReopenFormatMon(qemuMonitor *mon, if (!(srcprops = qemuBlockStorageSourceGetBlockdevProps(src, src->backingStore))) return -1; @@ -79,7 +79,7 @@ index 53a0b919f9..8871eb9fdc 100644 return -1; return 0; -@@ -3363,6 +3368,7 @@ qemuBlockReopenFormat(virDomainObj *vm, +@@ -3372,6 +3377,7 @@ qemuBlockReopenFormat(virDomainObj *vm, { qemuDomainObjPrivate *priv = vm->privateData; virQEMUDriver *driver = priv->driver; @@ -87,20 +87,20 @@ index 53a0b919f9..8871eb9fdc 100644 int rc; /* If we are lacking the object here, qemu might have opened an image with -@@ -3376,7 +3382,7 @@ qemuBlockReopenFormat(virDomainObj *vm, +@@ -3385,7 +3391,7 @@ qemuBlockReopenFormat(virDomainObj *vm, if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) return -1; - rc = qemuBlockReopenFormatMon(priv->mon, src); + rc = qemuBlockReopenFormatMon(priv->mon, src, downstream); - if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) - return -1; + qemuDomainObjExitMonitor(driver, vm); + if (rc < 0) diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h -index 54601a48a9..88fc9974c4 100644 +index 184a549d5c..130cfcdefd 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h -@@ -268,7 +268,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc, +@@ -267,7 +267,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc, /* only for use in qemumonitorjsontest */ int qemuBlockReopenFormatMon(qemuMonitor *mon, @@ -111,18 +111,20 @@ index 54601a48a9..88fc9974c4 100644 int qemuBlockReopenReadWrite(virDomainObj *vm, diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c -index 30a557706b..f6ea51d17e 100644 +index 5f1eb5014c..8ae80ef8d7 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c -@@ -651,6 +651,7 @@ VIR_ENUM_IMPL(virQEMUCaps, - "device.json", /* QEMU_CAPS_DEVICE_JSON */ - "query-dirty-rate", /* QEMU_CAPS_QUERY_DIRTY_RATE */ +@@ -654,6 +654,9 @@ VIR_ENUM_IMPL(virQEMUCaps, "rbd-encryption", /* QEMU_CAPS_RBD_ENCRYPTION */ + "sev-guest-kernel-hashes", /* QEMU_CAPS_SEV_GUEST_KERNEL_HASHES */ + "sev-inject-launch-secret", /* QEMU_CAPS_SEV_INJECT_LAUNCH_SECRET */ ++ ++ /* 420 */ + "blockdev-reopen.__com.redhat_rhel-av-8_2_0-api", /* QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API */ ); -@@ -1536,6 +1537,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVhostUserFS[] = +@@ -1540,6 +1543,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVhostUserFS[] = /* see documentation for virQEMUQAPISchemaPathGet for the query format */ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = { { "block-commit/arg-type/*top", QEMU_CAPS_ACTIVE_COMMIT }, @@ -130,7 +132,7 @@ index 30a557706b..f6ea51d17e 100644 { "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUSTER_DEBUG_LEVEL}, { "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVEL}, { "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS}, -@@ -5189,6 +5191,15 @@ virQEMUCapsInitProcessCaps(virQEMUCaps *qemuCaps) +@@ -5235,6 +5239,15 @@ virQEMUCapsInitProcessCaps(virQEMUCaps *qemuCaps) qemuCaps->arch == VIR_ARCH_MIPS) virQEMUCapsSet(qemuCaps, QEMU_CAPS_SCSI_NCR53C90); @@ -147,22 +149,24 @@ index 30a557706b..f6ea51d17e 100644 } diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h -index 61bdbdb2ac..79c05d603c 100644 +index e3a3ab4445..cde6c18b4c 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h -@@ -631,6 +631,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ - QEMU_CAPS_DEVICE_JSON, /* -device accepts JSON */ - QEMU_CAPS_QUERY_DIRTY_RATE, /* accepts query-dirty-rate */ - QEMU_CAPS_RBD_ENCRYPTION, /* Ceph RBD encryption support */ -+ QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API, /* downstream support for blockdev reopen in rhel-av-8.2.0 */ +@@ -634,6 +634,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ + QEMU_CAPS_SEV_GUEST_KERNEL_HASHES, /* sev-guest.kernel-hashes= */ + QEMU_CAPS_SEV_INJECT_LAUNCH_SECRET, /* 'sev-inject-launch-secret' qmp command present */ ++ /* 420 */ ++ QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API, /* downstream support for blockdev reopen in rhel-av-8.2.0 */ ++ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; + diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c -index 26b59801b8..ad00e471d6 100644 +index babf9e62fb..23638d3fe8 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c -@@ -4291,14 +4291,15 @@ qemuMonitorBlockdevAdd(qemuMonitor *mon, +@@ -4247,14 +4247,15 @@ qemuMonitorBlockdevAdd(qemuMonitor *mon, int qemuMonitorBlockdevReopen(qemuMonitor *mon, @@ -181,10 +185,10 @@ index 26b59801b8..ad00e471d6 100644 diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h -index 99ecebc648..acbc49cc69 100644 +index 9b2e4e1421..d2037914be 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h -@@ -1422,7 +1422,8 @@ int qemuMonitorBlockdevAdd(qemuMonitor *mon, +@@ -1426,7 +1426,8 @@ int qemuMonitorBlockdevAdd(qemuMonitor *mon, virJSONValue **props); int qemuMonitorBlockdevReopen(qemuMonitor *mon, @@ -195,10 +199,10 @@ index 99ecebc648..acbc49cc69 100644 int qemuMonitorBlockdevDel(qemuMonitor *mon, const char *nodename); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c -index 56f0b22b2a..efaee0d28c 100644 +index b0b513683b..34a46b9b41 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c -@@ -8009,13 +8009,19 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon, +@@ -8051,13 +8051,19 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon, int qemuMonitorJSONBlockdevReopen(qemuMonitor *mon, @@ -222,24 +226,24 @@ index 56f0b22b2a..efaee0d28c 100644 if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) return -1; diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h -index f7fb13f56c..61389d9dd8 100644 +index 64d9ebdaa3..15ce03d7af 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h -@@ -594,7 +594,8 @@ int qemuMonitorJSONBlockdevAdd(qemuMonitor *mon, - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); +@@ -748,7 +748,8 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon, - int qemuMonitorJSONBlockdevReopen(qemuMonitor *mon, -- virJSONValue **props) -+ virJSONValue **props, -+ bool downstream) + int + qemuMonitorJSONBlockdevReopen(qemuMonitor *mon, +- virJSONValue **props) ++ virJSONValue **props, ++ bool downstream) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); - int qemuMonitorJSONBlockdevDel(qemuMonitor *mon, + int diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c -index bcf5caa9a4..b6cec5e362 100644 +index 48e2a457ab..8624a547b5 100644 --- a/tests/qemumonitorjsontest.c +++ b/tests/qemumonitorjsontest.c -@@ -2784,7 +2784,7 @@ testQemuMonitorJSONBlockdevReopen(const void *opaque) +@@ -2780,7 +2780,7 @@ testQemuMonitorJSONBlockdevReopen(const void *opaque) if (qemuMonitorTestAddItem(test, "blockdev-reopen", "{\"return\":{}}") < 0) return -1; diff --git a/SOURCES/libvirt-RHEL-Fix-virConnectGetMaxVcpus-output.patch b/SOURCES/libvirt-RHEL-Fix-virConnectGetMaxVcpus-output.patch index 72129a6..4fd27b2 100644 --- a/SOURCES/libvirt-RHEL-Fix-virConnectGetMaxVcpus-output.patch +++ b/SOURCES/libvirt-RHEL-Fix-virConnectGetMaxVcpus-output.patch @@ -1,5 +1,5 @@ -From 91233ed20b9682d68aceeeba269f3cd9b6a32f50 Mon Sep 17 00:00:00 2001 -Message-Id: <91233ed20b9682d68aceeeba269f3cd9b6a32f50@dist-git> +From 29eb7b77805cf5fb756c964cdbe7fb7fb2c01f5f Mon Sep 17 00:00:00 2001 +Message-Id: <29eb7b77805cf5fb756c964cdbe7fb7fb2c01f5f@dist-git> From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Mon, 27 Aug 2018 13:09:38 +0200 Subject: [PATCH] RHEL: Fix virConnectGetMaxVcpus output @@ -26,10 +26,10 @@ Reviewed-by: Andrea Bolognani 1 file changed, 5 insertions(+) diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c -index 67b6910626..d5d7d5eae0 100644 +index a07c00a0e9..35f41daef2 100644 --- a/src/util/virhostcpu.c +++ b/src/util/virhostcpu.c -@@ -1189,6 +1189,11 @@ virHostCPUGetKVMMaxVCPUs(void) +@@ -1166,6 +1166,11 @@ virHostCPUGetKVMMaxVCPUs(void) return -1; } diff --git a/SOURCES/libvirt-RHEL-Hack-around-changed-Broadwell-Haswell-CPUs.patch b/SOURCES/libvirt-RHEL-Hack-around-changed-Broadwell-Haswell-CPUs.patch index 3eed732..77ba3f8 100644 --- a/SOURCES/libvirt-RHEL-Hack-around-changed-Broadwell-Haswell-CPUs.patch +++ b/SOURCES/libvirt-RHEL-Hack-around-changed-Broadwell-Haswell-CPUs.patch @@ -1,5 +1,5 @@ -From 1519bcc302d20d30b5115d53aa4c1735c72d7db0 Mon Sep 17 00:00:00 2001 -Message-Id: <1519bcc302d20d30b5115d53aa4c1735c72d7db0@dist-git> +From 1d93a3944a200b7c955800faa598e0e11da098f8 Mon Sep 17 00:00:00 2001 +Message-Id: <1d93a3944a200b7c955800faa598e0e11da098f8@dist-git> From: Jiri Denemark Date: Fri, 27 Mar 2015 12:48:40 +0100 Subject: [PATCH] RHEL: Hack around changed Broadwell/Haswell CPUs @@ -30,10 +30,10 @@ Signed-off-by: Jiri Denemark 9 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c -index c47998aabd..b5feaeb2c2 100644 +index d822533ccb..6b4647a711 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c -@@ -6614,6 +6614,8 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, +@@ -6521,6 +6521,8 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, { size_t i; virCPUDef *cpu = def->cpu; @@ -42,7 +42,7 @@ index c47998aabd..b5feaeb2c2 100644 switch ((virCPUMode) cpu->mode) { case VIR_CPU_MODE_HOST_PASSTHROUGH: -@@ -6680,6 +6682,12 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, +@@ -6587,6 +6589,12 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, for (i = 0; i < cpu->nfeatures; i++) { const char *featname = virQEMUCapsCPUFeatureToQEMU(qemuCaps, cpu->features[i].name); @@ -55,7 +55,7 @@ index c47998aabd..b5feaeb2c2 100644 switch ((virCPUFeaturePolicy) cpu->features[i].policy) { case VIR_CPU_FEATURE_FORCE: case VIR_CPU_FEATURE_REQUIRE: -@@ -6697,6 +6705,20 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, +@@ -6604,6 +6612,20 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver, } } @@ -116,7 +116,7 @@ index 09141106d5..ace08d5d76 100644 -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args -index 866b7363b8..4f662703e6 100644 +index 2dab572a6b..a9f7c4b910 100644 --- a/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-translation.x86_64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \ diff --git a/SOURCES/libvirt-RHEL-qemu-Add-ability-to-set-sgio-values-for-hostdev.patch b/SOURCES/libvirt-RHEL-qemu-Add-ability-to-set-sgio-values-for-hostdev.patch index 25ff98a..0dddc76 100644 --- a/SOURCES/libvirt-RHEL-qemu-Add-ability-to-set-sgio-values-for-hostdev.patch +++ b/SOURCES/libvirt-RHEL-qemu-Add-ability-to-set-sgio-values-for-hostdev.patch @@ -1,5 +1,5 @@ -From 654e03568f76bad59e73c3dde61edc1b508fab8b Mon Sep 17 00:00:00 2001 -Message-Id: <654e03568f76bad59e73c3dde61edc1b508fab8b@dist-git> +From d6956a1aaa8757fab60132c3ee46c2bb199a78a8 Mon Sep 17 00:00:00 2001 +Message-Id: From: John Ferlan Date: Mon, 17 Dec 2018 20:42:30 -0500 Subject: [PATCH] RHEL: qemu: Add ability to set sgio values for hostdev @@ -22,10 +22,10 @@ Signed-off-by: Jiri Denemark 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c -index 7eb04e66a0..b4e4b0fe81 100644 +index 6077457ff4..ba85fc6e22 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c -@@ -1835,8 +1835,9 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) +@@ -1841,8 +1841,9 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) virDomainDiskDef *disk = NULL; virDomainHostdevDef *hostdev = NULL; g_autofree char *sysfs_path = NULL; @@ -36,7 +36,7 @@ index 7eb04e66a0..b4e4b0fe81 100644 /* "sgio" is only valid for block disk; cdrom * and floopy disk can have empty source. -@@ -1852,17 +1853,14 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) +@@ -1858,17 +1859,14 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) } else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) { hostdev = dev->data.hostdev; @@ -58,7 +58,7 @@ index 7eb04e66a0..b4e4b0fe81 100644 } else { return 0; } -@@ -1871,7 +1869,16 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) +@@ -1877,7 +1875,16 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) return -1; /* By default, filter the SG_IO commands, i.e. set unpriv_sgio to 0. */ diff --git a/SOURCES/libvirt-RHEL-qemu-Add-check-for-unpriv-sgio-for-SCSI-generic-host-device.patch b/SOURCES/libvirt-RHEL-qemu-Add-check-for-unpriv-sgio-for-SCSI-generic-host-device.patch index babafba..b6ad4ea 100644 --- a/SOURCES/libvirt-RHEL-qemu-Add-check-for-unpriv-sgio-for-SCSI-generic-host-device.patch +++ b/SOURCES/libvirt-RHEL-qemu-Add-check-for-unpriv-sgio-for-SCSI-generic-host-device.patch @@ -1,5 +1,5 @@ -From a5de71de8ed6b67511209f3652f74d5877018b00 Mon Sep 17 00:00:00 2001 -Message-Id: +From f562b4c83d342002291f6bd7c5776eaecbd3147f Mon Sep 17 00:00:00 2001 +Message-Id: From: John Ferlan Date: Mon, 17 Dec 2018 20:42:31 -0500 Subject: [PATCH] RHEL: qemu: Add check for unpriv sgio for SCSI generic host @@ -26,10 +26,10 @@ Signed-off-by: Jiri Denemark 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c -index b4e4b0fe81..846ec1c729 100644 +index ba85fc6e22..28c334761b 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c -@@ -1743,13 +1743,29 @@ qemuSharedHostdevAddRemoveInternal(virQEMUDriver *driver, +@@ -1749,13 +1749,29 @@ qemuSharedHostdevAddRemoveInternal(virQEMUDriver *driver, { g_autofree char *dev_path = NULL; g_autofree char *key = NULL; diff --git a/SOURCES/libvirt-RHEL-virscsi-Check-device-type-before-getting-it-s-dev-node-name.patch b/SOURCES/libvirt-RHEL-virscsi-Check-device-type-before-getting-it-s-dev-node-name.patch index d004796..c467444 100644 --- a/SOURCES/libvirt-RHEL-virscsi-Check-device-type-before-getting-it-s-dev-node-name.patch +++ b/SOURCES/libvirt-RHEL-virscsi-Check-device-type-before-getting-it-s-dev-node-name.patch @@ -1,5 +1,5 @@ -From b2bfe4e417e1a8a3703ef88320d38b555ef9d79f Mon Sep 17 00:00:00 2001 -Message-Id: +From 9c5daeb8c99ca12a66387de448f585742887fd75 Mon Sep 17 00:00:00 2001 +Message-Id: <9c5daeb8c99ca12a66387de448f585742887fd75@dist-git> From: Michal Privoznik Date: Fri, 6 Mar 2020 15:52:21 +0100 Subject: [PATCH] RHEL: virscsi: Check device type before getting it's /dev diff --git a/SOURCES/libvirt-RHEL-virscsi-Introduce-and-use-virSCSIDeviceGetUnprivSGIOSysfsPath.patch b/SOURCES/libvirt-RHEL-virscsi-Introduce-and-use-virSCSIDeviceGetUnprivSGIOSysfsPath.patch index aa8864a..ad3f8bc 100644 --- a/SOURCES/libvirt-RHEL-virscsi-Introduce-and-use-virSCSIDeviceGetUnprivSGIOSysfsPath.patch +++ b/SOURCES/libvirt-RHEL-virscsi-Introduce-and-use-virSCSIDeviceGetUnprivSGIOSysfsPath.patch @@ -1,5 +1,5 @@ -From 1029f562d8eb54e8866e671dfa8c731b5f656dbe Mon Sep 17 00:00:00 2001 -Message-Id: <1029f562d8eb54e8866e671dfa8c731b5f656dbe@dist-git> +From 1ce4faffcd4616bbcea4d198c3f60cbcfddd784e Mon Sep 17 00:00:00 2001 +Message-Id: <1ce4faffcd4616bbcea4d198c3f60cbcfddd784e@dist-git> From: Michal Privoznik Date: Fri, 6 Mar 2020 15:52:23 +0100 Subject: [PATCH] RHEL: virscsi: Introduce and use @@ -30,10 +30,10 @@ Reviewed-by: Jiri Denemark 6 files changed, 50 insertions(+), 32 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms -index b98cb0f66d..98bf2352dd 100644 +index 5b76e66e61..2c42e2a5e8 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms -@@ -3201,6 +3201,7 @@ virSCSIDeviceGetSgName; +@@ -3191,6 +3191,7 @@ virSCSIDeviceGetSgName; virSCSIDeviceGetShareable; virSCSIDeviceGetTarget; virSCSIDeviceGetUnit; @@ -42,10 +42,10 @@ index b98cb0f66d..98bf2352dd 100644 virSCSIDeviceListAdd; virSCSIDeviceListCount; diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c -index 846ec1c729..e0f1272153 100644 +index 28c334761b..a0b8076d6b 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c -@@ -1500,7 +1500,7 @@ qemuCheckUnprivSGIO(GHashTable *sharedDevices, +@@ -1506,7 +1506,7 @@ qemuCheckUnprivSGIO(GHashTable *sharedDevices, if (!(virHashLookup(sharedDevices, key))) return 0; @@ -54,7 +54,7 @@ index 846ec1c729..e0f1272153 100644 return -1; /* Error message on failure needs to be handled in caller -@@ -1851,39 +1851,46 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) +@@ -1857,39 +1857,46 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) virDomainDiskDef *disk = NULL; virDomainHostdevDef *hostdev = NULL; g_autofree char *sysfs_path = NULL; @@ -110,7 +110,7 @@ index 846ec1c729..e0f1272153 100644 /* By default, filter the SG_IO commands, i.e. set unpriv_sgio to 0. */ if (dev->type == VIR_DOMAIN_DEVICE_DISK) { if (disk->sgio == VIR_DOMAIN_DEVICE_SGIO_UNFILTERED) -@@ -1903,11 +1910,11 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) +@@ -1909,11 +1916,11 @@ qemuSetUnprivSGIO(virDomainDeviceDef *dev) if (virFileExists(sysfs_path) || val == 1) { int curr_val; diff --git a/SOURCES/libvirt-RHEL-virscsi-Support-TAPEs-in-virSCSIDeviceGetDevName.patch b/SOURCES/libvirt-RHEL-virscsi-Support-TAPEs-in-virSCSIDeviceGetDevName.patch index 8b2226f..c9a8660 100644 --- a/SOURCES/libvirt-RHEL-virscsi-Support-TAPEs-in-virSCSIDeviceGetDevName.patch +++ b/SOURCES/libvirt-RHEL-virscsi-Support-TAPEs-in-virSCSIDeviceGetDevName.patch @@ -1,5 +1,5 @@ -From 7ea0c04c8a96a420be459427f9d15768cfccce70 Mon Sep 17 00:00:00 2001 -Message-Id: <7ea0c04c8a96a420be459427f9d15768cfccce70@dist-git> +From 5b96a8773d33af9822f6b6ccddc8f372841895a6 Mon Sep 17 00:00:00 2001 +Message-Id: <5b96a8773d33af9822f6b6ccddc8f372841895a6@dist-git> From: Michal Privoznik Date: Fri, 6 Mar 2020 15:52:22 +0100 Subject: [PATCH] RHEL: virscsi: Support TAPEs in virSCSIDeviceGetDevName() diff --git a/SOURCES/libvirt-RHEL-virutil-Accept-non-block-devices-in-virGetDeviceID.patch b/SOURCES/libvirt-RHEL-virutil-Accept-non-block-devices-in-virGetDeviceID.patch index 22f6d44..33400cc 100644 --- a/SOURCES/libvirt-RHEL-virutil-Accept-non-block-devices-in-virGetDeviceID.patch +++ b/SOURCES/libvirt-RHEL-virutil-Accept-non-block-devices-in-virGetDeviceID.patch @@ -1,5 +1,5 @@ -From 00973f13a68ba4b7645ca66ecea8cdbecea29203 Mon Sep 17 00:00:00 2001 -Message-Id: <00973f13a68ba4b7645ca66ecea8cdbecea29203@dist-git> +From ac8357ab7dd676af82b971673f8d7e862ff07624 Mon Sep 17 00:00:00 2001 +Message-Id: From: Michal Privoznik Date: Fri, 6 Mar 2020 15:52:24 +0100 Subject: [PATCH] RHEL: virutil: Accept non-block devices in virGetDeviceID() diff --git a/SOURCES/libvirt-Revert-report-error-when-virProcessGetStatInfo-is-unable-to-parse-data.patch b/SOURCES/libvirt-Revert-report-error-when-virProcessGetStatInfo-is-unable-to-parse-data.patch new file mode 100644 index 0000000..7d5ce9a --- /dev/null +++ b/SOURCES/libvirt-Revert-report-error-when-virProcessGetStatInfo-is-unable-to-parse-data.patch @@ -0,0 +1,103 @@ +From 732113455fb7eadeea178c71cc77f0ffdf639f24 Mon Sep 17 00:00:00 2001 +Message-Id: <732113455fb7eadeea178c71cc77f0ffdf639f24@dist-git> +From: Michal Privoznik +Date: Tue, 18 Jan 2022 12:40:09 +0100 +Subject: [PATCH] Revert "report error when virProcessGetStatInfo() is unable + to parse data" + +This reverts commit 938382b60ae5bd1f83b5cb09e1ce68b9a88f679a. + +Turns out, the commit did more harm than good. It changed +semantics on some public APIs. For instance, while +qemuDomainGetInfo() previously did not returned an error it does +now. While the calls to virProcessGetStatInfo() is guarded with +virDomainObjIsActive() it doesn't necessarily mean that QEMU's +PID is still alive. QEMU might be gone but we just haven't +realized it (e.g. because the eof handler thread is waiting for a +job). + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2041610 +Signed-off-by: Michal Privoznik +Reviewed-by: Andrea Bolognani +(cherry picked from commit 105dace22cc7b5b18d72a4dcad4a2cf386ce5c99) +Signed-off-by: Michal Privoznik +--- + src/ch/ch_driver.c | 2 ++ + src/qemu/qemu_driver.c | 7 ++++++- + src/util/virprocess.c | 8 ++------ + 3 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/src/ch/ch_driver.c b/src/ch/ch_driver.c +index 3cbc668489..53e0872207 100644 +--- a/src/ch/ch_driver.c ++++ b/src/ch/ch_driver.c +@@ -1073,6 +1073,8 @@ chDomainHelperGetVcpus(virDomainObj *vm, + if (virProcessGetStatInfo(&vcpuinfo->cpuTime, + &vcpuinfo->cpu, NULL, + vm->pid, vcpupid) < 0) { ++ virReportSystemError(errno, "%s", ++ _("cannot get vCPU placement & pCPU time")); + return -1; + } + } +diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c +index 65ac5ef367..d3d76c003f 100644 +--- a/src/qemu/qemu_driver.c ++++ b/src/qemu/qemu_driver.c +@@ -1359,6 +1359,8 @@ qemuDomainHelperGetVcpus(virDomainObj *vm, + if (virProcessGetStatInfo(&vcpuinfo->cpuTime, + &vcpuinfo->cpu, NULL, + vm->pid, vcpupid) < 0) { ++ virReportSystemError(errno, "%s", ++ _("cannot get vCPU placement & pCPU time")); + return -1; + } + } +@@ -2519,6 +2521,8 @@ qemuDomainGetInfo(virDomainPtr dom, + if (virDomainObjIsActive(vm)) { + if (virProcessGetStatInfo(&(info->cpuTime), NULL, NULL, + vm->pid, 0) < 0) { ++ virReportError(VIR_ERR_OPERATION_FAILED, "%s", ++ _("cannot read cputime for domain")); + goto cleanup; + } + } +@@ -10526,7 +10530,8 @@ qemuDomainMemoryStatsInternal(virQEMUDriver *driver, + } + + if (virProcessGetStatInfo(NULL, NULL, &rss, vm->pid, 0) < 0) { +- virResetLastError(); ++ virReportError(VIR_ERR_OPERATION_FAILED, "%s", ++ _("cannot get RSS for domain")); + } else { + stats[ret].tag = VIR_DOMAIN_MEMORY_STAT_RSS; + stats[ret].val = rss; +diff --git a/src/util/virprocess.c b/src/util/virprocess.c +index 85d8c8e747..b559a4257e 100644 +--- a/src/util/virprocess.c ++++ b/src/util/virprocess.c +@@ -1784,10 +1784,7 @@ virProcessGetStatInfo(unsigned long long *cpuTime, + virStrToLong_ullp(proc_stat[VIR_PROCESS_STAT_STIME], NULL, 10, &systime) < 0 || + virStrToLong_l(proc_stat[VIR_PROCESS_STAT_RSS], NULL, 10, &rss) < 0 || + virStrToLong_i(proc_stat[VIR_PROCESS_STAT_PROCESSOR], NULL, 10, &cpu) < 0) { +- virReportError(VIR_ERR_INTERNAL_ERROR, +- _("cannot parse process status data for pid '%d/%d'"), +- (int) pid, (int) tid); +- return -1; ++ VIR_WARN("cannot parse process status data"); + } + + /* We got jiffies +@@ -1884,8 +1881,7 @@ virProcessGetStatInfo(unsigned long long *cpuTime G_GNUC_UNUSED, + pid_t pid G_GNUC_UNUSED, + pid_t tid G_GNUC_UNUSED) + { +- virReportSystemError(ENOSYS, "%s", +- _("Process statistics data is not supported on this platform")); ++ errno = ENOSYS; + return -1; + } + +-- +2.35.0 + diff --git a/SOURCES/libvirt-qemu-fix-inactive-snapshot-revert.patch b/SOURCES/libvirt-qemu-fix-inactive-snapshot-revert.patch new file mode 100644 index 0000000..3c03910 --- /dev/null +++ b/SOURCES/libvirt-qemu-fix-inactive-snapshot-revert.patch @@ -0,0 +1,44 @@ +From 94bc9eaf3bbcaec47bd233378bbbb45f5f1523ca Mon Sep 17 00:00:00 2001 +Message-Id: <94bc9eaf3bbcaec47bd233378bbbb45f5f1523ca@dist-git> +From: =?UTF-8?q?J=C3=A1n=20Tomko?= +Date: Thu, 20 Jan 2022 14:53:33 +0100 +Subject: [PATCH] qemu: fix inactive snapshot revert +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The commit splitting out the qemuSnapshotRevertInactive function +dropped the 'defined = true' line by accident and instead +returned -1, leaving the user with a cryptic error: +error: An error occurred, but the cause is unknown + +https://bugzilla.redhat.com/show_bug.cgi?id=2039136 +https://gitlab.com/libvirt/libvirt/-/issues/266 + +Fixes: 85e4a13c3f19078fb6af5ffb4a80022c142cbc7e +Signed-off-by: Ján Tomko +(cherry picked from commit 76deb656132bb8817ddae4b7f417930c4db824c9) + +https://bugzilla.redhat.com/show_bug.cgi?id=2043584 + +Signed-off-by: Ján Tomko +--- + src/qemu/qemu_snapshot.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c +index f92e00f9c0..ac7bab90f8 100644 +--- a/src/qemu/qemu_snapshot.c ++++ b/src/qemu/qemu_snapshot.c +@@ -2193,7 +2193,7 @@ qemuSnapshotRevertInactive(virDomainObj *vm, + + if (*inactiveConfig) { + virDomainObjAssignDef(vm, inactiveConfig, false, NULL); +- return -1; ++ defined = true; + } + + if (flags & (VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING | +-- +2.35.0 + diff --git a/SOURCES/symlinks b/SOURCES/symlinks index 07ce0ed..54c634d 100644 --- a/SOURCES/symlinks +++ b/SOURCES/symlinks @@ -177,12 +177,14 @@ tests/qemuxml2xmloutdata/intel-iommu-caching-mode.x86_64-latest.xml ../qemuxml2a tests/qemuxml2xmloutdata/intel-iommu-device-iotlb.x86_64-latest.xml ../qemuxml2argvdata/intel-iommu-device-iotlb.xml tests/qemuxml2xmloutdata/intel-iommu-eim.x86_64-latest.xml ../qemuxml2argvdata/intel-iommu-eim.xml tests/qemuxml2xmloutdata/intel-iommu.x86_64-latest.xml ../qemuxml2argvdata/intel-iommu.xml -tests/qemuxml2xmloutdata/luks-disks.xml ../qemuxml2argvdata/luks-disks.xml +tests/qemuxml2xmloutdata/kvm-features-off.xml ../qemuxml2argvdata/kvm-features-off.xml +tests/qemuxml2xmloutdata/kvm-features.xml ../qemuxml2argvdata/kvm-features.xml +tests/qemuxml2xmloutdata/luks-disks.x86_64-latest.xml ../qemuxml2argvdata/luks-disks.xml tests/qemuxml2xmloutdata/mach-virt-console-native.xml mach-virt-serial-compat.xml tests/qemuxml2xmloutdata/mach-virt-serial+console-native.xml mach-virt-serial-compat.xml tests/qemuxml2xmloutdata/mach-virt-serial-native.xml mach-virt-serial-compat.xml -tests/qemuxml2xmloutdata/memfd-memory-default-hugepage.xml ../qemuxml2argvdata/memfd-memory-default-hugepage.xml -tests/qemuxml2xmloutdata/memfd-memory-numa.xml ../qemuxml2argvdata/memfd-memory-numa.xml +tests/qemuxml2xmloutdata/memfd-memory-default-hugepage.x86_64-latest.xml ../qemuxml2argvdata/memfd-memory-default-hugepage.xml +tests/qemuxml2xmloutdata/memfd-memory-numa.x86_64-latest.xml ../qemuxml2argvdata/memfd-memory-numa.xml tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-access.xml ../qemuxml2argvdata/memory-hotplug-nvdimm-access.xml tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-align.xml ../qemuxml2argvdata/memory-hotplug-nvdimm-align.xml tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-label.xml ../qemuxml2argvdata/memory-hotplug-nvdimm-label.xml @@ -208,6 +210,13 @@ tests/qemuxml2xmloutdata/pseries-serial+console-native.xml pseries-serial-native tests/qemuxml2xmloutdata/pseries-serial-compat.xml pseries-serial-native.xml tests/qemuxml2xmloutdata/serial-tcp-tlsx509-chardev-notls.xml ../qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.xml tests/qemuxml2xmloutdata/smbios-type-fwcfg.xml ../qemuxml2argvdata/smbios-type-fwcfg.xml +tests/qemuxml2xmloutdata/tpm-emulator-spapr.ppc64-latest.xml ../qemuxml2argvdata/tpm-emulator-spapr.xml +tests/qemuxml2xmloutdata/tpm-emulator-tpm2-enc.x86_64-latest.xml ../qemuxml2argvdata/tpm-emulator-tpm2-enc.xml +tests/qemuxml2xmloutdata/tpm-emulator-tpm2-pstate.x86_64-latest.xml ../qemuxml2argvdata/tpm-emulator-tpm2-pstate.xml +tests/qemuxml2xmloutdata/tpm-emulator-tpm2.x86_64-latest.xml ../qemuxml2argvdata/tpm-emulator-tpm2.xml +tests/qemuxml2xmloutdata/tpm-emulator.x86_64-latest.xml ../qemuxml2argvdata/tpm-emulator.xml +tests/qemuxml2xmloutdata/tpm-passthrough-crb.x86_64-latest.xml ../qemuxml2argvdata/tpm-passthrough-crb.xml +tests/qemuxml2xmloutdata/tpm-passthrough.x86_64-latest.xml ../qemuxml2argvdata/tpm-passthrough.xml tests/qemuxml2xmloutdata/user-aliases.xml ../qemuxml2argvdata/user-aliases.xml tests/qemuxml2xmloutdata/vcpu-placement-static.xml ../qemuxml2argvdata/vcpu-placement-static.xml tests/qemuxml2xmloutdata/vhost-user-fs-fd-memory.x86_64-latest.xml ../qemuxml2argvdata/vhost-user-fs-fd-memory.xml @@ -215,10 +224,11 @@ tests/qemuxml2xmloutdata/vhost-user-fs-hugepages.x86_64-latest.xml ../qemuxml2ar tests/qemuxml2xmloutdata/vhost-user-fs-sock.x86_64-latest.xml ../qemuxml2argvdata/vhost-user-fs-sock.xml tests/qemuxml2xmloutdata/vhost-vsock-ccw-iommu.s390x-latest.xml ../qemuxml2argvdata/vhost-vsock-ccw-iommu.xml tests/qemuxml2xmloutdata/vhost-vsock-ccw.xml ../qemuxml2argvdata/vhost-vsock-ccw.xml -tests/qemuxml2xmloutdata/vhost-vsock.xml ../qemuxml2argvdata/vhost-vsock.xml +tests/qemuxml2xmloutdata/vhost-vsock.x86_64-latest.xml ../qemuxml2argvdata/vhost-vsock.xml tests/qemuxml2xmloutdata/video-qxl-resolution.xml ../qemuxml2argvdata/video-qxl-resolution.xml tests/qemuxml2xmloutdata/video-virtio-vga-gpu-gl.x86_64-latest.xml ../qemuxml2argvdata/video-virtio-vga-gpu-gl.xml tests/qemuxml2xmloutdata/virtio-options.x86_64-latest.xml ../qemuxml2argvdata/virtio-options.xml +tests/qemuxml2xmloutdata/x86_64-default-cpu-tcg-features.x86_64-latest.xml ../qemuxml2argvdata/x86_64-default-cpu-tcg-features.xml tests/vircaps2xmldata/linux-basic-dies/system/cpu ../../../virhostcpudata/linux-with-die/cpu tests/vircaps2xmldata/linux-basic-dies/system/node ../../../virhostcpudata/linux-with-die/node tests/vircaps2xmldata/linux-basic/system/node/node0/cpu0 ../../cpu/cpu0 diff --git a/SPECS/libvirt.spec b/SPECS/libvirt.spec index 095a428..196c03a 100644 --- a/SPECS/libvirt.spec +++ b/SPECS/libvirt.spec @@ -209,8 +209,8 @@ Summary: Library providing a simple virtualization API Name: libvirt -Version: 7.10.0 -Release: 1%{?dist}%{?extra_release} +Version: 8.0.0 +Release: 2%{?dist}%{?extra_release} License: LGPLv2+ URL: https://libvirt.org/ @@ -230,6 +230,8 @@ Patch7: libvirt-RHEL-virscsi-Support-TAPEs-in-virSCSIDeviceGetDevName.patch Patch8: libvirt-RHEL-virscsi-Introduce-and-use-virSCSIDeviceGetUnprivSGIOSysfsPath.patch Patch9: libvirt-RHEL-virutil-Accept-non-block-devices-in-virGetDeviceID.patch Patch10: libvirt-RHEL-Enable-usage-of-x-blockdev-reopen.patch +Patch11: libvirt-Revert-report-error-when-virProcessGetStatInfo-is-unable-to-parse-data.patch +Patch12: libvirt-qemu-fix-inactive-snapshot-revert.patch Requires: libvirt-daemon = %{version}-%{release} Requires: libvirt-daemon-config-network = %{version}-%{release} @@ -299,7 +301,6 @@ BuildRequires: libnl3-devel BuildRequires: libselinux-devel BuildRequires: dnsmasq >= 2.41 BuildRequires: iptables -BuildRequires: radvd BuildRequires: ebtables BuildRequires: module-init-tools BuildRequires: cyrus-sasl-devel @@ -324,8 +325,6 @@ BuildRequires: libiscsi-devel BuildRequires: parted-devel # For Multipath support BuildRequires: device-mapper-devel -# For XFS reflink clone support -BuildRequires: xfsprogs-devel %if %{with_storage_rbd} BuildRequires: librados-devel BuildRequires: librbd-devel @@ -337,12 +336,6 @@ BuildRequires: glusterfs-devel >= 3.4.1 %if %{with_storage_sheepdog} BuildRequires: sheepdog %endif -%if %{with_storage_zfs} -# Support any conforming implementation of zfs. On stock Fedora -# this is zfs-fuse, but could be zfsonlinux upstream RPMs -BuildRequires: /sbin/zfs -BuildRequires: /sbin/zpool -%endif %if %{with_numactl} # For QEMU/LXC numa info BuildRequires: numactl-devel @@ -419,8 +412,12 @@ Summary: Server side daemon and supporting files for libvirt library # The client side, i.e. shared libs are in a subpackage Requires: %{name}-libs = %{version}-%{release} -# (client invokes 'nc' against the UNIX socket on the server) -Requires: /usr/bin/nc +# netcat is needed on the server side so that clients that have +# libvirt < 6.9.0 can connect, but newer versions will prefer +# virt-ssh-helper. Making this a Recommends means that it gets +# installed by default, but can still be removed if compatibility +# with old clients is not required +Recommends: /usr/bin/nc # for modprobe of pci devices Requires: module-init-tools @@ -480,7 +477,6 @@ Summary: Network driver plugin for the libvirtd daemon Requires: libvirt-daemon = %{version}-%{release} Requires: libvirt-libs = %{version}-%{release} Requires: dnsmasq >= 2.41 -Requires: radvd Requires: iptables %description daemon-driver-network @@ -1312,14 +1308,18 @@ then \ fi \ %libvirt_daemon_finish_restart %1 +# For daemons with only UNIX sockets %define libvirt_daemon_systemd_post() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1.service - -%define libvirt_daemon_systemd_post_inet() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.service - %define libvirt_daemon_systemd_preun() %systemd_preun %1.service %1-ro.socket %1-admin.socket %1.socket +# For daemons with UNIX and INET sockets +%define libvirt_daemon_systemd_post_inet() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.service %define libvirt_daemon_systemd_preun_inet() %systemd_preun %1.service %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.socket +# For daemons with only UNIX sockets and no unprivileged read-only access +%define libvirt_daemon_systemd_post_priv() %systemd_post %1.socket %1-admin.socket %1.service +%define libvirt_daemon_systemd_preun_priv() %systemd_preun %1.service %1-admin.socket %1.socket + %pre daemon # 'libvirt' group is just to allow password-less polkit access to # libvirtd. The uid number is irrelevant, so we use dynamic allocation @@ -1329,8 +1329,8 @@ getent group libvirt >/dev/null || groupadd -r libvirt exit 0 %post daemon -%libvirt_daemon_systemd_post virtlogd -%libvirt_daemon_systemd_post virtlockdd +%libvirt_daemon_systemd_post_priv virtlogd +%libvirt_daemon_systemd_post_priv virtlockd %if %{with_modular_daemons} %libvirt_daemon_systemd_post_inet virtproxyd %else @@ -1346,8 +1346,8 @@ exit 0 %libvirt_daemon_systemd_preun_inet libvirtd %libvirt_daemon_systemd_preun_inet virtproxyd -%libvirt_daemon_systemd_preun virtlogd -%libvirt_daemon_systemd_preun virtlockdd +%libvirt_daemon_systemd_preun_priv virtlogd +%libvirt_daemon_systemd_preun_priv virtlockd %postun daemon /bin/systemctl daemon-reload >/dev/null 2>&1 || : @@ -1419,7 +1419,7 @@ fi %endif %libvirt_daemon_schedule_restart virtnetworkd -%preun +%preun daemon-driver-network %libvirt_daemon_systemd_preun virtnetworkd %postun daemon-driver-network @@ -1497,6 +1497,21 @@ fi %if %{with_qemu} +%pre daemon-driver-qemu +# We want soft static allocation of well-known ids, as disk images +# are commonly shared across NFS mounts by id rather than name; see +# https://fedoraproject.org/wiki/Packaging:UsersAndGroups +getent group kvm >/dev/null || groupadd -f -g 36 -r kvm +getent group qemu >/dev/null || groupadd -f -g 107 -r qemu +if ! getent passwd qemu >/dev/null; then + if ! getent passwd 107 >/dev/null; then + useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu + else + useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu + fi +fi +exit 0 + %post daemon-driver-qemu %if %{with_modular_daemons} %libvirt_daemon_systemd_post virtqemud @@ -1618,23 +1633,6 @@ done %libvirt_daemon_perform_restart libvirtd %libvirt_daemon_perform_restart virtnwfilterd -%if %{with_qemu} -%pre daemon-driver-qemu -# We want soft static allocation of well-known ids, as disk images -# are commonly shared across NFS mounts by id rather than name; see -# https://fedoraproject.org/wiki/Packaging:UsersAndGroups -getent group kvm >/dev/null || groupadd -f -g 36 -r kvm -getent group qemu >/dev/null || groupadd -f -g 107 -r qemu -if ! getent passwd qemu >/dev/null; then - if ! getent passwd 107 >/dev/null; then - useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu - else - useradd -r -g qemu -G kvm -d / -s /sbin/nologin -c "qemu user" qemu - fi -fi -exit 0 -%endif - %if %{with_lxc} %pre login-shell getent group virtlogin >/dev/null || groupadd -r virtlogin @@ -1730,6 +1728,7 @@ exit 0 %{_mandir}/man1/virt-admin.1* %{_mandir}/man1/virt-host-validate.1* +%{_mandir}/man8/virt-ssh-helper.8* %{_mandir}/man8/libvirtd.8* %{_mandir}/man8/virtlogd.8* %{_mandir}/man8/virtlockd.8* @@ -1892,6 +1891,7 @@ exit 0 %files daemon-driver-qemu %config(noreplace) %{_sysconfdir}/sysconfig/virtqemud %config(noreplace) %{_sysconfdir}/libvirt/virtqemud.conf +%config(noreplace) %{_prefix}/lib/sysctl.d/60-qemu-postcopy-migration.conf %{_datadir}/augeas/lenses/virtqemud.aug %{_datadir}/augeas/lenses/tests/test_virtqemud.aug %{_unitdir}/virtqemud.service @@ -2018,6 +2018,7 @@ exit 0 %files client %{_mandir}/man1/virsh.1* %{_mandir}/man1/virt-xml-validate.1* +%{_mandir}/man1/virt-pki-query-dn.1* %{_mandir}/man1/virt-pki-validate.1* %{_bindir}/virsh %{_bindir}/virt-xml-validate @@ -2104,6 +2105,19 @@ exit 0 %changelog +* Wed Jan 26 2022 Jiri Denemark - 8.0.0-2 +- Revert "report error when virProcessGetStatInfo() is unable to parse data" (rhbz#2041610) +- qemu: fix inactive snapshot revert (rhbz#2043584) + +* Fri Jan 14 2022 Jiri Denemark - 8.0.0-1 +- Rebased to libvirt-8.0.0 (rhbz#2012802) + +* Thu Jan 13 2022 Jiri Denemark - 8.0.0-0rc1.1 +- Rebased to libvirt-8.0.0-rc1 (rhbz#2012802) +- The rebase also fixes the following bugs: + rhbz#1689202, rhbz#2014369, rhbz#2030119, rhbz#2029380, rhbz#2035237 + rhbz#2035714, rhbz#2034180 + * Wed Dec 1 2021 Jiri Denemark - 7.10.0-1 - Rebased to libvirt-7.10.0 (rhbz#2012802) - The rebase also fixes the following bugs: