[PATCH 1/7] cooker: fix bitbake -b silently ignoring bbappends
AdrianF <[email protected]>
| Newsgroups | org.openembedded.lists.bitbake-devel |
|---|---|
| Message-ID | <[email protected]> |
From: Adrian Freihofer <[email protected]> "bitbake -b <recipe.bb>" builds the recipe without applying any of its .bbappend files. buildFileInternal() resolves appends via self.collections[mc].get_file_appends(fn), but self.collections[mc] is only ever filled in by collect_bbfiles(), called from updateCache() - a path -b deliberately skips. matchFiles(), the one -b-path function that does call collect_bbfiles(), built a fresh CookerCollectFiles into a throwaway local instead of self.collections[mc], so the append list stayed empty (or, on a memory-resident server, stale from the last full parse - e.g. missing a devtool/externalsrc workspace .bbappend added since). Nothing warns that the built metadata differs from disk. Make matchFiles() refresh self.collections[mc] itself so the later append lookup for the same fn sees the same fresh collection. AI-Generated: Uses GitHub Copilot Signed-off-by: Adrian Freihofer <[email protected]> --- lib/bb/cooker.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 4b6ba3196..108551a60 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -1322,8 +1322,10 @@ You can also remove the BB_HASHSERVE_UPSTREAM setting, but this may result in si if bf.startswith("/") or bf.startswith("../"): bf = os.path.abspath(bf) - collections = {mc: CookerCollectFiles(self.bbfile_config_priorities, mc)} - filelist, masked, searchdirs = collections[mc].collect_bbfiles(self.databuilder.mcdata[mc], self.databuilder.mcdata[mc]) + # The only place the "bitbake -b" path fills in the bbappends which + # buildFileInternal() then reads back from self.collections[mc]. + self.collections[mc] = CookerCollectFiles(self.bbfile_config_priorities, mc) + filelist, masked, searchdirs = self.collections[mc].collect_bbfiles(self.databuilder.mcdata[mc], self.databuilder.mcdata[mc]) try: os.stat(bf) bf = os.path.abspath(bf) -- 2.55.0