]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
systemd: Point to target binary paths for loadkeys and setfont
authorKhem Raj <raj.khem@gmail.com>
Thu, 3 Aug 2023 04:39:37 +0000 (21:39 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 4 Aug 2023 10:44:24 +0000 (11:44 +0100)
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.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Luca Boccassi <luca.boccassi@microsoft.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/systemd/systemd_254.bb

index 6ef148ac361c7b028a731131979184a63471c93d..7ba4233f6a2c39ad88d9461c2fbf3a375952b07e 100644 (file)
@@ -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"