bitbake/lib/bb/cache.py:
authorRichard Purdie <rpurdie@linux.intel.com>
Sun, 16 Apr 2006 17:39:07 +0000 (17:39 +0000)
committerRichard Purdie <rpurdie@linux.intel.com>
Sun, 16 Apr 2006 17:39:07 +0000 (17:39 +0000)
* Detect and remove deleted files from the cache
* Add/enable/fix cache debugging
bitbake/bin/bitbake:
* Cache rdepends and rrecommends against filenames as well as pn

bin/bitbake
lib/bb/cache.py

index 508d34c..af5704b 100755 (executable)
@@ -133,16 +133,21 @@ class BBParsingStatus:
                 if not dep in deplist:
                     deplist[dep] = ""
 
+        if not file_name in self.rundeps:
+            self.rundeps[file_name] = {}
+        if not file_name in self.runrecs:
+            self.runrecs[file_name] = {}
+
         for package in packages + [pn]:
-            if not package in self.rundeps:
-                self.rundeps[package] = {}
-            if not package in self.runrecs:
-                self.runrecs[package] = {}
+            if not package in self.rundeps[file_name]:
+                self.rundeps[file_name][package] = {}
+            if not package in self.runrecs[file_name]:
+                self.runrecs[file_name][package] = {}
 
-            add_dep(self.rundeps[package], bb.utils.explode_deps(bb_cache.getVar('RDEPENDS', file_name, True) or ""))
-            add_dep(self.runrecs[package], bb.utils.explode_deps(bb_cache.getVar('RRECOMMENDS', file_name, True) or ""))
-            add_dep(self.rundeps[package], bb.utils.explode_deps(bb_cache.getVar("RDEPENDS_%s" % package, file_name, True) or ""))
-            add_dep(self.runrecs[package], bb.utils.explode_deps(bb_cache.getVar("RRECOMMENDS_%s" % package, file_name, True) or ""))
+            add_dep(self.rundeps[file_name][package], bb.utils.explode_deps(bb_cache.getVar('RDEPENDS', file_name, True) or ""))
+            add_dep(self.runrecs[file_name][package], bb.utils.explode_deps(bb_cache.getVar('RRECOMMENDS', file_name, True) or ""))
+            add_dep(self.rundeps[file_name][package], bb.utils.explode_deps(bb_cache.getVar("RDEPENDS_%s" % package, file_name, True) or ""))
+            add_dep(self.runrecs[file_name][package], bb.utils.explode_deps(bb_cache.getVar("RRECOMMENDS_%s" % package, file_name, True) or ""))
 
         # Collect files we may need for possible world-dep
         # calculations
@@ -676,10 +681,10 @@ class BBCooker:
         rdepends = []
         self.rbuild_cache.append(item)
 
-        if item in self.status.rundeps:
-            rdepends += self.status.rundeps[item].keys()
-        if item in self.status.runrecs:
-            rdepends += self.status.runrecs[item].keys()
+        if fn in self.status.rundeps and item in self.status.rundeps[fn]:
+            rdepends += self.status.rundeps[fn][item].keys()
+        if fn in self.status.runrecs and item in self.status.runrecs[fn]:
+            rdepends += self.status.runrecs[fn][item].keys()
 
         bb.debug(2, "Additional runtime dependencies for %s are: %s" % (item, " ".join(rdepends)))
 
index 1d9ffbe..5899356 100644 (file)
@@ -157,16 +157,25 @@ class Cache:
         if self.cachedir in [None, '']:
             return False
 
+        # Check file still exists
+        if self.mtime(fn) == 0:
+            bb.debug(2, "Cache: %s not longer exists" % fn)
+            if fn in self.clean:
+                del self.clean[fn]
+            if fn in self.depends_cache:
+                del self.depends_cache[fn]
+            return False
+
         # File isn't in depends_cache
         if not fn in self.depends_cache:
-            bb.note("Cache: %s is not cached" % fn)
+            bb.debug(2, "Cache: %s is not cached" % fn)
             if fn in self.clean:
                 del self.clean[fn]
             return False
 
         # Check the file's timestamp
         if bb.parse.cached_mtime(fn) > self.getVar("CACHETIMESTAMP", fn, True):
-            bb.note("Cache: %s changed" % fn)
+            bb.debug(2, "Cache: %s changed" % fn)
             if fn in self.clean:
                 del self.clean[fn]
             return False
@@ -180,12 +189,12 @@ class Cache:
                 old_mtime = int(old_mtime_s)
                 new_mtime = bb.parse.cached_mtime(f)
                 if (new_mtime > old_mtime):
-                    bb.note("Cache: %s's dependency %s changed" % (fn, f))
+                    bb.debug(2, "Cache: %s's dependency %s changed" % (fn, f))
                     if fn in self.clean:
                         del self.clean[fn]
                     return False
 
-        #bb.note("Depends Cache: %s is clean" % fn)
+        bb.debug(2, "Depends Cache: %s is clean" % fn)
         if not fn in self.clean:
             self.clean[fn] = ""