summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-14 11:35:21 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-02-16 11:24:30 +0000
commit3e664599fd54a8a37ce587022fcbce5ca26f2ed3 (patch)
tree7f38b7aef5c088c98d0b0720c07f65ad72f3f83f
parent5f7fdf7b2d8c59805c8ef4dae84f536baa5e172b (diff)
downloadbitbake-3e664599fd54a8a37ce587022fcbce5ca26f2ed3.tar.gz
bitbake-worker/runqueue: Add support for BB_DEFAULT_UMASK
Currently each task has to have a umask specified individually. This is leading to determinism issues since it is easy to miss specifying this for an extra task. Add support for specifing the default task umask globally which simplifies the problem. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbin/bitbake-worker8
-rw-r--r--doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst4
-rw-r--r--lib/bb/runqueue.py1
3 files changed, 11 insertions, 2 deletions
diff --git a/bin/bitbake-worker b/bin/bitbake-worker
index 6c3796751..7765b9368 100755
--- a/bin/bitbake-worker
+++ b/bin/bitbake-worker
@@ -150,11 +150,15 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
taskdep = workerdata["taskdeps"][fn]
if 'umask' in taskdep and taskname in taskdep['umask']:
+ umask = taskdep['umask'][taskname]
+ elif workerdata["umask"]:
+ umask = workerdata["umask"]
+ if umask:
# umask might come in as a number or text string..
try:
- umask = int(taskdep['umask'][taskname],8)
+ umask = int(umask, 8)
except TypeError:
- umask = taskdep['umask'][taskname]
+ pass
dry_run = cfg.dry_run or dry_run_exec
diff --git a/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst b/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
index 74a3eb809..6469f9d1a 100644
--- a/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
+++ b/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.rst
@@ -108,6 +108,10 @@ overview of their function and contents.
command line option). The task name specified should not include the
``do_`` prefix.
+ :term:`BB_DEFAULT_UMASK`
+ The default umask to apply to tasks if specified and no task specific
+ umask flag is set.
+
:term:`BB_DISKMON_DIRS`
Monitors disk space and available inodes during the build and allows
you to control the build based on these parameters.
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index b8b217c64..54ef245a6 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -1271,6 +1271,7 @@ class RunQueue:
"date" : self.cfgData.getVar("DATE"),
"time" : self.cfgData.getVar("TIME"),
"hashservaddr" : self.cooker.hashservaddr,
+ "umask" : self.cfgData.getVar("BB_DEFAULT_UMASK"),
}
worker.stdin.write(b"<cookerconfig>" + pickle.dumps(self.cooker.configuration) + b"</cookerconfig>")