Always build ukify package
Even on non-uefi architectures, ukify can be used to build UKIs for UEFI images. For example, mkosi can use it to build UKIs on s390x. To enable this use case, let's always build ukify, but with a conditional dependency on systemd-boot only on arches that support UEFI.
This commit is contained in:
parent
abb115a905
commit
a67221c3f0
3 changed files with 40 additions and 7 deletions
27
34154.patch
Normal file
27
34154.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
From e3486e1494ab4bc23df39cae8b4bda6182265408 Mon Sep 17 00:00:00 2001
|
||||
From: Daan De Meyer <daan.j.demeyer@gmail.com>
|
||||
Date: Wed, 28 Aug 2024 14:08:30 +0200
|
||||
Subject: [PATCH] ukify: Skip test on architectures without UEFI
|
||||
|
||||
---
|
||||
src/ukify/test/test_ukify.py | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/ukify/test/test_ukify.py b/src/ukify/test/test_ukify.py
|
||||
index bbd26c0d42343..a08996cb55cf6 100755
|
||||
--- a/src/ukify/test/test_ukify.py
|
||||
+++ b/src/ukify/test/test_ukify.py
|
||||
@@ -45,6 +45,13 @@
|
||||
sys.path.append(os.path.dirname(__file__) + '/..')
|
||||
import ukify
|
||||
|
||||
+# Skip if we're running on an architecture that does not use UEFI.
|
||||
+try:
|
||||
+ ukify.guess_efi_arch()
|
||||
+except ValueError as e:
|
||||
+ print(str(e), file=sys.stderr)
|
||||
+ sys.exit(77)
|
||||
+
|
||||
build_root = os.getenv('PROJECT_BUILD_ROOT')
|
||||
try:
|
||||
slow_tests = bool(int(os.getenv('SYSTEMD_SLOW_TESTS', '1')))
|
||||
|
|
@ -260,6 +260,6 @@ for file in files(buildroot):
|
|||
if [print(f'ERROR: no file names were written to {o.name}')
|
||||
for name, o in outputs.items()
|
||||
if (o.tell() == 0 and
|
||||
not (no_bootloader and name in ('ukify', 'boot')))
|
||||
not (no_bootloader and name == 'boot'))
|
||||
]:
|
||||
sys.exit(1)
|
||||
|
|
|
|||
18
systemd.spec
18
systemd.spec
|
|
@ -120,6 +120,9 @@ Patch0010: https://github.com/systemd/systemd/pull/26494.patch
|
|||
# Requested in https://bugzilla.redhat.com/show_bug.cgi?id=2298422
|
||||
Patch0011: https://github.com/systemd/systemd/pull/33738.patch
|
||||
|
||||
# Make test-ukify skip itself on architectures without UEFI.
|
||||
Patch0012: https://github.com/systemd/systemd/pull/34154.patch
|
||||
|
||||
# Those are downstream-only patches, but we don't want them in packit builds:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2251843
|
||||
Patch0491: https://github.com/systemd/systemd/pull/30846.patch
|
||||
|
|
@ -483,12 +486,16 @@ This package also provides systemd-timesyncd, a network time protocol daemon.
|
|||
It also contains tools to manage encrypted home areas and secrets bound to the
|
||||
machine, and to create or grow partitions and make file systems automatically.
|
||||
|
||||
%if 0%{?want_bootloader}
|
||||
%package ukify
|
||||
Summary: Tool to build Unified Kernel Images
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
Requires: systemd-boot
|
||||
Requires: (systemd-boot if %{shrink:(
|
||||
filesystem(x86-32) or
|
||||
filesystem(x86-64) or
|
||||
filesystem(aarch64) or
|
||||
filesystem(riscv64)
|
||||
)})
|
||||
Requires: python3dist(pefile)
|
||||
%if 0%{?fedora}
|
||||
Requires: python3dist(zstd)
|
||||
|
|
@ -512,6 +519,7 @@ This package provides ukify, a script that combines a kernel image, an initrd,
|
|||
with a command line, and possibly PCR measurements and other metadata, into a
|
||||
Unified Kernel Image (UKI).
|
||||
|
||||
%if 0%{?want_bootloader}
|
||||
%package boot-unsigned
|
||||
Summary: UEFI boot manager (unsigned version)
|
||||
|
||||
|
|
@ -826,10 +834,8 @@ CONFIGURE_OPTS=(
|
|||
# For now, let's build the bootloader in the same places where we
|
||||
# built with gnu-efi. Later on, we might want to extend coverage, but
|
||||
# considering that that support is untested, let's not do this now.
|
||||
# Note, ukify requires bootloader, let's also explicitly enable/disable it
|
||||
# here for https://github.com/systemd/systemd/pull/24175.
|
||||
-Dbootloader=%[%{?want_bootloader}?"enabled":"disabled"]
|
||||
-Dukify=%[%{?want_bootloader}?"enabled":"disabled"]
|
||||
-Dukify=enabled
|
||||
)
|
||||
|
||||
%if %{without lto}
|
||||
|
|
@ -1265,8 +1271,8 @@ fi
|
|||
|
||||
%files udev -f .file-list-udev
|
||||
|
||||
%if 0%{?want_bootloader}
|
||||
%files ukify -f .file-list-ukify
|
||||
%if 0%{?want_bootloader}
|
||||
%files boot-unsigned -f .file-list-boot
|
||||
%endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue