summaryrefslogtreecommitdiffstats
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 16:58:56 +0100
commit62914f9208ef2427a34daa523af857f4027900eb (patch)
treed5d4e49e8e137a97384b0a781a9359c8ef156ed1
parent843e9339c5ee3c99657a40a0e2c7dbd777b6ef06 (diff)
downloadbitbake-62914f9208ef2427a34daa523af857f4027900eb.tar.gz
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/data_smart.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 20e33a487..635b25983 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -635,13 +635,13 @@ class DataSmart(MutableMapping):
self.varhistory.record(**loginfo)
self.dict[var][i] = flags[i]
- def getVarFlags(self, var):
+ def getVarFlags(self, var, internalflags=False):
local_var = self._findVar(var)
flags = {}
if local_var:
for i in local_var:
- if i.startswith("_"):
+ if i.startswith("_") and not internalflags:
continue
flags[i] = local_var[i]
@@ -750,13 +750,16 @@ class DataSmart(MutableMapping):
for key in keys:
if key in config_whitelist:
continue
+
value = d.getVar(key, False) or ""
data.update({key:value})
- varflags = d.getVarFlags(key)
+ varflags = d.getVarFlags(key, internalflags = True)
if not varflags:
continue
for f in varflags:
+ if f == "_content":
+ continue
data.update({'%s[%s]' % (key, f):varflags[f]})
for key in ["__BBTASKS", "__BBANONFUNCS", "__BBHANDLERS"]: