From patchwork Mon Feb 27 14:37:32 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel, 1/1] data_smart.py: Uses BB_HASHCONFIG_WHITELIST to filter unnecessary variables Date: Mon, 27 Feb 2012 14:37:32 -0000 From: Dongxiao Xu X-Patchwork-Id: 22141 Message-Id: To: bitbake-devel@lists.openembedded.org Adopt the BB_HASHCONFIG_WHITELIST as a exclusion list for variables that are not needed in cache hash calculation. Signed-off-by: Dongxiao Xu CC: Christopher Larson CC: Martin Jansa CC: Andreas Oberritter --- lib/bb/data_smart.py | 16 ++++------------ 1 files changed, 4 insertions(+), 12 deletions(-) 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()