diff mbox series

[v4,2/4] systemd: package 'ukify' seperately

Message ID 20251219120109.1967755-3-koen.kooi@oss.qualcomm.com
State Accepted, archived
Commit e9242749621040accba8252d50c036b3e4b10e09
Headers show
Series Fix and adjust ukify packaging | expand

Commit Message

Koen Kooi Dec. 19, 2025, 12:01 p.m. UTC
The upgrade to 258.x started shipping 'ukify' by default, but didn't
adjust the runtime dependencies. Add the python modules 'ukify' imports
and split out the package to avoid dragging in gigabytes of python just
plain systemd.

Succesfully tested at runtime on:
* RB1-core-kit, using u-boot EFI mode + systemd-boot
* RB3gen2-core-kit, using Qualcomm UEFI + systemd-boot
* Rubikpi3, using Qualcomm UEFI and type 2 boot
* Beagleboneblack using u-boot UFI mode + systemd-boot

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
---

No changes since v1/v2/v3

 meta/recipes-core/systemd/systemd_258.1.bb | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Martin Jansa Dec. 23, 2025, 9:26 a.m. UTC | #1
On Fri, Dec 19, 2025 at 1:01 PM Koen Kooi via lists.openembedded.org
<koen.kooi=oss.qualcomm.com@lists.openembedded.org> wrote:
>
> The upgrade to 258.x started shipping 'ukify' by default, but didn't
> adjust the runtime dependencies. Add the python modules 'ukify' imports
> and split out the package to avoid dragging in gigabytes of python just
> plain systemd.
>
> Succesfully tested at runtime on:
> * RB1-core-kit, using u-boot EFI mode + systemd-boot
> * RB3gen2-core-kit, using Qualcomm UEFI + systemd-boot
> * Rubikpi3, using Qualcomm UEFI and type 2 boot
> * Beagleboneblack using u-boot UFI mode + systemd-boot
>
> Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
> ---
>
> No changes since v1/v2/v3
>
>  meta/recipes-core/systemd/systemd_258.1.bb | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/meta/recipes-core/systemd/systemd_258.1.bb b/meta/recipes-core/systemd/systemd_258.1.bb
> index dcbd4d92f3..70414b03a4 100644
> --- a/meta/recipes-core/systemd/systemd_258.1.bb
> +++ b/meta/recipes-core/systemd/systemd_258.1.bb
> @@ -408,6 +408,7 @@ PACKAGE_BEFORE_PN += "\
>      ${PN}-networkd \
>      ${PN}-rpm-macros \
>      ${PN}-udev-rules \
> +    ${PN}-ukify \
>      ${PN}-vconsole-setup \
>      ${PN}-zsh-completion \
>      libsystemd-shared \
> @@ -630,6 +631,24 @@ FILES:${PN}-udev-rules = "\
>                          ${nonarch_libdir}/udev/rules.d/99-systemd.rules \
>  "
>
> +SUMMARY:${PN}-ukify = "Create and inspect Unified Kernel Images (UKIs)"
> +DESCRIPTION:${PN}-ukify = "ukify is a tool whose primary purpose is to combine components (usually a kernel, an initrd, and a UEFI boot stub) to create a Unified Kernel Image (UKI) — a PE binary that can be executed by the firmware to start the embedded linux kernel."
> +FILES:${PN}-ukify = "${bindir}/ukify"

Is it correct that ${PN} contains ukify symlink in:
systemd/258.1/packages-split/systemd/usr/lib/systemd/ukify

so ${PN}-ukify always ends in RDEPENDS:${PN}?

systemd/258.1/temp/log.do_package:
...
DEBUG: systemd contains dangling link /usr/bin/ukify
DEBUG: target found in systemd-ukify
...

and now it pulls python3 into all images with systemd.

> +RDEPENDS:${PN}-ukify = " \
> +                        python3-compression \
> +                        python3-core \
> +                        python3-crypt \
> +                        python3-datetime \
> +                        python3-io \
> +                        python3-json \
> +                        python3-netclient \
> +                        python3-pefile \
> +                        python3-pprint \
> +                        python3-pydoc \
> +                        python3-pyzstd \
> +                        python3-shell \
> +                       "
> +
>  CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
>         ${sysconfdir}/systemd/journald.conf \
>         ${sysconfdir}/systemd/logind.conf \
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#228223): https://lists.openembedded.org/g/openembedded-core/message/228223
> Mute This Topic: https://lists.openembedded.org/mt/116858018/3617156
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
diff mbox series

Patch

diff --git a/meta/recipes-core/systemd/systemd_258.1.bb b/meta/recipes-core/systemd/systemd_258.1.bb
index dcbd4d92f3..70414b03a4 100644
--- a/meta/recipes-core/systemd/systemd_258.1.bb
+++ b/meta/recipes-core/systemd/systemd_258.1.bb
@@ -408,6 +408,7 @@  PACKAGE_BEFORE_PN += "\
     ${PN}-networkd \
     ${PN}-rpm-macros \
     ${PN}-udev-rules \
+    ${PN}-ukify \
     ${PN}-vconsole-setup \
     ${PN}-zsh-completion \
     libsystemd-shared \
@@ -630,6 +631,24 @@  FILES:${PN}-udev-rules = "\
                         ${nonarch_libdir}/udev/rules.d/99-systemd.rules \
 "
 
+SUMMARY:${PN}-ukify = "Create and inspect Unified Kernel Images (UKIs)"
+DESCRIPTION:${PN}-ukify = "ukify is a tool whose primary purpose is to combine components (usually a kernel, an initrd, and a UEFI boot stub) to create a Unified Kernel Image (UKI) — a PE binary that can be executed by the firmware to start the embedded linux kernel."
+FILES:${PN}-ukify = "${bindir}/ukify"
+RDEPENDS:${PN}-ukify = " \
+                        python3-compression \
+                        python3-core \
+                        python3-crypt \
+                        python3-datetime \
+                        python3-io \
+                        python3-json \
+                        python3-netclient \
+                        python3-pefile \
+                        python3-pprint \
+                        python3-pydoc \
+                        python3-pyzstd \
+                        python3-shell \
+                       "
+
 CONFFILES:${PN} = "${sysconfdir}/systemd/coredump.conf \
 	${sysconfdir}/systemd/journald.conf \
 	${sysconfdir}/systemd/logind.conf \