@@ -465,6 +465,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
@@ -821,7 +830,7 @@ addtask sdk_depends
do_sdk_depends[dirs] = "${WORKDIR}"
do_sdk_depends[depends] = "${@get_ext_sdk_depends(d)} meta-extsdk-toolchain:do_populate_sysroot"
do_sdk_depends[recrdeptask] = "${@d.getVarFlag('do_populate_sdk', 'recrdeptask', False)}"
-do_sdk_depends[recrdeptask] += "do_populate_lic do_package_qa do_populate_sysroot do_deploy ${SDK_RECRDEP_TASKS}"
+do_sdk_depends[recrdeptask] += "do_populate_lic do_package_qa do_populate_sysroot do_deploy do_create_image_sbom_spdx ${SDK_RECRDEP_TASKS}"
do_sdk_depends[rdepends] = "${@' '.join([x + ':do_package_write_${IMAGE_PKGTYPE} ' + x + ':do_packagedata' for x in d.getVar('TOOLCHAIN_HOST_TASK_ESDK').split()])}"
do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}"