diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-11-29 10:29:06 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-12-03 15:13:17 +0000 |
| commit | 73f57eb939b2409361401164e73fc9a08a288aa3 (patch) | |
| tree | 3401f91d24ca7ea919182346ab6090328bafdb27 /bitbake/lib/bb | |
| parent | 525cc08cc556277c69a1b2bdf027df9cd74de0cb (diff) | |
| download | poky-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/lib/bb')
| -rw-r--r-- | bitbake/lib/bb/data_smart.py | 10 |
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())]) |
