From: Richard Purdie Date: Tue, 31 May 2011 22:52:50 +0000 (+0100) Subject: bitbake/data_smart: Change overrides behaviour to remove expanded variables from... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=899d45b90061eb3cf3e71029072eee42cd80930c;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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 --- diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index 64a900c556a..93c1b81aeee 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")