From: Paul Eggleton Date: Mon, 2 Oct 2017 01:55:37 +0000 (+1300) Subject: lib/oe/sstatesig: fix wildcard matching wrong task signature files X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e391bf8df107c186a729105ddc62df4eea87d0b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git lib/oe/sstatesig: fix wildcard matching wrong task signature files With a '*' as a wildcard for the signature here we can also match a portion of the task name with the result that we may match a sigdata file for the wrong task. Luckily the signature is always the same length - 32 characters - so we can simply use 32 '?' characters instead. (A regex would have been another alternative, but the wildcard should be effective and I felt like a regex would complicate the code more than this solution). Fixes [YOCTO #11763]. Signed-off-by: Paul Eggleton --- diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py index 5a4093266d4..3a8778eae01 100644 --- a/meta/lib/oe/sstatesig.py +++ b/meta/lib/oe/sstatesig.py @@ -320,7 +320,7 @@ def find_siginfo(pn, taskname, taskhashlist, d): if not taskhashlist or (len(filedates) < 2 and not foundall): # That didn't work, look in sstate-cache - hashes = taskhashlist or ['*'] + hashes = taskhashlist or ['?' * 32] localdata = bb.data.createCopy(d) for hashval in hashes: localdata.setVar('PACKAGE_ARCH', '*')