diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-31 23:52:50 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-09 22:42:08 +0100 |
commit | 899d45b90061eb3cf3e71029072eee42cd80930c (patch) | |
tree | 1cef6538b7ff613f4ad79c05640468b6c92fbdec | |
parent | d000493c09ac5c1dcbab22d3a91296a9cb194ac0 (diff) | |
download | bitbake-contrib-899d45b90061eb3cf3e71029072eee42cd80930c.tar.gz |
bitbake/data_smart: Change overrides behaviour to remove expanded variables from the datastore
Currently if you do:
OVERRIDES = "z"
DEPENDS_prepend = "a "
DEPENDS = "b"
DEPENDS_z = "c"
d.update_data()
d.getVar("DEPENDS")
gives "a c"
d.update_data()
d.getVar("DEPENDS")
then gives "c"
This patch changes the behaviour such that at the time bitbake expands the DEPENDS_z
override, it removes "DEPENDS_z" from the data store. In the above example this would
mean that it wouldn't matter how often you call d.update_data(), you'd always get
"a c" back.
See the bitbake-devel mailing list for further discussion and analysis of the
potential impact of this change.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | lib/bb/data_smart.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index 64a900c55..93c1b81ae 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -172,11 +172,13 @@ class DataSmart(MutableMapping): if o not in self._seen_overrides: continue - vars = self._seen_overrides[o] + vars = self._seen_overrides[o].copy() for var in vars: name = var[:-l] try: self.setVar(name, self.getVar(var, False)) + self.delVar(var) + self._seen_overrides[o].remove(var) except Exception: logger.info("Untracked delVar") |