From: Ernest Van Hoecke <ernestvanhoecke@gmail.com>
To: bitbake-devel@lists.openembedded.org
Cc: Alexander Kanavin <alex@linutronix.de>,
Antonin Godard <antonin.godard@bootlin.com>,
docs@lists.yoctoproject.org,
Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
Subject: [PATCH v2] bitbake-setup: write notes for generated build configs
Date: Tue, 09 Jun 2026 13:59:14 +0200 [thread overview]
Message-ID: <20260609-bb-setup-notes-v2-1-a697d76a7ecf@toradex.com> (raw)
From: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
For bb-layers configurations, bitbake-setup currently writes an empty
"conf-notes.txt". Configurations using "oe-template" get this file from
the template.
Add an optional field called "notes" to configurations that populates
this field when "bb-layers" is used instead of "oe-template".
Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
---
Add a "notes" string property that can be used to populate
"conf-notes.txt" when bb-layers is used instead of oe-template.
---
Changes in v2:
- The "notes" field can now either be an array of strings (lines) or
just a string.
- Link to v1: https://lore.kernel.org/r/20260529-bb-setup-notes-v1-0-a251ef1c5af4@toradex.com
---
bin/bitbake-setup | 5 ++++-
.../bitbake-user-manual-environment-setup.rst | 6 ++++++
lib/bb/tests/setup.py | 9 +++++++++
setup-schema/bitbake-setup.schema.json | 14 ++++++++++++++
4 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/bin/bitbake-setup b/bin/bitbake-setup
index 69c9882f4c45..fe3b6b0e67d0 100755
--- a/bin/bitbake-setup
+++ b/bin/bitbake-setup
@@ -301,7 +301,10 @@ def setup_bitbake_build(bitbake_config, layerdir, setupdir, thisdir, update_bb_c
f.write(bitbake_config["description"] + "\n")
with open(os.path.join(build_conf_dir, "conf-notes.txt"), 'w') as f:
- f.write("")
+ notes = bitbake_config.get("notes")
+ if isinstance(notes, list):
+ notes = "\n".join(notes)
+ f.write(notes + "\n" if notes else "")
def _make_init_build_env(builddir, oeinitbuildenvdir):
builddir = os.path.realpath(builddir)
diff --git a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst
index 1252f22c823a..aa546c30b9c9 100644
--- a/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst
+++ b/doc/bitbake-user-manual/bitbake-user-manual-environment-setup.rst
@@ -1057,6 +1057,12 @@ They contain the following sections:
snippet. This is what is prompted during the
:ref:`ref-bbsetup-command-init` command execution.
+ - ``notes`` (*optional*): additional information written to
+ ``build/conf/conf-notes.txt`` when ``bitbake-setup`` generates the build
+ configuration from ``bb-layers``. This can be a string, or a list of
+ strings which will be written one per line. For ``oe-template``
+ configurations, this file is provided by the template.
+
- ``configurations``: Configurations can recursively contain as many nested
configurations as needed. This will create more choices when running the
:ref:`ref-bbsetup-command-init` command.
diff --git a/lib/bb/tests/setup.py b/lib/bb/tests/setup.py
index b30168ed61de..5592e81965d2 100644
--- a/lib/bb/tests/setup.py
+++ b/lib/bb/tests/setup.py
@@ -136,6 +136,10 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"]))
{
"name": "gadget-notemplate",
"description": "Gadget notemplate configuration",
+ "notes": [
+ "Gadget notemplate notes",
+ "Second line"
+ ],
"bb-layers": ["layerA","layerB/meta-layer"],
"oe-fragments": ["test-fragment-1"]
},
@@ -249,6 +253,11 @@ print("BBPATH is {{}}".format(os.environ["BBPATH"]))
else:
with open(os.path.join(bb_conf_path, 'conf-summary.txt')) as f:
self.assertIn(bitbake_config["description"], f.read())
+ with open(os.path.join(bb_conf_path, 'conf-notes.txt')) as f:
+ expected_notes = bitbake_config.get("notes")
+ if isinstance(expected_notes, list):
+ expected_notes = "\n".join(expected_notes)
+ self.assertEqual(f.read(), expected_notes + "\n" if expected_notes else "")
with open(os.path.join(bb_conf_path, 'bblayers.conf')) as f:
bblayers = f.read()
for l in bitbake_config["bb-layers"]:
diff --git a/setup-schema/bitbake-setup.schema.json b/setup-schema/bitbake-setup.schema.json
index be8772db1b2d..99f47f73d0a6 100644
--- a/setup-schema/bitbake-setup.schema.json
+++ b/setup-schema/bitbake-setup.schema.json
@@ -41,6 +41,20 @@
"type": "string",
"description": "Human-readable description of the configuration"
},
+ "notes": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ],
+ "description": "Extra notes that populate conf-notes.txt when bb-layers is used"
+ },
"bb-layers": {
"type": "array",
"description": "List of BitBake layer paths to include, relative to the layers download directory",
---
base-commit: 26978d55eab18278cc6a527072e8015cfbced9de
change-id: 20260529-bb-setup-notes-0663341b0478
Best regards,
--
Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
reply other threads:[~2026-06-09 11:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260609-bb-setup-notes-v2-1-a697d76a7ecf@toradex.com \
--to=ernestvanhoecke@gmail.com \
--cc=alex@linutronix.de \
--cc=antonin.godard@bootlin.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=docs@lists.yoctoproject.org \
--cc=ernest.vanhoecke@toradex.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox