summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-12 13:06:22 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-09-12 17:03:17 +0100
commitdd36930f3f37b2e0e1258de28ac1b1fa99cf196f (patch)
treea4ccbaefd73683ae75186c893a479e3a2be2e496 /bitbake/lib
parent89ca97371d07f8516308597fbb21094389de3cb9 (diff)
downloadpoky-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.py9
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"]: