From 3f15153bebc3f80a3db1ec7a8a4eadb42279d524 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 29 Nov 2012 10:29:06 +0000 Subject: 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: abc3809480b97f1501cae44f13a349cabd01579f) Signed-off-by: Richard Purdie --- bitbake/lib/bb/data_smart.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'bitbake') 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): def get_hash(self): data = {} - config_whitelist = set((self.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split()) - keys = set(key for key in iter(self) if not key.startswith("__")) + d = self.createCopy() + bb.data.expandKeys(d) + bb.data.update_data(d) + + config_whitelist = set((d.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split()) + keys = set(key for key in iter(d) if not key.startswith("__")) for key in keys: if key in config_whitelist: continue - value = self.getVar(key, False) or "" + value = d.getVar(key, False) or "" data.update({key:value}) data_str = str([(k, data[k]) for k in sorted(data.keys())]) -- cgit v1.2.3-54-g00ecf