summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/bin/bitbake-worker10
1 files changed, 9 insertions, 1 deletions
diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker
index 3ca8c1853b..b3877b15c0 100755
--- a/bitbake/bin/bitbake-worker
+++ b/bitbake/bin/bitbake-worker
@@ -16,6 +16,8 @@ import signal
16import pickle 16import pickle
17import traceback 17import traceback
18import queue 18import queue
19import shlex
20import subprocess
19from multiprocessing import Lock 21from multiprocessing import Lock
20from threading import Thread 22from threading import Thread
21 23
@@ -145,6 +147,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
145 # a fork() or exec*() activates PSEUDO... 147 # a fork() or exec*() activates PSEUDO...
146 148
147 envbackup = {} 149 envbackup = {}
150 fakeroot = False
148 fakeenv = {} 151 fakeenv = {}
149 umask = None 152 umask = None
150 153
@@ -164,6 +167,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
164 167
165 # We can't use the fakeroot environment in a dry run as it possibly hasn't been built 168 # We can't use the fakeroot environment in a dry run as it possibly hasn't been built
166 if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run: 169 if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
170 fakeroot = True
167 envvars = (workerdata["fakerootenv"][fn] or "").split() 171 envvars = (workerdata["fakerootenv"][fn] or "").split()
168 for key, value in (var.split('=') for var in envvars): 172 for key, value in (var.split('=') for var in envvars):
169 envbackup[key] = os.environ.get(key) 173 envbackup[key] = os.environ.get(key)
@@ -282,7 +286,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
282 try: 286 try:
283 if dry_run: 287 if dry_run:
284 return 0 288 return 0
285 return bb.build.exec_task(fn, taskname, the_data, cfg.profile) 289 ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
290 if fakeroot:
291 fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
292 subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
293 return ret
286 except: 294 except:
287 os._exit(1) 295 os._exit(1)
288 if not profiling: 296 if not profiling: