From aa9884cb82fc31f73b9f37907a59fdd106338b08 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 29 Jun 2016 14:38:57 +1200 Subject: classes/populate_sdk_ext: exclude initramfs images from locked signatures Tasks for image recipes cannot be locked - there's nothing to restore from shared state to cover them and as a result, if you had "live" in IMAGE_FSTYPES the build would fail with "taskhash mismatch" errors for do_rootfs and do_image_complete for the initramfs image recipe, since it had to try to run those. We should probably catch that issue earlier in the build and produce a proper error, but for now at least exclude these signatures from the locked-sigs.inc file so that extensible SDK installers built when IMAGE_FSTYPES includes "live". (It turned out we already had code to find other image tasks in the task list in order to generate the list of install targets.) Follow-up fix for [YOCTO #9826]. Signed-off-by: Paul Eggleton --- meta/classes/populate_sdk_ext.bbclass | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'meta') diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass index f68cee6a13..23dedaef38 100644 --- a/meta/classes/populate_sdk_ext.bbclass +++ b/meta/classes/populate_sdk_ext.bbclass @@ -39,7 +39,7 @@ SDK_UPDATE_URL ?= "" SDK_TARGETS ?= "${PN}" -def get_sdk_install_targets(d): +def get_sdk_install_targets(d, images_only=False): sdk_install_targets = '' if d.getVar('SDK_EXT_TYPE', True) != 'minimal': sdk_install_targets = d.getVar('SDK_TARGETS', True) @@ -50,8 +50,9 @@ def get_sdk_install_targets(d): if v[0] not in sdk_install_targets: sdk_install_targets += ' {}'.format(v[0]) - if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1': - sdk_install_targets += ' meta-world-pkgdata:do_allpackagedata' + if not images_only: + if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1': + sdk_install_targets += ' meta-world-pkgdata:do_allpackagedata' return sdk_install_targets @@ -280,7 +281,7 @@ python copy_buildsystem () { f.write('\n') # Filter the locked signatures file to just the sstate tasks we are interested in - excluded_targets = d.getVar('SDK_TARGETS', True) + excluded_targets = get_sdk_install_targets(d, images_only=True) sigfile = d.getVar('WORKDIR', True) + '/locked-sigs.inc' lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc' oe.copy_buildsystem.prune_lockedsigs([], -- cgit 1.2.3-korg