From e7cfd7d7a0fa3d85cb103c1a22066cb3e623d1fd Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 3 Oct 2025 16:11:02 +0100 Subject: bitbake: ast: Fix fragment behaviour with overrides 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: 6b4882a55567d440713ee34d81810167cd958d56) Signed-off-by: Richard Purdie --- bitbake/lib/bb/parse/ast.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 3250211e60..2a98809fa5 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py @@ -363,7 +363,8 @@ class AddFragmentsNode(AstNode): def check_and_set_builtin_fragment(fragment, data, builtin_fragments): prefix, value = fragment.split('/', 1) if prefix in builtin_fragments.keys(): - data.setVar(builtin_fragments[prefix], value) + # parsing=True since we want to emulate X=Y and allow X:override=Z to continue to exist + data.setVar(builtin_fragments[prefix], value, parsing=True) return True return False -- cgit v1.2.3-54-g00ecf