Date: Wednesday, May 6, 2020 @ 21:03:43 Author: coderobe Revision: 625193
archrelease: copy trunk to community-testing-x86_64 Added: libvirt/repos/community-testing-x86_64/Changelog (from rev 625192, libvirt/trunk/Changelog) libvirt/repos/community-testing-x86_64/PKGBUILD (from rev 625192, libvirt/trunk/PKGBUILD) Deleted: libvirt/repos/community-testing-x86_64/0001-qemu_firmware-Pass-virDomainDef-into-qemuFirmwareFil.patch libvirt/repos/community-testing-x86_64/0002-qemu_firmware-Introduce-want-variable-to-qemuFirmwar.patch libvirt/repos/community-testing-x86_64/0003-src-Introduce-and-use-virDomainDefHasOldStyleUEFI-an.patch libvirt/repos/community-testing-x86_64/0004-qemu_firmware-Try-to-autofill-for-old-style-UEFI-spe.patch libvirt/repos/community-testing-x86_64/Changelog libvirt/repos/community-testing-x86_64/PKGBUILD libvirt/repos/community-testing-x86_64/libvirt.sysusers.d libvirt/repos/community-testing-x86_64/libvirtd-guests.conf.d libvirt/repos/community-testing-x86_64/libvirtd.conf.d -----------------------------------------------------------------+ 0001-qemu_firmware-Pass-virDomainDef-into-qemuFirmwareFil.patch | 104 -- 0002-qemu_firmware-Introduce-want-variable-to-qemuFirmwar.patch | 70 - 0003-src-Introduce-and-use-virDomainDefHasOldStyleUEFI-an.patch | 194 ----- 0004-qemu_firmware-Try-to-autofill-for-old-style-UEFI-spe.patch | 111 --- Changelog | 2 PKGBUILD | 361 +++++----- libvirt.sysusers.d | 1 libvirtd-guests.conf.d | 9 libvirtd.conf.d | 1 9 files changed, 184 insertions(+), 669 deletions(-) Deleted: 0001-qemu_firmware-Pass-virDomainDef-into-qemuFirmwareFil.patch =================================================================== --- 0001-qemu_firmware-Pass-virDomainDef-into-qemuFirmwareFil.patch 2020-05-06 21:03:17 UTC (rev 625192) +++ 0001-qemu_firmware-Pass-virDomainDef-into-qemuFirmwareFil.patch 2020-05-06 21:03:43 UTC (rev 625193) @@ -1,104 +0,0 @@ -From 08fca7705b22c438e40f0202c5307ef2bae5b0f4 Mon Sep 17 00:00:00 2001 -From: Michal Privoznik <mpriv...@redhat.com> -Date: Fri, 13 Dec 2019 15:41:16 +0100 -Subject: [PATCH 1/4] qemu_firmware: Pass virDomainDef into - qemuFirmwareFillDomain() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This function needs domain definition really, we don't need to -pass the whole domain object. This saves couple of dereferences -and characters esp. in more checks to come. - -Signed-off-by: Michal Privoznik <mpriv...@redhat.com> -Reviewed-by: Cole Robinson <crobi...@redhat.com> -Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> ---- - src/qemu/qemu_firmware.c | 12 ++++++------ - src/qemu/qemu_firmware.h | 2 +- - src/qemu/qemu_process.c | 2 +- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c -index f62ce90ac9..96058c9b45 100644 ---- a/src/qemu/qemu_firmware.c -+++ b/src/qemu/qemu_firmware.c -@@ -1204,7 +1204,7 @@ qemuFirmwareFetchParsedConfigs(bool privileged, - - int - qemuFirmwareFillDomain(virQEMUDriverPtr driver, -- virDomainObjPtr vm, -+ virDomainDefPtr def, - unsigned int flags) - { - VIR_AUTOSTRINGLIST paths = NULL; -@@ -1217,7 +1217,7 @@ qemuFirmwareFillDomain(virQEMUDriverPtr driver, - if (!(flags & VIR_QEMU_PROCESS_START_NEW)) - return 0; - -- if (vm->def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_NONE) -+ if (def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_NONE) - return 0; - - if ((nfirmwares = qemuFirmwareFetchParsedConfigs(driver->privileged, -@@ -1225,7 +1225,7 @@ qemuFirmwareFillDomain(virQEMUDriverPtr driver, - return -1; - - for (i = 0; i < nfirmwares; i++) { -- if (qemuFirmwareMatchDomain(vm->def, firmwares[i], paths[i])) { -+ if (qemuFirmwareMatchDomain(def, firmwares[i], paths[i])) { - theone = firmwares[i]; - VIR_DEBUG("Found matching firmware (description path '%s')", - paths[i]); -@@ -1236,7 +1236,7 @@ qemuFirmwareFillDomain(virQEMUDriverPtr driver, - if (!theone) { - virReportError(VIR_ERR_OPERATION_FAILED, - _("Unable to find any firmware to satisfy '%s'"), -- virDomainOsDefFirmwareTypeToString(vm->def->os.firmware)); -+ virDomainOsDefFirmwareTypeToString(def->os.firmware)); - goto cleanup; - } - -@@ -1245,10 +1245,10 @@ qemuFirmwareFillDomain(virQEMUDriverPtr driver, - * likely that admin/FW manufacturer messed up. */ - qemuFirmwareSanityCheck(theone, paths[i]); - -- if (qemuFirmwareEnableFeatures(driver, vm->def, theone) < 0) -+ if (qemuFirmwareEnableFeatures(driver, def, theone) < 0) - goto cleanup; - -- vm->def->os.firmware = VIR_DOMAIN_OS_DEF_FIRMWARE_NONE; -+ def->os.firmware = VIR_DOMAIN_OS_DEF_FIRMWARE_NONE; - - ret = 0; - cleanup: -diff --git a/src/qemu/qemu_firmware.h b/src/qemu/qemu_firmware.h -index 4be65bc664..37cbfae39d 100644 ---- a/src/qemu/qemu_firmware.h -+++ b/src/qemu/qemu_firmware.h -@@ -45,7 +45,7 @@ qemuFirmwareFetchConfigs(char ***firmwares, - - int - qemuFirmwareFillDomain(virQEMUDriverPtr driver, -- virDomainObjPtr vm, -+ virDomainDefPtr def, - unsigned int flags); - - int -diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c -index a588ee25f8..ac0c052fc0 100644 ---- a/src/qemu/qemu_process.c -+++ b/src/qemu/qemu_process.c -@@ -6289,7 +6289,7 @@ qemuProcessPrepareDomain(virQEMUDriverPtr driver, - goto cleanup; - - VIR_DEBUG("Prepare bios/uefi paths"); -- if (qemuFirmwareFillDomain(driver, vm, flags) < 0) -+ if (qemuFirmwareFillDomain(driver, vm->def, flags) < 0) - goto cleanup; - if (qemuDomainInitializePflashStorageSource(vm) < 0) - goto cleanup; --- -2.24.1 - Deleted: 0002-qemu_firmware-Introduce-want-variable-to-qemuFirmwar.patch =================================================================== --- 0002-qemu_firmware-Introduce-want-variable-to-qemuFirmwar.patch 2020-05-06 21:03:17 UTC (rev 625192) +++ 0002-qemu_firmware-Introduce-want-variable-to-qemuFirmwar.patch 2020-05-06 21:03:43 UTC (rev 625193) @@ -1,70 +0,0 @@ -From 9f67ec3b70a5c304c6baf6488a8070e4a9ece837 Mon Sep 17 00:00:00 2001 -From: Michal Privoznik <mpriv...@redhat.com> -Date: Tue, 7 Jan 2020 10:10:02 +0100 -Subject: [PATCH 2/4] qemu_firmware: Introduce @want variable to - qemuFirmwareMatchDomain() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This simplifies condition when matching FW interface by having a -single line condition instead of multiline one. Also, it prepares -the code for future expansion. - -Signed-off-by: Michal Privoznik <mpriv...@redhat.com> -Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> ---- - src/qemu/qemu_firmware.c | 25 +++++++++++++++++++++---- - 1 file changed, 21 insertions(+), 4 deletions(-) - -diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c -index 96058c9b45..41e05e570b 100644 ---- a/src/qemu/qemu_firmware.c -+++ b/src/qemu/qemu_firmware.c -@@ -930,22 +930,39 @@ qemuFirmwareMatchesMachineArch(const qemuFirmware *fw, - } - - -+static qemuFirmwareOSInterface -+qemuFirmwareOSInterfaceTypeFromOsDefFirmware(virDomainOsDefFirmware fw) -+{ -+ switch (fw) { -+ case VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS: -+ return QEMU_FIRMWARE_OS_INTERFACE_BIOS; -+ case VIR_DOMAIN_OS_DEF_FIRMWARE_EFI: -+ return QEMU_FIRMWARE_OS_INTERFACE_UEFI; -+ case VIR_DOMAIN_OS_DEF_FIRMWARE_NONE: -+ case VIR_DOMAIN_OS_DEF_FIRMWARE_LAST: -+ break; -+ } -+ -+ return QEMU_FIRMWARE_OS_INTERFACE_NONE; -+} -+ -+ - static bool - qemuFirmwareMatchDomain(const virDomainDef *def, - const qemuFirmware *fw, - const char *path) - { - size_t i; -+ qemuFirmwareOSInterface want; - bool supportsS3 = false; - bool supportsS4 = false; - bool requiresSMM = false; - bool supportsSEV = false; - -+ want = qemuFirmwareOSInterfaceTypeFromOsDefFirmware(def->os.firmware); -+ - for (i = 0; i < fw->ninterfaces; i++) { -- if ((def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_BIOS && -- fw->interfaces[i] == QEMU_FIRMWARE_OS_INTERFACE_BIOS) || -- (def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_EFI && -- fw->interfaces[i] == QEMU_FIRMWARE_OS_INTERFACE_UEFI)) -+ if (fw->interfaces[i] == want) - break; - } - --- -2.24.1 - Deleted: 0003-src-Introduce-and-use-virDomainDefHasOldStyleUEFI-an.patch =================================================================== --- 0003-src-Introduce-and-use-virDomainDefHasOldStyleUEFI-an.patch 2020-05-06 21:03:17 UTC (rev 625192) +++ 0003-src-Introduce-and-use-virDomainDefHasOldStyleUEFI-an.patch 2020-05-06 21:03:43 UTC (rev 625193) @@ -1,194 +0,0 @@ -From 482e078b654c63590a09958b63b221fa80efcc6e Mon Sep 17 00:00:00 2001 -From: Michal Privoznik <mpriv...@redhat.com> -Date: Tue, 7 Jan 2020 10:34:03 +0100 -Subject: [PATCH 3/4] src: Introduce and use virDomainDefHasOldStyleUEFI() and - virDomainDefHasOldStyleROUEFI() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -These functions are meant to replace verbose check for the old -style of specifying UEFI with a simple function call. - -Signed-off-by: Michal Privoznik <mpriv...@redhat.com> -Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> ---- - src/bhyve/bhyve_driver.c | 3 +-- - src/conf/domain_conf.c | 16 ++++++++++++++++ - src/conf/domain_conf.h | 6 ++++++ - src/libvirt_private.syms | 2 ++ - src/libxl/libxl_conf.c | 3 +-- - src/libxl/xen_xl.c | 8 +++----- - src/qemu/qemu_domain.c | 14 ++++---------- - src/qemu/qemu_driver.c | 3 +-- - 8 files changed, 34 insertions(+), 21 deletions(-) - -diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c -index d40ae1cd23..6edcc37326 100644 ---- a/src/bhyve/bhyve_driver.c -+++ b/src/bhyve/bhyve_driver.c -@@ -714,8 +714,7 @@ bhyveConnectDomainXMLToNative(virConnectPtr conn, - if (def->os.bootloader == NULL && - def->os.loader) { - -- if ((def->os.loader->readonly != VIR_TRISTATE_BOOL_YES) || -- (def->os.loader->type != VIR_DOMAIN_LOADER_TYPE_PFLASH)) { -+ if (!virDomainDefHasOldStyleROUEFI(def)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Only read-only pflash is supported.")); - goto cleanup; -diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c -index 9580884747..54234049f7 100644 ---- a/src/conf/domain_conf.c -+++ b/src/conf/domain_conf.c -@@ -31400,6 +31400,22 @@ virDomainDefHasMdevHostdev(const virDomainDef *def) - } - - -+bool -+virDomainDefHasOldStyleUEFI(const virDomainDef *def) -+{ -+ return def->os.loader && -+ def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH; -+} -+ -+ -+bool -+virDomainDefHasOldStyleROUEFI(const virDomainDef *def) -+{ -+ return virDomainDefHasOldStyleUEFI(def) && -+ def->os.loader->readonly == VIR_TRISTATE_BOOL_YES; -+} -+ -+ - /** - * virDomainGraphicsDefHasOpenGL: - * @def: domain definition -diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h -index 49cb6970e6..1332bdecc2 100644 ---- a/src/conf/domain_conf.h -+++ b/src/conf/domain_conf.h -@@ -3680,6 +3680,12 @@ virDomainDefHasVFIOHostdev(const virDomainDef *def); - bool - virDomainDefHasMdevHostdev(const virDomainDef *def); - -+bool -+virDomainDefHasOldStyleUEFI(const virDomainDef *def); -+ -+bool -+virDomainDefHasOldStyleROUEFI(const virDomainDef *def); -+ - bool - virDomainGraphicsDefHasOpenGL(const virDomainDef *def); - -diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms -index 8fe0bf9365..5cfc8af46d 100644 ---- a/src/libvirt_private.syms -+++ b/src/libvirt_private.syms -@@ -297,6 +297,8 @@ virDomainDefHasManagedPR; - virDomainDefHasMdevHostdev; - virDomainDefHasMemballoon; - virDomainDefHasMemoryHotplug; -+virDomainDefHasOldStyleROUEFI; -+virDomainDefHasOldStyleUEFI; - virDomainDefHasUSB; - virDomainDefHasVcpusOffline; - virDomainDefHasVFIOHostdev; -diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c -index 37fe360067..d712515b05 100644 ---- a/src/libxl/libxl_conf.c -+++ b/src/libxl/libxl_conf.c -@@ -546,8 +546,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, - * future, Xen will support a user-specified firmware path. See - * http://lists.xenproject.org/archives/html/xen-devel/2016-03/msg01628.html - */ -- if (def->os.loader && -- def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH) -+ if (virDomainDefHasOldStyleUEFI(def)) - b_info->u.hvm.bios = LIBXL_BIOS_TYPE_OVMF; - - if (def->emulator) { -diff --git a/src/libxl/xen_xl.c b/src/libxl/xen_xl.c -index 396adf6dac..f0269b01ff 100644 ---- a/src/libxl/xen_xl.c -+++ b/src/libxl/xen_xl.c -@@ -1235,11 +1235,9 @@ xenFormatXLOS(virConfPtr conf, virDomainDefPtr def) - if (xenConfigSetString(conf, "builder", "hvm") < 0) - return -1; - -- if (def->os.loader && -- def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH) { -- if (xenConfigSetString(conf, "bios", "ovmf") < 0) -- return -1; -- } -+ if (virDomainDefHasOldStyleUEFI(def) && -+ xenConfigSetString(conf, "bios", "ovmf") < 0) -+ return -1; - - if (def->os.slic_table && - xenConfigSetString(conf, "acpi_firmware", def->os.slic_table) < 0) -diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c -index d1596a28ca..626ed5f326 100644 ---- a/src/qemu/qemu_domain.c -+++ b/src/qemu/qemu_domain.c -@@ -4968,8 +4968,7 @@ qemuDomainDefValidate(const virDomainDef *def, - - /* On x86, UEFI requires ACPI */ - if ((def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_EFI || -- (def->os.loader && -- def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH)) && -+ virDomainDefHasOldStyleUEFI(def)) && - ARCH_IS_X86(def->os.arch) && - def->features[VIR_DOMAIN_FEATURE_ACPI] != VIR_TRISTATE_SWITCH_ON) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", -@@ -4981,8 +4980,7 @@ qemuDomainDefValidate(const virDomainDef *def, - if (def->features[VIR_DOMAIN_FEATURE_ACPI] == VIR_TRISTATE_SWITCH_ON && - def->os.arch == VIR_ARCH_AARCH64 && - (def->os.firmware != VIR_DOMAIN_OS_DEF_FIRMWARE_EFI && -- (!def->os.loader || -- def->os.loader->type != VIR_DOMAIN_LOADER_TYPE_PFLASH))) { -+ !virDomainDefHasOldStyleUEFI(def))) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("ACPI requires UEFI on this architecture")); - goto cleanup; -@@ -15545,12 +15543,9 @@ void - qemuDomainNVRAMPathGenerate(virQEMUDriverConfigPtr cfg, - virDomainDefPtr def) - { -- if (def->os.loader && -- def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH && -- def->os.loader->readonly == VIR_TRISTATE_BOOL_YES && -+ if (virDomainDefHasOldStyleROUEFI(def) && - !def->os.loader->nvram) - qemuDomainNVRAMPathFormat(cfg, def, &def->os.loader->nvram); -- - } - - -@@ -15677,8 +15672,7 @@ qemuDomainInitializePflashStorageSource(virDomainObjPtr vm) - if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) - return 0; - -- if (!def->os.loader || -- def->os.loader->type != VIR_DOMAIN_LOADER_TYPE_PFLASH) -+ if (!virDomainDefHasOldStyleUEFI(def)) - return 0; - - if (!(pflash0 = virStorageSourceNew())) -diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c -index 06d16ee8e6..becb83f32b 100644 ---- a/src/qemu/qemu_driver.c -+++ b/src/qemu/qemu_driver.c -@@ -15129,8 +15129,7 @@ qemuDomainSnapshotPrepare(virDomainObjPtr vm, - * Avoid the issues by forbidding internal snapshot with pflash completely. - */ - if (found_internal && -- vm->def->os.loader && -- vm->def->os.loader->type == VIR_DOMAIN_LOADER_TYPE_PFLASH) { -+ virDomainDefHasOldStyleUEFI(vm->def)) { - virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", - _("internal snapshots of a VM with pflash based " - "firmware are not supported")); --- -2.24.1 - Deleted: 0004-qemu_firmware-Try-to-autofill-for-old-style-UEFI-spe.patch =================================================================== --- 0004-qemu_firmware-Try-to-autofill-for-old-style-UEFI-spe.patch 2020-05-06 21:03:17 UTC (rev 625192) +++ 0004-qemu_firmware-Try-to-autofill-for-old-style-UEFI-spe.patch 2020-05-06 21:03:43 UTC (rev 625193) @@ -1,111 +0,0 @@ -From 2547834c188536817662809880fa889c789e9e0e Mon Sep 17 00:00:00 2001 -From: Michal Privoznik <mpriv...@redhat.com> -Date: Tue, 17 Dec 2019 17:45:50 +0100 -Subject: [PATCH 4/4] qemu_firmware: Try to autofill for old style UEFI - specification -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -While we discourage people to use the old style of specifying -UEFI for their domains (the old style is putting path to the FW -image under /domain/os/loader/ whilst the new one is using -/domain/os/@firmware), some applications might have not adapted -yet. They still rely on libvirt autofilling NVRAM path and -figuring out NVRAM template when using the old way (notably -virt-install does this). We must preserve backcompat for this -previously supported config approach. However, since we really -want distro maintainers to leave --with-loader-nvram configure -option and rely on JSON descriptors, we need to implement -autofilling of NVRAM template for the old way too. - -Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1782778 -RHEL: https://bugzilla.redhat.com/show_bug.cgi?id=1776949 - -Signed-off-by: Michal Privoznik <mpriv...@redhat.com> -Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> ---- - src/qemu/qemu_firmware.c | 47 +++++++++++++++++++++++++++++++++++----- - 1 file changed, 42 insertions(+), 5 deletions(-) - -diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c -index 41e05e570b..f045e7d69c 100644 ---- a/src/qemu/qemu_firmware.c -+++ b/src/qemu/qemu_firmware.c -@@ -961,6 +961,21 @@ qemuFirmwareMatchDomain(const virDomainDef *def, - - want = qemuFirmwareOSInterfaceTypeFromOsDefFirmware(def->os.firmware); - -+ if (want == QEMU_FIRMWARE_OS_INTERFACE_NONE && -+ def->os.loader) { -+ want = qemuFirmwareOSInterfaceTypeFromOsDefFirmware(def->os.loader->type); -+ -+ if (fw->mapping.device != QEMU_FIRMWARE_DEVICE_FLASH || -+ STRNEQ(def->os.loader->path, fw->mapping.data.flash.executable.filename)) { -+ VIR_DEBUG("Not matching FW interface %s or loader " -+ "path '%s' for user provided path '%s'", -+ qemuFirmwareDeviceTypeToString(fw->mapping.device), -+ fw->mapping.data.flash.executable.filename, -+ def->os.loader->path); -+ return false; -+ } -+ } -+ - for (i = 0; i < fw->ninterfaces; i++) { - if (fw->interfaces[i] == want) - break; -@@ -1228,14 +1243,29 @@ qemuFirmwareFillDomain(virQEMUDriverPtr driver, - qemuFirmwarePtr *firmwares = NULL; - ssize_t nfirmwares = 0; - const qemuFirmware *theone = NULL; -+ bool needResult = true; - size_t i; - int ret = -1; - - if (!(flags & VIR_QEMU_PROCESS_START_NEW)) - return 0; - -- if (def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_NONE) -- return 0; -+ /* Fill in FW paths if either os.firmware is enabled, or -+ * loader path was provided with no nvram varstore. */ -+ if (def->os.firmware == VIR_DOMAIN_OS_DEF_FIRMWARE_NONE) { -+ /* This is horrific check, but loosely said, if UEFI -+ * image was provided by the old method (by specifying -+ * its path in domain XML) but no template for NVRAM was -+ * specified and the varstore doesn't exist ... */ -+ if (!virDomainDefHasOldStyleROUEFI(def) || -+ def->os.loader->templt || -+ virFileExists(def->os.loader->nvram)) -+ return 0; -+ -+ /* ... then we want to consult JSON FW descriptors first, -+ * but we don't want to fail if we haven't found a match. */ -+ needResult = false; -+ } - - if ((nfirmwares = qemuFirmwareFetchParsedConfigs(driver->privileged, - &firmwares, &paths)) < 0) -@@ -1251,9 +1281,16 @@ qemuFirmwareFillDomain(virQEMUDriverPtr driver, - } - - if (!theone) { -- virReportError(VIR_ERR_OPERATION_FAILED, -- _("Unable to find any firmware to satisfy '%s'"), -- virDomainOsDefFirmwareTypeToString(def->os.firmware)); -+ if (needResult) { -+ virReportError(VIR_ERR_OPERATION_FAILED, -+ _("Unable to find any firmware to satisfy '%s'"), -+ virDomainOsDefFirmwareTypeToString(def->os.firmware)); -+ } else { -+ VIR_DEBUG("Unable to find NVRAM template for '%s', " -+ "falling back to old style", -+ NULLSTR(def->os.loader ? def->os.loader->path : NULL)); -+ ret = 0; -+ } - goto cleanup; - } - --- -2.24.1 - Deleted: Changelog =================================================================== --- Changelog 2020-05-06 21:03:17 UTC (rev 625192) +++ Changelog 2020-05-06 21:03:43 UTC (rev 625193) @@ -1 +0,0 @@ -https://libvirt.org/news.html Copied: libvirt/repos/community-testing-x86_64/Changelog (from rev 625192, libvirt/trunk/Changelog) =================================================================== --- Changelog (rev 0) +++ Changelog 2020-05-06 21:03:43 UTC (rev 625193) @@ -0,0 +1 @@ +https://libvirt.org/news.html Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-05-06 21:03:17 UTC (rev 625192) +++ PKGBUILD 2020-05-06 21:03:43 UTC (rev 625193) @@ -1,178 +0,0 @@ -# Maintainer: Christian Rebischke <chris.rebisc...@archlinux.org> -# Maintainer: Robin Broda <ro...@broda.me> -# Contributor: Sergej Pupykin <pupykin.s+a...@gmail.com> -# Contributor: Jonathan Wiersma <archaur at jonw dot org> - -pkgname=(libvirt libvirt-storage-gluster libvirt-storage-iscsi-direct libvirt-storage-rbd) -pkgver=6.3.0 -pkgrel=1 -pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" -arch=('x86_64') -url="https://libvirt.org/" -license=('LGPL') -depends=('libpciaccess' 'yajl' 'fuse2' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit') -makedepends=('libxslt' 'python-docutils' 'lvm2' 'open-iscsi' 'libiscsi' 'ceph-libs' 'glusterfs' - 'bash-completion' 'rpcsvc-proto' 'dnsmasq' 'iproute2' 'qemu-headless') -checkdepends=('ebtables') -optdepends=('libvirt-storage-gluster: Gluster storage backend' - 'libvirt-storage-iscsi-direct: iSCSI-direct storage backend' - 'libvirt-storage-rbd: RBD storage backend' - 'gettext: required for libvirt-guests.service' - 'openbsd-netcat: for remote management over ssh' - 'dmidecode: DMI system info support' - 'dnsmasq: required for default NAT/DHCP for guests' - 'radvd: IPv6 RAD support' - 'ebtables: required for default NAT networking' - 'qemu: QEMU/KVM support' - 'lvm2: Logical Volume Manager support' - 'open-iscsi: iSCSI support via iscsiadm') -backup=( - 'etc/conf.d/libvirtd' - 'etc/conf.d/libvirt-guests' - 'etc/conf.d/virtinterfaced' - 'etc/conf.d/virtlockd' - 'etc/conf.d/virtlogd' - 'etc/conf.d/virtlxcd' - 'etc/conf.d/virtnetworkd' - 'etc/conf.d/virtnodedevd' - 'etc/conf.d/virtnwfilterd' - 'etc/conf.d/virtproxyd' - 'etc/conf.d/virtqemud' - 'etc/conf.d/virtsecretd' - 'etc/conf.d/virtstoraged' - 'etc/conf.d/virtvboxd' - 'etc/libvirt/libvirt-admin.conf' - 'etc/libvirt/libvirt.conf' - 'etc/libvirt/libvirtd.conf' - 'etc/libvirt/lxc.conf' - 'etc/libvirt/nwfilter/allow-arp.xml' - 'etc/libvirt/nwfilter/allow-dhcp-server.xml' - 'etc/libvirt/nwfilter/allow-dhcp.xml' - 'etc/libvirt/nwfilter/allow-incoming-ipv4.xml' - 'etc/libvirt/nwfilter/allow-ipv4.xml' - 'etc/libvirt/nwfilter/clean-traffic-gateway.xml' - 'etc/libvirt/nwfilter/clean-traffic.xml' - 'etc/libvirt/nwfilter/no-arp-ip-spoofing.xml' - 'etc/libvirt/nwfilter/no-arp-mac-spoofing.xml' - 'etc/libvirt/nwfilter/no-arp-spoofing.xml' - 'etc/libvirt/nwfilter/no-ip-multicast.xml' - 'etc/libvirt/nwfilter/no-ip-spoofing.xml' - 'etc/libvirt/nwfilter/no-mac-broadcast.xml' - 'etc/libvirt/nwfilter/no-mac-spoofing.xml' - 'etc/libvirt/nwfilter/no-other-l2-traffic.xml' - 'etc/libvirt/nwfilter/no-other-rarp-traffic.xml' - 'etc/libvirt/nwfilter/qemu-announce-self-rarp.xml' - 'etc/libvirt/nwfilter/qemu-announce-self.xml' - 'etc/libvirt/qemu.conf' - 'etc/libvirt/qemu-lockd.conf' - 'etc/libvirt/qemu/networks/default.xml' - 'etc/libvirt/virtinterfaced.conf' - 'etc/libvirt/virtlockd.conf' - 'etc/libvirt/virtlogd.conf' - 'etc/libvirt/virt-login-shell.conf' - 'etc/libvirt/virtlxcd.conf' - 'etc/libvirt/virtnetworkd.conf' - 'etc/libvirt/virtnodedevd.conf' - 'etc/libvirt/virtnwfilterd.conf' - 'etc/libvirt/virtproxyd.conf' - 'etc/libvirt/virtqemud.conf' - 'etc/libvirt/virtsecretd.conf' - 'etc/libvirt/virtstoraged.conf' - 'etc/libvirt/virtvboxd.conf' - 'etc/logrotate.d/libvirtd' - 'etc/logrotate.d/libvirtd.lxc' - 'etc/logrotate.d/libvirtd.qemu' - 'etc/sasl2/libvirt.conf' -) -source=("https://libvirt.org/sources/$pkgname-$pkgver.tar.xz"{,.asc}) -sha256sums=('74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5' - 'SKIP') -validpgpkeys=('C74415BA7C9C7F78F02E1DC34606B8A5DE95BC1F') # Daniel Veillard <veill...@redhat.com> - -prepare() { - mkdir build - cd "$pkgname-$pkgver" - sed -i 's|/sysconfig/|/conf.d/|g' \ - src/remote/libvirtd.service.in \ - tools/{libvirt-guests.service,libvirt-guests.sh,virt-pki-validate}.in \ - src/locking/virtlockd.service.in \ - src/logging/virtlogd.service.in - sed -i 's|/usr/libexec/qemu-bridge-helper|/usr/lib/qemu/qemu-bridge-helper|g' \ - src/qemu/qemu.conf \ - src/qemu/test_libvirtd_qemu.aug.in -} - -build() { - cd build - ZFS=/usr/bin/zfs ZPOOL=/usr/bin/zpool \ - "../$pkgname-$pkgver/configure" \ - --prefix=/usr \ - "--libexec=/usr/lib/$pkgname" \ - --sbindir=/usr/bin \ - --with-runstatedir=/run \ - --with-qemu-group=kvm - sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool - make -} - -check() { - cd build - make check -} - -package_libvirt() { - provides=('libvirt.so' 'libvirt-admin.so' 'libvirt-lxc.so' 'libvirt-qemu.so') - cd build - make DESTDIR="$pkgdir" install - - mv "$pkgdir"/etc/{sysconfig,conf.d} - mkdir "$pkgdir"/usr/lib/{sysusers,tmpfiles}.d - echo "g libvirt - -" > "$pkgdir/usr/lib/sysusers.d/libvirt.conf" - echo "z /var/lib/libvirt/qemu 0751" > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf" - - chown 0:102 "$pkgdir/usr/share/polkit-1/rules.d" - chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d" - chmod 600 "$pkgdir"/etc/libvirt/nwfilter/*.xml \ - "$pkgdir/etc/libvirt/qemu/networks/default.xml" - - rm -rf \ - "$pkgdir/run" \ - "$pkgdir/var/lib/libvirt/qemu" \ - "$pkgdir/var/cache/libvirt/qemu" \ - "$pkgdir/etc/logrotate.d/libvirtd.libxl" - - rm -f "$pkgdir/etc/libvirt/qemu/networks/autostart/default.xml" - - # move split modules - mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_{rbd,gluster}.so "$pkgdir/../" - mv "$pkgdir/usr/lib/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so" "$pkgdir/../" - mv "$pkgdir/usr/lib/libvirt/storage-file/libvirt_storage_file_gluster.so" "$pkgdir/../" -} - -package_libvirt-storage-gluster() { - pkgdesc="Libvirt Gluster storage backend" - depends=("libvirt=$pkgver" 'glusterfs') - optdepends=() - backup=() - - install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_gluster.so" - install -Dv -t "$pkgdir/usr/lib/libvirt/storage-file" "$pkgdir/../libvirt_storage_file_gluster.so" -} - -package_libvirt-storage-iscsi-direct() { - pkgdesc="Libvirt iSCSI-direct storage backend" - depends=("libvirt=$pkgver" 'libiscsi') - optdepends=() - backup=() - - install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_iscsi-direct.so" -} - -package_libvirt-storage-rbd() { - pkgdesc="Libvirt RBD storage backend" - depends=("libvirt=$pkgver" 'ceph-libs') - optdepends=() - backup=() - - install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_rbd.so" -} Copied: libvirt/repos/community-testing-x86_64/PKGBUILD (from rev 625192, libvirt/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-05-06 21:03:43 UTC (rev 625193) @@ -0,0 +1,183 @@ +# Maintainer: Christian Rebischke <chris.rebisc...@archlinux.org> +# Maintainer: Robin Broda <ro...@broda.me> +# Contributor: Sergej Pupykin <pupykin.s+a...@gmail.com> +# Contributor: Jonathan Wiersma <archaur at jonw dot org> + +pkgname=(libvirt libvirt-storage-gluster libvirt-storage-iscsi-direct libvirt-storage-rbd) +pkgver=6.3.0 +pkgrel=2 +pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)" +arch=('x86_64') +url="https://libvirt.org/" +license=('LGPL' 'GPL3') #libvirt_parthelper links to libparted which is GPL3 only +depends=('libpciaccess' 'yajl' 'fuse2' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit') +makedepends=('libxslt' 'python-docutils' 'lvm2' 'open-iscsi' 'libiscsi' 'ceph-libs' 'glusterfs' + 'bash-completion' 'rpcsvc-proto' 'dnsmasq' 'iproute2' 'qemu-headless') +checkdepends=('ebtables') +optdepends=('libvirt-storage-gluster: Gluster storage backend' + 'libvirt-storage-iscsi-direct: iSCSI-direct storage backend' + 'libvirt-storage-rbd: RBD storage backend' + 'gettext: required for libvirt-guests.service' + 'openbsd-netcat: for remote management over ssh' + 'dmidecode: DMI system info support' + 'dnsmasq: required for default NAT/DHCP for guests' + 'radvd: IPv6 RAD support' + 'ebtables: required for default NAT networking' + 'qemu: QEMU/KVM support' + 'lvm2: Logical Volume Manager support' + 'open-iscsi: iSCSI support via iscsiadm') +backup=( + 'etc/conf.d/libvirtd' + 'etc/conf.d/libvirt-guests' + 'etc/conf.d/virtinterfaced' + 'etc/conf.d/virtlockd' + 'etc/conf.d/virtlogd' + 'etc/conf.d/virtlxcd' + 'etc/conf.d/virtnetworkd' + 'etc/conf.d/virtnodedevd' + 'etc/conf.d/virtnwfilterd' + 'etc/conf.d/virtproxyd' + 'etc/conf.d/virtqemud' + 'etc/conf.d/virtsecretd' + 'etc/conf.d/virtstoraged' + 'etc/conf.d/virtvboxd' + 'etc/libvirt/libvirt-admin.conf' + 'etc/libvirt/libvirt.conf' + 'etc/libvirt/libvirtd.conf' + 'etc/libvirt/lxc.conf' + 'etc/libvirt/nwfilter/allow-arp.xml' + 'etc/libvirt/nwfilter/allow-dhcp-server.xml' + 'etc/libvirt/nwfilter/allow-dhcp.xml' + 'etc/libvirt/nwfilter/allow-incoming-ipv4.xml' + 'etc/libvirt/nwfilter/allow-ipv4.xml' + 'etc/libvirt/nwfilter/clean-traffic-gateway.xml' + 'etc/libvirt/nwfilter/clean-traffic.xml' + 'etc/libvirt/nwfilter/no-arp-ip-spoofing.xml' + 'etc/libvirt/nwfilter/no-arp-mac-spoofing.xml' + 'etc/libvirt/nwfilter/no-arp-spoofing.xml' + 'etc/libvirt/nwfilter/no-ip-multicast.xml' + 'etc/libvirt/nwfilter/no-ip-spoofing.xml' + 'etc/libvirt/nwfilter/no-mac-broadcast.xml' + 'etc/libvirt/nwfilter/no-mac-spoofing.xml' + 'etc/libvirt/nwfilter/no-other-l2-traffic.xml' + 'etc/libvirt/nwfilter/no-other-rarp-traffic.xml' + 'etc/libvirt/nwfilter/qemu-announce-self-rarp.xml' + 'etc/libvirt/nwfilter/qemu-announce-self.xml' + 'etc/libvirt/qemu.conf' + 'etc/libvirt/qemu-lockd.conf' + 'etc/libvirt/qemu/networks/default.xml' + 'etc/libvirt/virtinterfaced.conf' + 'etc/libvirt/virtlockd.conf' + 'etc/libvirt/virtlogd.conf' + 'etc/libvirt/virt-login-shell.conf' + 'etc/libvirt/virtlxcd.conf' + 'etc/libvirt/virtnetworkd.conf' + 'etc/libvirt/virtnodedevd.conf' + 'etc/libvirt/virtnwfilterd.conf' + 'etc/libvirt/virtproxyd.conf' + 'etc/libvirt/virtqemud.conf' + 'etc/libvirt/virtsecretd.conf' + 'etc/libvirt/virtstoraged.conf' + 'etc/libvirt/virtvboxd.conf' + 'etc/logrotate.d/libvirtd' + 'etc/logrotate.d/libvirtd.lxc' + 'etc/logrotate.d/libvirtd.qemu' + 'etc/sasl2/libvirt.conf' +) +source=("https://libvirt.org/sources/$pkgname-$pkgver.tar.xz"{,.asc}) +sha256sums=('74069438d34082336e99a88146349e21130552b96efc3b7c562f6878127996f5' + 'SKIP') +validpgpkeys=('C74415BA7C9C7F78F02E1DC34606B8A5DE95BC1F') # Daniel Veillard <veill...@redhat.com> + +prepare() { + mkdir build + cd "$pkgname-$pkgver" + sed -i 's|/sysconfig/|/conf.d/|g' \ + src/remote/libvirtd.service.in \ + tools/{libvirt-guests.service,libvirt-guests.sh,virt-pki-validate}.in \ + src/locking/virtlockd.service.in \ + src/logging/virtlogd.service.in + sed -i 's|/usr/libexec/qemu-bridge-helper|/usr/lib/qemu/qemu-bridge-helper|g' \ + src/qemu/qemu.conf \ + src/qemu/test_libvirtd_qemu.aug.in + + sed -i 's/notify/simple/' src/remote/libvirtd.service.in +} + +build() { + cd build + ZFS=/usr/bin/zfs ZPOOL=/usr/bin/zpool \ + "../$pkgname-$pkgver/configure" \ + --prefix=/usr \ + "--libexec=/usr/lib/$pkgname" \ + --sbindir=/usr/bin \ + --with-runstatedir=/run \ + --with-qemu-group=kvm + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make +} + +check() { + cd build + make check +} + +package_libvirt() { + provides=('libvirt.so' 'libvirt-admin.so' 'libvirt-lxc.so' 'libvirt-qemu.so') + cd build + make DESTDIR="$pkgdir" install + + mv "$pkgdir"/etc/{sysconfig,conf.d} + mkdir "$pkgdir"/usr/lib/{sysusers,tmpfiles}.d + echo "g libvirt - -" > "$pkgdir/usr/lib/sysusers.d/libvirt.conf" + echo "z /var/lib/libvirt/qemu 0751" > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf" + + chown 0:102 "$pkgdir/usr/share/polkit-1/rules.d" + chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d" + chmod 600 "$pkgdir"/etc/libvirt/nwfilter/*.xml \ + "$pkgdir/etc/libvirt/qemu/networks/default.xml" + + # Strip auto-generated UUID, so it will be generated per-install. (reproducible builds) + sed -i '/<uuid>/d' "$pkgdir"/etc/libvirt/qemu/networks/default.xml + + rm -rf \ + "$pkgdir/run" \ + "$pkgdir/var/lib/libvirt/qemu" \ + "$pkgdir/var/cache/libvirt/qemu" \ + "$pkgdir/etc/logrotate.d/libvirtd.libxl" + + rm -f "$pkgdir/etc/libvirt/qemu/networks/autostart/default.xml" + + # move split modules + mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_{rbd,gluster}.so "$pkgdir/../" + mv "$pkgdir/usr/lib/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so" "$pkgdir/../" + mv "$pkgdir/usr/lib/libvirt/storage-file/libvirt_storage_file_gluster.so" "$pkgdir/../" +} + +package_libvirt-storage-gluster() { + pkgdesc="Libvirt Gluster storage backend" + depends=("libvirt=$pkgver" 'glusterfs') + optdepends=() + backup=() + + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_gluster.so" + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-file" "$pkgdir/../libvirt_storage_file_gluster.so" +} + +package_libvirt-storage-iscsi-direct() { + pkgdesc="Libvirt iSCSI-direct storage backend" + depends=("libvirt=$pkgver" 'libiscsi') + optdepends=() + backup=() + + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_iscsi-direct.so" +} + +package_libvirt-storage-rbd() { + pkgdesc="Libvirt RBD storage backend" + depends=("libvirt=$pkgver" 'ceph-libs') + optdepends=() + backup=() + + install -Dv -t "$pkgdir/usr/lib/libvirt/storage-backend" "$pkgdir/../libvirt_storage_backend_rbd.so" +} Deleted: libvirt.sysusers.d =================================================================== --- libvirt.sysusers.d 2020-05-06 21:03:17 UTC (rev 625192) +++ libvirt.sysusers.d 2020-05-06 21:03:43 UTC (rev 625193) @@ -1 +0,0 @@ -g libvirt - - Deleted: libvirtd-guests.conf.d =================================================================== --- libvirtd-guests.conf.d 2020-05-06 21:03:17 UTC (rev 625192) +++ libvirtd-guests.conf.d 2020-05-06 21:03:43 UTC (rev 625193) @@ -1,9 +0,0 @@ -BYPASS_CACHE=0 -CONNECT_RETRIES=10 -ON_BOOT=start -ON_SHUTDOWN=suspend -PARALLEL_SHUTDOWN=0 -RETRIES_SLEEP=1 -SHUTDOWN_TIMEOUT=300 -START_DELAY=0 -URIS=default Deleted: libvirtd.conf.d =================================================================== --- libvirtd.conf.d 2020-05-06 21:03:17 UTC (rev 625192) +++ libvirtd.conf.d 2020-05-06 21:03:43 UTC (rev 625193) @@ -1 +0,0 @@ -LIBVIRTD_ARGS=""