[v2,01/11] grub: Remove obsolete efi_uga module for new distros

Message ID 20260629094624.855927-2-amikan@ilbers.de
State New
Headers show
Series Add new targets and required fixes | expand

Commit Message

Anton Mikanovich June 29, 2026, 9:46 a.m. UTC
It was deprecated and then completely removed starting from Debian
Forky and Ubuntu Resolute.
Module efi_gop.mod can be used instead.

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 .../wic/plugins/source/bootimg-efi-isar.py    | 17 ++++++++++++--
 .../plugins/source/isoimage-isohybrid-isar.py | 23 +++++++++++++++++--
 2 files changed, 36 insertions(+), 4 deletions(-)

Patch

diff --git a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
index 6bc78d42..a2592986 100644
--- a/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/bootimg-efi-isar.py
@@ -450,11 +450,22 @@  class BootimgEFIPlugin(SourcePlugin):
                 if not distro:
                     raise WicError("Couldn't find target distro")
 
+                # Module efi_uga is deprecated
+                efi_uga_list = [
+                    "buster",
+                    "bullseye",
+                    "bookworm",
+                    "trixie",
+                    "focal",
+                    "jammy",
+                    "noble",
+                ]
+
                 if distro_arch == "amd64":
                     grub_target = 'x86_64-efi'
                     grub_image = "bootx64.efi"
                     grub_modules = "multiboot iorw ata "
-                    if "sid" not in distro:
+                    if any(name in distro for name in efi_uga_list):
                         grub_modules += "efi_uga "
                     if distro.startswith("ubuntu") and \
                         os.path.exists('/usr/lib/grub/x86_64-efi/linuxefi.mod'):
@@ -462,7 +473,9 @@  class BootimgEFIPlugin(SourcePlugin):
                 elif distro_arch == "i386":
                     grub_target = 'i386-efi'
                     grub_image = "bootia32.efi"
-                    grub_modules = "multiboot efi_uga iorw ata "
+                    grub_modules = "multiboot iorw ata "
+                    if any(name in distro for name in efi_uga_list):
+                        grub_modules += "efi_uga "
                 elif distro_arch == "arm64":
                     grub_target = 'arm64-efi'
                     grub_image = "bootaa64.efi"
diff --git a/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py
index 0ed61fff..6aa58870 100644
--- a/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py
+++ b/meta/scripts/lib/wic/plugins/source/isoimage-isohybrid-isar.py
@@ -370,11 +370,28 @@  class IsoImagePlugin(SourcePlugin):
                 if not target_arch:
                     raise WicError("Coludn't find target architecture")
 
+                distro = get_bitbake_var("DISTRO")
+                if not distro:
+                    raise WicError("Couldn't find target distro")
+
+                # Module efi_uga is deprecated
+                efi_uga_list = [
+                    "buster",
+                    "bullseye",
+                    "bookworm",
+                    "trixie",
+                    "focal",
+                    "jammy",
+                    "noble",
+                ]
+
                 if re.match("x86_64", target_arch):
                     grub_target = "x86_64-efi"
                     grub_src_image = "grub-efi-bootx64.efi"
                     grub_dest_image = "bootx64.efi"
-                    grub_modules = "multiboot efi_uga iorw ata "
+                    grub_modules = "multiboot iorw ata "
+                    if any(name in distro for name in efi_uga_list):
+                        grub_modules += "efi_uga "
                     if get_bitbake_var("DISTRO").startswith("ubuntu") and \
                         os.path.exists('/usr/lib/grub/x86_64-efi/linuxefi.mod'):
                         grub_modules += "linuxefi "
@@ -382,7 +399,9 @@  class IsoImagePlugin(SourcePlugin):
                     grub_target = "i386-efi"
                     grub_src_image = "grub-efi-bootia32.efi"
                     grub_dest_image = "bootia32.efi"
-                    grub_modules = "multiboot efi_uga iorw ata "
+                    grub_modules = "multiboot iorw ata "
+                    if any(name in distro for name in efi_uga_list):
+                        grub_modules += "efi_uga "
                 else:
                     raise WicError("grub-efi is incompatible with target %s" %
                                    target_arch)