[oe-commits] Paul Eggleton : meta/lib/oe/sstatesig: fix locating stamp files

git at git.openembedded.org git at git.openembedded.org
Wed Dec 5 15:29:16 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: 82412ebabb0f89c694327ae38f7e864ee8511e7f
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=82412ebabb0f89c694327ae38f7e864ee8511e7f

Author: Paul Eggleton <paul.eggleton at linux.intel.com>
Date:   Wed Dec  5 13:12:19 2012 +0000

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 at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/lib/oe/sstatesig.py |   42 +++++++++++++++++++++++-------------------
 1 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/meta/lib/oe/sstatesig.py b/meta/lib/oe/sstatesig.py
index 39f9ccf..79a410e 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





More information about the Openembedded-commits mailing list