From: Richard Purdie Date: Tue, 8 Nov 2011 22:19:38 +0000 (+0000) Subject: Add FAKEROOTNOENV variable X-Git-Tag: rev_ivi_2015_02_04~19895 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e73bf727729b6ab16f3a6426d8396a8899569524;p=scm%2Fbb%2Ftizen-distro.git Add FAKEROOTNOENV variable Add a FAKEROOTNOENV which does the opposite of the FAKEROOTENV variable and is data loaded into the environment for tasks without the fakeroot flag. The intent here is to provide a way to control the environment when we aren't needing fakeroot context which allows us to unload the preload from memory entirely and gain a valuable speedup. I'm not 100% happy with needing this at the bitbake level, particularly with the cache hit but it does give a valuable speedup. (Bitbake rev: 05c29ab0b2ad3c521414cabb6a92bca15c6e919c) Signed-off-by: Richard Purdie --- diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index d495f9e..fe35e13 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py @@ -143,6 +143,7 @@ class CoreRecipeInfo(RecipeInfoCommon): self.section = self.getvar('SECTION', metadata) self.fakerootenv = self.getvar('FAKEROOTENV', metadata) self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata) + self.fakerootnoenv = self.getvar('FAKEROOTNOENV', metadata) @classmethod def init_cacheData(cls, cachedata): @@ -178,6 +179,7 @@ class CoreRecipeInfo(RecipeInfoCommon): cachedata.license = {} cachedata.section = {} cachedata.fakerootenv = {} + cachedata.fakerootnoenv = {} cachedata.fakerootdirs = {} def add_cacheData(self, cachedata, fn): @@ -243,6 +245,7 @@ class CoreRecipeInfo(RecipeInfoCommon): cachedata.license[fn] = self.license cachedata.section[fn] = self.section cachedata.fakerootenv[fn] = self.fakerootenv + cachedata.fakerootnoenv[fn] = self.fakerootnoenv cachedata.fakerootdirs[fn] = self.fakerootdirs diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index aca06b5..d0d6f3a 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1096,6 +1096,12 @@ class RunQueueExecute: logger.debug(2, 'Running %s:%s under fakeroot, fakedirs: %s' % (fn, taskname, ', '.join(fakedirs))) + else: + envvars = (self.rqdata.dataCache.fakerootnoenv[fn] or "").split() + for key, value in (var.split('=') for var in envvars): + envbackup[key] = os.environ.get(key) + os.environ[key] = value + fakeenv[key] = value sys.stdout.flush() sys.stderr.flush()