summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongxiao Xu <dongxiao.xu@intel.com>2012-04-17 16:21:37 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-04-17 11:41:31 +0100
commitc27655793bbda32409e54920e6e2be446feaf23c (patch)
tree17729c5760b12e1d0b45586f1e20f9504ef4e6e3
parenta6820f43f597fed57eb1f3eacb963ddf5bd0f1f0 (diff)
downloadpoky-c27655793bbda32409e54920e6e2be446feaf23c.tar.gz
poky-c27655793bbda32409e54920e6e2be446feaf23c.tar.bz2
poky-c27655793bbda32409e54920e6e2be446feaf23c.zip
data_smart: Improve the calculation of config hash
For config hash, we put the keys in structure of "set()", which is not order sensitive. Therefore when calculating the md5 value for config hash, we need to identify the order of the keys. (Bitbake rev: 0f1b142a3f6b8125bf023c2e5ec269618869abf7) Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/data_smart.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index 2c200db32b..27fb7d9915 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -462,13 +462,14 @@ class DataSmart(MutableMapping):
self.delVar(var)
def get_hash(self):
- data = ""
+ data = {}
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 config_whitelist:
continue
value = self.getVar(key, False) or ""
- data = data + key + ': ' + str(value) + '\n'
+ data.update({key:value})
- return hashlib.md5(data).hexdigest()
+ data_str = str([(k, data[k]) for k in sorted(data.keys())])
+ return hashlib.md5(data_str).hexdigest()