Message ID | 20231227042036.2376255-1-Qi.Chen@windriver.com |
---|---|
State | Accepted, archived |
Commit | ebafe463799b39025a0b24a0a14a2f02b6de9bac |
Headers | show |
Series | [1/3] systemd: upgrade to 255.1 | expand |
We hit the added warning on the autobuilders: WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/warnings On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > From: Chen Qi <Qi.Chen@windriver.com> > > 1. Patch changes: > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > is removed because it has no real effect now. The /lib is now > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > refreshed for the new version to avoid patch-fuzz issue. > > 2. root user's home directory now defaults to "/root": > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > value, so if users set ROOT_HOME to "/home/root", the behavior is the > same as before. However, this is only for backward compatibility. With > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > This is because systemd's source codes are hardcoding "/root", and other > values are not officially supported. See the list below. > $ grep -rl '"/root"' src/ | grep -v 'src/test' > src/core/namespace.c > src/basic/user-util.c > src/nss-systemd/nss-systemd.c > src/nspawn/nspawn.c > src/firstboot/firstboot.c > src/shared/userdb.c > src/shared/user-record.c > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ tmpfiles.d/ units/ xorg/ tools/ > sysusers.d/basic.conf.in > tmpfiles.d/provision.conf > units/emergency.service.in > units/rescue.service.in > tools/list-discoverable-partitions.py > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > which is not enough to be treated as 'fully support'. I deliberately put > a warning message in do_install to warn users about non "/root" ROOT_HOME > value. Don't remove it until all above places are handled. > > 3. cgroupv2 is now the default. > cgroupv2 is the default for systemd for many years and it's the default > for distros such as ubuntu and fedora. Let's also use it as the default. > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > --- > .../distro/include/init-manager-systemd.inc | 2 + > meta/recipes-core/systemd/systemd.inc | 4 +- > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > .../systemd/systemd/basic.conf.in | 40 ---------- > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > 6 files changed, 25 insertions(+), 132 deletions(-) > delete mode 100644 meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > delete mode 100644 meta/recipes-core/systemd/systemd/basic.conf.in > rename meta/recipes-core/systemd/{systemd_254.4.bb => systemd_255.1.bb} (98%) > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc > index 595d1f2644..0a76647459 100644 > --- a/meta/conf/distro/include/init-manager-systemd.inc > +++ b/meta/conf/distro/include/init-manager-systemd.inc > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > +# systemd hardcodes /root in its source codes, other values are not offically supported > +ROOT_HOME ?= "/root" > diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc > index ccc3236457..1417e0150f 100644 > --- a/meta/recipes-core/systemd/systemd.inc > +++ b/meta/recipes-core/systemd/systemd.inc > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > -SRCBRANCH = "v254-stable" > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > +SRCBRANCH = "v255-stable" > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > S = "${WORKDIR}/git" > diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > index 085f1e9052..be231cf6b2 100644 > --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > @@ -1,8 +1,8 @@ > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 > From: Chen Qi <Qi.Chen@windriver.com> > Date: Thu, 21 Feb 2019 16:23:24 +0800 > -Subject: [PATCH] binfmt: Don't install dependency links at install time for > - the binfmt services > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time > + for the binfmt services > > use [Install] blocks so that they get created when the service is enabled > like a traditional service. > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/units/meson.build b/units/meson.build > -index c7939a10f8..219570ab19 100644 > +index e7bfb7f838..1d5ec4b178 100644 > --- a/units/meson.build > +++ b/units/meson.build > -@@ -149,7 +149,6 @@ units = [ > +@@ -154,7 +154,6 @@ units = [ > { > 'file' : 'proc-sys-fs-binfmt_misc.automount', > 'conditions' : ['ENABLE_BINFMT'], > @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 > }, > { > 'file' : 'proc-sys-fs-binfmt_misc.mount', > -@@ -246,7 +245,6 @@ units = [ > +@@ -251,7 +250,6 @@ units = [ > { > 'file' : 'systemd-binfmt.service.in', > 'conditions' : ['ENABLE_BINFMT'], > @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 > { > 'file' : 'systemd-bless-boot.service.in', > diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount > -index 6b1bbdc91e..5ec5b8670a 100644 > +index 5d212015a5..6c2900ca77 100644 > --- a/units/proc-sys-fs-binfmt_misc.automount > +++ b/units/proc-sys-fs-binfmt_misc.automount > @@ -22,3 +22,6 @@ Before=shutdown.target > @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 > +[Install] > +WantedBy=sysinit.target > diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in > -index b04412e037..63f116e4fa 100644 > +index 6861c76674..531e9fbd90 100644 > --- a/units/systemd-binfmt.service.in > +++ b/units/systemd-binfmt.service.in > @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > After=proc-sys-fs-binfmt_misc.mount > After=local-fs.target > @@ -31,3 +32,6 @@ RemainAfterExit=yes > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > TimeoutSec=90s > + > +[Install] > +WantedBy=sysinit.target > -- > -2.39.2 > +2.34.1 > > diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > deleted file mode 100644 > index 98914ae154..0000000000 > --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > +++ /dev/null > @@ -1,73 +0,0 @@ > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 > -From: Khem Raj <raj.khem@gmail.com> > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr > - > -These directories are moved to /lib since systemd v246, commit > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > -the old /usr/lib is still being used. > - > -Upstream-Status: Inappropriate (OE-specific) > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > ---- > - src/core/systemd.pc.in | 8 ++++---- > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > - 2 files changed, 8 insertions(+), 8 deletions(-) > - > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in > -index 693433b34b..8368a3ff02 100644 > ---- a/src/core/systemd.pc.in > -+++ b/src/core/systemd.pc.in > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > - > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > - > --sysusers_dir=${rootprefix}/lib/sysusers.d > -+sysusers_dir=${prefix}/lib/sysusers.d > - sysusersdir=${sysusers_dir} > - > --sysctl_dir=${rootprefix}/lib/sysctl.d > -+sysctl_dir=${prefix}/lib/sysctl.d > - sysctldir=${sysctl_dir} > - > --binfmt_dir=${rootprefix}/lib/binfmt.d > -+binfmt_dir=${prefix}/lib/binfmt.d > - binfmtdir=${binfmt_dir} > - > --modules_load_dir=${rootprefix}/lib/modules-load.d > -+modules_load_dir=${prefix}/lib/modules-load.d > - modulesloaddir=${modules_load_dir} > - > - catalog_dir=${prefix}/lib/systemd/catalog > -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c > -index 1af3a36d1d..def502b717 100644 > ---- a/src/libsystemd/sd-path/sd-path.c > -+++ b/src/libsystemd/sd-path/sd-path.c > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > - return 0; > - > - case SD_PATH_SYSUSERS: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > -+ *ret = "/usr/lib/sysusers.d"; > - return 0; > - > - case SD_PATH_SYSCTL: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > -+ *ret = "/usr/lib/sysctl.d"; > - return 0; > - > - case SD_PATH_BINFMT: > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > -+ *ret = "/usr/lib/binfmt.d"; > - return 0; > - > - case SD_PATH_MODULES_LOAD: > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > -+ *ret = "/usr/lib/modules-load.d"; > - return 0; > - > - case SD_PATH_CATALOG: > --- > -2.39.2 > - > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in > deleted file mode 100644 > index fac288f7fa..0000000000 > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > +++ /dev/null > @@ -1,40 +0,0 @@ > -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb > similarity index 98% > rename from meta/recipes-core/systemd/systemd_254.4.bb > rename to meta/recipes-core/systemd/systemd_255.1.bb > index 0c12926bef..daa3a01fef 100644 > --- a/meta/recipes-core/systemd/systemd_254.4.bb > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > SRC_URI += " \ > file://touchscreen.rules \ > file://00-create-volatile.conf \ > - file://basic.conf.in \ > ${@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 \ > @@ -29,7 +28,6 @@ SRC_URI += " \ > file://systemd-pager.sh \ > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > file://0008-implment-systemd-sysv-install-for-OE.patch \ > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > " > > # patches needed by musl > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > backlight \ > binfmt \ > + cgroupv2 \ > gshadow \ > hibernate \ > hostnamed \ > @@ -266,12 +265,16 @@ 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 > -} > - > 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 > install -d ${D}/${base_sbindir} > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > # Provided by a separate recipe > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
I double checked it in my environment, setting INIT_MANAGER to "systemd" and then 'bitbake systemd' will not generate this warning. In this case ROOT_HOME's value is "/root". I checked https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354, but I couldn't find the configuration items that set the init manager to systemd. Does the build use the variable 'INIT_MANAGER'? Does it set ROOT_HOME to "/home/root" somewhere? Regards, Qi -----Original Message----- From: Alexandre Belloni <alexandre.belloni@bootlin.com> Sent: Wednesday, December 27, 2023 7:59 PM To: Chen, Qi <Qi.Chen@windriver.com> Cc: openembedded-core@lists.openembedded.org Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 We hit the added warning on the autobuilders: WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/warnings On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > From: Chen Qi <Qi.Chen@windriver.com> > > 1. Patch changes: > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > is removed because it has no real effect now. The /lib is now /usr/lib > because 'usrmerge' is a required distro feature for systemd. > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > refreshed for the new version to avoid patch-fuzz issue. > > 2. root user's home directory now defaults to "/root": > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > value, so if users set ROOT_HOME to "/home/root", the behavior is the > same as before. However, this is only for backward compatibility. With > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > This is because systemd's source codes are hardcoding "/root", and > other values are not officially supported. See the list below. > $ grep -rl '"/root"' src/ | grep -v 'src/test' > src/core/namespace.c > src/basic/user-util.c > src/nss-systemd/nss-systemd.c > src/nspawn/nspawn.c > src/firstboot/firstboot.c > src/shared/userdb.c > src/shared/user-record.c > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > tmpfiles.d/provision.conf units/emergency.service.in > units/rescue.service.in tools/list-discoverable-partitions.py > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > which is not enough to be treated as 'fully support'. I deliberately > put a warning message in do_install to warn users about non "/root" > ROOT_HOME value. Don't remove it until all above places are handled. > > 3. cgroupv2 is now the default. > cgroupv2 is the default for systemd for many years and it's the > default for distros such as ubuntu and fedora. Let's also use it as the default. > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > --- > .../distro/include/init-manager-systemd.inc | 2 + > meta/recipes-core/systemd/systemd.inc | 4 +- > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > .../systemd/systemd/basic.conf.in | 40 ---------- > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > 100644 > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt > .d-modules-load.d-to-.patch delete mode 100644 > meta/recipes-core/systemd/systemd/basic.conf.in > rename meta/recipes-core/systemd/{systemd_254.4.bb => > systemd_255.1.bb} (98%) > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > b/meta/conf/distro/include/init-manager-systemd.inc > index 595d1f2644..0a76647459 100644 > --- a/meta/conf/distro/include/init-manager-systemd.inc > +++ b/meta/conf/distro/include/init-manager-systemd.inc > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > +# systemd hardcodes /root in its source codes, other values are not > +offically supported ROOT_HOME ?= "/root" > diff --git a/meta/recipes-core/systemd/systemd.inc > b/meta/recipes-core/systemd/systemd.inc > index ccc3236457..1417e0150f 100644 > --- a/meta/recipes-core/systemd/systemd.inc > +++ b/meta/recipes-core/systemd/systemd.inc > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > -SRCBRANCH = "v254-stable" > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > +SRCBRANCH = "v255-stable" > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > S = "${WORKDIR}/git" > diff --git > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > cy-links-at-install-tim.patch > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > cy-links-at-install-tim.patch > index 085f1e9052..be231cf6b2 100644 > --- > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > cy-links-at-install-tim.patch > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depe > +++ ndency-links-at-install-tim.patch > @@ -1,8 +1,8 @@ > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > 2001 > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > +2001 > From: Chen Qi <Qi.Chen@windriver.com> > Date: Thu, 21 Feb 2019 16:23:24 +0800 > -Subject: [PATCH] binfmt: Don't install dependency links at install > time for > - the binfmt services > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > +install time for the binfmt services > > use [Install] blocks so that they get created when the service is > enabled like a traditional service. > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/units/meson.build b/units/meson.build -index > c7939a10f8..219570ab19 100644 > +index e7bfb7f838..1d5ec4b178 100644 > --- a/units/meson.build > +++ b/units/meson.build > -@@ -149,7 +149,6 @@ units = [ > +@@ -154,7 +154,6 @@ units = [ > { > 'file' : 'proc-sys-fs-binfmt_misc.automount', > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index > c7939a10f8..219570ab19 100644 > }, > { > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > +245,6 @@ units = [ > +@@ -251,7 +250,6 @@ units = [ > { > 'file' : 'systemd-binfmt.service.in', > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index > c7939a10f8..219570ab19 100644 > { > 'file' : 'systemd-bless-boot.service.in', diff --git > a/units/proc-sys-fs-binfmt_misc.automount > b/units/proc-sys-fs-binfmt_misc.automount > -index 6b1bbdc91e..5ec5b8670a 100644 > +index 5d212015a5..6c2900ca77 100644 > --- a/units/proc-sys-fs-binfmt_misc.automount > +++ b/units/proc-sys-fs-binfmt_misc.automount > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > diff --git a/units/systemd-binfmt.service.in > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 > +index 6861c76674..531e9fbd90 100644 > --- a/units/systemd-binfmt.service.in +++ > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > After=proc-sys-fs-binfmt_misc.mount > After=local-fs.target > @@ -31,3 +32,6 @@ RemainAfterExit=yes > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > TimeoutSec=90s > + > +[Install] > +WantedBy=sysinit.target > -- > -2.39.2 > +2.34.1 > > diff --git > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > mt.d-modules-load.d-to-.patch > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > mt.d-modules-load.d-to-.patch > deleted file mode 100644 > index 98914ae154..0000000000 > --- > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > mt.d-modules-load.d-to-.patch > +++ /dev/null > @@ -1,73 +0,0 @@ > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > 2001 > -From: Khem Raj <raj.khem@gmail.com> > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to > /usr > - > -These directories are moved to /lib since systemd v246, commit > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > -the old /usr/lib is still being used. > - > -Upstream-Status: Inappropriate (OE-specific) > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > ---- > - src/core/systemd.pc.in | 8 ++++---- > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > - 2 files changed, 8 insertions(+), 8 deletions(-) > - > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > 693433b34b..8368a3ff02 100644 > ---- a/src/core/systemd.pc.in > -+++ b/src/core/systemd.pc.in > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > - > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > - > --sysusers_dir=${rootprefix}/lib/sysusers.d > -+sysusers_dir=${prefix}/lib/sysusers.d > - sysusersdir=${sysusers_dir} > - > --sysctl_dir=${rootprefix}/lib/sysctl.d > -+sysctl_dir=${prefix}/lib/sysctl.d > - sysctldir=${sysctl_dir} > - > --binfmt_dir=${rootprefix}/lib/binfmt.d > -+binfmt_dir=${prefix}/lib/binfmt.d > - binfmtdir=${binfmt_dir} > - > --modules_load_dir=${rootprefix}/lib/modules-load.d > -+modules_load_dir=${prefix}/lib/modules-load.d > - modulesloaddir=${modules_load_dir} > - > - catalog_dir=${prefix}/lib/systemd/catalog > -diff --git a/src/libsystemd/sd-path/sd-path.c > b/src/libsystemd/sd-path/sd-path.c > -index 1af3a36d1d..def502b717 100644 > ---- a/src/libsystemd/sd-path/sd-path.c > -+++ b/src/libsystemd/sd-path/sd-path.c > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > - return 0; > - > - case SD_PATH_SYSUSERS: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > -+ *ret = "/usr/lib/sysusers.d"; > - return 0; > - > - case SD_PATH_SYSCTL: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > -+ *ret = "/usr/lib/sysctl.d"; > - return 0; > - > - case SD_PATH_BINFMT: > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > -+ *ret = "/usr/lib/binfmt.d"; > - return 0; > - > - case SD_PATH_MODULES_LOAD: > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > -+ *ret = "/usr/lib/modules-load.d"; > - return 0; > - > - case SD_PATH_CATALOG: > --- > -2.39.2 > - > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > b/meta/recipes-core/systemd/systemd/basic.conf.in > deleted file mode 100644 > index fac288f7fa..0000000000 > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > +++ /dev/null > @@ -1,40 +0,0 @@ > -# 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_254.4.bb > b/meta/recipes-core/systemd/systemd_255.1.bb > similarity index 98% > rename from meta/recipes-core/systemd/systemd_254.4.bb > rename to meta/recipes-core/systemd/systemd_255.1.bb > index 0c12926bef..daa3a01fef 100644 > --- a/meta/recipes-core/systemd/systemd_254.4.bb > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > SRC_URI += " \ > file://touchscreen.rules \ > file://00-create-volatile.conf \ > - file://basic.conf.in \ > ${@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 \ > @@ -29,7 +28,6 @@ SRC_URI += " \ > file://systemd-pager.sh \ > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > file://0008-implment-systemd-sysv-install-for-OE.patch \ > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > " > > # patches needed by musl > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > backlight \ > binfmt \ > + cgroupv2 \ > gshadow \ > hibernate \ > hostnamed \ > @@ -266,12 +265,16 @@ 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 -} > - > 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 > install -d ${D}/${base_sbindir} > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > # Provided by a separate recipe > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > + > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Please do a musl build too. We might have some patch conflicts to address. On Wed, Dec 27, 2023 at 7:00 PM Chen Qi via lists.openembedded.org <Qi.Chen=windriver.com@lists.openembedded.org> wrote: > > I double checked it in my environment, setting INIT_MANAGER to "systemd" and then 'bitbake systemd' will not generate this warning. In this case ROOT_HOME's value is "/root". > I checked https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354, but I couldn't find the configuration items that set the init manager to systemd. > Does the build use the variable 'INIT_MANAGER'? Does it set ROOT_HOME to "/home/root" somewhere? > > Regards, > Qi > > -----Original Message----- > From: Alexandre Belloni <alexandre.belloni@bootlin.com> > Sent: Wednesday, December 27, 2023 7:59 PM > To: Chen, Qi <Qi.Chen@windriver.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 > > We hit the added warning on the autobuilders: > > WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd > > https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/warnings > > On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > > From: Chen Qi <Qi.Chen@windriver.com> > > > > 1. Patch changes: > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > is removed because it has no real effect now. The /lib is now /usr/lib > > because 'usrmerge' is a required distro feature for systemd. > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > refreshed for the new version to avoid patch-fuzz issue. > > > > 2. root user's home directory now defaults to "/root": > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > value, so if users set ROOT_HOME to "/home/root", the behavior is the > > same as before. However, this is only for backward compatibility. With > > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > This is because systemd's source codes are hardcoding "/root", and > > other values are not officially supported. See the list below. > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > src/core/namespace.c > > src/basic/user-util.c > > src/nss-systemd/nss-systemd.c > > src/nspawn/nspawn.c > > src/firstboot/firstboot.c > > src/shared/userdb.c > > src/shared/user-record.c > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > > tmpfiles.d/provision.conf units/emergency.service.in > > units/rescue.service.in tools/list-discoverable-partitions.py > > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > > which is not enough to be treated as 'fully support'. I deliberately > > put a warning message in do_install to warn users about non "/root" > > ROOT_HOME value. Don't remove it until all above places are handled. > > > > 3. cgroupv2 is now the default. > > cgroupv2 is the default for systemd for many years and it's the > > default for distros such as ubuntu and fedora. Let's also use it as the default. > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > --- > > .../distro/include/init-manager-systemd.inc | 2 + > > meta/recipes-core/systemd/systemd.inc | 4 +- > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > .../systemd/systemd/basic.conf.in | 40 ---------- > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > > 100644 > > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt > > .d-modules-load.d-to-.patch delete mode 100644 > > meta/recipes-core/systemd/systemd/basic.conf.in > > rename meta/recipes-core/systemd/{systemd_254.4.bb => > > systemd_255.1.bb} (98%) > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > > b/meta/conf/distro/include/init-manager-systemd.inc > > index 595d1f2644..0a76647459 100644 > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > +# systemd hardcodes /root in its source codes, other values are not > > +offically supported ROOT_HOME ?= "/root" > > diff --git a/meta/recipes-core/systemd/systemd.inc > > b/meta/recipes-core/systemd/systemd.inc > > index ccc3236457..1417e0150f 100644 > > --- a/meta/recipes-core/systemd/systemd.inc > > +++ b/meta/recipes-core/systemd/systemd.inc > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > -SRCBRANCH = "v254-stable" > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > +SRCBRANCH = "v255-stable" > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > > > S = "${WORKDIR}/git" > > diff --git > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > index 085f1e9052..be231cf6b2 100644 > > --- > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depe > > +++ ndency-links-at-install-tim.patch > > @@ -1,8 +1,8 @@ > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > > 2001 > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > > +2001 > > From: Chen Qi <Qi.Chen@windriver.com> > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > -Subject: [PATCH] binfmt: Don't install dependency links at install > > time for > > - the binfmt services > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > > +install time for the binfmt services > > > > use [Install] blocks so that they get created when the service is > > enabled like a traditional service. > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/units/meson.build b/units/meson.build -index > > c7939a10f8..219570ab19 100644 > > +index e7bfb7f838..1d5ec4b178 100644 > > --- a/units/meson.build > > +++ b/units/meson.build > > -@@ -149,7 +149,6 @@ units = [ > > +@@ -154,7 +154,6 @@ units = [ > > { > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index > > c7939a10f8..219570ab19 100644 > > }, > > { > > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > > +245,6 @@ units = [ > > +@@ -251,7 +250,6 @@ units = [ > > { > > 'file' : 'systemd-binfmt.service.in', > > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index > > c7939a10f8..219570ab19 100644 > > { > > 'file' : 'systemd-bless-boot.service.in', diff --git > > a/units/proc-sys-fs-binfmt_misc.automount > > b/units/proc-sys-fs-binfmt_misc.automount > > -index 6b1bbdc91e..5ec5b8670a 100644 > > +index 5d212015a5..6c2900ca77 100644 > > --- a/units/proc-sys-fs-binfmt_misc.automount > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > > diff --git a/units/systemd-binfmt.service.in > > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 > > +index 6861c76674..531e9fbd90 100644 > > --- a/units/systemd-binfmt.service.in +++ > > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > After=proc-sys-fs-binfmt_misc.mount > > After=local-fs.target > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > TimeoutSec=90s > > + > > +[Install] > > +WantedBy=sysinit.target > > -- > > -2.39.2 > > +2.34.1 > > > > diff --git > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > deleted file mode 100644 > > index 98914ae154..0000000000 > > --- > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > > 2001 > > -From: Khem Raj <raj.khem@gmail.com> > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to > > /usr > > - > > -These directories are moved to /lib since systemd v246, commit > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > > -the old /usr/lib is still being used. > > - > > -Upstream-Status: Inappropriate (OE-specific) > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > ---- > > - src/core/systemd.pc.in | 8 ++++---- > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > - > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > > 693433b34b..8368a3ff02 100644 > > ---- a/src/core/systemd.pc.in > > -+++ b/src/core/systemd.pc.in > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > - > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > - > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > -+sysusers_dir=${prefix}/lib/sysusers.d > > - sysusersdir=${sysusers_dir} > > - > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > -+sysctl_dir=${prefix}/lib/sysctl.d > > - sysctldir=${sysctl_dir} > > - > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > -+binfmt_dir=${prefix}/lib/binfmt.d > > - binfmtdir=${binfmt_dir} > > - > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > -+modules_load_dir=${prefix}/lib/modules-load.d > > - modulesloaddir=${modules_load_dir} > > - > > - catalog_dir=${prefix}/lib/systemd/catalog > > -diff --git a/src/libsystemd/sd-path/sd-path.c > > b/src/libsystemd/sd-path/sd-path.c > > -index 1af3a36d1d..def502b717 100644 > > ---- a/src/libsystemd/sd-path/sd-path.c > > -+++ b/src/libsystemd/sd-path/sd-path.c > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > - return 0; > > - > > - case SD_PATH_SYSUSERS: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > -+ *ret = "/usr/lib/sysusers.d"; > > - return 0; > > - > > - case SD_PATH_SYSCTL: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > -+ *ret = "/usr/lib/sysctl.d"; > > - return 0; > > - > > - case SD_PATH_BINFMT: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > -+ *ret = "/usr/lib/binfmt.d"; > > - return 0; > > - > > - case SD_PATH_MODULES_LOAD: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > -+ *ret = "/usr/lib/modules-load.d"; > > - return 0; > > - > > - case SD_PATH_CATALOG: > > --- > > -2.39.2 > > - > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > > b/meta/recipes-core/systemd/systemd/basic.conf.in > > deleted file mode 100644 > > index fac288f7fa..0000000000 > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -# 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_254.4.bb > > b/meta/recipes-core/systemd/systemd_255.1.bb > > similarity index 98% > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > index 0c12926bef..daa3a01fef 100644 > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > SRC_URI += " \ > > file://touchscreen.rules \ > > file://00-create-volatile.conf \ > > - file://basic.conf.in \ > > ${@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 \ > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > file://systemd-pager.sh \ > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > " > > > > # patches needed by musl > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > backlight \ > > binfmt \ > > + cgroupv2 \ > > gshadow \ > > hibernate \ > > hostnamed \ > > @@ -266,12 +265,16 @@ 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 -} > > - > > 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 > > install -d ${D}/${base_sbindir} > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > # Provided by a separate recipe > > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > + > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > -- > > 2.34.1 > > > > > > > > > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192970): https://lists.openembedded.org/g/openembedded-core/message/192970 > Mute This Topic: https://lists.openembedded.org/mt/103380516/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Hi Khem, I'm working on some other issue these two days. But I think I can send out a follow-up patch to handle those musl patches after New Year's Day. Regards, Qi -----Original Message----- From: Khem Raj <raj.khem@gmail.com> Sent: Thursday, December 28, 2023 11:20 AM To: Chen, Qi <Qi.Chen@windriver.com> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>; openembedded-core@lists.openembedded.org Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 Please do a musl build too. We might have some patch conflicts to address. On Wed, Dec 27, 2023 at 7:00 PM Chen Qi via lists.openembedded.org <Qi.Chen=windriver.com@lists.openembedded.org> wrote: > > I double checked it in my environment, setting INIT_MANAGER to "systemd" and then 'bitbake systemd' will not generate this warning. In this case ROOT_HOME's value is "/root". > I checked https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354, but I couldn't find the configuration items that set the init manager to systemd. > Does the build use the variable 'INIT_MANAGER'? Does it set ROOT_HOME to "/home/root" somewhere? > > Regards, > Qi > > -----Original Message----- > From: Alexandre Belloni <alexandre.belloni@bootlin.com> > Sent: Wednesday, December 27, 2023 7:59 PM > To: Chen, Qi <Qi.Chen@windriver.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 > > We hit the added warning on the autobuilders: > > WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root > user's home directory is not fully supported by systemd > > https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354 > /steps/14/logs/warnings > > On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > > From: Chen Qi <Qi.Chen@windriver.com> > > > > 1. Patch changes: > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > is removed because it has no real effect now. The /lib is now > > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > refreshed for the new version to avoid patch-fuzz issue. > > > > 2. root user's home directory now defaults to "/root": > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > value, so if users set ROOT_HOME to "/home/root", the behavior is > > the same as before. However, this is only for backward > > compatibility. With this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > This is because systemd's source codes are hardcoding "/root", and > > other values are not officially supported. See the list below. > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > src/core/namespace.c > > src/basic/user-util.c > > src/nss-systemd/nss-systemd.c > > src/nspawn/nspawn.c > > src/firstboot/firstboot.c > > src/shared/userdb.c > > src/shared/user-record.c > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > > tmpfiles.d/provision.conf units/emergency.service.in > > units/rescue.service.in tools/list-discoverable-partitions.py > > Previously, the recipe was just substituting > > sysusers.d/basic.conf.in, which is not enough to be treated as > > 'fully support'. I deliberately put a warning message in do_install to warn users about non "/root" > > ROOT_HOME value. Don't remove it until all above places are handled. > > > > 3. cgroupv2 is now the default. > > cgroupv2 is the default for systemd for many years and it's the > > default for distros such as ubuntu and fedora. Let's also use it as the default. > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > --- > > .../distro/include/init-manager-systemd.inc | 2 + > > meta/recipes-core/systemd/systemd.inc | 4 +- > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > .../systemd/systemd/basic.conf.in | 40 ---------- > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > > 100644 > > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt .d-modules-load.d-to-.patch delete mode 100644 > > meta/recipes-core/systemd/systemd/basic.conf.in > > rename meta/recipes-core/systemd/{systemd_254.4.bb => > > systemd_255.1.bb} (98%) > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > > b/meta/conf/distro/include/init-manager-systemd.inc > > index 595d1f2644..0a76647459 100644 > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > +# systemd hardcodes /root in its source codes, other values are not > > +offically supported ROOT_HOME ?= "/root" > > diff --git a/meta/recipes-core/systemd/systemd.inc > > b/meta/recipes-core/systemd/systemd.inc > > index ccc3236457..1417e0150f 100644 > > --- a/meta/recipes-core/systemd/systemd.inc > > +++ b/meta/recipes-core/systemd/systemd.inc > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > -SRCBRANCH = "v254-stable" > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > +SRCBRANCH = "v255-stable" > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > > > S = "${WORKDIR}/git" > > diff --git > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depend > > en > > cy-links-at-install-tim.patch > > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depend > > en > > cy-links-at-install-tim.patch > > index 085f1e9052..be231cf6b2 100644 > > --- > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depend > > en > > cy-links-at-install-tim.patch > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-de > > +++ pe ndency-links-at-install-tim.patch > > @@ -1,8 +1,8 @@ > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > > 2001 > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > > +2001 > > From: Chen Qi <Qi.Chen@windriver.com> > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > -Subject: [PATCH] binfmt: Don't install dependency links at install > > time for > > - the binfmt services > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > > +install time for the binfmt services > > > > use [Install] blocks so that they get created when the service is > > enabled like a traditional service. > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/units/meson.build b/units/meson.build -index > > c7939a10f8..219570ab19 100644 > > +index e7bfb7f838..1d5ec4b178 100644 > > --- a/units/meson.build > > +++ b/units/meson.build > > -@@ -149,7 +149,6 @@ units = [ > > +@@ -154,7 +154,6 @@ units = [ > > { > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ > > index > > c7939a10f8..219570ab19 100644 > > }, > > { > > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > > +245,6 @@ units = [ > > +@@ -251,7 +250,6 @@ units = [ > > { > > 'file' : 'systemd-binfmt.service.in', > > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ > > index > > c7939a10f8..219570ab19 100644 > > { > > 'file' : 'systemd-bless-boot.service.in', diff --git > > a/units/proc-sys-fs-binfmt_misc.automount > > b/units/proc-sys-fs-binfmt_misc.automount > > -index 6b1bbdc91e..5ec5b8670a 100644 > > +index 5d212015a5..6c2900ca77 100644 > > --- a/units/proc-sys-fs-binfmt_misc.automount > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > > diff --git a/units/systemd-binfmt.service.in > > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa > > 100644 > > +index 6861c76674..531e9fbd90 100644 > > --- a/units/systemd-binfmt.service.in +++ > > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > After=proc-sys-fs-binfmt_misc.mount > > After=local-fs.target > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > TimeoutSec=90s > > + > > +[Install] > > +WantedBy=sysinit.target > > -- > > -2.39.2 > > +2.34.1 > > > > diff --git > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-bi > > nf > > mt.d-modules-load.d-to-.patch > > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-bi > > nf > > mt.d-modules-load.d-to-.patch > > deleted file mode 100644 > > index 98914ae154..0000000000 > > --- > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-bi > > nf > > mt.d-modules-load.d-to-.patch > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > > 2001 > > -From: Khem Raj <raj.khem@gmail.com> > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d > > to /usr > > - > > -These directories are moved to /lib since systemd v246, commit > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in > > oe-core/yocto, -the old /usr/lib is still being used. > > - > > -Upstream-Status: Inappropriate (OE-specific) > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > ---- > > - src/core/systemd.pc.in | 8 ++++---- > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > - > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > > 693433b34b..8368a3ff02 100644 > > ---- a/src/core/systemd.pc.in > > -+++ b/src/core/systemd.pc.in > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > - > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > - > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > -+sysusers_dir=${prefix}/lib/sysusers.d > > - sysusersdir=${sysusers_dir} > > - > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > -+sysctl_dir=${prefix}/lib/sysctl.d > > - sysctldir=${sysctl_dir} > > - > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > -+binfmt_dir=${prefix}/lib/binfmt.d > > - binfmtdir=${binfmt_dir} > > - > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > -+modules_load_dir=${prefix}/lib/modules-load.d > > - modulesloaddir=${modules_load_dir} > > - > > - catalog_dir=${prefix}/lib/systemd/catalog > > -diff --git a/src/libsystemd/sd-path/sd-path.c > > b/src/libsystemd/sd-path/sd-path.c > > -index 1af3a36d1d..def502b717 100644 > > ---- a/src/libsystemd/sd-path/sd-path.c > > -+++ b/src/libsystemd/sd-path/sd-path.c > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > - return 0; > > - > > - case SD_PATH_SYSUSERS: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > -+ *ret = "/usr/lib/sysusers.d"; > > - return 0; > > - > > - case SD_PATH_SYSCTL: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > -+ *ret = "/usr/lib/sysctl.d"; > > - return 0; > > - > > - case SD_PATH_BINFMT: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > -+ *ret = "/usr/lib/binfmt.d"; > > - return 0; > > - > > - case SD_PATH_MODULES_LOAD: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > -+ *ret = "/usr/lib/modules-load.d"; > > - return 0; > > - > > - case SD_PATH_CATALOG: > > --- > > -2.39.2 > > - > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > > b/meta/recipes-core/systemd/systemd/basic.conf.in > > deleted file mode 100644 > > index fac288f7fa..0000000000 > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -# 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_254.4.bb > > b/meta/recipes-core/systemd/systemd_255.1.bb > > similarity index 98% > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > index 0c12926bef..daa3a01fef 100644 > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > SRC_URI += " \ > > file://touchscreen.rules \ > > file://00-create-volatile.conf \ > > - file://basic.conf.in \ > > ${@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 \ > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > file://systemd-pager.sh \ > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > " > > > > # patches needed by musl > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > backlight \ > > binfmt \ > > + cgroupv2 \ > > gshadow \ > > hibernate \ > > hostnamed \ > > @@ -266,12 +265,16 @@ 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 -} > > - > > 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 > > install -d ${D}/${base_sbindir} > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > # Provided by a separate recipe @@ -754,6 +757,7 @@ > > FILES:udev += "${base_sbindir}/udevd \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > + > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > -- > > 2.34.1 > > > > > > > > > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel > engineering https://bootlin.com > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192970): > https://lists.openembedded.org/g/openembedded-core/message/192970 > Mute This Topic: https://lists.openembedded.org/mt/103380516/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub > [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On 28/12/2023 03:00:08+0000, Chen, Qi wrote: > I double checked it in my environment, setting INIT_MANAGER to "systemd" and then 'bitbake systemd' will not generate this warning. In this case ROOT_HOME's value is "/root". > I checked https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354, but I couldn't find the configuration items that set the init manager to systemd. > Does the build use the variable 'INIT_MANAGER'? Does it set ROOT_HOME to "/home/root" somewhere? > This is the config that is used: MACHINE = "qemux86-64" DISTRO = "poky" SDKMACHINE = "x86_64" PACKAGE_CLASSES = "package_rpm package_deb package_ipk" DL_DIR = '/srv/autobuilder/autobuilder.yocto.io/current_sources' SSTATE_DIR ?= '/srv/autobuilder/autobuilder.yocto.io/pub/sstate' TEST_SUITES:append = ' systemd' DISTRO_FEATURES:append = ' pam systemd usrmerge' VIRTUAL-RUNTIME_init_manager = 'systemd' DISTRO_FEATURES_BACKFILL_CONSIDERED = 'sysvinit' DISTRO_FEATURES:remove = 'x11' QEMU_USE_KVM = 'True' INHERIT += 'report-error' PREMIRRORS = '' BB_GENERATE_MIRROR_TARBALLS = '1' BB_NUMBER_THREADS = '16' BB_NUMBER_PARSE_THREADS = '16' PARALLEL_MAKE = '-j 16 -l 52' BB_PRESSURE_MAX_CPU = '10000' BB_PRESSURE_MAX_IO = '10000' XZ_MEMLIMIT = '5%' XZ_THREADS = '8' ZSTD_THREADS = '8' BB_TASK_NICE_LEVEL = '5' BB_TASK_NICE_LEVEL:task-testimage = '0' BB_TASK_IONICE_LEVEL = '2.7' BB_TASK_IONICE_LEVEL:task-testimage = '2.1' IMAGE_CLASSES += 'testimage' TEST_QEMUBOOT_TIMEOUT = '1500' SANITY_TESTED_DISTROS = '' SDK_EXT_TYPE = 'minimal' SDK_INCLUDE_TOOLCHAIN = '1' ESDK_LOCAL_CONF_REMOVE:append = 'BB_HASHSERVE' BB_DISKMON_DIRS = 'STOPTASKS,${TMPDIR},1G,100K STOPTASKS,${DL_DIR},1G STOPTASKS,${SSTATE_DIR},1G STOPTASKS,/tmp,100M,30K HALT,${TMPDIR},100M,1K HALT,${DL_DIR},100M HALT,${SSTATE_DIR},100M HALT,/tmp,10M,1K' BB_HASHSERVE = 'hashserv.yocto.io:8686' RUNQEMU_TMPFS_DIR = '/home/pokybuild/tmp' BB_HEARTBEAT_EVENT = '60' BB_LOG_HOST_STAT_ON_INTERVAL = '1' BB_LOG_HOST_STAT_CMDS_INTERVAL = 'oe-time-dd-test.sh -c 100 -t 3' BB_LOG_HOST_STAT_ON_FAILURE = '1' BB_LOG_HOST_STAT_CMDS_FAILURE = 'oe-time-dd-test.sh -l' SDK_TOOLCHAIN_LANGS += 'rust' BB_SERVER_TIMEOUT = '60' It is in auto.conf and it is displayed in the first lines of https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/stdio > Regards, > Qi > > -----Original Message----- > From: Alexandre Belloni <alexandre.belloni@bootlin.com> > Sent: Wednesday, December 27, 2023 7:59 PM > To: Chen, Qi <Qi.Chen@windriver.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 > > We hit the added warning on the autobuilders: > > WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd > > https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/warnings > > On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > > From: Chen Qi <Qi.Chen@windriver.com> > > > > 1. Patch changes: > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > is removed because it has no real effect now. The /lib is now /usr/lib > > because 'usrmerge' is a required distro feature for systemd. > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > refreshed for the new version to avoid patch-fuzz issue. > > > > 2. root user's home directory now defaults to "/root": > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > value, so if users set ROOT_HOME to "/home/root", the behavior is the > > same as before. However, this is only for backward compatibility. With > > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > This is because systemd's source codes are hardcoding "/root", and > > other values are not officially supported. See the list below. > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > src/core/namespace.c > > src/basic/user-util.c > > src/nss-systemd/nss-systemd.c > > src/nspawn/nspawn.c > > src/firstboot/firstboot.c > > src/shared/userdb.c > > src/shared/user-record.c > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > > tmpfiles.d/provision.conf units/emergency.service.in > > units/rescue.service.in tools/list-discoverable-partitions.py > > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > > which is not enough to be treated as 'fully support'. I deliberately > > put a warning message in do_install to warn users about non "/root" > > ROOT_HOME value. Don't remove it until all above places are handled. > > > > 3. cgroupv2 is now the default. > > cgroupv2 is the default for systemd for many years and it's the > > default for distros such as ubuntu and fedora. Let's also use it as the default. > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > --- > > .../distro/include/init-manager-systemd.inc | 2 + > > meta/recipes-core/systemd/systemd.inc | 4 +- > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > .../systemd/systemd/basic.conf.in | 40 ---------- > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > > 100644 > > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt > > .d-modules-load.d-to-.patch delete mode 100644 > > meta/recipes-core/systemd/systemd/basic.conf.in > > rename meta/recipes-core/systemd/{systemd_254.4.bb => > > systemd_255.1.bb} (98%) > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > > b/meta/conf/distro/include/init-manager-systemd.inc > > index 595d1f2644..0a76647459 100644 > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > +# systemd hardcodes /root in its source codes, other values are not > > +offically supported ROOT_HOME ?= "/root" > > diff --git a/meta/recipes-core/systemd/systemd.inc > > b/meta/recipes-core/systemd/systemd.inc > > index ccc3236457..1417e0150f 100644 > > --- a/meta/recipes-core/systemd/systemd.inc > > +++ b/meta/recipes-core/systemd/systemd.inc > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > -SRCBRANCH = "v254-stable" > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > +SRCBRANCH = "v255-stable" > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > > > S = "${WORKDIR}/git" > > diff --git > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > index 085f1e9052..be231cf6b2 100644 > > --- > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depe > > +++ ndency-links-at-install-tim.patch > > @@ -1,8 +1,8 @@ > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > > 2001 > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > > +2001 > > From: Chen Qi <Qi.Chen@windriver.com> > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > -Subject: [PATCH] binfmt: Don't install dependency links at install > > time for > > - the binfmt services > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > > +install time for the binfmt services > > > > use [Install] blocks so that they get created when the service is > > enabled like a traditional service. > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/units/meson.build b/units/meson.build -index > > c7939a10f8..219570ab19 100644 > > +index e7bfb7f838..1d5ec4b178 100644 > > --- a/units/meson.build > > +++ b/units/meson.build > > -@@ -149,7 +149,6 @@ units = [ > > +@@ -154,7 +154,6 @@ units = [ > > { > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index > > c7939a10f8..219570ab19 100644 > > }, > > { > > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > > +245,6 @@ units = [ > > +@@ -251,7 +250,6 @@ units = [ > > { > > 'file' : 'systemd-binfmt.service.in', > > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index > > c7939a10f8..219570ab19 100644 > > { > > 'file' : 'systemd-bless-boot.service.in', diff --git > > a/units/proc-sys-fs-binfmt_misc.automount > > b/units/proc-sys-fs-binfmt_misc.automount > > -index 6b1bbdc91e..5ec5b8670a 100644 > > +index 5d212015a5..6c2900ca77 100644 > > --- a/units/proc-sys-fs-binfmt_misc.automount > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > > diff --git a/units/systemd-binfmt.service.in > > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 > > +index 6861c76674..531e9fbd90 100644 > > --- a/units/systemd-binfmt.service.in +++ > > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > After=proc-sys-fs-binfmt_misc.mount > > After=local-fs.target > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > TimeoutSec=90s > > + > > +[Install] > > +WantedBy=sysinit.target > > -- > > -2.39.2 > > +2.34.1 > > > > diff --git > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > deleted file mode 100644 > > index 98914ae154..0000000000 > > --- > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > > 2001 > > -From: Khem Raj <raj.khem@gmail.com> > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to > > /usr > > - > > -These directories are moved to /lib since systemd v246, commit > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > > -the old /usr/lib is still being used. > > - > > -Upstream-Status: Inappropriate (OE-specific) > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > ---- > > - src/core/systemd.pc.in | 8 ++++---- > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > - > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > > 693433b34b..8368a3ff02 100644 > > ---- a/src/core/systemd.pc.in > > -+++ b/src/core/systemd.pc.in > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > - > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > - > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > -+sysusers_dir=${prefix}/lib/sysusers.d > > - sysusersdir=${sysusers_dir} > > - > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > -+sysctl_dir=${prefix}/lib/sysctl.d > > - sysctldir=${sysctl_dir} > > - > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > -+binfmt_dir=${prefix}/lib/binfmt.d > > - binfmtdir=${binfmt_dir} > > - > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > -+modules_load_dir=${prefix}/lib/modules-load.d > > - modulesloaddir=${modules_load_dir} > > - > > - catalog_dir=${prefix}/lib/systemd/catalog > > -diff --git a/src/libsystemd/sd-path/sd-path.c > > b/src/libsystemd/sd-path/sd-path.c > > -index 1af3a36d1d..def502b717 100644 > > ---- a/src/libsystemd/sd-path/sd-path.c > > -+++ b/src/libsystemd/sd-path/sd-path.c > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > - return 0; > > - > > - case SD_PATH_SYSUSERS: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > -+ *ret = "/usr/lib/sysusers.d"; > > - return 0; > > - > > - case SD_PATH_SYSCTL: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > -+ *ret = "/usr/lib/sysctl.d"; > > - return 0; > > - > > - case SD_PATH_BINFMT: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > -+ *ret = "/usr/lib/binfmt.d"; > > - return 0; > > - > > - case SD_PATH_MODULES_LOAD: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > -+ *ret = "/usr/lib/modules-load.d"; > > - return 0; > > - > > - case SD_PATH_CATALOG: > > --- > > -2.39.2 > > - > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > > b/meta/recipes-core/systemd/systemd/basic.conf.in > > deleted file mode 100644 > > index fac288f7fa..0000000000 > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -# 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_254.4.bb > > b/meta/recipes-core/systemd/systemd_255.1.bb > > similarity index 98% > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > index 0c12926bef..daa3a01fef 100644 > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > SRC_URI += " \ > > file://touchscreen.rules \ > > file://00-create-volatile.conf \ > > - file://basic.conf.in \ > > ${@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 \ > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > file://systemd-pager.sh \ > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > " > > > > # patches needed by musl > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > backlight \ > > binfmt \ > > + cgroupv2 \ > > gshadow \ > > hibernate \ > > hostnamed \ > > @@ -266,12 +265,16 @@ 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 -} > > - > > 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 > > install -d ${D}/${base_sbindir} > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > # Provided by a separate recipe > > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > + > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > -- > > 2.34.1 > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 > > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > > Group Owner: openembedded-core+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > > -=-=-=-=-=-=-=-=-=-=-=- > > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com
On 12/29/23 05:14, Alexandre Belloni wrote: > On 28/12/2023 03:00:08+0000, Chen, Qi wrote: >> I double checked it in my environment, setting INIT_MANAGER to "systemd" and then 'bitbake systemd' will not generate this warning. In this case ROOT_HOME's value is "/root". >> I checked https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354, but I couldn't find the configuration items that set the init manager to systemd. >> Does the build use the variable 'INIT_MANAGER'? Does it set ROOT_HOME to "/home/root" somewhere? >> > This is the config that is used: > > MACHINE = "qemux86-64" > DISTRO = "poky" > SDKMACHINE = "x86_64" > PACKAGE_CLASSES = "package_rpm package_deb package_ipk" > DL_DIR = '/srv/autobuilder/autobuilder.yocto.io/current_sources' > SSTATE_DIR ?= '/srv/autobuilder/autobuilder.yocto.io/pub/sstate' > TEST_SUITES:append = ' systemd' > DISTRO_FEATURES:append = ' pam systemd usrmerge' > VIRTUAL-RUNTIME_init_manager = 'systemd' > DISTRO_FEATURES_BACKFILL_CONSIDERED = 'sysvinit' OK, I see. I'd suggest replacing the above 4 lines with a single line: INIT_MANAGER = "systemd" The INIT_MANAGER mechanism was added to make switching init managers easier. Another choice is adding the following line to sync with the meta/conf/distro/include/init-manager-systemd.inc settings. ROOT_HOME ?= "/root" Regards, Qi > DISTRO_FEATURES:remove = 'x11' > QEMU_USE_KVM = 'True' > INHERIT += 'report-error' > PREMIRRORS = '' > BB_GENERATE_MIRROR_TARBALLS = '1' > BB_NUMBER_THREADS = '16' > BB_NUMBER_PARSE_THREADS = '16' > PARALLEL_MAKE = '-j 16 -l 52' > BB_PRESSURE_MAX_CPU = '10000' > BB_PRESSURE_MAX_IO = '10000' > XZ_MEMLIMIT = '5%' > XZ_THREADS = '8' > ZSTD_THREADS = '8' > BB_TASK_NICE_LEVEL = '5' > BB_TASK_NICE_LEVEL:task-testimage = '0' > BB_TASK_IONICE_LEVEL = '2.7' > BB_TASK_IONICE_LEVEL:task-testimage = '2.1' > IMAGE_CLASSES += 'testimage' > TEST_QEMUBOOT_TIMEOUT = '1500' > SANITY_TESTED_DISTROS = '' > SDK_EXT_TYPE = 'minimal' > SDK_INCLUDE_TOOLCHAIN = '1' > ESDK_LOCAL_CONF_REMOVE:append = 'BB_HASHSERVE' > BB_DISKMON_DIRS = 'STOPTASKS,${TMPDIR},1G,100K STOPTASKS,${DL_DIR},1G STOPTASKS,${SSTATE_DIR},1G STOPTASKS,/tmp,100M,30K HALT,${TMPDIR},100M,1K HALT,${DL_DIR},100M HALT,${SSTATE_DIR},100M HALT,/tmp,10M,1K' > BB_HASHSERVE = 'hashserv.yocto.io:8686' > RUNQEMU_TMPFS_DIR = '/home/pokybuild/tmp' > BB_HEARTBEAT_EVENT = '60' > BB_LOG_HOST_STAT_ON_INTERVAL = '1' > BB_LOG_HOST_STAT_CMDS_INTERVAL = 'oe-time-dd-test.sh -c 100 -t 3' > BB_LOG_HOST_STAT_ON_FAILURE = '1' > BB_LOG_HOST_STAT_CMDS_FAILURE = 'oe-time-dd-test.sh -l' > SDK_TOOLCHAIN_LANGS += 'rust' > BB_SERVER_TIMEOUT = '60' > > It is in auto.conf and it is displayed in the first lines of > https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/stdio > >> Regards, >> Qi >> >> -----Original Message----- >> From: Alexandre Belloni <alexandre.belloni@bootlin.com> >> Sent: Wednesday, December 27, 2023 7:59 PM >> To: Chen, Qi <Qi.Chen@windriver.com> >> Cc: openembedded-core@lists.openembedded.org >> Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 >> >> We hit the added warning on the autobuilders: >> >> WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd >> >> https://autobuilder.yoctoproject.org/typhoon/#/builders/40/builds/8354/steps/14/logs/warnings >> >> On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: >>> From: Chen Qi <Qi.Chen@windriver.com> >>> >>> 1. Patch changes: >>> >>> 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch >>> is removed because it has no real effect now. The /lib is now /usr/lib >>> because 'usrmerge' is a required distro feature for systemd. >>> >>> 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is >>> refreshed for the new version to avoid patch-fuzz issue. >>> >>> 2. root user's home directory now defaults to "/root": >>> >>> The sysuers.d/basic.conf is still modified to respect the ROOT_HOME >>> value, so if users set ROOT_HOME to "/home/root", the behavior is the >>> same as before. However, this is only for backward compatibility. With >>> this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. >>> This is because systemd's source codes are hardcoding "/root", and >>> other values are not officially supported. See the list below. >>> $ grep -rl '"/root"' src/ | grep -v 'src/test' >>> src/core/namespace.c >>> src/basic/user-util.c >>> src/nss-systemd/nss-systemd.c >>> src/nspawn/nspawn.c >>> src/firstboot/firstboot.c >>> src/shared/userdb.c >>> src/shared/user-record.c >>> $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ >>> tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in >>> tmpfiles.d/provision.conf units/emergency.service.in >>> units/rescue.service.in tools/list-discoverable-partitions.py >>> Previously, the recipe was just substituting sysusers.d/basic.conf.in, >>> which is not enough to be treated as 'fully support'. I deliberately >>> put a warning message in do_install to warn users about non "/root" >>> ROOT_HOME value. Don't remove it until all above places are handled. >>> >>> 3. cgroupv2 is now the default. >>> cgroupv2 is the default for systemd for many years and it's the >>> default for distros such as ubuntu and fedora. Let's also use it as the default. >>> >>> Signed-off-by: Chen Qi <Qi.Chen@windriver.com> >>> --- >>> .../distro/include/init-manager-systemd.inc | 2 + >>> meta/recipes-core/systemd/systemd.inc | 4 +- >>> ...tall-dependency-links-at-install-tim.patch | 22 +++--- >>> ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- >>> .../systemd/systemd/basic.conf.in | 40 ---------- >>> .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- >>> 6 files changed, 25 insertions(+), 132 deletions(-) delete mode >>> 100644 >>> meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt >>> .d-modules-load.d-to-.patch delete mode 100644 >>> meta/recipes-core/systemd/systemd/basic.conf.in >>> rename meta/recipes-core/systemd/{systemd_254.4.bb => >>> systemd_255.1.bb} (98%) >>> >>> diff --git a/meta/conf/distro/include/init-manager-systemd.inc >>> b/meta/conf/distro/include/init-manager-systemd.inc >>> index 595d1f2644..0a76647459 100644 >>> --- a/meta/conf/distro/include/init-manager-systemd.inc >>> +++ b/meta/conf/distro/include/init-manager-systemd.inc >>> @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" >>> VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" >>> VIRTUAL-RUNTIME_login_manager ??= "shadow-base" >>> VIRTUAL-RUNTIME_dev_manager ??= "systemd" >>> +# systemd hardcodes /root in its source codes, other values are not >>> +offically supported ROOT_HOME ?= "/root" >>> diff --git a/meta/recipes-core/systemd/systemd.inc >>> b/meta/recipes-core/systemd/systemd.inc >>> index ccc3236457..1417e0150f 100644 >>> --- a/meta/recipes-core/systemd/systemd.inc >>> +++ b/meta/recipes-core/systemd/systemd.inc >>> @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" >>> LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ >>> file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" >>> >>> -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" >>> -SRCBRANCH = "v254-stable" >>> +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" >>> +SRCBRANCH = "v255-stable" >>> SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" >>> >>> S = "${WORKDIR}/git" >>> diff --git >>> a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen >>> cy-links-at-install-tim.patch >>> b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen >>> cy-links-at-install-tim.patch >>> index 085f1e9052..be231cf6b2 100644 >>> --- >>> a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen >>> cy-links-at-install-tim.patch >>> +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depe >>> +++ ndency-links-at-install-tim.patch >>> @@ -1,8 +1,8 @@ >>> -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 >>> 2001 >>> +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 >>> +2001 >>> From: Chen Qi <Qi.Chen@windriver.com> >>> Date: Thu, 21 Feb 2019 16:23:24 +0800 >>> -Subject: [PATCH] binfmt: Don't install dependency links at install >>> time for >>> - the binfmt services >>> +Subject: [PATCH 1/2] binfmt: Don't install dependency links at >>> +install time for the binfmt services >>> >>> use [Install] blocks so that they get created when the service is >>> enabled like a traditional service. >>> @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> >>> 3 files changed, 7 insertions(+), 2 deletions(-) >>> >>> diff --git a/units/meson.build b/units/meson.build -index >>> c7939a10f8..219570ab19 100644 >>> +index e7bfb7f838..1d5ec4b178 100644 >>> --- a/units/meson.build >>> +++ b/units/meson.build >>> -@@ -149,7 +149,6 @@ units = [ >>> +@@ -154,7 +154,6 @@ units = [ >>> { >>> 'file' : 'proc-sys-fs-binfmt_misc.automount', >>> 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index >>> c7939a10f8..219570ab19 100644 >>> }, >>> { >>> 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 >>> +245,6 @@ units = [ >>> +@@ -251,7 +250,6 @@ units = [ >>> { >>> 'file' : 'systemd-binfmt.service.in', >>> 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index >>> c7939a10f8..219570ab19 100644 >>> { >>> 'file' : 'systemd-bless-boot.service.in', diff --git >>> a/units/proc-sys-fs-binfmt_misc.automount >>> b/units/proc-sys-fs-binfmt_misc.automount >>> -index 6b1bbdc91e..5ec5b8670a 100644 >>> +index 5d212015a5..6c2900ca77 100644 >>> --- a/units/proc-sys-fs-binfmt_misc.automount >>> +++ b/units/proc-sys-fs-binfmt_misc.automount >>> @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index >>> 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target >>> diff --git a/units/systemd-binfmt.service.in >>> b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 >>> +index 6861c76674..531e9fbd90 100644 >>> --- a/units/systemd-binfmt.service.in +++ >>> b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ >>> Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html >>> @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 >>> After=proc-sys-fs-binfmt_misc.mount >>> After=local-fs.target >>> @@ -31,3 +32,6 @@ RemainAfterExit=yes >>> - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt >>> - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister >>> + ExecStart={{LIBEXECDIR}}/systemd-binfmt >>> + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister >>> TimeoutSec=90s >>> + >>> +[Install] >>> +WantedBy=sysinit.target >>> -- >>> -2.39.2 >>> +2.34.1 >>> >>> diff --git >>> a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf >>> mt.d-modules-load.d-to-.patch >>> b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf >>> mt.d-modules-load.d-to-.patch >>> deleted file mode 100644 >>> index 98914ae154..0000000000 >>> --- >>> a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf >>> mt.d-modules-load.d-to-.patch >>> +++ /dev/null >>> @@ -1,73 +0,0 @@ >>> -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 >>> 2001 >>> -From: Khem Raj <raj.khem@gmail.com> >>> -Date: Tue, 29 Sep 2020 18:01:41 -0700 >>> -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to >>> /usr >>> - >>> -These directories are moved to /lib since systemd v246, commit >>> -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, >>> -the old /usr/lib is still being used. >>> - >>> -Upstream-Status: Inappropriate (OE-specific) >>> -Signed-off-by: Khem Raj <raj.khem@gmail.com> >>> -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> >>> ---- >>> - src/core/systemd.pc.in | 8 ++++---- >>> - src/libsystemd/sd-path/sd-path.c | 8 ++++---- >>> - 2 files changed, 8 insertions(+), 8 deletions(-) >>> - >>> -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index >>> 693433b34b..8368a3ff02 100644 >>> ---- a/src/core/systemd.pc.in >>> -+++ b/src/core/systemd.pc.in >>> -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} >>> - >>> - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d >>> - >>> --sysusers_dir=${rootprefix}/lib/sysusers.d >>> -+sysusers_dir=${prefix}/lib/sysusers.d >>> - sysusersdir=${sysusers_dir} >>> - >>> --sysctl_dir=${rootprefix}/lib/sysctl.d >>> -+sysctl_dir=${prefix}/lib/sysctl.d >>> - sysctldir=${sysctl_dir} >>> - >>> --binfmt_dir=${rootprefix}/lib/binfmt.d >>> -+binfmt_dir=${prefix}/lib/binfmt.d >>> - binfmtdir=${binfmt_dir} >>> - >>> --modules_load_dir=${rootprefix}/lib/modules-load.d >>> -+modules_load_dir=${prefix}/lib/modules-load.d >>> - modulesloaddir=${modules_load_dir} >>> - >>> - catalog_dir=${prefix}/lib/systemd/catalog >>> -diff --git a/src/libsystemd/sd-path/sd-path.c >>> b/src/libsystemd/sd-path/sd-path.c >>> -index 1af3a36d1d..def502b717 100644 >>> ---- a/src/libsystemd/sd-path/sd-path.c >>> -+++ b/src/libsystemd/sd-path/sd-path.c >>> -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { >>> - return 0; >>> - >>> - case SD_PATH_SYSUSERS: >>> -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; >>> -+ *ret = "/usr/lib/sysusers.d"; >>> - return 0; >>> - >>> - case SD_PATH_SYSCTL: >>> -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; >>> -+ *ret = "/usr/lib/sysctl.d"; >>> - return 0; >>> - >>> - case SD_PATH_BINFMT: >>> -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; >>> -+ *ret = "/usr/lib/binfmt.d"; >>> - return 0; >>> - >>> - case SD_PATH_MODULES_LOAD: >>> -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; >>> -+ *ret = "/usr/lib/modules-load.d"; >>> - return 0; >>> - >>> - case SD_PATH_CATALOG: >>> --- >>> -2.39.2 >>> - >>> diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in >>> b/meta/recipes-core/systemd/systemd/basic.conf.in >>> deleted file mode 100644 >>> index fac288f7fa..0000000000 >>> --- a/meta/recipes-core/systemd/systemd/basic.conf.in >>> +++ /dev/null >>> @@ -1,40 +0,0 @@ >>> -# 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_254.4.bb >>> b/meta/recipes-core/systemd/systemd_255.1.bb >>> similarity index 98% >>> rename from meta/recipes-core/systemd/systemd_254.4.bb >>> rename to meta/recipes-core/systemd/systemd_255.1.bb >>> index 0c12926bef..daa3a01fef 100644 >>> --- a/meta/recipes-core/systemd/systemd_254.4.bb >>> +++ b/meta/recipes-core/systemd/systemd_255.1.bb >>> @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" >>> SRC_URI += " \ >>> file://touchscreen.rules \ >>> file://00-create-volatile.conf \ >>> - file://basic.conf.in \ >>> ${@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 \ >>> @@ -29,7 +28,6 @@ SRC_URI += " \ >>> file://systemd-pager.sh \ >>> file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ >>> file://0008-implment-systemd-sysv-install-for-OE.patch \ >>> - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ >>> " >>> >>> # patches needed by musl >>> @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ >>> ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ >>> backlight \ >>> binfmt \ >>> + cgroupv2 \ >>> gshadow \ >>> hibernate \ >>> hostnamed \ >>> @@ -266,12 +265,16 @@ 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 -} >>> - >>> 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 >>> install -d ${D}/${base_sbindir} >>> if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then >>> # Provided by a separate recipe >>> @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ >>> ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ >>> ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ >>> >>> ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ >>> + >>> + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ >>> ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ >>> ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ >>> ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ >>> -- >>> 2.34.1 >>> >>> -=-=-=-=-=-=-=-=-=-=-=- >>> Links: You receive all messages sent to this group. >>> View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 >>> Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 >>> Group Owner: openembedded-core+owner@lists.openembedded.org >>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] >>> -=-=-=-=-=-=-=-=-=-=-=- >>> >> >> -- >> Alexandre Belloni, co-owner and COO, Bootlin >> Embedded Linux and Kernel engineering >> https://bootlin.com
On Fri, 29 Dec 2023 at 03:38, Chen Qi via lists.openembedded.org <Qi.Chen=windriver.com@lists.openembedded.org> wrote: > > TEST_SUITES:append = ' systemd' > > DISTRO_FEATURES:append = ' pam systemd usrmerge' > > VIRTUAL-RUNTIME_init_manager = 'systemd' > > DISTRO_FEATURES_BACKFILL_CONSIDERED = 'sysvinit' > > OK, I see. > > I'd suggest replacing the above 4 lines with a single line: > > INIT_MANAGER = "systemd" > > The INIT_MANAGER mechanism was added to make switching init managers easier. I agree. The 4 lines are defined in two places here: https://git.yoctoproject.org/yocto-autobuilder-helper/tree/config.json Can you send a patch to replace them with INIT_MANAGER? Alex
OK, I'll do it after New Year's Day. Regards, Qi -----Original Message----- From: Alexander Kanavin <alex.kanavin@gmail.com> Sent: Friday, December 29, 2023 4:04 PM To: Chen, Qi <Qi.Chen@windriver.com> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>; openembedded-core@lists.openembedded.org Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 On Fri, 29 Dec 2023 at 03:38, Chen Qi via lists.openembedded.org <Qi.Chen=windriver.com@lists.openembedded.org> wrote: > > TEST_SUITES:append = ' systemd' > > DISTRO_FEATURES:append = ' pam systemd usrmerge' > > VIRTUAL-RUNTIME_init_manager = 'systemd' > > DISTRO_FEATURES_BACKFILL_CONSIDERED = 'sysvinit' > > OK, I see. > > I'd suggest replacing the above 4 lines with a single line: > > INIT_MANAGER = "systemd" > > The INIT_MANAGER mechanism was added to make switching init managers easier. I agree. The 4 lines are defined in two places here: https://git.yoctoproject.org/yocto-autobuilder-helper/tree/config.json Can you send a patch to replace them with INIT_MANAGER? Alex
Hello, This fails with: https://autobuilder.yoctoproject.org/typhoon/#/builders/106/builds/7361/steps/12/logs/warnings WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) WARNING: core-image-sato-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) WARNING: core-image-sato-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > From: Chen Qi <Qi.Chen@windriver.com> > > 1. Patch changes: > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > is removed because it has no real effect now. The /lib is now > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > refreshed for the new version to avoid patch-fuzz issue. > > 2. root user's home directory now defaults to "/root": > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > value, so if users set ROOT_HOME to "/home/root", the behavior is the > same as before. However, this is only for backward compatibility. With > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > This is because systemd's source codes are hardcoding "/root", and other > values are not officially supported. See the list below. > $ grep -rl '"/root"' src/ | grep -v 'src/test' > src/core/namespace.c > src/basic/user-util.c > src/nss-systemd/nss-systemd.c > src/nspawn/nspawn.c > src/firstboot/firstboot.c > src/shared/userdb.c > src/shared/user-record.c > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ tmpfiles.d/ units/ xorg/ tools/ > sysusers.d/basic.conf.in > tmpfiles.d/provision.conf > units/emergency.service.in > units/rescue.service.in > tools/list-discoverable-partitions.py > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > which is not enough to be treated as 'fully support'. I deliberately put > a warning message in do_install to warn users about non "/root" ROOT_HOME > value. Don't remove it until all above places are handled. > > 3. cgroupv2 is now the default. > cgroupv2 is the default for systemd for many years and it's the default > for distros such as ubuntu and fedora. Let's also use it as the default. > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > --- > .../distro/include/init-manager-systemd.inc | 2 + > meta/recipes-core/systemd/systemd.inc | 4 +- > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > .../systemd/systemd/basic.conf.in | 40 ---------- > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > 6 files changed, 25 insertions(+), 132 deletions(-) > delete mode 100644 meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > delete mode 100644 meta/recipes-core/systemd/systemd/basic.conf.in > rename meta/recipes-core/systemd/{systemd_254.4.bb => systemd_255.1.bb} (98%) > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc > index 595d1f2644..0a76647459 100644 > --- a/meta/conf/distro/include/init-manager-systemd.inc > +++ b/meta/conf/distro/include/init-manager-systemd.inc > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > +# systemd hardcodes /root in its source codes, other values are not offically supported > +ROOT_HOME ?= "/root" > diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc > index ccc3236457..1417e0150f 100644 > --- a/meta/recipes-core/systemd/systemd.inc > +++ b/meta/recipes-core/systemd/systemd.inc > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > -SRCBRANCH = "v254-stable" > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > +SRCBRANCH = "v255-stable" > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > S = "${WORKDIR}/git" > diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > index 085f1e9052..be231cf6b2 100644 > --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > @@ -1,8 +1,8 @@ > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 > From: Chen Qi <Qi.Chen@windriver.com> > Date: Thu, 21 Feb 2019 16:23:24 +0800 > -Subject: [PATCH] binfmt: Don't install dependency links at install time for > - the binfmt services > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time > + for the binfmt services > > use [Install] blocks so that they get created when the service is enabled > like a traditional service. > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/units/meson.build b/units/meson.build > -index c7939a10f8..219570ab19 100644 > +index e7bfb7f838..1d5ec4b178 100644 > --- a/units/meson.build > +++ b/units/meson.build > -@@ -149,7 +149,6 @@ units = [ > +@@ -154,7 +154,6 @@ units = [ > { > 'file' : 'proc-sys-fs-binfmt_misc.automount', > 'conditions' : ['ENABLE_BINFMT'], > @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 > }, > { > 'file' : 'proc-sys-fs-binfmt_misc.mount', > -@@ -246,7 +245,6 @@ units = [ > +@@ -251,7 +250,6 @@ units = [ > { > 'file' : 'systemd-binfmt.service.in', > 'conditions' : ['ENABLE_BINFMT'], > @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 > { > 'file' : 'systemd-bless-boot.service.in', > diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount > -index 6b1bbdc91e..5ec5b8670a 100644 > +index 5d212015a5..6c2900ca77 100644 > --- a/units/proc-sys-fs-binfmt_misc.automount > +++ b/units/proc-sys-fs-binfmt_misc.automount > @@ -22,3 +22,6 @@ Before=shutdown.target > @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 > +[Install] > +WantedBy=sysinit.target > diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in > -index b04412e037..63f116e4fa 100644 > +index 6861c76674..531e9fbd90 100644 > --- a/units/systemd-binfmt.service.in > +++ b/units/systemd-binfmt.service.in > @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > After=proc-sys-fs-binfmt_misc.mount > After=local-fs.target > @@ -31,3 +32,6 @@ RemainAfterExit=yes > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > TimeoutSec=90s > + > +[Install] > +WantedBy=sysinit.target > -- > -2.39.2 > +2.34.1 > > diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > deleted file mode 100644 > index 98914ae154..0000000000 > --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > +++ /dev/null > @@ -1,73 +0,0 @@ > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 > -From: Khem Raj <raj.khem@gmail.com> > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr > - > -These directories are moved to /lib since systemd v246, commit > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > -the old /usr/lib is still being used. > - > -Upstream-Status: Inappropriate (OE-specific) > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > ---- > - src/core/systemd.pc.in | 8 ++++---- > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > - 2 files changed, 8 insertions(+), 8 deletions(-) > - > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in > -index 693433b34b..8368a3ff02 100644 > ---- a/src/core/systemd.pc.in > -+++ b/src/core/systemd.pc.in > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > - > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > - > --sysusers_dir=${rootprefix}/lib/sysusers.d > -+sysusers_dir=${prefix}/lib/sysusers.d > - sysusersdir=${sysusers_dir} > - > --sysctl_dir=${rootprefix}/lib/sysctl.d > -+sysctl_dir=${prefix}/lib/sysctl.d > - sysctldir=${sysctl_dir} > - > --binfmt_dir=${rootprefix}/lib/binfmt.d > -+binfmt_dir=${prefix}/lib/binfmt.d > - binfmtdir=${binfmt_dir} > - > --modules_load_dir=${rootprefix}/lib/modules-load.d > -+modules_load_dir=${prefix}/lib/modules-load.d > - modulesloaddir=${modules_load_dir} > - > - catalog_dir=${prefix}/lib/systemd/catalog > -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c > -index 1af3a36d1d..def502b717 100644 > ---- a/src/libsystemd/sd-path/sd-path.c > -+++ b/src/libsystemd/sd-path/sd-path.c > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > - return 0; > - > - case SD_PATH_SYSUSERS: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > -+ *ret = "/usr/lib/sysusers.d"; > - return 0; > - > - case SD_PATH_SYSCTL: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > -+ *ret = "/usr/lib/sysctl.d"; > - return 0; > - > - case SD_PATH_BINFMT: > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > -+ *ret = "/usr/lib/binfmt.d"; > - return 0; > - > - case SD_PATH_MODULES_LOAD: > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > -+ *ret = "/usr/lib/modules-load.d"; > - return 0; > - > - case SD_PATH_CATALOG: > --- > -2.39.2 > - > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in > deleted file mode 100644 > index fac288f7fa..0000000000 > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > +++ /dev/null > @@ -1,40 +0,0 @@ > -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb > similarity index 98% > rename from meta/recipes-core/systemd/systemd_254.4.bb > rename to meta/recipes-core/systemd/systemd_255.1.bb > index 0c12926bef..daa3a01fef 100644 > --- a/meta/recipes-core/systemd/systemd_254.4.bb > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > SRC_URI += " \ > file://touchscreen.rules \ > file://00-create-volatile.conf \ > - file://basic.conf.in \ > ${@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 \ > @@ -29,7 +28,6 @@ SRC_URI += " \ > file://systemd-pager.sh \ > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > file://0008-implment-systemd-sysv-install-for-OE.patch \ > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > " > > # patches needed by musl > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > backlight \ > binfmt \ > + cgroupv2 \ > gshadow \ > hibernate \ > hostnamed \ > @@ -266,12 +265,16 @@ 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 > -} > - > 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 > install -d ${D}/${base_sbindir} > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > # Provided by a separate recipe > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
Another patch in this series fixes the warning: rootfs-postcommands.bbclass: ignore comment mismatch in systemd_user_check Is that patch also staged? Regards, Qi -----Original Message----- From: Alexandre Belloni <alexandre.belloni@bootlin.com> Sent: Saturday, January 6, 2024 12:02 AM To: Chen, Qi <Qi.Chen@windriver.com> Cc: openembedded-core@lists.openembedded.org Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 Hello, This fails with: https://autobuilder.yoctoproject.org/typhoon/#/builders/106/builds/7361/steps/12/logs/warnings WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) WARNING: core-image-sato-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) WARNING: core-image-sato-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > From: Chen Qi <Qi.Chen@windriver.com> > > 1. Patch changes: > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > is removed because it has no real effect now. The /lib is now /usr/lib > because 'usrmerge' is a required distro feature for systemd. > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > refreshed for the new version to avoid patch-fuzz issue. > > 2. root user's home directory now defaults to "/root": > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > value, so if users set ROOT_HOME to "/home/root", the behavior is the > same as before. However, this is only for backward compatibility. With > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > This is because systemd's source codes are hardcoding "/root", and > other values are not officially supported. See the list below. > $ grep -rl '"/root"' src/ | grep -v 'src/test' > src/core/namespace.c > src/basic/user-util.c > src/nss-systemd/nss-systemd.c > src/nspawn/nspawn.c > src/firstboot/firstboot.c > src/shared/userdb.c > src/shared/user-record.c > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > tmpfiles.d/provision.conf units/emergency.service.in > units/rescue.service.in tools/list-discoverable-partitions.py > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > which is not enough to be treated as 'fully support'. I deliberately > put a warning message in do_install to warn users about non "/root" > ROOT_HOME value. Don't remove it until all above places are handled. > > 3. cgroupv2 is now the default. > cgroupv2 is the default for systemd for many years and it's the > default for distros such as ubuntu and fedora. Let's also use it as the default. > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > --- > .../distro/include/init-manager-systemd.inc | 2 + > meta/recipes-core/systemd/systemd.inc | 4 +- > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > .../systemd/systemd/basic.conf.in | 40 ---------- > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > 100644 > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt > .d-modules-load.d-to-.patch delete mode 100644 > meta/recipes-core/systemd/systemd/basic.conf.in > rename meta/recipes-core/systemd/{systemd_254.4.bb => > systemd_255.1.bb} (98%) > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > b/meta/conf/distro/include/init-manager-systemd.inc > index 595d1f2644..0a76647459 100644 > --- a/meta/conf/distro/include/init-manager-systemd.inc > +++ b/meta/conf/distro/include/init-manager-systemd.inc > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > +# systemd hardcodes /root in its source codes, other values are not > +offically supported ROOT_HOME ?= "/root" > diff --git a/meta/recipes-core/systemd/systemd.inc > b/meta/recipes-core/systemd/systemd.inc > index ccc3236457..1417e0150f 100644 > --- a/meta/recipes-core/systemd/systemd.inc > +++ b/meta/recipes-core/systemd/systemd.inc > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > -SRCBRANCH = "v254-stable" > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > +SRCBRANCH = "v255-stable" > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > S = "${WORKDIR}/git" > diff --git > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > cy-links-at-install-tim.patch > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > cy-links-at-install-tim.patch > index 085f1e9052..be231cf6b2 100644 > --- > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > cy-links-at-install-tim.patch > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depe > +++ ndency-links-at-install-tim.patch > @@ -1,8 +1,8 @@ > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > 2001 > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > +2001 > From: Chen Qi <Qi.Chen@windriver.com> > Date: Thu, 21 Feb 2019 16:23:24 +0800 > -Subject: [PATCH] binfmt: Don't install dependency links at install > time for > - the binfmt services > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > +install time for the binfmt services > > use [Install] blocks so that they get created when the service is > enabled like a traditional service. > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/units/meson.build b/units/meson.build -index > c7939a10f8..219570ab19 100644 > +index e7bfb7f838..1d5ec4b178 100644 > --- a/units/meson.build > +++ b/units/meson.build > -@@ -149,7 +149,6 @@ units = [ > +@@ -154,7 +154,6 @@ units = [ > { > 'file' : 'proc-sys-fs-binfmt_misc.automount', > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index > c7939a10f8..219570ab19 100644 > }, > { > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > +245,6 @@ units = [ > +@@ -251,7 +250,6 @@ units = [ > { > 'file' : 'systemd-binfmt.service.in', > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index > c7939a10f8..219570ab19 100644 > { > 'file' : 'systemd-bless-boot.service.in', diff --git > a/units/proc-sys-fs-binfmt_misc.automount > b/units/proc-sys-fs-binfmt_misc.automount > -index 6b1bbdc91e..5ec5b8670a 100644 > +index 5d212015a5..6c2900ca77 100644 > --- a/units/proc-sys-fs-binfmt_misc.automount > +++ b/units/proc-sys-fs-binfmt_misc.automount > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > diff --git a/units/systemd-binfmt.service.in > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 > +index 6861c76674..531e9fbd90 100644 > --- a/units/systemd-binfmt.service.in +++ > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > After=proc-sys-fs-binfmt_misc.mount > After=local-fs.target > @@ -31,3 +32,6 @@ RemainAfterExit=yes > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > TimeoutSec=90s > + > +[Install] > +WantedBy=sysinit.target > -- > -2.39.2 > +2.34.1 > > diff --git > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > mt.d-modules-load.d-to-.patch > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > mt.d-modules-load.d-to-.patch > deleted file mode 100644 > index 98914ae154..0000000000 > --- > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > mt.d-modules-load.d-to-.patch > +++ /dev/null > @@ -1,73 +0,0 @@ > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > 2001 > -From: Khem Raj <raj.khem@gmail.com> > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to > /usr > - > -These directories are moved to /lib since systemd v246, commit > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > -the old /usr/lib is still being used. > - > -Upstream-Status: Inappropriate (OE-specific) > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > ---- > - src/core/systemd.pc.in | 8 ++++---- > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > - 2 files changed, 8 insertions(+), 8 deletions(-) > - > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > 693433b34b..8368a3ff02 100644 > ---- a/src/core/systemd.pc.in > -+++ b/src/core/systemd.pc.in > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > - > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > - > --sysusers_dir=${rootprefix}/lib/sysusers.d > -+sysusers_dir=${prefix}/lib/sysusers.d > - sysusersdir=${sysusers_dir} > - > --sysctl_dir=${rootprefix}/lib/sysctl.d > -+sysctl_dir=${prefix}/lib/sysctl.d > - sysctldir=${sysctl_dir} > - > --binfmt_dir=${rootprefix}/lib/binfmt.d > -+binfmt_dir=${prefix}/lib/binfmt.d > - binfmtdir=${binfmt_dir} > - > --modules_load_dir=${rootprefix}/lib/modules-load.d > -+modules_load_dir=${prefix}/lib/modules-load.d > - modulesloaddir=${modules_load_dir} > - > - catalog_dir=${prefix}/lib/systemd/catalog > -diff --git a/src/libsystemd/sd-path/sd-path.c > b/src/libsystemd/sd-path/sd-path.c > -index 1af3a36d1d..def502b717 100644 > ---- a/src/libsystemd/sd-path/sd-path.c > -+++ b/src/libsystemd/sd-path/sd-path.c > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > - return 0; > - > - case SD_PATH_SYSUSERS: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > -+ *ret = "/usr/lib/sysusers.d"; > - return 0; > - > - case SD_PATH_SYSCTL: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > -+ *ret = "/usr/lib/sysctl.d"; > - return 0; > - > - case SD_PATH_BINFMT: > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > -+ *ret = "/usr/lib/binfmt.d"; > - return 0; > - > - case SD_PATH_MODULES_LOAD: > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > -+ *ret = "/usr/lib/modules-load.d"; > - return 0; > - > - case SD_PATH_CATALOG: > --- > -2.39.2 > - > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > b/meta/recipes-core/systemd/systemd/basic.conf.in > deleted file mode 100644 > index fac288f7fa..0000000000 > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > +++ /dev/null > @@ -1,40 +0,0 @@ > -# 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_254.4.bb > b/meta/recipes-core/systemd/systemd_255.1.bb > similarity index 98% > rename from meta/recipes-core/systemd/systemd_254.4.bb > rename to meta/recipes-core/systemd/systemd_255.1.bb > index 0c12926bef..daa3a01fef 100644 > --- a/meta/recipes-core/systemd/systemd_254.4.bb > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > SRC_URI += " \ > file://touchscreen.rules \ > file://00-create-volatile.conf \ > - file://basic.conf.in \ > ${@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 \ > @@ -29,7 +28,6 @@ SRC_URI += " \ > file://systemd-pager.sh \ > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > file://0008-implment-systemd-sysv-install-for-OE.patch \ > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > " > > # patches needed by musl > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > backlight \ > binfmt \ > + cgroupv2 \ > gshadow \ > hibernate \ > hostnamed \ > @@ -266,12 +265,16 @@ 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 -} > - > 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 > install -d ${D}/${base_sbindir} > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > # Provided by a separate recipe > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > + > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
I got this today: https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8420/steps/25/logs/stdio WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd On 07/01/2024 14:05:35+0000, Chen Qi via lists.openembedded.org wrote: > Another patch in this series fixes the warning: > rootfs-postcommands.bbclass: ignore comment mismatch in systemd_user_check > > Is that patch also staged? > > Regards, > Qi > > -----Original Message----- > From: Alexandre Belloni <alexandre.belloni@bootlin.com> > Sent: Saturday, January 6, 2024 12:02 AM > To: Chen, Qi <Qi.Chen@windriver.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 > > Hello, > > This fails with: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/106/builds/7361/steps/12/logs/warnings > > WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) > WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) > WARNING: core-image-sato-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) > WARNING: core-image-sato-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) > WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User root has been defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as (root, 0, 0, Super User, /root, -) > WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User nobody has been defined as (nobody, 65534, 65534, nobody, /nonexistent, /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, Kernel Overflow User, -, -) > > On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > > From: Chen Qi <Qi.Chen@windriver.com> > > > > 1. Patch changes: > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > is removed because it has no real effect now. The /lib is now /usr/lib > > because 'usrmerge' is a required distro feature for systemd. > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > refreshed for the new version to avoid patch-fuzz issue. > > > > 2. root user's home directory now defaults to "/root": > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > value, so if users set ROOT_HOME to "/home/root", the behavior is the > > same as before. However, this is only for backward compatibility. With > > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > This is because systemd's source codes are hardcoding "/root", and > > other values are not officially supported. See the list below. > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > src/core/namespace.c > > src/basic/user-util.c > > src/nss-systemd/nss-systemd.c > > src/nspawn/nspawn.c > > src/firstboot/firstboot.c > > src/shared/userdb.c > > src/shared/user-record.c > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > > tmpfiles.d/provision.conf units/emergency.service.in > > units/rescue.service.in tools/list-discoverable-partitions.py > > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > > which is not enough to be treated as 'fully support'. I deliberately > > put a warning message in do_install to warn users about non "/root" > > ROOT_HOME value. Don't remove it until all above places are handled. > > > > 3. cgroupv2 is now the default. > > cgroupv2 is the default for systemd for many years and it's the > > default for distros such as ubuntu and fedora. Let's also use it as the default. > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > --- > > .../distro/include/init-manager-systemd.inc | 2 + > > meta/recipes-core/systemd/systemd.inc | 4 +- > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > .../systemd/systemd/basic.conf.in | 40 ---------- > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > > 100644 > > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt > > .d-modules-load.d-to-.patch delete mode 100644 > > meta/recipes-core/systemd/systemd/basic.conf.in > > rename meta/recipes-core/systemd/{systemd_254.4.bb => > > systemd_255.1.bb} (98%) > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > > b/meta/conf/distro/include/init-manager-systemd.inc > > index 595d1f2644..0a76647459 100644 > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > +# systemd hardcodes /root in its source codes, other values are not > > +offically supported ROOT_HOME ?= "/root" > > diff --git a/meta/recipes-core/systemd/systemd.inc > > b/meta/recipes-core/systemd/systemd.inc > > index ccc3236457..1417e0150f 100644 > > --- a/meta/recipes-core/systemd/systemd.inc > > +++ b/meta/recipes-core/systemd/systemd.inc > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > -SRCBRANCH = "v254-stable" > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > +SRCBRANCH = "v255-stable" > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > > > S = "${WORKDIR}/git" > > diff --git > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > index 085f1e9052..be231cf6b2 100644 > > --- > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependen > > cy-links-at-install-tim.patch > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depe > > +++ ndency-links-at-install-tim.patch > > @@ -1,8 +1,8 @@ > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > > 2001 > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > > +2001 > > From: Chen Qi <Qi.Chen@windriver.com> > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > -Subject: [PATCH] binfmt: Don't install dependency links at install > > time for > > - the binfmt services > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > > +install time for the binfmt services > > > > use [Install] blocks so that they get created when the service is > > enabled like a traditional service. > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/units/meson.build b/units/meson.build -index > > c7939a10f8..219570ab19 100644 > > +index e7bfb7f838..1d5ec4b178 100644 > > --- a/units/meson.build > > +++ b/units/meson.build > > -@@ -149,7 +149,6 @@ units = [ > > +@@ -154,7 +154,6 @@ units = [ > > { > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index > > c7939a10f8..219570ab19 100644 > > }, > > { > > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > > +245,6 @@ units = [ > > +@@ -251,7 +250,6 @@ units = [ > > { > > 'file' : 'systemd-binfmt.service.in', > > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index > > c7939a10f8..219570ab19 100644 > > { > > 'file' : 'systemd-bless-boot.service.in', diff --git > > a/units/proc-sys-fs-binfmt_misc.automount > > b/units/proc-sys-fs-binfmt_misc.automount > > -index 6b1bbdc91e..5ec5b8670a 100644 > > +index 5d212015a5..6c2900ca77 100644 > > --- a/units/proc-sys-fs-binfmt_misc.automount > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > > diff --git a/units/systemd-binfmt.service.in > > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 > > +index 6861c76674..531e9fbd90 100644 > > --- a/units/systemd-binfmt.service.in +++ > > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > After=proc-sys-fs-binfmt_misc.mount > > After=local-fs.target > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > TimeoutSec=90s > > + > > +[Install] > > +WantedBy=sysinit.target > > -- > > -2.39.2 > > +2.34.1 > > > > diff --git > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > deleted file mode 100644 > > index 98914ae154..0000000000 > > --- > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt.d-modules-load.d-to-.patch > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > > 2001 > > -From: Khem Raj <raj.khem@gmail.com> > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to > > /usr > > - > > -These directories are moved to /lib since systemd v246, commit > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > > -the old /usr/lib is still being used. > > - > > -Upstream-Status: Inappropriate (OE-specific) > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > ---- > > - src/core/systemd.pc.in | 8 ++++---- > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > - > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > > 693433b34b..8368a3ff02 100644 > > ---- a/src/core/systemd.pc.in > > -+++ b/src/core/systemd.pc.in > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > - > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > - > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > -+sysusers_dir=${prefix}/lib/sysusers.d > > - sysusersdir=${sysusers_dir} > > - > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > -+sysctl_dir=${prefix}/lib/sysctl.d > > - sysctldir=${sysctl_dir} > > - > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > -+binfmt_dir=${prefix}/lib/binfmt.d > > - binfmtdir=${binfmt_dir} > > - > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > -+modules_load_dir=${prefix}/lib/modules-load.d > > - modulesloaddir=${modules_load_dir} > > - > > - catalog_dir=${prefix}/lib/systemd/catalog > > -diff --git a/src/libsystemd/sd-path/sd-path.c > > b/src/libsystemd/sd-path/sd-path.c > > -index 1af3a36d1d..def502b717 100644 > > ---- a/src/libsystemd/sd-path/sd-path.c > > -+++ b/src/libsystemd/sd-path/sd-path.c > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > - return 0; > > - > > - case SD_PATH_SYSUSERS: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > -+ *ret = "/usr/lib/sysusers.d"; > > - return 0; > > - > > - case SD_PATH_SYSCTL: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > -+ *ret = "/usr/lib/sysctl.d"; > > - return 0; > > - > > - case SD_PATH_BINFMT: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > -+ *ret = "/usr/lib/binfmt.d"; > > - return 0; > > - > > - case SD_PATH_MODULES_LOAD: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > -+ *ret = "/usr/lib/modules-load.d"; > > - return 0; > > - > > - case SD_PATH_CATALOG: > > --- > > -2.39.2 > > - > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > > b/meta/recipes-core/systemd/systemd/basic.conf.in > > deleted file mode 100644 > > index fac288f7fa..0000000000 > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -# 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_254.4.bb > > b/meta/recipes-core/systemd/systemd_255.1.bb > > similarity index 98% > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > index 0c12926bef..daa3a01fef 100644 > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > SRC_URI += " \ > > file://touchscreen.rules \ > > file://00-create-volatile.conf \ > > - file://basic.conf.in \ > > ${@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 \ > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > file://systemd-pager.sh \ > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > " > > > > # patches needed by musl > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > backlight \ > > binfmt \ > > + cgroupv2 \ > > gshadow \ > > hibernate \ > > hostnamed \ > > @@ -266,12 +265,16 @@ 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 -} > > - > > 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 > > install -d ${D}/${base_sbindir} > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > # Provided by a separate recipe > > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > + > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > -- > > 2.34.1 > > > > > > > > > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#193387): https://lists.openembedded.org/g/openembedded-core/message/193387 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
I just sent out a patch for the yocto-autobuilder-helper repo to use '/root' as the ROOT_HOME's value in case of 'sysvinit with systemd'. Regards, Qi -----Original Message----- From: Alexandre Belloni <alexandre.belloni@bootlin.com> Sent: Tuesday, January 9, 2024 3:47 PM To: Chen, Qi <Qi.Chen@windriver.com> Cc: openembedded-core@lists.openembedded.org Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 I got this today: https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8420/steps/25/logs/stdio WARNING: systemd-1_255.1-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd On 07/01/2024 14:05:35+0000, Chen Qi via lists.openembedded.org wrote: > Another patch in this series fixes the warning: > rootfs-postcommands.bbclass: ignore comment mismatch in > systemd_user_check > > Is that patch also staged? > > Regards, > Qi > > -----Original Message----- > From: Alexandre Belloni <alexandre.belloni@bootlin.com> > Sent: Saturday, January 6, 2024 12:02 AM > To: Chen, Qi <Qi.Chen@windriver.com> > Cc: openembedded-core@lists.openembedded.org > Subject: Re: [OE-core][PATCH 1/3] systemd: upgrade to 255.1 > > Hello, > > This fails with: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/106/builds/736 > 1/steps/12/logs/warnings > > WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User root has been > defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects > it as (root, 0, 0, Super User, /root, -) > WARNING: core-image-full-cmdline-1.0-r0 do_rootfs: User nobody has > been defined as (nobody, 65534, 65534, nobody, /nonexistent, > /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, > Kernel Overflow User, -, -) > WARNING: core-image-sato-1.0-r0 do_rootfs: User root has been defined > as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects it as > (root, 0, 0, Super User, /root, -) > WARNING: core-image-sato-1.0-r0 do_rootfs: User nobody has been > defined as (nobody, 65534, 65534, nobody, /nonexistent, > /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, > Kernel Overflow User, -, -) > WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User root has been > defined as (root, 0, 0, root, /root, /bin/sh) but sysusers.d expects > it as (root, 0, 0, Super User, /root, -) > WARNING: core-image-sato-sdk-1.0-r0 do_rootfs: User nobody has been > defined as (nobody, 65534, 65534, nobody, /nonexistent, > /usr/sbin/nologin) but sysusers.d expects it as (nobody, 65534, 65534, > Kernel Overflow User, -, -) > > On 27/12/2023 12:20:34+0800, Chen Qi via lists.openembedded.org wrote: > > From: Chen Qi <Qi.Chen@windriver.com> > > > > 1. Patch changes: > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > is removed because it has no real effect now. The /lib is now > > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > refreshed for the new version to avoid patch-fuzz issue. > > > > 2. root user's home directory now defaults to "/root": > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > value, so if users set ROOT_HOME to "/home/root", the behavior is > > the same as before. However, this is only for backward > > compatibility. With this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > This is because systemd's source codes are hardcoding "/root", and > > other values are not officially supported. See the list below. > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > src/core/namespace.c > > src/basic/user-util.c > > src/nss-systemd/nss-systemd.c > > src/nspawn/nspawn.c > > src/firstboot/firstboot.c > > src/shared/userdb.c > > src/shared/user-record.c > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ > > tmpfiles.d/ units/ xorg/ tools/ sysusers.d/basic.conf.in > > tmpfiles.d/provision.conf units/emergency.service.in > > units/rescue.service.in tools/list-discoverable-partitions.py > > Previously, the recipe was just substituting > > sysusers.d/basic.conf.in, which is not enough to be treated as > > 'fully support'. I deliberately put a warning message in do_install to warn users about non "/root" > > ROOT_HOME value. Don't remove it until all above places are handled. > > > > 3. cgroupv2 is now the default. > > cgroupv2 is the default for systemd for many years and it's the > > default for distros such as ubuntu and fedora. Let's also use it as the default. > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > --- > > .../distro/include/init-manager-systemd.inc | 2 + > > meta/recipes-core/systemd/systemd.inc | 4 +- > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > .../systemd/systemd/basic.conf.in | 40 ---------- > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > 6 files changed, 25 insertions(+), 132 deletions(-) delete mode > > 100644 > > meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binf > > mt .d-modules-load.d-to-.patch delete mode 100644 > > meta/recipes-core/systemd/systemd/basic.conf.in > > rename meta/recipes-core/systemd/{systemd_254.4.bb => > > systemd_255.1.bb} (98%) > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc > > b/meta/conf/distro/include/init-manager-systemd.inc > > index 595d1f2644..0a76647459 100644 > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > +# systemd hardcodes /root in its source codes, other values are not > > +offically supported ROOT_HOME ?= "/root" > > diff --git a/meta/recipes-core/systemd/systemd.inc > > b/meta/recipes-core/systemd/systemd.inc > > index ccc3236457..1417e0150f 100644 > > --- a/meta/recipes-core/systemd/systemd.inc > > +++ b/meta/recipes-core/systemd/systemd.inc > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > -SRCBRANCH = "v254-stable" > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > +SRCBRANCH = "v255-stable" > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > > > S = "${WORKDIR}/git" > > diff --git > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depend > > en > > cy-links-at-install-tim.patch > > b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depend > > en > > cy-links-at-install-tim.patch > > index 085f1e9052..be231cf6b2 100644 > > --- > > a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-depend > > en > > cy-links-at-install-tim.patch > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-de > > +++ pe ndency-links-at-install-tim.patch > > @@ -1,8 +1,8 @@ > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 > > 2001 > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 > > +2001 > > From: Chen Qi <Qi.Chen@windriver.com> > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > -Subject: [PATCH] binfmt: Don't install dependency links at install > > time for > > - the binfmt services > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at > > +install time for the binfmt services > > > > use [Install] blocks so that they get created when the service is > > enabled like a traditional service. > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/units/meson.build b/units/meson.build -index > > c7939a10f8..219570ab19 100644 > > +index e7bfb7f838..1d5ec4b178 100644 > > --- a/units/meson.build > > +++ b/units/meson.build > > -@@ -149,7 +149,6 @@ units = [ > > +@@ -154,7 +154,6 @@ units = [ > > { > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ > > index > > c7939a10f8..219570ab19 100644 > > }, > > { > > 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 > > +245,6 @@ units = [ > > +@@ -251,7 +250,6 @@ units = [ > > { > > 'file' : 'systemd-binfmt.service.in', > > 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ > > index > > c7939a10f8..219570ab19 100644 > > { > > 'file' : 'systemd-bless-boot.service.in', diff --git > > a/units/proc-sys-fs-binfmt_misc.automount > > b/units/proc-sys-fs-binfmt_misc.automount > > -index 6b1bbdc91e..5ec5b8670a 100644 > > +index 5d212015a5..6c2900ca77 100644 > > --- a/units/proc-sys-fs-binfmt_misc.automount > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index > > 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target > > diff --git a/units/systemd-binfmt.service.in > > b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa > > 100644 > > +index 6861c76674..531e9fbd90 100644 > > --- a/units/systemd-binfmt.service.in +++ > > b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ > > Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > After=proc-sys-fs-binfmt_misc.mount > > After=local-fs.target > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > TimeoutSec=90s > > + > > +[Install] > > +WantedBy=sysinit.target > > -- > > -2.39.2 > > +2.34.1 > > > > diff --git > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-bi > > nf > > mt.d-modules-load.d-to-.patch > > b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-bi > > nf > > mt.d-modules-load.d-to-.patch > > deleted file mode 100644 > > index 98914ae154..0000000000 > > --- > > a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-bi > > nf > > mt.d-modules-load.d-to-.patch > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 > > 2001 > > -From: Khem Raj <raj.khem@gmail.com> > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d > > to /usr > > - > > -These directories are moved to /lib since systemd v246, commit > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in > > oe-core/yocto, -the old /usr/lib is still being used. > > - > > -Upstream-Status: Inappropriate (OE-specific) > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > ---- > > - src/core/systemd.pc.in | 8 ++++---- > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > - > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index > > 693433b34b..8368a3ff02 100644 > > ---- a/src/core/systemd.pc.in > > -+++ b/src/core/systemd.pc.in > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > - > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > - > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > -+sysusers_dir=${prefix}/lib/sysusers.d > > - sysusersdir=${sysusers_dir} > > - > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > -+sysctl_dir=${prefix}/lib/sysctl.d > > - sysctldir=${sysctl_dir} > > - > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > -+binfmt_dir=${prefix}/lib/binfmt.d > > - binfmtdir=${binfmt_dir} > > - > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > -+modules_load_dir=${prefix}/lib/modules-load.d > > - modulesloaddir=${modules_load_dir} > > - > > - catalog_dir=${prefix}/lib/systemd/catalog > > -diff --git a/src/libsystemd/sd-path/sd-path.c > > b/src/libsystemd/sd-path/sd-path.c > > -index 1af3a36d1d..def502b717 100644 > > ---- a/src/libsystemd/sd-path/sd-path.c > > -+++ b/src/libsystemd/sd-path/sd-path.c > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > - return 0; > > - > > - case SD_PATH_SYSUSERS: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > -+ *ret = "/usr/lib/sysusers.d"; > > - return 0; > > - > > - case SD_PATH_SYSCTL: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > -+ *ret = "/usr/lib/sysctl.d"; > > - return 0; > > - > > - case SD_PATH_BINFMT: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > -+ *ret = "/usr/lib/binfmt.d"; > > - return 0; > > - > > - case SD_PATH_MODULES_LOAD: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > -+ *ret = "/usr/lib/modules-load.d"; > > - return 0; > > - > > - case SD_PATH_CATALOG: > > --- > > -2.39.2 > > - > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in > > b/meta/recipes-core/systemd/systemd/basic.conf.in > > deleted file mode 100644 > > index fac288f7fa..0000000000 > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -# 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_254.4.bb > > b/meta/recipes-core/systemd/systemd_255.1.bb > > similarity index 98% > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > index 0c12926bef..daa3a01fef 100644 > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > SRC_URI += " \ > > file://touchscreen.rules \ > > file://00-create-volatile.conf \ > > - file://basic.conf.in \ > > ${@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 \ > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > file://systemd-pager.sh \ > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > " > > > > # patches needed by musl > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > backlight \ > > binfmt \ > > + cgroupv2 \ > > gshadow \ > > hibernate \ > > hostnamed \ > > @@ -266,12 +265,16 @@ 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 -} > > - > > 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 > > install -d ${D}/${base_sbindir} > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > # Provided by a separate recipe > > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > + > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > -- > > 2.34.1 > > > > > > > > > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel > engineering https://bootlin.com > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#193387): > https://lists.openembedded.org/g/openembedded-core/message/193387 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub > [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
What's the status of this patch series? Is there any issue or concern that I missed? Regards, Qi On 12/27/23 12:20, Chen Qi via lists.openembedded.org wrote: > From: Chen Qi <Qi.Chen@windriver.com> > > 1. Patch changes: > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > is removed because it has no real effect now. The /lib is now > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > refreshed for the new version to avoid patch-fuzz issue. > > 2. root user's home directory now defaults to "/root": > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > value, so if users set ROOT_HOME to "/home/root", the behavior is the > same as before. However, this is only for backward compatibility. With > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > This is because systemd's source codes are hardcoding "/root", and other > values are not officially supported. See the list below. > $ grep -rl '"/root"' src/ | grep -v 'src/test' > src/core/namespace.c > src/basic/user-util.c > src/nss-systemd/nss-systemd.c > src/nspawn/nspawn.c > src/firstboot/firstboot.c > src/shared/userdb.c > src/shared/user-record.c > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ tmpfiles.d/ units/ xorg/ tools/ > sysusers.d/basic.conf.in > tmpfiles.d/provision.conf > units/emergency.service.in > units/rescue.service.in > tools/list-discoverable-partitions.py > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > which is not enough to be treated as 'fully support'. I deliberately put > a warning message in do_install to warn users about non "/root" ROOT_HOME > value. Don't remove it until all above places are handled. > > 3. cgroupv2 is now the default. > cgroupv2 is the default for systemd for many years and it's the default > for distros such as ubuntu and fedora. Let's also use it as the default. > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > --- > .../distro/include/init-manager-systemd.inc | 2 + > meta/recipes-core/systemd/systemd.inc | 4 +- > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > .../systemd/systemd/basic.conf.in | 40 ---------- > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > 6 files changed, 25 insertions(+), 132 deletions(-) > delete mode 100644 meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > delete mode 100644 meta/recipes-core/systemd/systemd/basic.conf.in > rename meta/recipes-core/systemd/{systemd_254.4.bb => systemd_255.1.bb} (98%) > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc > index 595d1f2644..0a76647459 100644 > --- a/meta/conf/distro/include/init-manager-systemd.inc > +++ b/meta/conf/distro/include/init-manager-systemd.inc > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > +# systemd hardcodes /root in its source codes, other values are not offically supported > +ROOT_HOME ?= "/root" > diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc > index ccc3236457..1417e0150f 100644 > --- a/meta/recipes-core/systemd/systemd.inc > +++ b/meta/recipes-core/systemd/systemd.inc > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > -SRCBRANCH = "v254-stable" > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > +SRCBRANCH = "v255-stable" > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > S = "${WORKDIR}/git" > diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > index 085f1e9052..be231cf6b2 100644 > --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > @@ -1,8 +1,8 @@ > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 > From: Chen Qi <Qi.Chen@windriver.com> > Date: Thu, 21 Feb 2019 16:23:24 +0800 > -Subject: [PATCH] binfmt: Don't install dependency links at install time for > - the binfmt services > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time > + for the binfmt services > > use [Install] blocks so that they get created when the service is enabled > like a traditional service. > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/units/meson.build b/units/meson.build > -index c7939a10f8..219570ab19 100644 > +index e7bfb7f838..1d5ec4b178 100644 > --- a/units/meson.build > +++ b/units/meson.build > -@@ -149,7 +149,6 @@ units = [ > +@@ -154,7 +154,6 @@ units = [ > { > 'file' : 'proc-sys-fs-binfmt_misc.automount', > 'conditions' : ['ENABLE_BINFMT'], > @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 > }, > { > 'file' : 'proc-sys-fs-binfmt_misc.mount', > -@@ -246,7 +245,6 @@ units = [ > +@@ -251,7 +250,6 @@ units = [ > { > 'file' : 'systemd-binfmt.service.in', > 'conditions' : ['ENABLE_BINFMT'], > @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 > { > 'file' : 'systemd-bless-boot.service.in', > diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount > -index 6b1bbdc91e..5ec5b8670a 100644 > +index 5d212015a5..6c2900ca77 100644 > --- a/units/proc-sys-fs-binfmt_misc.automount > +++ b/units/proc-sys-fs-binfmt_misc.automount > @@ -22,3 +22,6 @@ Before=shutdown.target > @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 > +[Install] > +WantedBy=sysinit.target > diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in > -index b04412e037..63f116e4fa 100644 > +index 6861c76674..531e9fbd90 100644 > --- a/units/systemd-binfmt.service.in > +++ b/units/systemd-binfmt.service.in > @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > After=proc-sys-fs-binfmt_misc.mount > After=local-fs.target > @@ -31,3 +32,6 @@ RemainAfterExit=yes > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > TimeoutSec=90s > + > +[Install] > +WantedBy=sysinit.target > -- > -2.39.2 > +2.34.1 > > diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > deleted file mode 100644 > index 98914ae154..0000000000 > --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > +++ /dev/null > @@ -1,73 +0,0 @@ > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 > -From: Khem Raj <raj.khem@gmail.com> > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr > - > -These directories are moved to /lib since systemd v246, commit > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > -the old /usr/lib is still being used. > - > -Upstream-Status: Inappropriate (OE-specific) > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > ---- > - src/core/systemd.pc.in | 8 ++++---- > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > - 2 files changed, 8 insertions(+), 8 deletions(-) > - > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in > -index 693433b34b..8368a3ff02 100644 > ---- a/src/core/systemd.pc.in > -+++ b/src/core/systemd.pc.in > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > - > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > - > --sysusers_dir=${rootprefix}/lib/sysusers.d > -+sysusers_dir=${prefix}/lib/sysusers.d > - sysusersdir=${sysusers_dir} > - > --sysctl_dir=${rootprefix}/lib/sysctl.d > -+sysctl_dir=${prefix}/lib/sysctl.d > - sysctldir=${sysctl_dir} > - > --binfmt_dir=${rootprefix}/lib/binfmt.d > -+binfmt_dir=${prefix}/lib/binfmt.d > - binfmtdir=${binfmt_dir} > - > --modules_load_dir=${rootprefix}/lib/modules-load.d > -+modules_load_dir=${prefix}/lib/modules-load.d > - modulesloaddir=${modules_load_dir} > - > - catalog_dir=${prefix}/lib/systemd/catalog > -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c > -index 1af3a36d1d..def502b717 100644 > ---- a/src/libsystemd/sd-path/sd-path.c > -+++ b/src/libsystemd/sd-path/sd-path.c > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > - return 0; > - > - case SD_PATH_SYSUSERS: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > -+ *ret = "/usr/lib/sysusers.d"; > - return 0; > - > - case SD_PATH_SYSCTL: > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > -+ *ret = "/usr/lib/sysctl.d"; > - return 0; > - > - case SD_PATH_BINFMT: > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > -+ *ret = "/usr/lib/binfmt.d"; > - return 0; > - > - case SD_PATH_MODULES_LOAD: > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > -+ *ret = "/usr/lib/modules-load.d"; > - return 0; > - > - case SD_PATH_CATALOG: > --- > -2.39.2 > - > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in > deleted file mode 100644 > index fac288f7fa..0000000000 > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > +++ /dev/null > @@ -1,40 +0,0 @@ > -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb > similarity index 98% > rename from meta/recipes-core/systemd/systemd_254.4.bb > rename to meta/recipes-core/systemd/systemd_255.1.bb > index 0c12926bef..daa3a01fef 100644 > --- a/meta/recipes-core/systemd/systemd_254.4.bb > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > SRC_URI += " \ > file://touchscreen.rules \ > file://00-create-volatile.conf \ > - file://basic.conf.in \ > ${@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 \ > @@ -29,7 +28,6 @@ SRC_URI += " \ > file://systemd-pager.sh \ > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > file://0008-implment-systemd-sysv-install-for-OE.patch \ > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > " > > # patches needed by musl > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > backlight \ > binfmt \ > + cgroupv2 \ > gshadow \ > hibernate \ > hostnamed \ > @@ -266,12 +265,16 @@ 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 > -} > - > 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 > install -d ${D}/${base_sbindir} > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > # Provided by a separate recipe > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192923): https://lists.openembedded.org/g/openembedded-core/message/192923 > Mute This Topic: https://lists.openembedded.org/mt/103380516/7304865 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [Qi.Chen@eng.windriver.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On 19/01/2024 11:09:20+0800, Chen Qi via lists.openembedded.org wrote: > What's the status of this patch series? > Is there any issue or concern that I missed? I'm glad you asked, I got this today: https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466/steps/26/logs/warnings > > Regards, > Qi > > On 12/27/23 12:20, Chen Qi via lists.openembedded.org wrote: > > From: Chen Qi <Qi.Chen@windriver.com> > > > > 1. Patch changes: > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > is removed because it has no real effect now. The /lib is now > > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > refreshed for the new version to avoid patch-fuzz issue. > > > > 2. root user's home directory now defaults to "/root": > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > value, so if users set ROOT_HOME to "/home/root", the behavior is the > > same as before. However, this is only for backward compatibility. With > > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > This is because systemd's source codes are hardcoding "/root", and other > > values are not officially supported. See the list below. > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > src/core/namespace.c > > src/basic/user-util.c > > src/nss-systemd/nss-systemd.c > > src/nspawn/nspawn.c > > src/firstboot/firstboot.c > > src/shared/userdb.c > > src/shared/user-record.c > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ tmpfiles.d/ units/ xorg/ tools/ > > sysusers.d/basic.conf.in > > tmpfiles.d/provision.conf > > units/emergency.service.in > > units/rescue.service.in > > tools/list-discoverable-partitions.py > > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > > which is not enough to be treated as 'fully support'. I deliberately put > > a warning message in do_install to warn users about non "/root" ROOT_HOME > > value. Don't remove it until all above places are handled. > > > > 3. cgroupv2 is now the default. > > cgroupv2 is the default for systemd for many years and it's the default > > for distros such as ubuntu and fedora. Let's also use it as the default. > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > --- > > .../distro/include/init-manager-systemd.inc | 2 + > > meta/recipes-core/systemd/systemd.inc | 4 +- > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > .../systemd/systemd/basic.conf.in | 40 ---------- > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > 6 files changed, 25 insertions(+), 132 deletions(-) > > delete mode 100644 meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > delete mode 100644 meta/recipes-core/systemd/systemd/basic.conf.in > > rename meta/recipes-core/systemd/{systemd_254.4.bb => systemd_255.1.bb} (98%) > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc > > index 595d1f2644..0a76647459 100644 > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > +# systemd hardcodes /root in its source codes, other values are not offically supported > > +ROOT_HOME ?= "/root" > > diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc > > index ccc3236457..1417e0150f 100644 > > --- a/meta/recipes-core/systemd/systemd.inc > > +++ b/meta/recipes-core/systemd/systemd.inc > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > -SRCBRANCH = "v254-stable" > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > +SRCBRANCH = "v255-stable" > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > S = "${WORKDIR}/git" > > diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > > index 085f1e9052..be231cf6b2 100644 > > --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > > @@ -1,8 +1,8 @@ > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 > > From: Chen Qi <Qi.Chen@windriver.com> > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > -Subject: [PATCH] binfmt: Don't install dependency links at install time for > > - the binfmt services > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time > > + for the binfmt services > > use [Install] blocks so that they get created when the service is enabled > > like a traditional service. > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > 3 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/units/meson.build b/units/meson.build > > -index c7939a10f8..219570ab19 100644 > > +index e7bfb7f838..1d5ec4b178 100644 > > --- a/units/meson.build > > +++ b/units/meson.build > > -@@ -149,7 +149,6 @@ units = [ > > +@@ -154,7 +154,6 @@ units = [ > > { > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > 'conditions' : ['ENABLE_BINFMT'], > > @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 > > }, > > { > > 'file' : 'proc-sys-fs-binfmt_misc.mount', > > -@@ -246,7 +245,6 @@ units = [ > > +@@ -251,7 +250,6 @@ units = [ > > { > > 'file' : 'systemd-binfmt.service.in', > > 'conditions' : ['ENABLE_BINFMT'], > > @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 > > { > > 'file' : 'systemd-bless-boot.service.in', > > diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount > > -index 6b1bbdc91e..5ec5b8670a 100644 > > +index 5d212015a5..6c2900ca77 100644 > > --- a/units/proc-sys-fs-binfmt_misc.automount > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > @@ -22,3 +22,6 @@ Before=shutdown.target > > @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 > > +[Install] > > +WantedBy=sysinit.target > > diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in > > -index b04412e037..63f116e4fa 100644 > > +index 6861c76674..531e9fbd90 100644 > > --- a/units/systemd-binfmt.service.in > > +++ b/units/systemd-binfmt.service.in > > @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > After=proc-sys-fs-binfmt_misc.mount > > After=local-fs.target > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > TimeoutSec=90s > > + > > +[Install] > > +WantedBy=sysinit.target > > -- > > -2.39.2 > > +2.34.1 > > diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > deleted file mode 100644 > > index 98914ae154..0000000000 > > --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 > > -From: Khem Raj <raj.khem@gmail.com> > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr > > - > > -These directories are moved to /lib since systemd v246, commit > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > > -the old /usr/lib is still being used. > > - > > -Upstream-Status: Inappropriate (OE-specific) > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > ---- > > - src/core/systemd.pc.in | 8 ++++---- > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > - > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in > > -index 693433b34b..8368a3ff02 100644 > > ---- a/src/core/systemd.pc.in > > -+++ b/src/core/systemd.pc.in > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > - > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > - > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > -+sysusers_dir=${prefix}/lib/sysusers.d > > - sysusersdir=${sysusers_dir} > > - > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > -+sysctl_dir=${prefix}/lib/sysctl.d > > - sysctldir=${sysctl_dir} > > - > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > -+binfmt_dir=${prefix}/lib/binfmt.d > > - binfmtdir=${binfmt_dir} > > - > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > -+modules_load_dir=${prefix}/lib/modules-load.d > > - modulesloaddir=${modules_load_dir} > > - > > - catalog_dir=${prefix}/lib/systemd/catalog > > -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c > > -index 1af3a36d1d..def502b717 100644 > > ---- a/src/libsystemd/sd-path/sd-path.c > > -+++ b/src/libsystemd/sd-path/sd-path.c > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > - return 0; > > - > > - case SD_PATH_SYSUSERS: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > -+ *ret = "/usr/lib/sysusers.d"; > > - return 0; > > - > > - case SD_PATH_SYSCTL: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > -+ *ret = "/usr/lib/sysctl.d"; > > - return 0; > > - > > - case SD_PATH_BINFMT: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > -+ *ret = "/usr/lib/binfmt.d"; > > - return 0; > > - > > - case SD_PATH_MODULES_LOAD: > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > -+ *ret = "/usr/lib/modules-load.d"; > > - return 0; > > - > > - case SD_PATH_CATALOG: > > --- > > -2.39.2 > > - > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in > > deleted file mode 100644 > > index fac288f7fa..0000000000 > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb > > similarity index 98% > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > index 0c12926bef..daa3a01fef 100644 > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > SRC_URI += " \ > > file://touchscreen.rules \ > > file://00-create-volatile.conf \ > > - file://basic.conf.in \ > > ${@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 \ > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > file://systemd-pager.sh \ > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > " > > # patches needed by musl > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > backlight \ > > binfmt \ > > + cgroupv2 \ > > gshadow \ > > hibernate \ > > hostnamed \ > > @@ -266,12 +265,16 @@ 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 > > -} > > - > > 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 > > install -d ${D}/${base_sbindir} > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > # Provided by a separate recipe > > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#194007): https://lists.openembedded.org/g/openembedded-core/message/194007 > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On 19/01/2024 19:13:25+0100, Alexandre Belloni wrote: > On 19/01/2024 11:09:20+0800, Chen Qi via lists.openembedded.org wrote: > > What's the status of this patch series? > > Is there any issue or concern that I missed? > > I'm glad you asked, I got this today: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466/steps/26/logs/warnings and I know you sent a patch for this but it didn't make it yet. > > > > > Regards, > > Qi > > > > On 12/27/23 12:20, Chen Qi via lists.openembedded.org wrote: > > > From: Chen Qi <Qi.Chen@windriver.com> > > > > > > 1. Patch changes: > > > > > > 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > > is removed because it has no real effect now. The /lib is now > > > /usr/lib because 'usrmerge' is a required distro feature for systemd. > > > > > > 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is > > > refreshed for the new version to avoid patch-fuzz issue. > > > > > > 2. root user's home directory now defaults to "/root": > > > > > > The sysuers.d/basic.conf is still modified to respect the ROOT_HOME > > > value, so if users set ROOT_HOME to "/home/root", the behavior is the > > > same as before. However, this is only for backward compatibility. With > > > this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. > > > This is because systemd's source codes are hardcoding "/root", and other > > > values are not officially supported. See the list below. > > > $ grep -rl '"/root"' src/ | grep -v 'src/test' > > > src/core/namespace.c > > > src/basic/user-util.c > > > src/nss-systemd/nss-systemd.c > > > src/nspawn/nspawn.c > > > src/firstboot/firstboot.c > > > src/shared/userdb.c > > > src/shared/user-record.c > > > $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ tmpfiles.d/ units/ xorg/ tools/ > > > sysusers.d/basic.conf.in > > > tmpfiles.d/provision.conf > > > units/emergency.service.in > > > units/rescue.service.in > > > tools/list-discoverable-partitions.py > > > Previously, the recipe was just substituting sysusers.d/basic.conf.in, > > > which is not enough to be treated as 'fully support'. I deliberately put > > > a warning message in do_install to warn users about non "/root" ROOT_HOME > > > value. Don't remove it until all above places are handled. > > > > > > 3. cgroupv2 is now the default. > > > cgroupv2 is the default for systemd for many years and it's the default > > > for distros such as ubuntu and fedora. Let's also use it as the default. > > > > > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > > > --- > > > .../distro/include/init-manager-systemd.inc | 2 + > > > meta/recipes-core/systemd/systemd.inc | 4 +- > > > ...tall-dependency-links-at-install-tim.patch | 22 +++--- > > > ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- > > > .../systemd/systemd/basic.conf.in | 40 ---------- > > > .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- > > > 6 files changed, 25 insertions(+), 132 deletions(-) > > > delete mode 100644 meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > > delete mode 100644 meta/recipes-core/systemd/systemd/basic.conf.in > > > rename meta/recipes-core/systemd/{systemd_254.4.bb => systemd_255.1.bb} (98%) > > > > > > diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc > > > index 595d1f2644..0a76647459 100644 > > > --- a/meta/conf/distro/include/init-manager-systemd.inc > > > +++ b/meta/conf/distro/include/init-manager-systemd.inc > > > @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" > > > VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" > > > VIRTUAL-RUNTIME_login_manager ??= "shadow-base" > > > VIRTUAL-RUNTIME_dev_manager ??= "systemd" > > > +# systemd hardcodes /root in its source codes, other values are not offically supported > > > +ROOT_HOME ?= "/root" > > > diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc > > > index ccc3236457..1417e0150f 100644 > > > --- a/meta/recipes-core/systemd/systemd.inc > > > +++ b/meta/recipes-core/systemd/systemd.inc > > > @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" > > > LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ > > > file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" > > > -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" > > > -SRCBRANCH = "v254-stable" > > > +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" > > > +SRCBRANCH = "v255-stable" > > > SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" > > > S = "${WORKDIR}/git" > > > diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > > > index 085f1e9052..be231cf6b2 100644 > > > --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > > > +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch > > > @@ -1,8 +1,8 @@ > > > -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 > > > +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 > > > From: Chen Qi <Qi.Chen@windriver.com> > > > Date: Thu, 21 Feb 2019 16:23:24 +0800 > > > -Subject: [PATCH] binfmt: Don't install dependency links at install time for > > > - the binfmt services > > > +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time > > > + for the binfmt services > > > use [Install] blocks so that they get created when the service is enabled > > > like a traditional service. > > > @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> > > > 3 files changed, 7 insertions(+), 2 deletions(-) > > > diff --git a/units/meson.build b/units/meson.build > > > -index c7939a10f8..219570ab19 100644 > > > +index e7bfb7f838..1d5ec4b178 100644 > > > --- a/units/meson.build > > > +++ b/units/meson.build > > > -@@ -149,7 +149,6 @@ units = [ > > > +@@ -154,7 +154,6 @@ units = [ > > > { > > > 'file' : 'proc-sys-fs-binfmt_misc.automount', > > > 'conditions' : ['ENABLE_BINFMT'], > > > @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 > > > }, > > > { > > > 'file' : 'proc-sys-fs-binfmt_misc.mount', > > > -@@ -246,7 +245,6 @@ units = [ > > > +@@ -251,7 +250,6 @@ units = [ > > > { > > > 'file' : 'systemd-binfmt.service.in', > > > 'conditions' : ['ENABLE_BINFMT'], > > > @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 > > > { > > > 'file' : 'systemd-bless-boot.service.in', > > > diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount > > > -index 6b1bbdc91e..5ec5b8670a 100644 > > > +index 5d212015a5..6c2900ca77 100644 > > > --- a/units/proc-sys-fs-binfmt_misc.automount > > > +++ b/units/proc-sys-fs-binfmt_misc.automount > > > @@ -22,3 +22,6 @@ Before=shutdown.target > > > @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 > > > +[Install] > > > +WantedBy=sysinit.target > > > diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in > > > -index b04412e037..63f116e4fa 100644 > > > +index 6861c76674..531e9fbd90 100644 > > > --- a/units/systemd-binfmt.service.in > > > +++ b/units/systemd-binfmt.service.in > > > @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html > > > @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 > > > After=proc-sys-fs-binfmt_misc.mount > > > After=local-fs.target > > > @@ -31,3 +32,6 @@ RemainAfterExit=yes > > > - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt > > > - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister > > > + ExecStart={{LIBEXECDIR}}/systemd-binfmt > > > + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister > > > TimeoutSec=90s > > > + > > > +[Install] > > > +WantedBy=sysinit.target > > > -- > > > -2.39.2 > > > +2.34.1 > > > diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > > deleted file mode 100644 > > > index 98914ae154..0000000000 > > > --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch > > > +++ /dev/null > > > @@ -1,73 +0,0 @@ > > > -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 > > > -From: Khem Raj <raj.khem@gmail.com> > > > -Date: Tue, 29 Sep 2020 18:01:41 -0700 > > > -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr > > > - > > > -These directories are moved to /lib since systemd v246, commit > > > -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, > > > -the old /usr/lib is still being used. > > > - > > > -Upstream-Status: Inappropriate (OE-specific) > > > -Signed-off-by: Khem Raj <raj.khem@gmail.com> > > > -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> > > > ---- > > > - src/core/systemd.pc.in | 8 ++++---- > > > - src/libsystemd/sd-path/sd-path.c | 8 ++++---- > > > - 2 files changed, 8 insertions(+), 8 deletions(-) > > > - > > > -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in > > > -index 693433b34b..8368a3ff02 100644 > > > ---- a/src/core/systemd.pc.in > > > -+++ b/src/core/systemd.pc.in > > > -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} > > > - > > > - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d > > > - > > > --sysusers_dir=${rootprefix}/lib/sysusers.d > > > -+sysusers_dir=${prefix}/lib/sysusers.d > > > - sysusersdir=${sysusers_dir} > > > - > > > --sysctl_dir=${rootprefix}/lib/sysctl.d > > > -+sysctl_dir=${prefix}/lib/sysctl.d > > > - sysctldir=${sysctl_dir} > > > - > > > --binfmt_dir=${rootprefix}/lib/binfmt.d > > > -+binfmt_dir=${prefix}/lib/binfmt.d > > > - binfmtdir=${binfmt_dir} > > > - > > > --modules_load_dir=${rootprefix}/lib/modules-load.d > > > -+modules_load_dir=${prefix}/lib/modules-load.d > > > - modulesloaddir=${modules_load_dir} > > > - > > > - catalog_dir=${prefix}/lib/systemd/catalog > > > -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c > > > -index 1af3a36d1d..def502b717 100644 > > > ---- a/src/libsystemd/sd-path/sd-path.c > > > -+++ b/src/libsystemd/sd-path/sd-path.c > > > -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { > > > - return 0; > > > - > > > - case SD_PATH_SYSUSERS: > > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; > > > -+ *ret = "/usr/lib/sysusers.d"; > > > - return 0; > > > - > > > - case SD_PATH_SYSCTL: > > > -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; > > > -+ *ret = "/usr/lib/sysctl.d"; > > > - return 0; > > > - > > > - case SD_PATH_BINFMT: > > > -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; > > > -+ *ret = "/usr/lib/binfmt.d"; > > > - return 0; > > > - > > > - case SD_PATH_MODULES_LOAD: > > > -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; > > > -+ *ret = "/usr/lib/modules-load.d"; > > > - return 0; > > > - > > > - case SD_PATH_CATALOG: > > > --- > > > -2.39.2 > > > - > > > diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in > > > deleted file mode 100644 > > > index fac288f7fa..0000000000 > > > --- a/meta/recipes-core/systemd/systemd/basic.conf.in > > > +++ /dev/null > > > @@ -1,40 +0,0 @@ > > > -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb > > > similarity index 98% > > > rename from meta/recipes-core/systemd/systemd_254.4.bb > > > rename to meta/recipes-core/systemd/systemd_255.1.bb > > > index 0c12926bef..daa3a01fef 100644 > > > --- a/meta/recipes-core/systemd/systemd_254.4.bb > > > +++ b/meta/recipes-core/systemd/systemd_255.1.bb > > > @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" > > > SRC_URI += " \ > > > file://touchscreen.rules \ > > > file://00-create-volatile.conf \ > > > - file://basic.conf.in \ > > > ${@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 \ > > > @@ -29,7 +28,6 @@ SRC_URI += " \ > > > file://systemd-pager.sh \ > > > file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ > > > file://0008-implment-systemd-sysv-install-for-OE.patch \ > > > - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ > > > " > > > # patches needed by musl > > > @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ > > > ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ > > > backlight \ > > > binfmt \ > > > + cgroupv2 \ > > > gshadow \ > > > hibernate \ > > > hostnamed \ > > > @@ -266,12 +265,16 @@ 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 > > > -} > > > - > > > 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 > > > install -d ${D}/${base_sbindir} > > > if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then > > > # Provided by a separate recipe > > > @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ > > > ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ > > > ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ > > > + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ > > > ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ > > > ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ > > > ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ > > > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > > Links: You receive all messages sent to this group. > > View/Reply Online (#194007): https://lists.openembedded.org/g/openembedded-core/message/194007 > > Mute This Topic: https://lists.openembedded.org/mt/103380516/3617179 > > Group Owner: openembedded-core+owner@lists.openembedded.org > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > > -=-=-=-=-=-=-=-=-=-=-=- > > > > > -- > Alexandre Belloni, co-owner and COO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com
On 1/20/24 02:14, Alexandre Belloni wrote: > On 19/01/2024 19:13:25+0100, Alexandre Belloni wrote: >> On 19/01/2024 11:09:20+0800, Chen Qi via lists.openembedded.org wrote: >>> What's the status of this patch series? >>> Is there any issue or concern that I missed? >> I'm glad you asked, I got this today: >> >> https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466/steps/26/logs/warnings > and I know you sent a patch for this but it didn't make it yet. I just double checked with the following settings from the "Sysvinit with systemd" entry in config.json, there's no warning. DISTRO_FEATURES:append = ' systemd usrmerge' ROOT_HOME = '/root' VIRTUAL-RUNTIME_init_manager = 'sysvinit' So I further checked the build's settings. https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466 In the second step, "Fetch yocto-autobuilder-helper", I can see the following logs: HEAD is now at ebb7e65 config.json: Fix syntax errors So the build is not using the latest repo. The latest commit is: 97bb07f (HEAD -> master, origin/master, origin/HEAD) config.json: set ROOT_HOME to /root for sysvinit with systemd Regards, Qi > >>> Regards, >>> Qi >>> >>> On 12/27/23 12:20, Chen Qi via lists.openembedded.org wrote: >>>> From: Chen Qi<Qi.Chen@windriver.com> >>>> >>>> 1. Patch changes: >>>> >>>> 0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch >>>> is removed because it has no real effect now. The /lib is now >>>> /usr/lib because 'usrmerge' is a required distro feature for systemd. >>>> >>>> 0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch is >>>> refreshed for the new version to avoid patch-fuzz issue. >>>> >>>> 2. root user's home directory now defaults to "/root": >>>> >>>> The sysuers.d/basic.conf is still modified to respect the ROOT_HOME >>>> value, so if users set ROOT_HOME to "/home/root", the behavior is the >>>> same as before. However, this is only for backward compatibility. With >>>> this patch, The ROOT_HOME value is set to "/root" in init-manager-systemd.inc. >>>> This is because systemd's source codes are hardcoding "/root", and other >>>> values are not officially supported. See the list below. >>>> $ grep -rl '"/root"' src/ | grep -v 'src/test' >>>> src/core/namespace.c >>>> src/basic/user-util.c >>>> src/nss-systemd/nss-systemd.c >>>> src/nspawn/nspawn.c >>>> src/firstboot/firstboot.c >>>> src/shared/userdb.c >>>> src/shared/user-record.c >>>> $ grep -rl /root network/ factory/ sysctl.d/ sysusers.d/ rules.d/ tmpfiles.d/ units/ xorg/ tools/ >>>> sysusers.d/basic.conf.in >>>> tmpfiles.d/provision.conf >>>> units/emergency.service.in >>>> units/rescue.service.in >>>> tools/list-discoverable-partitions.py >>>> Previously, the recipe was just substituting sysusers.d/basic.conf.in, >>>> which is not enough to be treated as 'fully support'. I deliberately put >>>> a warning message in do_install to warn users about non "/root" ROOT_HOME >>>> value. Don't remove it until all above places are handled. >>>> >>>> 3. cgroupv2 is now the default. >>>> cgroupv2 is the default for systemd for many years and it's the default >>>> for distros such as ubuntu and fedora. Let's also use it as the default. >>>> >>>> Signed-off-by: Chen Qi<Qi.Chen@windriver.com> >>>> --- >>>> .../distro/include/init-manager-systemd.inc | 2 + >>>> meta/recipes-core/systemd/systemd.inc | 4 +- >>>> ...tall-dependency-links-at-install-tim.patch | 22 +++--- >>>> ...sysctl.d-binfmt.d-modules-load.d-to-.patch | 73 ------------------- >>>> .../systemd/systemd/basic.conf.in | 40 ---------- >>>> .../{systemd_254.4.bb => systemd_255.1.bb} | 16 ++-- >>>> 6 files changed, 25 insertions(+), 132 deletions(-) >>>> delete mode 100644 meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch >>>> delete mode 100644 meta/recipes-core/systemd/systemd/basic.conf.in >>>> rename meta/recipes-core/systemd/{systemd_254.4.bb => systemd_255.1.bb} (98%) >>>> >>>> diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc >>>> index 595d1f2644..0a76647459 100644 >>>> --- a/meta/conf/distro/include/init-manager-systemd.inc >>>> +++ b/meta/conf/distro/include/init-manager-systemd.inc >>>> @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" >>>> VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" >>>> VIRTUAL-RUNTIME_login_manager ??= "shadow-base" >>>> VIRTUAL-RUNTIME_dev_manager ??= "systemd" >>>> +# systemd hardcodes /root in its source codes, other values are not offically supported >>>> +ROOT_HOME ?= "/root" >>>> diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc >>>> index ccc3236457..1417e0150f 100644 >>>> --- a/meta/recipes-core/systemd/systemd.inc >>>> +++ b/meta/recipes-core/systemd/systemd.inc >>>> @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" >>>> LIC_FILES_CHKSUM ="file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ >>>> file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" >>>> -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" >>>> -SRCBRANCH = "v254-stable" >>>> +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" >>>> +SRCBRANCH = "v255-stable" >>>> SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" >>>> S = "${WORKDIR}/git" >>>> diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch >>>> index 085f1e9052..be231cf6b2 100644 >>>> --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch >>>> +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch >>>> @@ -1,8 +1,8 @@ >>>> -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 >>>> +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 >>>> From: Chen Qi<Qi.Chen@windriver.com> >>>> Date: Thu, 21 Feb 2019 16:23:24 +0800 >>>> -Subject: [PATCH] binfmt: Don't install dependency links at install time for >>>> - the binfmt services >>>> +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time >>>> + for the binfmt services >>>> use [Install] blocks so that they get created when the service is enabled >>>> like a traditional service. >>>> @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray<scott.murray@konsulko.com> >>>> 3 files changed, 7 insertions(+), 2 deletions(-) >>>> diff --git a/units/meson.build b/units/meson.build >>>> -index c7939a10f8..219570ab19 100644 >>>> +index e7bfb7f838..1d5ec4b178 100644 >>>> --- a/units/meson.build >>>> +++ b/units/meson.build >>>> -@@ -149,7 +149,6 @@ units = [ >>>> +@@ -154,7 +154,6 @@ units = [ >>>> { >>>> 'file' : 'proc-sys-fs-binfmt_misc.automount', >>>> 'conditions' : ['ENABLE_BINFMT'], >>>> @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 >>>> }, >>>> { >>>> 'file' : 'proc-sys-fs-binfmt_misc.mount', >>>> -@@ -246,7 +245,6 @@ units = [ >>>> +@@ -251,7 +250,6 @@ units = [ >>>> { >>>> 'file' : 'systemd-binfmt.service.in', >>>> 'conditions' : ['ENABLE_BINFMT'], >>>> @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 >>>> { >>>> 'file' : 'systemd-bless-boot.service.in', >>>> diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount >>>> -index 6b1bbdc91e..5ec5b8670a 100644 >>>> +index 5d212015a5..6c2900ca77 100644 >>>> --- a/units/proc-sys-fs-binfmt_misc.automount >>>> +++ b/units/proc-sys-fs-binfmt_misc.automount >>>> @@ -22,3 +22,6 @@ Before=shutdown.target >>>> @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 >>>> +[Install] >>>> +WantedBy=sysinit.target >>>> diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in >>>> -index b04412e037..63f116e4fa 100644 >>>> +index 6861c76674..531e9fbd90 100644 >>>> --- a/units/systemd-binfmt.service.in >>>> +++ b/units/systemd-binfmt.service.in >>>> @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html >>>> @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 >>>> After=proc-sys-fs-binfmt_misc.mount >>>> After=local-fs.target >>>> @@ -31,3 +32,6 @@ RemainAfterExit=yes >>>> - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt >>>> - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister >>>> + ExecStart={{LIBEXECDIR}}/systemd-binfmt >>>> + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister >>>> TimeoutSec=90s >>>> + >>>> +[Install] >>>> +WantedBy=sysinit.target >>>> -- >>>> -2.39.2 >>>> +2.34.1 >>>> diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch >>>> deleted file mode 100644 >>>> index 98914ae154..0000000000 >>>> --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch >>>> +++ /dev/null >>>> @@ -1,73 +0,0 @@ >>>> -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 >>>> -From: Khem Raj<raj.khem@gmail.com> >>>> -Date: Tue, 29 Sep 2020 18:01:41 -0700 >>>> -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr >>>> - >>>> -These directories are moved to /lib since systemd v246, commit >>>> -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, >>>> -the old /usr/lib is still being used. >>>> - >>>> -Upstream-Status: Inappropriate (OE-specific) >>>> -Signed-off-by: Khem Raj<raj.khem@gmail.com> >>>> -Signed-off-by: Jiaqing Zhao<jiaqing.zhao@linux.intel.com> >>>> ---- >>>> - src/core/systemd.pc.in | 8 ++++---- >>>> - src/libsystemd/sd-path/sd-path.c | 8 ++++---- >>>> - 2 files changed, 8 insertions(+), 8 deletions(-) >>>> - >>>> -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in >>>> -index 693433b34b..8368a3ff02 100644 >>>> ---- a/src/core/systemd.pc.in >>>> -+++ b/src/core/systemd.pc.in >>>> -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} >>>> - >>>> - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d >>>> - >>>> --sysusers_dir=${rootprefix}/lib/sysusers.d >>>> -+sysusers_dir=${prefix}/lib/sysusers.d >>>> - sysusersdir=${sysusers_dir} >>>> - >>>> --sysctl_dir=${rootprefix}/lib/sysctl.d >>>> -+sysctl_dir=${prefix}/lib/sysctl.d >>>> - sysctldir=${sysctl_dir} >>>> - >>>> --binfmt_dir=${rootprefix}/lib/binfmt.d >>>> -+binfmt_dir=${prefix}/lib/binfmt.d >>>> - binfmtdir=${binfmt_dir} >>>> - >>>> --modules_load_dir=${rootprefix}/lib/modules-load.d >>>> -+modules_load_dir=${prefix}/lib/modules-load.d >>>> - modulesloaddir=${modules_load_dir} >>>> - >>>> - catalog_dir=${prefix}/lib/systemd/catalog >>>> -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c >>>> -index 1af3a36d1d..def502b717 100644 >>>> ---- a/src/libsystemd/sd-path/sd-path.c >>>> -+++ b/src/libsystemd/sd-path/sd-path.c >>>> -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { >>>> - return 0; >>>> - >>>> - case SD_PATH_SYSUSERS: >>>> -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; >>>> -+ *ret = "/usr/lib/sysusers.d"; >>>> - return 0; >>>> - >>>> - case SD_PATH_SYSCTL: >>>> -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; >>>> -+ *ret = "/usr/lib/sysctl.d"; >>>> - return 0; >>>> - >>>> - case SD_PATH_BINFMT: >>>> -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; >>>> -+ *ret = "/usr/lib/binfmt.d"; >>>> - return 0; >>>> - >>>> - case SD_PATH_MODULES_LOAD: >>>> -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; >>>> -+ *ret = "/usr/lib/modules-load.d"; >>>> - return 0; >>>> - >>>> - case SD_PATH_CATALOG: >>>> --- >>>> -2.39.2 >>>> - >>>> diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in >>>> deleted file mode 100644 >>>> index fac288f7fa..0000000000 >>>> --- a/meta/recipes-core/systemd/systemd/basic.conf.in >>>> +++ /dev/null >>>> @@ -1,40 +0,0 @@ >>>> -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb >>>> similarity index 98% >>>> rename from meta/recipes-core/systemd/systemd_254.4.bb >>>> rename to meta/recipes-core/systemd/systemd_255.1.bb >>>> index 0c12926bef..daa3a01fef 100644 >>>> --- a/meta/recipes-core/systemd/systemd_254.4.bb >>>> +++ b/meta/recipes-core/systemd/systemd_255.1.bb >>>> @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" >>>> SRC_URI += " \ >>>> file://touchscreen.rules \ >>>> file://00-create-volatile.conf \ >>>> -file://basic.conf.in \ >>>> ${@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 \ >>>> @@ -29,7 +28,6 @@ SRC_URI += " \ >>>> file://systemd-pager.sh \ >>>> file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ >>>> file://0008-implment-systemd-sysv-install-for-OE.patch \ >>>> -file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ >>>> " >>>> # patches needed by musl >>>> @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ >>>> ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ >>>> backlight \ >>>> binfmt \ >>>> + cgroupv2 \ >>>> gshadow \ >>>> hibernate \ >>>> hostnamed \ >>>> @@ -266,12 +265,16 @@ 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 >>>> -} >>>> - >>>> 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 >>>> install -d ${D}/${base_sbindir} >>>> if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then >>>> # Provided by a separate recipe >>>> @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ >>>> ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ >>>> ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ >>>> ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ >>>> + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ >>>> ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ >>>> ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ >>>> ${rootlibexecdir}/udev/rules.d/60-sensor.rules \ >>>> >>>> >>>> >>> -=-=-=-=-=-=-=-=-=-=-=- >>> Links: You receive all messages sent to this group. >>> View/Reply Online (#194007):https://lists.openembedded.org/g/openembedded-core/message/194007 >>> Mute This Topic:https://lists.openembedded.org/mt/103380516/3617179 >>> Group Owner:openembedded-core+owner@lists.openembedded.org >>> Unsubscribe:https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] >>> -=-=-=-=-=-=-=-=-=-=-=- >>> >> >> -- >> Alexandre Belloni, co-owner and COO, Bootlin >> Embedded Linux and Kernel engineering >> https://bootlin.com
On 22/01/2024 12:38:15+0800, ChenQi wrote: > On 1/20/24 02:14, Alexandre Belloni wrote: > > On 19/01/2024 19:13:25+0100, Alexandre Belloni wrote: > > > On 19/01/2024 11:09:20+0800, Chen Qi via lists.openembedded.org wrote: > > > > What's the status of this patch series? > > > > Is there any issue or concern that I missed? > > > I'm glad you asked, I got this today: > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466/steps/26/logs/warnings > > and I know you sent a patch for this but it didn't make it yet. > > I just double checked with the following settings from the "Sysvinit with > systemd" entry in config.json, there's no warning. > > DISTRO_FEATURES:append = ' systemd usrmerge' > ROOT_HOME = '/root' > VIRTUAL-RUNTIME_init_manager = 'sysvinit' > > So I further checked the build's settings. > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466 > > In the second step, "Fetch yocto-autobuilder-helper", I can see the > following logs: > > HEAD is now at ebb7e65 config.json: Fix syntax errors > > So the build is not using the latest repo. The latest commit is: This is not correct, it was using the latest commit at the time, the patch was applied after my email.
On 1/22/24 16:04, Alexandre Belloni wrote: > On 22/01/2024 12:38:15+0800, ChenQi wrote: >> On 1/20/24 02:14, Alexandre Belloni wrote: >>> On 19/01/2024 19:13:25+0100, Alexandre Belloni wrote: >>>> On 19/01/2024 11:09:20+0800, Chen Qi via lists.openembedded.org wrote: >>>>> What's the status of this patch series? >>>>> Is there any issue or concern that I missed? >>>> I'm glad you asked, I got this today: >>>> >>>> https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466/steps/26/logs/warnings >>> and I know you sent a patch for this but it didn't make it yet. >> I just double checked with the following settings from the "Sysvinit with >> systemd" entry in config.json, there's no warning. >> >> DISTRO_FEATURES:append = ' systemd usrmerge' >> ROOT_HOME = '/root' >> VIRTUAL-RUNTIME_init_manager = 'sysvinit' >> >> So I further checked the build's settings. >> https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466 >> >> In the second step, "Fetch yocto-autobuilder-helper", I can see the >> following logs: >> >> HEAD is now at ebb7e65 config.json: Fix syntax errors >> >> So the build is not using the latest repo. The latest commit is: > This is not correct, it was using the latest commit at the time, the > patch was applied after my email. > > OK... Do you mean that the warning appeared in autobuilder, and then you applied the patch to yocto-autobuilder-helper to make the warning disappear? I thought you meant that the warning continued to exist even with the patch. To clarify, we can now wait for autobuiler's results and I don't need to do anything more, right? Regards, Qi
On 22/01/2024 16:15:41+0800, ChenQi wrote: > On 1/22/24 16:04, Alexandre Belloni wrote: > > On 22/01/2024 12:38:15+0800, ChenQi wrote: > > > On 1/20/24 02:14, Alexandre Belloni wrote: > > > > On 19/01/2024 19:13:25+0100, Alexandre Belloni wrote: > > > > > On 19/01/2024 11:09:20+0800, Chen Qi via lists.openembedded.org wrote: > > > > > > What's the status of this patch series? > > > > > > Is there any issue or concern that I missed? > > > > > I'm glad you asked, I got this today: > > > > > > > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466/steps/26/logs/warnings > > > > and I know you sent a patch for this but it didn't make it yet. > > > I just double checked with the following settings from the "Sysvinit with > > > systemd" entry in config.json, there's no warning. > > > > > > DISTRO_FEATURES:append = ' systemd usrmerge' > > > ROOT_HOME = '/root' > > > VIRTUAL-RUNTIME_init_manager = 'sysvinit' > > > > > > So I further checked the build's settings. > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/72/builds/8466 > > > > > > In the second step, "Fetch yocto-autobuilder-helper", I can see the > > > following logs: > > > > > > HEAD is now at ebb7e65 config.json: Fix syntax errors > > > > > > So the build is not using the latest repo. The latest commit is: > > This is not correct, it was using the latest commit at the time, the > > patch was applied after my email. > > > > > OK... Do you mean that the warning appeared in autobuilder, and then you > applied the patch to yocto-autobuilder-helper to make the warning disappear? > I thought you meant that the warning continued to exist even with the patch. > > To clarify, we can now wait for autobuiler's results and I don't need to do > anything more, right? I confirm, no action is needed on your side.
diff --git a/meta/conf/distro/include/init-manager-systemd.inc b/meta/conf/distro/include/init-manager-systemd.inc index 595d1f2644..0a76647459 100644 --- a/meta/conf/distro/include/init-manager-systemd.inc +++ b/meta/conf/distro/include/init-manager-systemd.inc @@ -5,3 +5,5 @@ VIRTUAL-RUNTIME_init_manager ??= "systemd" VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units" VIRTUAL-RUNTIME_login_manager ??= "shadow-base" VIRTUAL-RUNTIME_dev_manager ??= "systemd" +# systemd hardcodes /root in its source codes, other values are not offically supported +ROOT_HOME ?= "/root" diff --git a/meta/recipes-core/systemd/systemd.inc b/meta/recipes-core/systemd/systemd.inc index ccc3236457..1417e0150f 100644 --- a/meta/recipes-core/systemd/systemd.inc +++ b/meta/recipes-core/systemd/systemd.inc @@ -15,8 +15,8 @@ LICENSE:libsystemd = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c" -SRCREV = "2e7504449a51fb38db9cd2da391c6434f82def51" -SRCBRANCH = "v254-stable" +SRCREV = "2018ccef6645ce00c784369a22dc4e98f6d7061d" +SRCBRANCH = "v255-stable" SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH}" S = "${WORKDIR}/git" diff --git a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch index 085f1e9052..be231cf6b2 100644 --- a/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch +++ b/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch @@ -1,8 +1,8 @@ -From ca7d9a8d9c81702af9c599bb79706f12b1a465cf Mon Sep 17 00:00:00 2001 +From 29a58009a172e369ad7166e16dab2f4945c6b0d2 Mon Sep 17 00:00:00 2001 From: Chen Qi <Qi.Chen@windriver.com> Date: Thu, 21 Feb 2019 16:23:24 +0800 -Subject: [PATCH] binfmt: Don't install dependency links at install time for - the binfmt services +Subject: [PATCH 1/2] binfmt: Don't install dependency links at install time + for the binfmt services use [Install] blocks so that they get created when the service is enabled like a traditional service. @@ -25,10 +25,10 @@ Signed-off-by: Scott Murray <scott.murray@konsulko.com> 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/units/meson.build b/units/meson.build -index c7939a10f8..219570ab19 100644 +index e7bfb7f838..1d5ec4b178 100644 --- a/units/meson.build +++ b/units/meson.build -@@ -149,7 +149,6 @@ units = [ +@@ -154,7 +154,6 @@ units = [ { 'file' : 'proc-sys-fs-binfmt_misc.automount', 'conditions' : ['ENABLE_BINFMT'], @@ -36,7 +36,7 @@ index c7939a10f8..219570ab19 100644 }, { 'file' : 'proc-sys-fs-binfmt_misc.mount', -@@ -246,7 +245,6 @@ units = [ +@@ -251,7 +250,6 @@ units = [ { 'file' : 'systemd-binfmt.service.in', 'conditions' : ['ENABLE_BINFMT'], @@ -45,7 +45,7 @@ index c7939a10f8..219570ab19 100644 { 'file' : 'systemd-bless-boot.service.in', diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount -index 6b1bbdc91e..5ec5b8670a 100644 +index 5d212015a5..6c2900ca77 100644 --- a/units/proc-sys-fs-binfmt_misc.automount +++ b/units/proc-sys-fs-binfmt_misc.automount @@ -22,3 +22,6 @@ Before=shutdown.target @@ -56,7 +56,7 @@ index 6b1bbdc91e..5ec5b8670a 100644 +[Install] +WantedBy=sysinit.target diff --git a/units/systemd-binfmt.service.in b/units/systemd-binfmt.service.in -index b04412e037..63f116e4fa 100644 +index 6861c76674..531e9fbd90 100644 --- a/units/systemd-binfmt.service.in +++ b/units/systemd-binfmt.service.in @@ -14,6 +14,7 @@ Documentation=https://docs.kernel.org/admin-guide/binfmt-misc.html @@ -68,12 +68,12 @@ index b04412e037..63f116e4fa 100644 After=proc-sys-fs-binfmt_misc.mount After=local-fs.target @@ -31,3 +32,6 @@ RemainAfterExit=yes - ExecStart={{ROOTLIBEXECDIR}}/systemd-binfmt - ExecStop={{ROOTLIBEXECDIR}}/systemd-binfmt --unregister + ExecStart={{LIBEXECDIR}}/systemd-binfmt + ExecStop={{LIBEXECDIR}}/systemd-binfmt --unregister TimeoutSec=90s + +[Install] +WantedBy=sysinit.target -- -2.39.2 +2.34.1 diff --git a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch deleted file mode 100644 index 98914ae154..0000000000 --- a/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From f75f03ef6bc3554068e456bed227f333d5cb8c34 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 29 Sep 2020 18:01:41 -0700 -Subject: [PATCH] Move sysusers.d/sysctl.d/binfmt.d/modules-load.d to /usr - -These directories are moved to /lib since systemd v246, commit -4a56315a990b ("path: use ROOTPREFIX properly"), but in oe-core/yocto, -the old /usr/lib is still being used. - -Upstream-Status: Inappropriate (OE-specific) -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com> ---- - src/core/systemd.pc.in | 8 ++++---- - src/libsystemd/sd-path/sd-path.c | 8 ++++---- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index 693433b34b..8368a3ff02 100644 ---- a/src/core/systemd.pc.in -+++ b/src/core/systemd.pc.in -@@ -67,16 +67,16 @@ tmpfilesdir=${tmpfiles_dir} - - user_tmpfiles_dir=${prefix}/share/user-tmpfiles.d - --sysusers_dir=${rootprefix}/lib/sysusers.d -+sysusers_dir=${prefix}/lib/sysusers.d - sysusersdir=${sysusers_dir} - --sysctl_dir=${rootprefix}/lib/sysctl.d -+sysctl_dir=${prefix}/lib/sysctl.d - sysctldir=${sysctl_dir} - --binfmt_dir=${rootprefix}/lib/binfmt.d -+binfmt_dir=${prefix}/lib/binfmt.d - binfmtdir=${binfmt_dir} - --modules_load_dir=${rootprefix}/lib/modules-load.d -+modules_load_dir=${prefix}/lib/modules-load.d - modulesloaddir=${modules_load_dir} - - catalog_dir=${prefix}/lib/systemd/catalog -diff --git a/src/libsystemd/sd-path/sd-path.c b/src/libsystemd/sd-path/sd-path.c -index 1af3a36d1d..def502b717 100644 ---- a/src/libsystemd/sd-path/sd-path.c -+++ b/src/libsystemd/sd-path/sd-path.c -@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) { - return 0; - - case SD_PATH_SYSUSERS: -- *ret = ROOTPREFIX_NOSLASH "/lib/sysusers.d"; -+ *ret = "/usr/lib/sysusers.d"; - return 0; - - case SD_PATH_SYSCTL: -- *ret = ROOTPREFIX_NOSLASH "/lib/sysctl.d"; -+ *ret = "/usr/lib/sysctl.d"; - return 0; - - case SD_PATH_BINFMT: -- *ret = ROOTPREFIX_NOSLASH "/lib/binfmt.d"; -+ *ret = "/usr/lib/binfmt.d"; - return 0; - - case SD_PATH_MODULES_LOAD: -- *ret = ROOTPREFIX_NOSLASH "/lib/modules-load.d"; -+ *ret = "/usr/lib/modules-load.d"; - return 0; - - case SD_PATH_CATALOG: --- -2.39.2 - diff --git a/meta/recipes-core/systemd/systemd/basic.conf.in b/meta/recipes-core/systemd/systemd/basic.conf.in deleted file mode 100644 index fac288f7fa..0000000000 --- a/meta/recipes-core/systemd/systemd/basic.conf.in +++ /dev/null @@ -1,40 +0,0 @@ -# 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_254.4.bb b/meta/recipes-core/systemd/systemd_255.1.bb similarity index 98% rename from meta/recipes-core/systemd/systemd_254.4.bb rename to meta/recipes-core/systemd/systemd_255.1.bb index 0c12926bef..daa3a01fef 100644 --- a/meta/recipes-core/systemd/systemd_254.4.bb +++ b/meta/recipes-core/systemd/systemd_255.1.bb @@ -21,7 +21,6 @@ REQUIRED_DISTRO_FEATURES += "systemd" SRC_URI += " \ file://touchscreen.rules \ file://00-create-volatile.conf \ - file://basic.conf.in \ ${@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 \ @@ -29,7 +28,6 @@ SRC_URI += " \ file://systemd-pager.sh \ file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \ file://0008-implment-systemd-sysv-install-for-OE.patch \ - file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \ " # patches needed by musl @@ -73,6 +71,7 @@ PACKAGECONFIG ??= " \ ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', '', 'link-udev-shared', d)} \ backlight \ binfmt \ + cgroupv2 \ gshadow \ hibernate \ hostnamed \ @@ -266,12 +265,16 @@ 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 -} - 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 install -d ${D}/${base_sbindir} if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then # Provided by a separate recipe @@ -754,6 +757,7 @@ FILES:udev += "${base_sbindir}/udevd \ ${rootlibexecdir}/udev/rules.d/60-persistent-alsa.rules \ ${rootlibexecdir}/udev/rules.d/60-persistent-input.rules \ ${rootlibexecdir}/udev/rules.d/60-persistent-storage.rules \ + ${rootlibexecdir}/udev/rules.d/60-persistent-storage-mtd.rules \ ${rootlibexecdir}/udev/rules.d/60-persistent-storage-tape.rules \ ${rootlibexecdir}/udev/rules.d/60-persistent-v4l.rules \ ${rootlibexecdir}/udev/rules.d/60-sensor.rules \