File virtinst-query-recommended-firmware.patch of Package virt-manager
References: jsc#PED-14636 - Impl: UEFI as default for new VMs
This patch depends on an upstream libosinfo patch.
Index: virt-manager-5.1.0/virtinst/osdict.py
===================================================================
--- virt-manager-5.1.0.orig/virtinst/osdict.py
+++ virt-manager-5.1.0/virtinst/osdict.py
@@ -445,21 +445,27 @@ class _OsVariant:
def _supports_firmware_type(self, name, arch, default):
firmwares = self._get_firmware_list()
+ is_supported = default
+ is_recommended = False
for firmware in firmwares: # pragma: no cover
if firmware.get_architecture() != arch:
continue
if firmware.get_firmware_type() == name:
- return firmware.is_supported()
+ is_supported = firmware.is_supported()
+ if hasattr(firmware, "is_recommended"):
+ is_recommended = firmware.is_recommended()
- return default
+ return (is_supported, is_recommended)
def requires_firmware_efi(self, arch):
ret = False
try:
- supports_efi = self._supports_firmware_type("efi", arch, False)
- supports_bios = self._supports_firmware_type("bios", arch, True)
- ret = supports_efi and not supports_bios
+ supports_efi, recommended_efi = self._supports_firmware_type("efi", arch, False)
+ supports_bios, recommended_bios = self._supports_firmware_type("bios", arch, True)
+ if supports_efi:
+ if not supports_bios or recommended_efi:
+ ret = True
except Exception: # pragma: no cover
log.debug("Error checking osinfo firmware support", exc_info=True)