[PATCH 0/1] data_smart: fix key expansion in conditional overrides

Nguyen Minh Tien <[email protected]> Sat, 25 Jul 2026 21:30:01 +0700
Newsgroups org.openembedded.lists.bitbake-devel
Message-ID <[email protected]>
An :append whose override name still contains a variable is silently
dropped. From the report:

    RDEPENDS:${PN}:append:pn-packagegroup-cross-canadian-${MACHINE} = " ..."

Still reproduces on master (c251833d2). The mechanism is in the patch;
briefly, renameVar() rebuilds dependent override keys with a string
replace, so renaming RDEPENDS:${PN} leaves the ${MACHINE} behind and the
append lands on a key no override can ever match.

The part worth flagging is the '${' not in newkey guard. Expanding
unconditionally looks like the obvious fix but regresses parsing:
native.bbclass renames to a key that is itself still unexpanded, before
expandKeys() runs, and expanding the dependent keys there turns the later
rename into a no-op. oe-core then parses with three warnings master does
not have, in dbus and python3-psutil. The second of the two added tests
covers this and fails without the guard.

Tested against bitbake c251833d2 and oe-core 9d89b3b802:

 - bitbake-selftest: 790 tests, no failures. Six bb.tests.fetch errors
   remain, host issues that occur identically on master
 - all 952 oe-core recipes parse with no warnings, same as master
 - bitbake -e for dbus-native and python3-psutil-native, the two recipes
   that hit this path, identical to master
 - same parse with multilib enabled, exercising multilib_global.bbclass
 - core-image-minimal builds for qemux86-64, 5275 tasks

Nguyen Minh Tien (1):
  data_smart: fix operations lost when an override name contains a
    variable

 lib/bb/data_smart.py | 11 +++++++++--
 lib/bb/tests/data.py | 25 +++++++++++++++++++++++++
 2 files changed, 34 insertions(+), 2 deletions(-)

-- 
2.34.1