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
@@ -443,6 +443,17 @@ class _OsVariant:
             return self._os.get_complete_firmware_list().get_elements()
         return []  # pragma: no cover
 
+    def _recommends_uefi(self, arch):
+        if hasattr(Libosinfo.Firmware, "is_recommended"):
+            firmwares = self._get_firmware_list()
+            for firmware in firmwares:  # pragma: no cover
+                if firmware.get_architecture() != arch:
+                    continue
+                if firmware.get_firmware_type() == "efi":
+                    return firmware.is_recommended()
+
+        return False
+
     def _supports_firmware_type(self, name, arch, default):
         firmwares = self._get_firmware_list()
 
@@ -457,6 +468,8 @@ class _OsVariant:
     def requires_firmware_efi(self, arch):
         ret = False
         try:
+            if self._recommends_uefi(arch):
+                return True
             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
openSUSE Build Service is sponsored by