summaryrefslogtreecommitdiff
path: root/meta/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2012-12-05 13:12:19 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-05 15:23:51 +0000
commit82412ebabb0f89c694327ae38f7e864ee8511e7f (patch)
treeeea0ad232d858bd2ddaeac59a648d1b8c7ad522e /meta/lib
parent86286287d0134ade73f6a282158dde86bf0159e8 (diff)
downloadopenembedded-core-82412ebabb0f89c694327ae38f7e864ee8511e7f.tar.gz
openembedded-core-82412ebabb0f89c694327ae38f7e864ee8511e7f.tar.bz2
openembedded-core-82412ebabb0f89c694327ae38f7e864ee8511e7f.zip
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. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/sstatesig.py42
1 files changed, 23 insertions, 19 deletions
diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 39f9ccf77e..79a410eecb 100644
--- a/meta/lib/oe/sstatesig.py
+++ b/meta/lib/oe/sstatesig.py
@@ -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