summaryrefslogtreecommitdiff
path: root/poky/bitbake/bin/bitbake-worker
diff options
context:
space:
mode:
authorJason M. Bills <jason.m.bills@intel.com>2022-01-06 23:59:39 +0300
committerJason M. Bills <jason.m.bills@intel.com>2022-01-06 23:59:39 +0300
commit32777eec25d2c527a62e5ffab90a3dfef35855aa (patch)
tree588a90a6fe9fb0b35c7ce23ea3bd79fa5151ccde /poky/bitbake/bin/bitbake-worker
parent61f1ca1b31a9a1108e9e7f71e47fdc19beb0490b (diff)
parent5cc2f81c5b66da00cad24e18b0d23442af060c3f (diff)
downloadopenbmc-32777eec25d2c527a62e5ffab90a3dfef35855aa.tar.xz
Merge tag '0.86' of firmware.bmc.openbmc.yocto.openbmc into update
Diffstat (limited to 'poky/bitbake/bin/bitbake-worker')
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker19
1 files changed, 15 insertions, 4 deletions
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 7d982f90b..115bc1d09 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -6,6 +6,7 @@
import os
import sys
import warnings
+warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
from bb import fetch2
import logging
@@ -16,6 +17,8 @@ import signal
import pickle
import traceback
import queue
+import shlex
+import subprocess
from multiprocessing import Lock
from threading import Thread
@@ -145,6 +148,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
# a fork() or exec*() activates PSEUDO...
envbackup = {}
+ fakeroot = False
fakeenv = {}
umask = None
@@ -164,6 +168,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
# We can't use the fakeroot environment in a dry run as it possibly hasn't been built
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
+ fakeroot = True
envvars = (workerdata["fakerootenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
@@ -282,7 +287,11 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
try:
if dry_run:
return 0
- return bb.build.exec_task(fn, taskname, the_data, cfg.profile)
+ ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
+ if fakeroot:
+ fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
+ subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
+ return ret
except:
os._exit(1)
if not profiling:
@@ -513,9 +522,11 @@ except BaseException as e:
import traceback
sys.stderr.write(traceback.format_exc())
sys.stderr.write(str(e))
-
-worker_thread_exit = True
-worker_thread.join()
+finally:
+ worker_thread_exit = True
+ worker_thread.join()
workerlog_write("exiting")
+if not normalexit:
+ sys.exit(1)
sys.exit(0)