<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/bitbake/lib/bb/parse, branch master-next</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=master-next</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=master-next'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2025-11-07T13:15:35+00:00</updated>
<entry>
<title>bitbake: parse: Make include_all raise a parse error for absolute paths</title>
<updated>2025-11-07T13:15:35+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2025-09-16T21:19:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=dfa323194890e14ad990ef4856917f84f3075254'/>
<id>urn:sha1:dfa323194890e14ad990ef4856917f84f3075254</id>
<content type='text'>
It makes no sense to use an absolute path with include_all.

(Bitbake rev: 2b19f7b1678974050192a1962244bba594c07bc1)

Signed-off-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Signed-off-by: Mathieu Dubois-Briand &lt;mathieu.dubois-briand@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: parse: Make include_all support empty variable expansions</title>
<updated>2025-11-07T13:15:35+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2025-09-16T21:19:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=08ef69c2d1af7c16f380c893bafda5570e187323'/>
<id>urn:sha1:08ef69c2d1af7c16f380c893bafda5570e187323</id>
<content type='text'>
include and require support empty variable expansions, typically used
with conditional expansions. However, include_all does not, and instead
reports an error for the first path in BBPATH.

Rewrite include_all so that its behavior matches include and require.

(Bitbake rev: 7e3a64b853b5374205c05b0ab09122f09a1eedfb)

Signed-off-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Signed-off-by: Mathieu Dubois-Briand &lt;mathieu.dubois-briand@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Better variable history for builtin fragments</title>
<updated>2025-11-07T13:15:34+00:00</updated>
<author>
<name>Yoann Congal</name>
<email>yoann.congal@smile.fr</email>
</author>
<published>2025-10-13T14:50:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=dd583d1c625e0f6811a299616d0cc5e7f8fa482f'/>
<id>urn:sha1:dd583d1c625e0f6811a299616d0cc5e7f8fa482f</id>
<content type='text'>
As of now, the variable history for builtin fragments looks like this
(edited for clarity):
   $ bitbake-getvar MACHINE
  #
  # $MACHINE [2 operations]
  #   set ast.py:368 [check_and_set_builtin_fragment]
  #     "qemux86-64"
  # pre-expansion value:
  #   "qemux86-64"
  MACHINE="qemux86-64"
User can't know where MACHINE was set, this is bad.

This patch tries to reconstruct a MACHINE history from OE_FRAGMENTS
history.
With this patch, history looks like this (for a simple case):
   $ bitbake-getvar MACHINE
  NOTE: Starting bitbake server...
  #
  # $MACHINE [2 operations]
  #   set .../auto.conf:2
  #     "qemux86-64 (OE_FRAGMENTS contains "machine/qemux86-64")"
  # pre-expansion value:
  #   "qemux86-64"
  MACHINE="qemux86-64"
The path where the "machine/qemux86-64" fragment was added to
OE_FRAGMENTS is displayed, this is definitely better.

Fixes [YOCTO #15939]

(Bitbake rev: 54053e0e402c1ed9ae5fe4ed04fc690ecd4b779f)

Signed-off-by: Yoann Congal &lt;yoann.congal@smile.fr&gt;
Signed-off-by: Mathieu Dubois-Briand &lt;mathieu.dubois-briand@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Warn on multiple builtin config fragments for the same variable</title>
<updated>2025-10-13T22:30:31+00:00</updated>
<author>
<name>Yoann Congal</name>
<email>yoann.congal@smile.fr</email>
</author>
<published>2025-10-10T08:29:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=b203f9146e1c5ce38bdc55e93f769a14b8fce6ba'/>
<id>urn:sha1:b203f9146e1c5ce38bdc55e93f769a14b8fce6ba</id>
<content type='text'>
Having multiple builtin config fragments for the same variable
(eg OE_FRAGMENTS = "... machine/A ... machine/B") is not supported.
Warn the user to make them fix this but continue with the normal
variable evaluation : the last affectation "wins".

Added warning looks like:
WARNING: Multiple builtin fragments are enabled for machine via variable OE_FRAGMENTS: machine/qemux86-64 machine/test machine/qemux86-64. This likely points to a mis-configuration in the metadata, as only one of them should be set. The build will use the last value.

(Bitbake rev: 1c12aa23f6678dc289fc0e0d8b4dad311bd39c35)

Signed-off-by: Yoann Congal &lt;yoann.congal@smile.fr&gt;
Signed-off-by: Mathieu Dubois-Briand &lt;mathieu.dubois-briand@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Fix fragment behaviour with overrides</title>
<updated>2025-10-09T11:48:47+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-10-03T15:11:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=8cf9a46970cb09ce0c1ee38d5f3916fb79e19057'/>
<id>urn:sha1:8cf9a46970cb09ce0c1ee38d5f3916fb79e19057</id>
<content type='text'>
Imagine a machine fragment machine/A and a configuration which sets:

MACHINE = "B"
MACHINE:forcevariable = "C"

As I understand it, the fragment behaviour was intended to replace the
MACHINE = "B", so the override would still be active. The current code
replaces all variable overrides.

parsing=True, switches to the other behaviour, which I believe was the
design intent and the behaviour users would expect.

This is useful to allow test configurations to override a MACHINE setting
without change the fragments which would complicate the test code.

(Bitbake rev: f65bc6aaf4c11bc7e566c895209c093627a3015b)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: parse/ast: add support for 'built-in' fragments</title>
<updated>2025-06-20T11:03:37+00:00</updated>
<author>
<name>Alexander Kanavin</name>
<email>alex@linutronix.de</email>
</author>
<published>2025-06-18T09:20:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=941ac7d2562ddc39ffcb85ebcc64621b132cf1d3'/>
<id>urn:sha1:941ac7d2562ddc39ffcb85ebcc64621b132cf1d3</id>
<content type='text'>
When reviewing proposed fragments to add settings for DISTRO and MACHINE,
RP noted that such fragments only add clutter and overhead, and there's
no need to maintain them as separate files.

Rather when bitbake sees 'fragmentvar/fragmentvalue' it can expand that into
FRAGMENTVAR = "fragmentvalue".

To achieve that, 'addfragments' directive is extended with a parameter
that sets the name of the variable that holds definitions of such
built-in fragments, for example like this:

"machine:MACHINE distro:DISTRO"

Then each enabled fragment name is matched against these definitions and the
respective variable is set, e.g. 'machine/qemuarm' would match
'machine:MACHINE' and result in MACHINE set to 'qemuarm'.

This happens before any fragment files are looked up on disk,
and no such lookup happens if there was a match, which should prevent
possible misuse of the feature. So the builtin fragment definition
is also an allowlist for them.

Please also see the patches for oe-core that show an application of the feature.

(Bitbake rev: 3b9d7bea915dc7f10e845854f1dae325743f9456)

Signed-off-by: Alexander Kanavin &lt;alex@linutronix.de&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast/BBHandler: Add support for BB_DEFER_BBCLASSES</title>
<updated>2025-06-16T21:23:18+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-06-06T16:44:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=32e44e286692b0aac10a3887a0231e8cd772f082'/>
<id>urn:sha1:32e44e286692b0aac10a3887a0231e8cd772f082</id>
<content type='text'>
Add support for automatically promoting class inherits to deferred inherits
by listing them in the BB_DEFER_BBCLASSES variable.

(Bitbake rev: 8e741b2e885a12d119788d04aa4efcd724dd6bfa)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: event: Add event for deferred inherits</title>
<updated>2025-06-16T21:23:18+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-06-06T10:45:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=e20af03c0210a0a0af1a5daad7cf859ea3e70cc5'/>
<id>urn:sha1:e20af03c0210a0a0af1a5daad7cf859ea3e70cc5</id>
<content type='text'>
Now that deferred inherits are extension specific, we can pass this
list to an event, which our metadata can use to set class overrides
earlier (as an example).

There are limitations to this, the list of classes is unexpanded and
recursive classes are not visible. There isn't much that can be done
about this, the ones we are interested in would usually be visible
at the top level (such as class extensions).

(Bitbake rev: 205d461c05fc7b4a7c81039af3bc3fd71cbb982c)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: ast: Change deferred inherits to happen per recipe</title>
<updated>2025-06-16T21:23:18+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-06-06T10:44:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=f2a15854e2ed9d6e5be395bfe2b92f8fed6f897a'/>
<id>urn:sha1:f2a15854e2ed9d6e5be395bfe2b92f8fed6f897a</id>
<content type='text'>
Currently deferred inherits get processed once for all class extensions
as a minor speed optimisation. Unfortunately this limits our options for
being able to report deferred classes to our code.

There are two challenges with using our deferred classes in OE at present.
One is that PACKAGECONFIG values don't work well with class overrides like
class-native if there are deferred classes based on PACKAGECONFIG, such
as python support. The second is that toolchain selection is proving
problematic to implement due to interactions between the toolchain deferred
inherit, the class extensions and class overrides being very late.

By changing deferred inherits to be recipe extension specific, we open
the way to generate events and "peek" at where things will end up,
allowing the class overrides to be set earlier.

The class extension code is updated to use a deferred inherit for the
class extension inheriting so that it is still inherited last.

(Bitbake rev: 29277cf4d88eb4dfa9572851177d009eab5afd0c)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>bitbake: parse/ConfHandler: Add warning for deprecated whitespace usage</title>
<updated>2025-04-16T16:41:51+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2025-04-02T09:10:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=79fa12ae4b72b967051f7d19ffddac4fe3651171'/>
<id>urn:sha1:79fa12ae4b72b967051f7d19ffddac4fe3651171</id>
<content type='text'>
A lack of whitespace around variable assignment operators makes the
files harder to read.

There is a deeper issue in that a "+" character can sometimes be confused
between the variable name and the assignment operator.

Start showing warnings for such usage so we encourage people to use
consistent whitespace which helps with file readability in general.

(Bitbake rev: 24772dd2ae6c0cd11540a260f15065f906fb0997)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
