> -----Original Message-----
> From: [email protected] 
> <[email protected]> On Behalf Of Louis Rannou
> Sent: den 15 juni 2023 13:44
> To: [email protected]
> Cc: Louis Rannou <[email protected]>; [email protected]
> Subject: [OE-core] [PATCH 2/3] systemd: replace the sysusers.d basic 
> configuration
> 
> The default sysusers basic.conf.in file sets the root home directory to 
> `/root`
> and does not permit its configuration. Replace the file delivered by systemd 
> so
> the root home directory matches the `ROOT_HOME` variable.
> 
> Signed-off-by: Louis Rannou <[email protected]>
> ---
>  meta/recipes-core/systemd/systemd/basic.conf.in | 40 
> +++++++++++++++++++++++++
>  meta/recipes-core/systemd/systemd_253.3.bb      |  5 ++++
>  2 files changed, 45 insertions(+)
> 
> diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in 
> b/meta/recipes-core/systemd/systemd/basic.conf.in
> new file mode 100644
> index 0000000000..fac288f7fa
> --- /dev/null
> +++ b/meta/recipes-core/systemd/systemd/basic.conf.in
> @@ -0,0 +1,40 @@
> +#  This file is part of systemd.
> +#
> +#  systemd is free software; you can redistribute it and/or modify it
> +#  under the terms of the GNU Lesser General Public License as published by
> +#  the Free Software Foundation; either version 2.1 of the License, or
> +#  (at your option) any later version.
> +
> +# The superuser
> +u root    0     "root" :ROOT_HOME:
> +
> +# The nobody user/group for NFS file systems
> +g {{NOBODY_GROUP_NAME}} 65534       -            -
> +u {{NOBODY_USER_NAME }} 65534:65534 "Nobody"     -
> +
> +# Administrator group: can *see* more than normal users
> +g adm     {{ADM_GID    }}     -            -
> +
> +# Administrator group: can *do* more than normal users
> +g wheel   {{WHEEL_GID  }}     -            -
> +
> +# Access to shared database of users on the system
> +g utmp    {{UTMP_GID   }}     -            -
> +
> +# Physical and virtual hardware access groups
> +g audio   {{AUDIO_GID  }}     -            -
> +g cdrom   {{CDROM_GID  }}     -            -
> +g dialout {{DIALOUT_GID}}     -            -
> +g disk    {{DISK_GID   }}     -            -
> +g input   {{INPUT_GID  }}     -            -
> +g kmem    {{KMEM_GID   }}     -            -
> +g kvm     {{KVM_GID    }}     -            -
> +g lp      {{LP_GID     }}     -            -
> +g render  {{RENDER_GID }}     -            -
> +g sgx     {{SGX_GID    }}     -            -
> +g tape    {{TAPE_GID   }}     -            -
> +g tty     {{TTY_GID    }}     -            -
> +g video   {{VIDEO_GID  }}     -            -
> +
> +# Default group for normal users
> +g users   {{USERS_GID  }}     -            -
> diff --git a/meta/recipes-core/systemd/systemd_253.3.bb 
> b/meta/recipes-core/systemd/systemd_253.3.bb
> index 45dc6ab5bb..87fbf6f785 100644
> --- a/meta/recipes-core/systemd/systemd_253.3.bb
> +++ b/meta/recipes-core/systemd/systemd_253.3.bb
> @@ -17,6 +17,7 @@ REQUIRED_DISTRO_FEATURES = "systemd"
>  SRC_URI += " \
>             file://touchscreen.rules \
>             file://00-create-volatile.conf \
> +           file://basic.conf.in \

Instead of including a modified copy of the basic.conf.in file 
from systemd, include a patch that modifies the file that systemd 
provides. Otherwise this becomes a maintenance problem where it 
is easy to miss changes that upstream does to the file, and also 
hard to know what you have changed.

>             ${@bb.utils.contains('PACKAGECONFIG', 
> 'polkit_hostnamed_fallback', 
> 'file://org.freedesktop.hostname1_no_polkit.conf', '', d)} \
>             ${@bb.utils.contains('PACKAGECONFIG', 
> 'polkit_hostnamed_fallback', 'file://00-hostnamed-network-user.conf', '', d)} 
> \
>             file://init \
> @@ -252,6 +253,10 @@ EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
>  # The 60 seconds is watchdog's default vaule.
>  WATCHDOG_TIMEOUT ??= "60"
> 
> +do_configure:prepend() {
> +  sed s@:ROOT_HOME:@${ROOT_HOME}@g ${WORKDIR}/basic.conf.in > 
> ${S}/sysusers.d/basic.conf.in

Please indent shell code using tabs, and change the command to:

        sed -i s@:ROOT_HOME:@${ROOT_HOME}@g ${S}/sysusers.d/basic.conf.in

once you have added the patch as per above. 

However, I am wondering if this has to be done during do_configure()? 
It might become confusing if you ever `devtool modify systemd` (which 
we do). Wouldn't it be better to do it on the installed file in the 
do_install() below instead?

> +}
> +
>  do_install() {
>       meson_do_install
>       install -d ${D}/${base_sbindir}
> 
> --
> 2.41.0

//Peter

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#183050): 
https://lists.openembedded.org/g/openembedded-core/message/183050
Mute This Topic: https://lists.openembedded.org/mt/99546757/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to