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].

(From OE-Core rev: a7133bf6bb650b944d29d01129f36a56282acd2b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2016-06-29 15:13:52 +12:00 committed by Richard Purdie
parent c7ab9f3ca1
commit 23ae622a69
1 changed files with 5 additions and 4 deletions

View File

@ -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
@ -283,7 +284,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([],