1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 05:09:24 +00:00

meta/lib/oe/sstatesig: fix locating stamp files

Fixes "bitbake-diffsigs -t" for changes to the stamp directory layout,
and this time uses the actual value of STAMP to get the location of
sigdata files in the stamp directory rather than trying to do it
manually, which should be a little more robust.

(From OE-Core rev: 82412ebabb0f89c694327ae38f7e864ee8511e7f)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2012-12-05 13:12:19 +00:00
committed by Richard Purdie
parent 40b4bb068f
commit 3e47343675
+23 -19
View File
@@ -80,6 +80,7 @@ def find_siginfo(pn, taskname, taskhashlist, d):
""" Find signature data files for comparison purposes """
import fnmatch
import glob
if taskhashlist:
hashfiles = {}
@@ -93,27 +94,30 @@ def find_siginfo(pn, taskname, taskhashlist, d):
if key.startswith('virtual:native:'):
pn = pn + '-native'
# First search in stamps dir
stampdir = d.getVar('TMPDIR', True) + '/stamps'
filespec = '%s-*.%s.sigdata.*' % (pn, taskname)
filedates = {}
# First search in stamps dir
localdata = d.createCopy()
localdata.setVar('MULTIMACH_TARGET_SYS', '*')
localdata.setVar('PN', pn)
localdata.setVar('PV', '*')
localdata.setVar('PR', '*')
localdata.setVar('EXTENDPE', '')
stamp = localdata.getVar('STAMP', True)
filespec = '%s.%s.sigdata.*' % (stamp, taskname)
foundall = False
for root, dirs, files in os.walk(stampdir):
for fn in files:
if fnmatch.fnmatch(fn, filespec):
fullpath = os.path.join(root, fn)
match = False
if taskhashlist:
for taskhash in taskhashlist:
if fn.endswith('.%s' % taskhash):
hashfiles[taskhash] = fullpath
if len(hashfiles) == len(taskhashlist):
foundall = True
break
else:
filedates[fullpath] = os.stat(fullpath).st_mtime
if foundall:
break
import glob
for fullpath in glob.glob(filespec):
match = False
if taskhashlist:
for taskhash in taskhashlist:
if fullpath.endswith('.%s' % taskhash):
hashfiles[taskhash] = fullpath
if len(hashfiles) == len(taskhashlist):
foundall = True
break
else:
filedates[fullpath] = os.stat(fullpath).st_mtime
if len(filedates) < 2 and not foundall:
# That didn't work, look in sstate-cache