classes-global/staging: Exclude do_create_spdx from automatic sysroot extension

do_create_spdx is a outlier in that it doesn't need the RSS to be
extended just because it depends on do_populate_sysroot. In fact, it
only depends on do_populate_sysroot so it can see the actual recipes
sysroot, and attempting to extend the sysroot can cause problems for
some recipes (e.g. if a recipe does do_populate_sysroot[noexec] = "1")

As such, explicitly exclude do_create_spdx from extending the sysroot
just because it depends on do_populate_sysroot.

(From OE-Core rev: 8b506f327838b885bfeb2cf144f43c8be68b8591)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt 2024-07-03 07:59:19 -06:00 committed by Richard Purdie
parent 8ec959bb88
commit 69d7d74ac9

View File

@ -652,10 +652,17 @@ python do_prepare_recipe_sysroot () {
addtask do_prepare_recipe_sysroot before do_configure after do_fetch addtask do_prepare_recipe_sysroot before do_configure after do_fetch
python staging_taskhandler() { python staging_taskhandler() {
EXCLUDED_TASKS = (
"do_prepare_recipe_sysroot",
"do_create_spdx",
)
bbtasks = e.tasklist bbtasks = e.tasklist
for task in bbtasks: for task in bbtasks:
if task in EXCLUDED_TASKS:
continue
deps = d.getVarFlag(task, "depends") deps = d.getVarFlag(task, "depends")
if task != 'do_prepare_recipe_sysroot' and (task == "do_configure" or (deps and "populate_sysroot" in deps)): if task == "do_configure" or (deps and "populate_sysroot" in deps):
d.prependVarFlag(task, "prefuncs", "extend_recipe_sysroot ") d.prependVarFlag(task, "prefuncs", "extend_recipe_sysroot ")
} }
staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess" staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess"