summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-11-29 10:29:06 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-12-03 15:13:17 +0000
commit73f57eb939b2409361401164e73fc9a08a288aa3 (patch)
tree3401f91d24ca7ea919182346ab6090328bafdb27 /bitbake
parent525cc08cc556277c69a1b2bdf027df9cd74de0cb (diff)
downloadpoky-73f57eb939b2409361401164e73fc9a08a288aa3.tar.gz
bitbake: data_smart: Improve get_hash to account for overrides and key expansion
An issue was uncovered where changing: IMAGE_INSTALL_append = "X" to IMAGE_INSTALL_append = "X Y" in local.conf would not get noticed by bitbake. The issue is that the configuration hash doesn't account for overrides or key expansion. This patch improves get_hash to account for these. This means the hash does account for changes like the above. [YOCTO #3503] (Bitbake rev: 86bf1f5603e8f98019544e45f51bd0db9a48112a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/data_smart.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py
index ec3c04e30c..fb8d9d53c0 100644
--- a/bitbake/lib/bb/data_smart.py
+++ b/bitbake/lib/bb/data_smart.py
@@ -474,12 +474,16 @@ class DataSmart(MutableMapping):
474 474
475 def get_hash(self): 475 def get_hash(self):
476 data = {} 476 data = {}
477 config_whitelist = set((self.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split()) 477 d = self.createCopy()
478 keys = set(key for key in iter(self) if not key.startswith("__")) 478 bb.data.expandKeys(d)
479 bb.data.update_data(d)
480
481 config_whitelist = set((d.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split())
482 keys = set(key for key in iter(d) if not key.startswith("__"))
479 for key in keys: 483 for key in keys:
480 if key in config_whitelist: 484 if key in config_whitelist:
481 continue 485 continue
482 value = self.getVar(key, False) or "" 486 value = d.getVar(key, False) or ""
483 data.update({key:value}) 487 data.update({key:value})
484 488
485 data_str = str([(k, data[k]) for k in sorted(data.keys())]) 489 data_str = str([(k, data[k]) for k in sorted(data.keys())])