From: Jayasurya Maganuru Date: Mon, 15 Dec 2025 15:11:07 +0000 (-0800) Subject: populate_sdk_ext: keep SDK_TARGETS so SPDX/SBOM tasks remain in locked sigs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ee4cffa0cb788fb55af74d6c69bce87fc9ed712;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git populate_sdk_ext: keep SDK_TARGETS so SPDX/SBOM tasks remain in locked sigs Fixes [YOCTO #15853] The filtering in populate_sdk_ext.bbclass was removing all image targets from the locked signatures, including the main SDK images (SDK_TARGETS). As a result, their tasks including the image SPDX/SBOM tasks were not added to locked-sigs.inc. Without these entries, the eSDK lacked the necessary sstate, and the installer attempted to run the missing tasks during installation, leading to unexpected task execution errors. This patch keeps SDK_TARGETS (and their multilib variants) in the locked signatures so their SPDX/SBOM tasks are included. With those tasks in the sstate cache, the eSDK installs cleanly without needing to re-run anything. Signed-off-by: Jayasurya Maganuru Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/populate_sdk_ext.bbclass b/meta/classes-recipe/populate_sdk_ext.bbclass index 2859320ddf..2838ca1a03 100644 --- a/meta/classes-recipe/populate_sdk_ext.bbclass +++ b/meta/classes-recipe/populate_sdk_ext.bbclass @@ -460,6 +460,15 @@ def prepare_locked_cache(d, baseoutpath, derivative, conf_initpath): # Filter the locked signatures file to just the sstate tasks we are interested in excluded_targets = get_sdk_install_targets(d, images_only=True) + sdk_targets = d.getVar('SDK_TARGETS') + ext_sdk_target_set = set(multilib_pkg_extend(d, sdk_targets).split()) + excluded_set = set(excluded_targets.split()) + + # Ensure SDK_TARGETS and their image SPDX/SBOM tasks are included in the locked signatures, + # as they are required during eSDK installation. + filtered_excluded_set = excluded_set - ext_sdk_target_set + excluded_targets = ' '.join(filtered_excluded_set) + sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc' lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc' #nativesdk-only sigfile to merge into locked-sigs.inc