On Wed, 2026-04-29 at 02:29 -0700, Dora, Sunil Kumar via lists.openembedded.org 
wrote:
> From: Jayasurya Maganuru <[email protected]>
> 
> 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 <[email protected]>
> Signed-off-by: Sunil Dora <[email protected]>
> ---
>  meta/classes-recipe/populate_sdk_ext.bbclass | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/meta/classes-recipe/populate_sdk_ext.bbclass 
> b/meta/classes-recipe/populate_sdk_ext.bbclass
> index 071cf959e7..d17fc3af64 100644
> --- a/meta/classes-recipe/populate_sdk_ext.bbclass
> +++ b/meta/classes-recipe/populate_sdk_ext.bbclass
> @@ -461,6 +461,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

I've commented on the bug for this, I wasn't able to reproduce the
problem. If someone can explain how to reproduce the bug with master,
I'm willing to look at it further.

Having stared at this code a lot, I'm not convinced this patch is right
at all, quite the opposite. SDK_TARGETS are explicitly not included in
the locked sigs and there isn't a rationale for changing that here. In
my own tests, whilst the spdx tasks for the SDK_TARGET do run, they do
so with all the right sstate present so it is all working as designed.

This patch is therefore not right and if there is a problem, I'd like
to see a way to reproduce it.

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#244126): 
https://lists.openembedded.org/g/openembedded-core/message/244126
Mute This Topic: https://lists.openembedded.org/mt/119061651/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to