diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-12 13:06:22 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-09-12 17:03:17 +0100 |
| commit | dd36930f3f37b2e0e1258de28ac1b1fa99cf196f (patch) | |
| tree | a4ccbaefd73683ae75186c893a479e3a2be2e496 /bitbake/lib/bb/data_smart.py | |
| parent | 89ca97371d07f8516308597fbb21094389de3cb9 (diff) | |
| download | poky-dd36930f3f37b2e0e1258de28ac1b1fa99cf196f.tar.gz | |
bitbake: data_smart: Account for changes in append/prepend/remove in the config hash
bitbake wasn't reparsing when _remove items were added to its configuration
and equally, appends/prepends were also being badly tracked. This
change enrures these variables are accounted for in the configuration
hash.
[YOCTO #5172]
(Bitbake rev: 62914f9208ef2427a34daa523af857f4027900eb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
| -rw-r--r-- | bitbake/lib/bb/data_smart.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 20e33a4870..635b259830 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
| @@ -635,13 +635,13 @@ class DataSmart(MutableMapping): | |||
| 635 | self.varhistory.record(**loginfo) | 635 | self.varhistory.record(**loginfo) |
| 636 | self.dict[var][i] = flags[i] | 636 | self.dict[var][i] = flags[i] |
| 637 | 637 | ||
| 638 | def getVarFlags(self, var): | 638 | def getVarFlags(self, var, internalflags=False): |
| 639 | local_var = self._findVar(var) | 639 | local_var = self._findVar(var) |
| 640 | flags = {} | 640 | flags = {} |
| 641 | 641 | ||
| 642 | if local_var: | 642 | if local_var: |
| 643 | for i in local_var: | 643 | for i in local_var: |
| 644 | if i.startswith("_"): | 644 | if i.startswith("_") and not internalflags: |
| 645 | continue | 645 | continue |
| 646 | flags[i] = local_var[i] | 646 | flags[i] = local_var[i] |
| 647 | 647 | ||
| @@ -750,13 +750,16 @@ class DataSmart(MutableMapping): | |||
| 750 | for key in keys: | 750 | for key in keys: |
| 751 | if key in config_whitelist: | 751 | if key in config_whitelist: |
| 752 | continue | 752 | continue |
| 753 | |||
| 753 | value = d.getVar(key, False) or "" | 754 | value = d.getVar(key, False) or "" |
| 754 | data.update({key:value}) | 755 | data.update({key:value}) |
| 755 | 756 | ||
| 756 | varflags = d.getVarFlags(key) | 757 | varflags = d.getVarFlags(key, internalflags = True) |
| 757 | if not varflags: | 758 | if not varflags: |
| 758 | continue | 759 | continue |
| 759 | for f in varflags: | 760 | for f in varflags: |
| 761 | if f == "_content": | ||
| 762 | continue | ||
| 760 | data.update({'%s[%s]' % (key, f):varflags[f]}) | 763 | data.update({'%s[%s]' % (key, f):varflags[f]}) |
| 761 | 764 | ||
| 762 | for key in ["__BBTASKS", "__BBANONFUNCS", "__BBHANDLERS"]: | 765 | for key in ["__BBTASKS", "__BBANONFUNCS", "__BBHANDLERS"]: |
