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: f65bc6aaf4c11bc7e566c895209c093627a3015b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2025-10-03 16:11:02 +01:00
parent 8f3b2a4d46
commit 8cf9a46970

View File

@@ -364,7 +364,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