* [OE-core][scarthgap 1/3] sstate.bbclass: Add _SSTATE_EXCLUDEDEPS_SYSROOT to vardepsexclude
2024-05-03 13:53 [OE-core][scarthgap 0/3] Patch review Steve Sakoman
@ 2024-05-03 13:53 ` Steve Sakoman
2024-05-03 13:53 ` [OE-core][scarthgap 2/3] scripts/oe-setup-build: write a build environment initialization one-liner into the build directory Steve Sakoman
2024-05-03 13:53 ` [OE-core][scarthgap 3/3] systemd: sed ROOT_HOME only if sysusers PACKAGECONFIG is set Steve Sakoman
2 siblings, 0 replies; 5+ messages in thread
From: Steve Sakoman @ 2024-05-03 13:53 UTC (permalink / raw)
To: openembedded-core
From: Mark Hatle <mark.hatle@amd.com>
When using tinfoil to control the build, multiple commands (serially) could
trigger an error such as:
When reparsing ....bb:do_package, the basehash value changed from ... to .... The metadata is not deterministic and this needs to be fixed.
ERROR: The following commands may help:
ERROR: $ bitbake esw-conf -cdo_package -Snone
ERROR: Then:
ERROR: $ bitbake esw-conf -cdo_package -Sprintdiff
However following these commands it was not able to be reproduced. Forcing
bitbake to dump the signatures and then running bitbake-diffsigs showed
that the value of _SSTATE_EXCLUDEDEPS_SYSROOT was being set in one run, but
was blank is a different version.
Upon inspecting the code in sstate.bbclass, one usage (without the _) is
already excludes, the leading _ version is used as a cache, only if set but
is not actually required to be defined. So ignoring the value should work
properly.
Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4ec704ed6a1cfaf0a6c20f2038e7192e361ef590)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
meta/classes-global/sstate.bbclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index 04539bbb99..76a7b59636 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -1115,7 +1115,7 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
bb.parse.siggen.checkhashes(sq_data, missed, found, d)
return found
-setscene_depvalid[vardepsexclude] = "SSTATE_EXCLUDEDEPS_SYSROOT"
+setscene_depvalid[vardepsexclude] = "SSTATE_EXCLUDEDEPS_SYSROOT _SSTATE_EXCLUDEDEPS_SYSROOT"
BB_SETSCENE_DEPVALID = "setscene_depvalid"
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [OE-core][scarthgap 2/3] scripts/oe-setup-build: write a build environment initialization one-liner into the build directory
2024-05-03 13:53 [OE-core][scarthgap 0/3] Patch review Steve Sakoman
2024-05-03 13:53 ` [OE-core][scarthgap 1/3] sstate.bbclass: Add _SSTATE_EXCLUDEDEPS_SYSROOT to vardepsexclude Steve Sakoman
@ 2024-05-03 13:53 ` Steve Sakoman
2024-05-03 13:53 ` [OE-core][scarthgap 3/3] systemd: sed ROOT_HOME only if sysusers PACKAGECONFIG is set Steve Sakoman
2 siblings, 0 replies; 5+ messages in thread
From: Steve Sakoman @ 2024-05-03 13:53 UTC (permalink / raw)
To: openembedded-core
From: Alexander Kanavin <alex.kanavin@gmail.com>
With this, users no longer have to know where oe-init-build-env is relative to the
build directory; that information is contained in the one liner and then
it's possible to simply use that:
. /path/to/build/init-build-env
This will particularly help with initializing builds in unpacked
build bundles, as users won't have to know where oe-init-build-env
is in the bundle directory tree - similar to esdk initialization.
(From OE-Core rev: 1cabdf287c2739accdab3a766df060f1bc802b63)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
scripts/oe-setup-build | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/scripts/oe-setup-build b/scripts/oe-setup-build
index 5364f2b481..c0476992a2 100755
--- a/scripts/oe-setup-build
+++ b/scripts/oe-setup-build
@@ -91,7 +91,16 @@ def setup_build_env(args):
builddir = args.b if args.b else template["buildpath"]
no_shell = args.no_shell
coredir = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '..'))
- cmd = "TEMPLATECONF={} . {} {}".format(template["templatepath"], os.path.join(coredir, 'oe-init-build-env'), builddir)
+ cmd_base = ". {} {}".format(os.path.join(coredir, 'oe-init-build-env'), os.path.abspath(builddir))
+
+ initbuild = os.path.join(builddir, 'init-build-env')
+ if not os.path.exists(initbuild):
+ os.makedirs(builddir, exist_ok=True)
+ with open(initbuild, 'w') as f:
+ f.write(cmd_base)
+ print("\nRun '. {}' to initialize the build in a current shell session.\n".format(initbuild))
+
+ cmd = "TEMPLATECONF={} {}".format(template["templatepath"], cmd_base)
if not no_shell:
cmd = cmd + " && {}".format(os.environ['SHELL'])
print("Running:", cmd)
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [OE-core][scarthgap 3/3] systemd: sed ROOT_HOME only if sysusers PACKAGECONFIG is set
2024-05-03 13:53 [OE-core][scarthgap 0/3] Patch review Steve Sakoman
2024-05-03 13:53 ` [OE-core][scarthgap 1/3] sstate.bbclass: Add _SSTATE_EXCLUDEDEPS_SYSROOT to vardepsexclude Steve Sakoman
2024-05-03 13:53 ` [OE-core][scarthgap 2/3] scripts/oe-setup-build: write a build environment initialization one-liner into the build directory Steve Sakoman
@ 2024-05-03 13:53 ` Steve Sakoman
2 siblings, 0 replies; 5+ messages in thread
From: Steve Sakoman @ 2024-05-03 13:53 UTC (permalink / raw)
To: openembedded-core
From: Christian Bräuner Sørensen <yocto@bsorensen.net>
Fixes a bug introducted in ebafe46379 systemd: upgrade to 255.1.
Besides updating systemd, that commit also made other changes. One of them
being when to perform the replacement in order to fix ROOT_HOME.
Previously, that happened on a configure prefunc and on
${S}/sysusers.d/basic.conf.in.
Now it happens in install and on image/usr/lib/sysusers.d/basic.conf.
However, that file is not present if sysusers is not in PACKAGECONFIG,
since that file in that case is not installed hence resulting in:
sed: can't read <redactedpath>/image/usr/lib/sysusers.d/basic.conf: No such file or directory
Previously, in the case of sysusers not being in PACKAGECONFIG, that was a
"silent error" since the replacement was done but the file was not really
used since the file was not installed.
Signed-off-by: Christian Bräuner Sørensen <yocto@bsorensen.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Hundebøll <martin@geanix.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
meta/recipes-core/systemd/systemd_255.4.bb | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/meta/recipes-core/systemd/systemd_255.4.bb b/meta/recipes-core/systemd/systemd_255.4.bb
index e7498c802d..f58a1bc2b6 100644
--- a/meta/recipes-core/systemd/systemd_255.4.bb
+++ b/meta/recipes-core/systemd/systemd_255.4.bb
@@ -271,14 +271,16 @@ WATCHDOG_TIMEOUT ??= "60"
do_install() {
meson_do_install
- # Change the root user's home directory in /lib/sysusers.d/basic.conf.
- # This is done merely for backward compatibility with previous systemd recipes.
- # systemd hardcodes root user's HOME to be "/root". Changing to use other values
- # may have unexpected runtime behaviors.
- if [ "${ROOT_HOME}" != "/root" ]; then
- bbwarn "Using ${ROOT_HOME} as root user's home directory is not fully supported by systemd"
- sed -i -e 's#/root#${ROOT_HOME}#g' ${D}${exec_prefix}/lib/sysusers.d/basic.conf
- fi
+ if ${@bb.utils.contains('PACKAGECONFIG', 'sysusers', 'true', 'false', d)}; then
+ # Change the root user's home directory in /lib/sysusers.d/basic.conf.
+ # This is done merely for backward compatibility with previous systemd recipes.
+ # systemd hardcodes root user's HOME to be "/root". Changing to use other values
+ # may have unexpected runtime behaviors.
+ if [ "${ROOT_HOME}" != "/root" ]; then
+ bbwarn "Using ${ROOT_HOME} as root user's home directory is not fully supported by systemd"
+ sed -i -e 's#/root#${ROOT_HOME}#g' ${D}${exec_prefix}/lib/sysusers.d/basic.conf
+ fi
+ fi
install -d ${D}/${base_sbindir}
if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
# Provided by a separate recipe
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread