]> code.ossystems Code Review - openembedded-core.git/commitdiff
meta/lib/oe/sstatesig: fix locating stamp files
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Wed, 5 Dec 2012 13:12:19 +0000 (13:12 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 5 Dec 2012 15:23:51 +0000 (15:23 +0000)
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>
meta/lib/oe/sstatesig.py

index 39f9ccf77ee174dfd0fbcf123cf175984159d8d8..79a410eecbee351d04eb301e799679432e8fdd9a 100644 (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