From ddd4dcd1fe2875e1ba6f1e4b44415321ef6f3c70 Mon Sep 17 00:00:00 2001 From: Zbigniew Jędrzejewski-Szmek Date: Mar 03 2023 17:56:53 +0000 Subject: Fix build with gnu-efi-3.0.11-13 --- diff --git a/26659.patch b/26659.patch new file mode 100644 index 0000000..bb8d0b1 --- /dev/null +++ b/26659.patch @@ -0,0 +1,67 @@ +From b3ec28645a2e02d03fa0d4a618802292540acf43 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Fri, 3 Mar 2023 16:08:41 +0100 +Subject: [PATCH] meson: adjust for removal of gnu-efi compat + +gnu-efi-3.0.11-13.fc39 in Fedora dropped the old include paths. +--- + src/boot/efi/meson.build | 24 ++++++++++++++---------- + 1 file changed, 14 insertions(+), 10 deletions(-) + +diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build +index bf595c33901e..ea55f1c9fa52 100644 +--- a/src/boot/efi/meson.build ++++ b/src/boot/efi/meson.build +@@ -19,7 +19,7 @@ elif efi_arch == 'x86_64' and '-m32' in get_option('efi-cflags') + efi_arch = 'x86' + endif + efi_arch = { +- # host_cc_arch: [efi_arch (see Table 3-2 in UEFI spec), gnu_efi_inc_arch] ++ # host_cc_arch: [efi_arch (see Table 3-2 in UEFI spec), obsolete gnu_efi_inc_arch] + 'x86': ['ia32', 'ia32'], + 'x86_64': ['x64', 'x86_64'], + 'arm': ['arm', 'arm'], +@@ -28,14 +28,17 @@ efi_arch = { + }.get(efi_arch, []) + + efi_incdir = get_option('efi-includedir') +-if efi_arch.length() > 0 and not cc.has_header( +- '@0@/@1@/efibind.h'.format(efi_incdir, efi_arch[1]), +- args: get_option('efi-cflags')) +- +- efi_arch = [] +-endif ++found = false ++foreach efi_arch_candidate : efi_arch ++ efi_archdir = efi_incdir / efi_arch_candidate ++ if cc.has_header(efi_archdir / 'efibind.h', ++ args: get_option('efi-cflags')) ++ found = true ++ break ++ endif ++endforeach + +-if efi_arch.length() == 0 ++if not found + if get_option('gnu-efi') == 'true' + error('gnu-efi support requested, but headers not found or efi arch is unknown') + endif +@@ -45,7 +48,8 @@ endif + + if not cc.has_header_symbol('efi.h', 'EFI_IMAGE_MACHINE_X64', + args: ['-nostdlib', '-ffreestanding', '-fshort-wchar'] + get_option('efi-cflags'), +- include_directories: include_directories(efi_incdir, efi_incdir / efi_arch[1])) ++ include_directories: include_directories(efi_incdir, ++ efi_archdir)) + + if get_option('gnu-efi') == 'true' + error('gnu-efi support requested, but found headers are too old (3.0.5+ required)') +@@ -313,7 +317,7 @@ summary({ + 'EFI LD' : efi_ld, + 'EFI lds' : efi_lds, + 'EFI crt0' : efi_crt0, +- 'EFI include directory' : efi_incdir}, ++ 'EFI include directory' : efi_archdir}, + section : 'Extensible Firmware Interface') + + if efi_conf.get('SBAT_DISTRO', '') != '' diff --git a/systemd.spec b/systemd.spec index cd2d9d4..f22b373 100644 --- a/systemd.spec +++ b/systemd.spec @@ -93,7 +93,10 @@ GIT_DIR=../../src/systemd/.git git diffab -M v233..master@{2017-06-15} -- hwdb/[ # https://github.com/systemd/systemd/issues/26488 # https://bugzilla.redhat.com/show_bug.cgi?id=2164404 -Patch0001: https://patch-diff.githubusercontent.com/raw/systemd/systemd/pull/26494.patch +Patch0001: https://github.com/systemd/systemd/pull/26494.patch + +# Fix build with gnu-efi-3.0.11-13.fc39 +Patch0002: https://github.com/systemd/systemd/pull/26659.patch # Those are downstream-only patches, but we don't want them in packit builds: # https://bugzilla.redhat.com/show_bug.cgi?id=1738828