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 16:58:56 +0100 |
commit | 62914f9208ef2427a34daa523af857f4027900eb (patch) | |
tree | d5d4e49e8e137a97384b0a781a9359c8ef156ed1 /lib/bb/data_smart.py | |
parent | 843e9339c5ee3c99657a40a0e2c7dbd777b6ef06 (diff) | |
download | bitbake-contrib-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>
Diffstat (limited to 'lib/bb/data_smart.py')
-rw-r--r-- | lib/bb/data_smart.py | 9 |
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"]: |