systemd: sed ROOT_HOME only if sysusers PACKAGECONFIG is set

Fixes a bug introducted in ebafe46379 systemd: upgrade to 255.1.

Besides updating systemd, that commit also made other changes. One of them
being when to perform the replacement in order to fix ROOT_HOME.

Previously, that happened on a configure prefunc and on
${S}/sysusers.d/basic.conf.in.
Now it happens in install and on image/usr/lib/sysusers.d/basic.conf.

However, that file is not present if sysusers is not in PACKAGECONFIG,
since that file in that case is not installed hence resulting in:
sed: can't read <redactedpath>/image/usr/lib/sysusers.d/basic.conf: No such file or directory

Previously, in the case of sysusers not being in PACKAGECONFIG, that was a
"silent error" since the replacement was done but the file was not really
used since the file was not installed.

(From OE-Core rev: fac654a5445da2603b3435aca8db33fc8411d51b)

Signed-off-by: Christian Bräuner Sørensen <yocto@bsorensen.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christian Bräuner Sørensen
2024-04-18 07:58:43 +02:00
committed by Richard Purdie
parent 6dbbcf2e1f
commit 368dd0432e

View File

@@ -271,14 +271,16 @@ WATCHDOG_TIMEOUT ??= "60"
do_install() {
meson_do_install
# Change the root user's home directory in /lib/sysusers.d/basic.conf.
# This is done merely for backward compatibility with previous systemd recipes.
# systemd hardcodes root user's HOME to be "/root". Changing to use other values
# may have unexpected runtime behaviors.
if [ "${ROOT_HOME}" != "/root" ]; then
bbwarn "Using ${ROOT_HOME} as root user's home directory is not fully supported by systemd"
sed -i -e 's#/root#${ROOT_HOME}#g' ${D}${exec_prefix}/lib/sysusers.d/basic.conf
fi
if ${@bb.utils.contains('PACKAGECONFIG', 'sysusers', 'true', 'false', d)}; then
# Change the root user's home directory in /lib/sysusers.d/basic.conf.
# This is done merely for backward compatibility with previous systemd recipes.
# systemd hardcodes root user's HOME to be "/root". Changing to use other values
# may have unexpected runtime behaviors.
if [ "${ROOT_HOME}" != "/root" ]; then
bbwarn "Using ${ROOT_HOME} as root user's home directory is not fully supported by systemd"
sed -i -e 's#/root#${ROOT_HOME}#g' ${D}${exec_prefix}/lib/sysusers.d/basic.conf
fi
fi
install -d ${D}/${base_sbindir}
if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
# Provided by a separate recipe