From 5fab97cc550682fb3dd9c3878e241806497f48a0 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 2 Aug 2023 21:39:37 -0700 Subject: [PATCH] systemd: Point to target binary paths for loadkeys and setfont with newer systemd, if not specified, these paths are searched on build host /usr dir log.do_configure.2373278:Program /usr/sbin/loadkeys found: YES (/usr/sbin/loadkeys) log.do_configure.2373278:Program /usr/sbin/setfont found: YES (/usr/sbin/setfont) and if build host happens to have kbd installed then it uses those locations, this would work fine if the assumption between OE distro and host distro matches but fail otherwise e.g. on archlinux these binaries are in /usr/sbin but in OE they are in ${base_bindir} This results in qemux86-64 systemd-vconsole-setup[211]: /usr/sbin/loadkeys failed with exit status 1. (From OE-Core rev: 94ccc7acc4a871f5bb7ab8e135e70b5519eff6ad) Signed-off-by: Khem Raj Cc: Luca Boccassi Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd_254.bb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/meta/recipes-core/systemd/systemd_254.bb b/meta/recipes-core/systemd/systemd_254.bb index 6ef148ac36..7ba4233f6a 100644 --- a/meta/recipes-core/systemd/systemd_254.bb +++ b/meta/recipes-core/systemd/systemd_254.bb @@ -239,7 +239,9 @@ EXTRA_OEMESON += "-Dnobody-user=nobody \ -Dsystem-gid-max=999 \ " -# Hardcode target binary paths to avoid using paths from sysroot +# Hardcode target binary paths to avoid using paths from sysroot or worse +# it pokes for these binaries on build host and encodes that distro assumption +# into target EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \ -Dkmod-path=${base_bindir}/kmod \ -Dmount-path=${base_bindir}/mount \ @@ -247,7 +249,9 @@ EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \ -Dquotaon-path=${sbindir}/quotaon \ -Dsulogin-path=${base_sbindir}/sulogin \ -Dnologin-path=${base_sbindir}/nologin \ - -Dumount-path=${base_bindir}/umount" + -Dumount-path=${base_bindir}/umount \ + -Dloadkeys-path=${base_bindir}/loadkeys \ + -Dsetfont-path=${base_bindir}/setfont" # The 60 seconds is watchdog's default vaule. WATCHDOG_TIMEOUT ??= "60"