Commit Graph

8 Commits

Author SHA1 Message Date
Richard Purdie
31625f36de bitbake.conf,lib/configfragments: Use a new dedicated toolcfg.conf file
Rather than using auto.conf which already has established use in CI, or
local.conf which users expect to own/control, start writing "tooling"
controlled settings to a toolcfg.conf.

This frees CI to handle auto.conf as it wants, but avoids the tooling
breaking users local.conf files.

(From OE-Core rev: 3f8616e56b604d7b77a12334a6ce76d265de7323)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-09 10:58:07 +01:00
Alexander Kanavin
2416da36ae lib/bbconfigbuild/configfragments: disable the previous builtin fragment when enabling a new one
There was a flaw in the logic that allowed multiple builtin fragments with
the same prefix to be enabled at the same time. The correct behaviour
is that only one of them should be enabled, and when enabling it
all previously enabled fragments should be removed.

The issues that this caused are further explained in
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15987

[YOCTO #15987]

(From OE-Core rev: aea2d69d0533bf005cd58eb91fd9b3a3ae194610)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-10-06 23:15:59 +01:00
Antonin Godard
3b1a9693b6 lib/configfragments: add a show-fragments command
We can print information on fragments (name, location, description,
etc.), but not their content.

Add a show-fragment command to do that. It can be used as follows:

  $ bitbake-config-build show-fragment core/yocto/sstate-mirror-cdn

And prints:

  .../meta/conf/fragments/yocto/sstate-mirror-cdn.conf:

  BB_CONF_FRAGMENT_SUMMARY = "Use prebuilt sstate artifacts for standard Yocto build configurations."
  BB_CONF_FRAGMENT_DESCRIPTION = "The Yocto Project has prebuilt artefacts available for standard build configurations. \
  ...

(From OE-Core rev: 71cd1ae6a8367f2135855a2904e8b8d4967efd99)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-09-08 18:02:40 +01:00
Alexander Kanavin
724b86c08a lib/bbconfigbuild/configfragments: add support for listing and enabling built-in fragments
Sample output:

$ bitbake-config-build enable-fragment machine/qemuarm
Fragment machine/qemuarm added to /srv/storage/alex/yocto/build-64-alt/conf/auto.conf.

$ bitbake-config-build list-fragments
Available built-in fragments:
machine/...	Sets MACHINE = ...
distro/...	Sets DISTRO = ...

Enabled built-in fragments:
machine/qemuarm	Sets MACHINE = "qemuarm"

... (standard on-disk fragments output follows)

(From OE-Core rev: 47cb11db810bef36e791af84be1d680fd99301c7)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:03:37 +01:00
Alexander Kanavin
70a650c26a bbconfigbuild/configfragments.py: set BBPATH in standalone datastore
Otherwise fragments with 'require' statements will not parse,
as the parser will not be able to find files referred to by
those statements.

Add such a statement to the test fragment so that the scenario
is tested.

[YOCTO #15707]

(From OE-Core rev: d88e63d1a7867b3a4ebfc57d472900136b5361d8)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-01-09 16:59:23 +00:00
Joshua Watt
5cef6cbe2d lib/configfragements: enable/disable multiple fragements at once
Extends the 'enable-fragment' and 'disable-fragment' commands so that
they accept multiple fragments at once as a convenience for the user

(From OE-Core rev: 50c3cdb3a3b9c7daa55ff26d302d95e5f350e4d2)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-01-08 12:37:20 +00:00
Joshua Watt
9054345fb8 lib/configfragments: Restrict fragment file checking
The current implementation of the config fragments is too aggressive in
checking files; any file in the fragment directory is checked, including
hidden files or files with weird extensions. In particular, if an editor
is creating temporary backup files when editing, these will be checked
and will almost assuredly fail, which prevents the tool from running.

Add a filter so that only non-hidden files that end with .conf are
checked.

(From OE-Core rev: 93edab0e2bccacb808421f0766d587c576c1a12b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-01-08 12:37:20 +00:00
Alexander Kanavin
22f046d67c bitbake-config-build: add a plugin for config fragments
This allows fine-tuning local configurations with pre-frabricated
configuration snippets in a structured, controlled way. It's also
an important building block for bitbake-setup.

The tool requires that each fragment contains a one-line summary, and one or more
lines of description, as BB_CONF_FRAGMENT_SUMMARY style metadata.

There are three (and a half) operations (list/enable/disable/disable all), and here's the 'list' output:

alex@Zen2:/srv/storage/alex/yocto/build-64$ bitbake-config-build list-fragments
NOTE: Starting bitbake server...
Available fragments in selftest layer located in /srv/work/alex/poky/meta-selftest:

Enabled fragments:
selftest/test-fragment	This is a configuration fragment intended for testing in oe-selftest context

Unused fragments:
selftest/more-fragments-here/test-another-fragment	This is a second configuration fragment intended for testing in oe-selftest context

(From OE-Core rev: fdb611e13bd7aa00360d3a68e4818ef5f05c8944)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-12-13 11:11:18 +00:00