From: Paul Eggleton Date: Fri, 22 Jan 2016 11:59:56 +0000 (+1300) Subject: gen-lockedsig-cache: copy correct native sstate into ext SDK X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~27422 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c6baf6aa1823b8b20123f505e45c2768a193ad5;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git gen-lockedsig-cache: copy correct native sstate into ext SDK When constructing the sstate-cache directory for the extensible SDK, we were copying in any matching native sstate packages, and as the signature doesn't actually change when the distro changes (since NATIVELSBSTRING is just a path separator for the artifacts and is not part of the signature) we ended up copying duplicated packages when the distro changed e.g. upon host distro upgrade. Only search in the NATIVELSBSTRING-named subdirectory for native packages and the issue goes away. Fixes [YOCTO #8885]. Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oe/copy_buildsystem.py b/meta/lib/oe/copy_buildsystem.py index 64755107d80..fb51b5183d4 100644 --- a/meta/lib/oe/copy_buildsystem.py +++ b/meta/lib/oe/copy_buildsystem.py @@ -149,8 +149,9 @@ def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_outpu def create_locked_sstate_cache(lockedsigs, input_sstate_cache, output_sstate_cache, d, fixedlsbstring=""): bb.note('Generating sstate-cache...') - bb.process.run("gen-lockedsig-cache %s %s %s" % (lockedsigs, input_sstate_cache, output_sstate_cache)) + nativelsbstring = d.getVar('NATIVELSBSTRING', True) + bb.process.run("gen-lockedsig-cache %s %s %s %s" % (lockedsigs, input_sstate_cache, output_sstate_cache, nativelsbstring)) if fixedlsbstring: - nativedir = output_sstate_cache + '/' + d.getVar('NATIVELSBSTRING', True) + nativedir = output_sstate_cache + '/' + nativelsbstring if os.path.isdir(nativedir): os.rename(nativedir, output_sstate_cache + '/' + fixedlsbstring) diff --git a/scripts/gen-lockedsig-cache b/scripts/gen-lockedsig-cache index 9c16506cd67..a4e9dede01e 100755 --- a/scripts/gen-lockedsig-cache +++ b/scripts/gen-lockedsig-cache @@ -13,9 +13,9 @@ def mkdir(d): if e.errno != errno.EEXIST: raise e -if len(sys.argv) < 3: +if len(sys.argv) < 5: print("Incorrect number of arguments specified") - print("syntax: gen-lockedsig-cache ") + print("syntax: gen-lockedsig-cache ") sys.exit(1) print('Reading %s' % sys.argv[1]) @@ -30,7 +30,7 @@ files = set() for s in sigs: p = sys.argv[2] + "/" + s[:2] + "/*" + s + "*" files |= set(glob.glob(p)) - p = sys.argv[2] + "/*/" + s[:2] + "/*" + s + "*" + p = sys.argv[2] + "/%s/" % sys.argv[4] + s[:2] + "/*" + s + "*" files |= set(glob.glob(p)) print('Processing files')