Patchwork [bitbake-devel,1/1] data_smart.py: Uses BB_HASHCONFIG_WHITELIST to filter unnecessary variables

login
register
mail settings
Submitter Dongxiao Xu
Date Feb. 27, 2012, 2:37 p.m.
Message ID <a5c0bd3087873d7b3faa9801315eb12460301cd5.1330353017.git.dongxiao.xu@intel.com>
Download mbox | patch
Permalink /patch/22141/
State Accepted
Commit ae8cf138b5eb8f1f28a7143b8d67ad06cbe43061
Headers show

Comments

Dongxiao Xu - Feb. 27, 2012, 2:37 p.m.
Adopt the BB_HASHCONFIG_WHITELIST as a exclusion list for variables that are
not needed in cache hash calculation.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
CC: Christopher Larson <kergoth@gmail.com>
CC: Martin Jansa <martin.jansa@gmail.com>
CC: Andreas Oberritter <obi@opendreambox.org>
---
 lib/bb/data_smart.py |   16 ++++------------
 1 files changed, 4 insertions(+), 12 deletions(-)

Patch

diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 24c7a8f..7765f81 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -463,20 +463,12 @@  class DataSmart(MutableMapping):
 
     def get_hash(self):
         data = ""
-        keys = iter(self)
+        config_whitelist = set((self.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split())
+        keys = set(key for key in iter(self) if not key.startswith("__"))
         for key in keys:
-            if key in ["TIME", "DATE"]:
+            if key in config_whitelist:
                 continue
-            if key == "__depends":
-                deps = list(self.getVar(key, False))
-                deps.sort()
-                value = [deps[i][0] for i in range(len(deps))]
-            elif key == "PATH":
-                path = list(set(self.getVar(key, False).split(':')))
-                path.sort()
-                value = " ".join(path)
-            else:
-                value = self.getVar(key, False) or ""
+            value = self.getVar(key, False) or ""
             data = data + key + ': ' + str(value) + '\n'
 
         return hashlib.md5(data).hexdigest()