diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-08 22:19:38 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-11-10 11:51:11 +0000 |
| commit | 12c6bcbf49d8be27545c132e6f8a18ab4b8fbccd (patch) | |
| tree | 424f13b56b092fe0167b7c3ee3a4b52168f99643 | |
| parent | eda0ed901532ceb55bcf24bbde2c40a0d8759b69 (diff) | |
| download | poky-12c6bcbf49d8be27545c132e6f8a18ab4b8fbccd.tar.gz | |
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 <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/cache.py | 3 | ||||
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index d495f9e75a..fe35e132e9 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py | |||
| @@ -143,6 +143,7 @@ class CoreRecipeInfo(RecipeInfoCommon): | |||
| 143 | self.section = self.getvar('SECTION', metadata) | 143 | self.section = self.getvar('SECTION', metadata) |
| 144 | self.fakerootenv = self.getvar('FAKEROOTENV', metadata) | 144 | self.fakerootenv = self.getvar('FAKEROOTENV', metadata) |
| 145 | self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata) | 145 | self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata) |
| 146 | self.fakerootnoenv = self.getvar('FAKEROOTNOENV', metadata) | ||
| 146 | 147 | ||
| 147 | @classmethod | 148 | @classmethod |
| 148 | def init_cacheData(cls, cachedata): | 149 | def init_cacheData(cls, cachedata): |
| @@ -178,6 +179,7 @@ class CoreRecipeInfo(RecipeInfoCommon): | |||
| 178 | cachedata.license = {} | 179 | cachedata.license = {} |
| 179 | cachedata.section = {} | 180 | cachedata.section = {} |
| 180 | cachedata.fakerootenv = {} | 181 | cachedata.fakerootenv = {} |
| 182 | cachedata.fakerootnoenv = {} | ||
| 181 | cachedata.fakerootdirs = {} | 183 | cachedata.fakerootdirs = {} |
| 182 | 184 | ||
| 183 | def add_cacheData(self, cachedata, fn): | 185 | def add_cacheData(self, cachedata, fn): |
| @@ -243,6 +245,7 @@ class CoreRecipeInfo(RecipeInfoCommon): | |||
| 243 | cachedata.license[fn] = self.license | 245 | cachedata.license[fn] = self.license |
| 244 | cachedata.section[fn] = self.section | 246 | cachedata.section[fn] = self.section |
| 245 | cachedata.fakerootenv[fn] = self.fakerootenv | 247 | cachedata.fakerootenv[fn] = self.fakerootenv |
| 248 | cachedata.fakerootnoenv[fn] = self.fakerootnoenv | ||
| 246 | cachedata.fakerootdirs[fn] = self.fakerootdirs | 249 | cachedata.fakerootdirs[fn] = self.fakerootdirs |
| 247 | 250 | ||
| 248 | 251 | ||
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index aca06b57be..d0d6f3a998 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
| @@ -1096,6 +1096,12 @@ class RunQueueExecute: | |||
| 1096 | 1096 | ||
| 1097 | logger.debug(2, 'Running %s:%s under fakeroot, fakedirs: %s' % | 1097 | logger.debug(2, 'Running %s:%s under fakeroot, fakedirs: %s' % |
| 1098 | (fn, taskname, ', '.join(fakedirs))) | 1098 | (fn, taskname, ', '.join(fakedirs))) |
| 1099 | else: | ||
| 1100 | envvars = (self.rqdata.dataCache.fakerootnoenv[fn] or "").split() | ||
| 1101 | for key, value in (var.split('=') for var in envvars): | ||
| 1102 | envbackup[key] = os.environ.get(key) | ||
| 1103 | os.environ[key] = value | ||
| 1104 | fakeenv[key] = value | ||
| 1099 | 1105 | ||
| 1100 | sys.stdout.flush() | 1106 | sys.stdout.flush() |
| 1101 | sys.stderr.flush() | 1107 | sys.stderr.flush() |
