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 | |
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')
-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"]: |