* [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
@ 2026-03-14 10:27 Richard Purdie
2026-03-14 10:45 ` Patchtest results for " patchtest
2026-03-16 11:21 ` [OE-core] " Peter Kjellerstedt
0 siblings, 2 replies; 8+ messages in thread
From: Richard Purdie @ 2026-03-14 10:27 UTC (permalink / raw)
To: openembedded-core
Other layers need to be able to add dummy recipes. To do this add
DUMMY_PACKAGE_ARCHS_SDK and DUMMY_PACKAGE_ARCHS_TARGET in layer.conf
which can be used to add these to the right places in the code.
Don't add the variables to task signatures as these only matter in the
context of constructed images and not the recipes.
d-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
meta/classes-global/sstate.bbclass | 7 +++----
meta/conf/layer.conf | 3 +++
meta/lib/oe/sstatesig.py | 9 +++------
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
index a7c3f5332a2..fe70a976869 100644
--- a/meta/classes-global/sstate.bbclass
+++ b/meta/classes-global/sstate.bbclass
@@ -86,14 +86,13 @@ SSTATE_ARCHS = " \
${BUILD_ARCH}_${ORIGNATIVELSBSTRING} \
${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \
${SDK_ARCH}-${SDKPKGSUFFIX} \
- buildtools-dummy-${SDKPKGSUFFIX} \
- sdk-provides-dummy-target \
- sdk-provides-dummy-${SDKPKGSUFFIX} \
+ ${DUMMY_PACKAGE_ARCHS_SDK} \
+ ${DUMMY_PACKAGE_ARCHS_TARGET} \
allarch \
${SSTATE_ARCHS_TUNEPKG} \
${PACKAGE_EXTRA_ARCHS} \
${MACHINE_ARCH}"
-SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING"
+SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING DUMMY_PACKAGE_ARCHS_SDK DUMMY_PACKAGE_ARCHS_TARGET"
SSTATECREATEFUNCS += "sstate_hardcode_path"
SSTATECREATEFUNCS[vardeps] = "SSTATE_SCAN_FILES"
diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
index ba25ca30296..4794e660aed 100644
--- a/meta/conf/layer.conf
+++ b/meta/conf/layer.conf
@@ -133,6 +133,9 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
# dependency in the recipe.
SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"
+DUMMY_PACKAGE_ARCHS_SDK = "buildtools-dummy-${SDKPKGSUFFIX} sdk-provides-dummy-${SDKPKGSUFFIX}"
+DUMMY_PACKAGE_ARCHS_TARGET = "sdk-provides-dummy-target"
+
# We need to keep bitbake tools in PATH
# Avoid empty path entries
BITBAKEPATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}"
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 86d159ed209..cae12eb8781 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -494,7 +494,7 @@ def sstate_get_manifest_filename(task, d):
d2.setVar("SSTATE_PKGARCH", extrainf)
return (d2.expand("${SSTATE_MANFILEPREFIX}.%s" % task), d2)
-@bb.parse.vardepsexclude("BBEXTENDCURR", "BBEXTENDVARIANT", "OVERRIDES", "PACKAGE_EXTRA_ARCHS")
+@bb.parse.vardepsexclude("BBEXTENDCURR", "BBEXTENDVARIANT", "OVERRIDES", "PACKAGE_EXTRA_ARCHS", "DUMMY_PACKAGE_ARCHS_SDK", "DUMMY_PACKAGE_ARCHS_TARGET")
def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
d2 = d
variant = ''
@@ -513,10 +513,7 @@ def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
if taskdata.endswith("-native"):
pkgarchs = ["${BUILD_ARCH}", "${BUILD_ARCH}_${ORIGNATIVELSBSTRING}"]
elif taskdata.startswith("nativesdk-") or "-cross-canadian" in taskdata:
- pkgarchs = ["${SDK_ARCH}-${SDKPKGSUFFIX}",
- "allarch",
- "buildtools-dummy-${SDKPKGSUFFIX}",
- "sdk-provides-dummy-${SDKPKGSUFFIX}"]
+ pkgarchs = ["${SDK_ARCH}-${SDKPKGSUFFIX}", "allarch", (d.getVar("DUMMY_PACKAGE_ARCHS_SDK") or "").split()]
elif "-cross-" in taskdata:
pkgarchs = ["${BUILD_ARCH}"]
elif "-crosssdk" in taskdata:
@@ -525,7 +522,7 @@ def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
pkgarchs = ['${MACHINE_ARCH}']
pkgarchs = pkgarchs + list(reversed(d2.getVar("PACKAGE_EXTRA_ARCHS").split()))
pkgarchs.append('allarch')
- pkgarchs.append('sdk-provides-dummy-target')
+ pkgarchs.extend((d.getVar("DUMMY_PACKAGE_ARCHS_TARGET") or "").split() )
pkgarchs.append('${SDK_ARCH}-${SDKPKGSUFFIX}')
searched_manifests = []
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Patchtest results for [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-14 10:27 [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings Richard Purdie
@ 2026-03-14 10:45 ` patchtest
2026-03-16 11:21 ` [OE-core] " Peter Kjellerstedt
1 sibling, 0 replies; 8+ messages in thread
From: patchtest @ 2026-03-14 10:45 UTC (permalink / raw)
To: Richard Purdie; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 2157 bytes --]
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:
---
Testing patch /home/patchtest/share/mboxes/sstate-sstatesig-Abstract-dummy-package-architectures-into-layer.conf-settings.patch
FAIL: test Signed-off-by presence: Mbox is missing Signed-off-by. Add it manually or with "git commit --amend -s" (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: pretest pylint (test_python_pylint.PyLint.pretest_pylint)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test commit message user tags (test_mbox.TestMbox.test_commit_message_user_tags)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test pylint (test_python_pylint.PyLint.test_pylint)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)
SKIP: test CVE tag format: No new CVE patches introduced (test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new CVE patches introduced (test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new CVE patches introduced (test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
---
Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-14 10:27 [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings Richard Purdie
2026-03-14 10:45 ` Patchtest results for " patchtest
@ 2026-03-16 11:21 ` Peter Kjellerstedt
2026-03-16 11:28 ` Richard Purdie
1 sibling, 1 reply; 8+ messages in thread
From: Peter Kjellerstedt @ 2026-03-16 11:21 UTC (permalink / raw)
To: richard.purdie@linuxfoundation.org,
openembedded-core@lists.openembedded.org
> -----Original Message-----
> From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org> On Behalf Of Richard Purdie via lists.openembedded.org
> Sent: den 14 mars 2026 11:27
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
>
> Other layers need to be able to add dummy recipes. To do this add
> DUMMY_PACKAGE_ARCHS_SDK and DUMMY_PACKAGE_ARCHS_TARGET in layer.conf
> which can be used to add these to the right places in the code.
>
> Don't add the variables to task signatures as these only matter in the
> context of constructed images and not the recipes.
>
> d-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
> meta/classes-global/sstate.bbclass | 7 +++----
> meta/conf/layer.conf | 3 +++
> meta/lib/oe/sstatesig.py | 9 +++------
> 3 files changed, 9 insertions(+), 10 deletions(-)
>
> diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
> index a7c3f5332a2..fe70a976869 100644
> --- a/meta/classes-global/sstate.bbclass
> +++ b/meta/classes-global/sstate.bbclass
> @@ -86,14 +86,13 @@ SSTATE_ARCHS = " \
> ${BUILD_ARCH}_${ORIGNATIVELSBSTRING} \
> ${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \
> ${SDK_ARCH}-${SDKPKGSUFFIX} \
> - buildtools-dummy-${SDKPKGSUFFIX} \
> - sdk-provides-dummy-target \
> - sdk-provides-dummy-${SDKPKGSUFFIX} \
> + ${DUMMY_PACKAGE_ARCHS_SDK} \
> + ${DUMMY_PACKAGE_ARCHS_TARGET} \
> allarch \
> ${SSTATE_ARCHS_TUNEPKG} \
> ${PACKAGE_EXTRA_ARCHS} \
> ${MACHINE_ARCH}"
> -SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING"
> +SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING DUMMY_PACKAGE_ARCHS_SDK DUMMY_PACKAGE_ARCHS_TARGET"
>
> SSTATECREATEFUNCS += "sstate_hardcode_path"
> SSTATECREATEFUNCS[vardeps] = "SSTATE_SCAN_FILES"
> diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
> index ba25ca30296..4794e660aed 100644
> --- a/meta/conf/layer.conf
> +++ b/meta/conf/layer.conf
> @@ -133,6 +133,9 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
> # dependency in the recipe.
> SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"
>
> +DUMMY_PACKAGE_ARCHS_SDK = "buildtools-dummy-${SDKPKGSUFFIX} sdk-provides-dummy-${SDKPKGSUFFIX}"
> +DUMMY_PACKAGE_ARCHS_TARGET = "sdk-provides-dummy-target"
Wouldn't it be more appropriate to use += for these two?
Otherwise one will have to use :append to add to them in other layers.
> +
> # We need to keep bitbake tools in PATH
> # Avoid empty path entries
> BITBAKEPATH := "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}"
> diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
> index 86d159ed209..cae12eb8781 100644
> --- a/meta/lib/oe/sstatesig.py
> +++ b/meta/lib/oe/sstatesig.py
> @@ -494,7 +494,7 @@ def sstate_get_manifest_filename(task, d):
> d2.setVar("SSTATE_PKGARCH", extrainf)
> return (d2.expand("${SSTATE_MANFILEPREFIX}.%s" % task), d2)
>
> -@bb.parse.vardepsexclude("BBEXTENDCURR", "BBEXTENDVARIANT", "OVERRIDES", "PACKAGE_EXTRA_ARCHS")
> +@bb.parse.vardepsexclude("BBEXTENDCURR", "BBEXTENDVARIANT", "OVERRIDES", "PACKAGE_EXTRA_ARCHS", "DUMMY_PACKAGE_ARCHS_SDK", "DUMMY_PACKAGE_ARCHS_TARGET")
> def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
> d2 = d
> variant = ''
> @@ -513,10 +513,7 @@ def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
> if taskdata.endswith("-native"):
> pkgarchs = ["${BUILD_ARCH}", "${BUILD_ARCH}_${ORIGNATIVELSBSTRING}"]
> elif taskdata.startswith("nativesdk-") or "-cross-canadian" in taskdata:
> - pkgarchs = ["${SDK_ARCH}-${SDKPKGSUFFIX}",
> - "allarch",
> - "buildtools-dummy-${SDKPKGSUFFIX}",
> - "sdk-provides-dummy-${SDKPKGSUFFIX}"]
> + pkgarchs = ["${SDK_ARCH}-${SDKPKGSUFFIX}", "allarch", (d.getVar("DUMMY_PACKAGE_ARCHS_SDK") or "").split()]
> elif "-cross-" in taskdata:
> pkgarchs = ["${BUILD_ARCH}"]
> elif "-crosssdk" in taskdata:
> @@ -525,7 +522,7 @@ def find_sstate_manifest(taskdata, taskdata2, taskname, d, multilibcache):
> pkgarchs = ['${MACHINE_ARCH}']
> pkgarchs = pkgarchs + list(reversed(d2.getVar("PACKAGE_EXTRA_ARCHS").split()))
> pkgarchs.append('allarch')
> - pkgarchs.append('sdk-provides-dummy-target')
> + pkgarchs.extend((d.getVar("DUMMY_PACKAGE_ARCHS_TARGET") or "").split() )
> pkgarchs.append('${SDK_ARCH}-${SDKPKGSUFFIX}')
>
> searched_manifests = []
//Peter
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-16 11:21 ` [OE-core] " Peter Kjellerstedt
@ 2026-03-16 11:28 ` Richard Purdie
2026-03-16 13:03 ` Peter Kjellerstedt
0 siblings, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2026-03-16 11:28 UTC (permalink / raw)
To: Peter Kjellerstedt, openembedded-core@lists.openembedded.org
On Mon, 2026-03-16 at 11:21 +0000, Peter Kjellerstedt wrote:
> > -----Original Message-----
> > From:
> > openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org
> > > On Behalf Of Richard Purdie via lists.openembedded.org
> > Sent: den 14 mars 2026 11:27
> > To: openembedded-core@lists.openembedded.org
> > Subject: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package
> > architectures into layer.conf settings
> >
> > Other layers need to be able to add dummy recipes. To do this add
> > DUMMY_PACKAGE_ARCHS_SDK and DUMMY_PACKAGE_ARCHS_TARGET in
> > layer.conf
> > which can be used to add these to the right places in the code.
> >
> > Don't add the variables to task signatures as these only matter in
> > the
> > context of constructed images and not the recipes.
> >
> > d-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> > ---
> > meta/classes-global/sstate.bbclass | 7 +++----
> > meta/conf/layer.conf | 3 +++
> > meta/lib/oe/sstatesig.py | 9 +++------
> > 3 files changed, 9 insertions(+), 10 deletions(-)
> >
> > diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-
> > global/sstate.bbclass
> > index a7c3f5332a2..fe70a976869 100644
> > --- a/meta/classes-global/sstate.bbclass
> > +++ b/meta/classes-global/sstate.bbclass
> > @@ -86,14 +86,13 @@ SSTATE_ARCHS = " \
> > ${BUILD_ARCH}_${ORIGNATIVELSBSTRING} \
> > ${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \
> > ${SDK_ARCH}-${SDKPKGSUFFIX} \
> > - buildtools-dummy-${SDKPKGSUFFIX} \
> > - sdk-provides-dummy-target \
> > - sdk-provides-dummy-${SDKPKGSUFFIX} \
> > + ${DUMMY_PACKAGE_ARCHS_SDK} \
> > + ${DUMMY_PACKAGE_ARCHS_TARGET} \
> > allarch \
> > ${SSTATE_ARCHS_TUNEPKG} \
> > ${PACKAGE_EXTRA_ARCHS} \
> > ${MACHINE_ARCH}"
> > -SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING"
> > +SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING
> > DUMMY_PACKAGE_ARCHS_SDK DUMMY_PACKAGE_ARCHS_TARGET"
> >
> > SSTATECREATEFUNCS += "sstate_hardcode_path"
> > SSTATECREATEFUNCS[vardeps] = "SSTATE_SCAN_FILES"
> > diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
> > index ba25ca30296..4794e660aed 100644
> > --- a/meta/conf/layer.conf
> > +++ b/meta/conf/layer.conf
> > @@ -133,6 +133,9 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
> > # dependency in the recipe.
> > SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"
> >
> > +DUMMY_PACKAGE_ARCHS_SDK = "buildtools-dummy-${SDKPKGSUFFIX} sdk-
> > provides-dummy-${SDKPKGSUFFIX}"
> > +DUMMY_PACKAGE_ARCHS_TARGET = "sdk-provides-dummy-target"
>
> Wouldn't it be more appropriate to use += for these two?
> Otherwise one will have to use :append to add to them in other
> layers.
That depends on whether your layer is included after core or not. I'd
have thought including before core would be potentially problematic
anyway...
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-16 11:28 ` Richard Purdie
@ 2026-03-16 13:03 ` Peter Kjellerstedt
2026-03-17 8:22 ` Richard Purdie
0 siblings, 1 reply; 8+ messages in thread
From: Peter Kjellerstedt @ 2026-03-16 13:03 UTC (permalink / raw)
To: Richard Purdie, openembedded-core@lists.openembedded.org
> -----Original Message-----
> From: Richard Purdie <richard.purdie@linuxfoundation.org>
> Sent: den 16 mars 2026 12:29
> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
>
> On Mon, 2026-03-16 at 11:21 +0000, Peter Kjellerstedt wrote:
> > > -----Original Message-----
> > > From: openembedded-core@lists.openembedded.org <openembedded-core@lists.openembedded.org On Behalf Of Richard Purdie via lists.openembedded.org
> > > Sent: den 14 mars 2026 11:27
> > > To: openembedded-core@lists.openembedded.org
> > > Subject: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package
> > > architectures into layer.conf settings
> > >
> > > Other layers need to be able to add dummy recipes. To do this add
> > > DUMMY_PACKAGE_ARCHS_SDK and DUMMY_PACKAGE_ARCHS_TARGET in layer.conf
> > > which can be used to add these to the right places in the code.
> > >
> > > Don't add the variables to task signatures as these only matter in the
> > > context of constructed images and not the recipes.
> > >
> > > d-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> > > ---
> > > meta/classes-global/sstate.bbclass | 7 +++----
> > > meta/conf/layer.conf | 3 +++
> > > meta/lib/oe/sstatesig.py | 9 +++------
> > > 3 files changed, 9 insertions(+), 10 deletions(-)
> > >
> > > diff --git a/meta/classes-global/sstate.bbclass b/meta/classes-global/sstate.bbclass
> > > index a7c3f5332a2..fe70a976869 100644
> > > --- a/meta/classes-global/sstate.bbclass
> > > +++ b/meta/classes-global/sstate.bbclass
> > > @@ -86,14 +86,13 @@ SSTATE_ARCHS = " \
> > > ${BUILD_ARCH}_${ORIGNATIVELSBSTRING} \
> > > ${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \
> > > ${SDK_ARCH}-${SDKPKGSUFFIX} \
> > > - buildtools-dummy-${SDKPKGSUFFIX} \
> > > - sdk-provides-dummy-target \
> > > - sdk-provides-dummy-${SDKPKGSUFFIX} \
> > > + ${DUMMY_PACKAGE_ARCHS_SDK} \
> > > + ${DUMMY_PACKAGE_ARCHS_TARGET} \
> > > allarch \
> > > ${SSTATE_ARCHS_TUNEPKG} \
> > > ${PACKAGE_EXTRA_ARCHS} \
> > > ${MACHINE_ARCH}"
> > > -SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING"
> > > +SSTATE_ARCHS[vardepsexclude] = "ORIGNATIVELSBSTRING DUMMY_PACKAGE_ARCHS_SDK DUMMY_PACKAGE_ARCHS_TARGET"
> > >
> > > SSTATECREATEFUNCS += "sstate_hardcode_path"
> > > SSTATECREATEFUNCS[vardeps] = "SSTATE_SCAN_FILES"
> > > diff --git a/meta/conf/layer.conf b/meta/conf/layer.conf
> > > index ba25ca30296..4794e660aed 100644
> > > --- a/meta/conf/layer.conf
> > > +++ b/meta/conf/layer.conf
> > > @@ -133,6 +133,9 @@ SSTATE_EXCLUDEDEPS_SYSROOT += "\
> > > # dependency in the recipe.
> > > SSTATE_EXCLUDEDEPS_SYSROOT += ".*->autoconf-archive-native"
> > >
> > > +DUMMY_PACKAGE_ARCHS_SDK = "buildtools-dummy-${SDKPKGSUFFIX} sdk-provides-dummy-${SDKPKGSUFFIX}"
> > > +DUMMY_PACKAGE_ARCHS_TARGET = "sdk-provides-dummy-target"
> >
> > Wouldn't it be more appropriate to use += for these two?
> > Otherwise one will have to use :append to add to them in other
> > layers.
>
> That depends on whether your layer is included after core or not. I'd
> have thought including before core would be potentially problematic
> anyway...
Sure, but with += the order does not matter.
>
> Cheers,
>
> Richard
We have "meta" as the last layer in BBLAYERS in our setup. E.g.,
these are the external layers I have in one of our configurations:
BBLAYERS ?= " \
...
.../meta-virtualization \
.../meta-webserver \
.../meta-multimedia \
.../meta-filesystems \
.../meta-networking \
.../meta-python \
.../meta-oe \
.../meta-poky \
.../meta \
"
We have them configured like this to as best as possible match the
layer priorities. It is not perfect (e.g., meta-poky prepends to
BBPATH instead of appending like all the other layers do), but it
has resulted in the least surprises regarding things that are based
on BBPATH and things that are based on layer priorities.
//Peter
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-16 13:03 ` Peter Kjellerstedt
@ 2026-03-17 8:22 ` Richard Purdie
2026-03-17 17:41 ` Peter Kjellerstedt
0 siblings, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2026-03-17 8:22 UTC (permalink / raw)
To: Peter Kjellerstedt, openembedded-core@lists.openembedded.org
On Mon, 2026-03-16 at 13:03 +0000, Peter Kjellerstedt wrote:
> > > Wouldn't it be more appropriate to use += for these two?
> > > Otherwise one will have to use :append to add to them in other
> > > layers.
> >
> > That depends on whether your layer is included after core or not.
> > I'd have thought including before core would be potentially
> > problematic anyway...
>
> Sure, but with += the order does not matter.
>
> We have "meta" as the last layer in BBLAYERS in our setup. E.g.,
> these are the external layers I have in one of our configurations:
>
> BBLAYERS ?= " \
> ...
> .../meta-virtualization \
> .../meta-webserver \
> .../meta-multimedia \
> .../meta-filesystems \
> .../meta-networking \
> .../meta-python \
> .../meta-oe \
> .../meta-poky \
> .../meta \
> "
>
> We have them configured like this to as best as possible match the
> layer priorities. It is not perfect (e.g., meta-poky prepends to
> BBPATH instead of appending like all the other layers do), but it
> has resulted in the least surprises regarding things that are based
> on BBPATH and things that are based on layer priorities.
We need to rewrite how this all works and remove some of the options as
it is all too complex and everyone is putting it together differently
and hoping for the best :(.
Trying to "support" the number of possible combinations that people
might put things together is problematic. The ask is that everything
works regardless of how you configure it and nobody even
understands/agrees on the basic rules.
If you don't understand my concern, think about how you'd recreate that
setup just starting from core and using bitbake-layers add-layer. I
don't think you can.
It is too late to do anything about it right now and I've put off
trying to improve things as I know the shear amount of complaints I'll
get but there is a problem here.
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-17 8:22 ` Richard Purdie
@ 2026-03-17 17:41 ` Peter Kjellerstedt
2026-03-17 20:39 ` Richard Purdie
0 siblings, 1 reply; 8+ messages in thread
From: Peter Kjellerstedt @ 2026-03-17 17:41 UTC (permalink / raw)
To: Richard Purdie, openembedded-core@lists.openembedded.org
> -----Original Message-----
> From: Richard Purdie <richard.purdie@linuxfoundation.org>
> Sent: den 17 mars 2026 09:22
> To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; openembedded-core@lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
>
> On Mon, 2026-03-16 at 13:03 +0000, Peter Kjellerstedt wrote:
> > > > Wouldn't it be more appropriate to use += for these two?
> > > > Otherwise one will have to use :append to add to them in other
> > > > layers.
> > >
> > > That depends on whether your layer is included after core or not.
> > > I'd have thought including before core would be potentially
> > > problematic anyway...
> >
> > Sure, but with += the order does not matter.
> >
> > We have "meta" as the last layer in BBLAYERS in our setup. E.g.,
> > these are the external layers I have in one of our configurations:
> >
> > BBLAYERS ?= " \
> > ...
> > .../meta-virtualization \
> > .../meta-webserver \
> > .../meta-multimedia \
> > .../meta-filesystems \
> > .../meta-networking \
> > .../meta-python \
> > .../meta-oe \
> > .../meta-poky \
> > .../meta \
> > "
> >
> > We have them configured like this to as best as possible match the
> > layer priorities. It is not perfect (e.g., meta-poky prepends to
> > BBPATH instead of appending like all the other layers do), but it
> > has resulted in the least surprises regarding things that are based
> > on BBPATH and things that are based on layer priorities.
>
> We need to rewrite how this all works and remove some of the options as
> it is all too complex and everyone is putting it together differently
> and hoping for the best :(.
>
> Trying to "support" the number of possible combinations that people
> might put things together is problematic. The ask is that everything
> works regardless of how you configure it and nobody even
> understands/agrees on the basic rules.
I think one of the biggest problems here actually is the freedom
provided by the current solution for how layers are added and
configured, and I believe we actually want to make it much more
rigid. Which of course will make people scream (possibly
including myself).
> If you don't understand my concern, think about how you'd recreate that
> setup just starting from core and using bitbake-layers add-layer. I
> don't think you can.
Well, actually, I do have some experience in the area. While we
do not use bitbake-layers add-layer, but rather use the layers
as specified in our repo manifests, this still means we have a
different set of layers for each manifest that needs to be put
into the correct order in BBLAYERS. In a perfect world, this
would be done by taking layer priorities and layer dependencies
into consideration. However, we have cheated in our current
solution, so instead we have a static list for the order of
known layers, and any unknown layers go on top (in our case
these are typically project layers that depend on the known
layers anyway).
>
> It is too late to do anything about it right now and I've put off
> trying to improve things as I know the shear amount of complaints I'll
> get but there is a problem here.
I expect you to have given this a lot more thought over the
years than I have, so please take my naïve ideas below for
what they are.
>
> Cheers,
>
> Richard
I would love to see an addlayer command (or something similar)
that would hide all the gory details of layer priorities,
dependencies, and making sure it is consistent when applying
bbappends and the order .conf files are read, etc, and avoids
problems with different layers having their own ideas about how
to do things. Unfortunately, I do realize this is an enormous
job, and getting all the details right will probably be near
impossible, especially as everyone undoubtedly have their own
ideas about how layer configuration should be done (I know I do).
And, unfortunately, I also have a pretty good idea of who would
have to do most work to make anything like this happen.
(I have a feeling I'm not selling this idea very well... ☹)
Another thing I would like to see is that the order in BBLAYERS
does not matter. Instead, the layer dependencies should determine
the order, pretty much like how the task dependencies decide the
order the tasks are executed. Unfortunately, I do not know if
even this is possible, or if my view of how the layers are
configured is too simple.
And if I may be a bit adventurous, I could even see the BBLAYERS
variable being removed altogether (or at least not used as input),
and instead be replaced by, e.g., a drop directory where you
create links to the layers you want to use in a specific
configuration. Then adding/removing a layer to the build is just a
matter of adding/removing a link, which is easily done by tools
like bitbake-setup, bitbake-layers, kas, repo, or even just ln -s,
without having to manipulate an actual configuration file, which
is always error prone.
//Peter
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings
2026-03-17 17:41 ` Peter Kjellerstedt
@ 2026-03-17 20:39 ` Richard Purdie
0 siblings, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2026-03-17 20:39 UTC (permalink / raw)
To: Peter Kjellerstedt, openembedded-core@lists.openembedded.org
On Tue, 2026-03-17 at 17:41 +0000, Peter Kjellerstedt wrote:
>
> I think one of the biggest problems here actually is the freedom
> provided by the current solution for how layers are added and
> configured, and I believe we actually want to make it much more
> rigid. Which of course will make people scream (possibly
> including myself).
Agreed, there are just too many options currently. Anything we choose
to remove or restrict will upset someone though.
>
> I would love to see an addlayer command (or something similar)
> that would hide all the gory details of layer priorities,
Oddly enough, somewhere I have a patch which does add an addlayer
directive so it was something I already experimented with.
The sticking point was that I really wanted to just drop the layer
priority part of the code and I couldn't face the number of complaints
that might generate.
> dependencies, and making sure it is consistent when applying
> bbappends and the order .conf files are read, etc, and avoids
> problems with different layers having their own ideas about how
> to do things. Unfortunately, I do realize this is an enormous
> job, and getting all the details right will probably be near
> impossible, especially as everyone undoubtedly have their own
> ideas about how layer configuration should be done (I know I do).
> And, unfortunately, I also have a pretty good idea of who would
> have to do most work to make anything like this happen.
> (I have a feeling I'm not selling this idea very well... ☹)
The last time I touched this issue, I got into a lot of trouble very
quickly. It needs time available to handle all that correctly and it
simply isn't something I've had.
> Another thing I would like to see is that the order in BBLAYERS
> does not matter. Instead, the layer dependencies should determine
> the order, pretty much like how the task dependencies decide the
> order the tasks are executed. Unfortunately, I do not know if
> even this is possible, or if my view of how the layers are
> configured is too simple.
I'm certainly want to explore that idea. We need to work out what
issues people may run into that couldn't be solved in that case and
whether we're prepared to accept those compromises.
> And if I may be a bit adventurous, I could even see the BBLAYERS
> variable being removed altogether (or at least not used as input),
> and instead be replaced by, e.g., a drop directory where you
> create links to the layers you want to use in a specific
> configuration. Then adding/removing a layer to the build is just a
> matter of adding/removing a link, which is easily done by tools
> like bitbake-setup, bitbake-layers, kas, repo, or even just ln -s,
> without having to manipulate an actual configuration file, which
> is always error prone.
I think BBLAYERS as a list of places to look isn't the main issue at
this point but I appreciate the idea.
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-03-17 20:39 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-14 10:27 [PATCH] sstate/sstatesig: Abstract dummy package architectures into layer.conf settings Richard Purdie
2026-03-14 10:45 ` Patchtest results for " patchtest
2026-03-16 11:21 ` [OE-core] " Peter Kjellerstedt
2026-03-16 11:28 ` Richard Purdie
2026-03-16 13:03 ` Peter Kjellerstedt
2026-03-17 8:22 ` Richard Purdie
2026-03-17 17:41 ` Peter Kjellerstedt
2026-03-17 20:39 ` Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox