diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2011-06-22 15:10:58 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-06-24 12:22:26 +0100 |
commit | a5caaaaba8f0db1af5d8f2e610021d6d4b56894e (patch) | |
tree | 8bdfadd1b5be2e11dfa5db1ced59f6d46abdc7d3 /lib/bb/runqueue.py | |
parent | 5481cc90645e13c4e3cdea41e8e369528a0b1649 (diff) | |
download | bitbake-a5caaaaba8f0db1af5d8f2e610021d6d4b56894e.tar.gz |
runqueue.py: Add umask task control
The umask for a task can now be set as:
task[umask] = 022
task[umask] = '022'
If specified as a text string, it must be octal. (This is due to
recipe parsing where it's always set to a string.)
[RP tweaked to use None instead of -1]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/runqueue.py')
-rw-r--r-- | lib/bb/runqueue.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py index 1f3b54c3e..6277fc65c 100644 --- a/lib/bb/runqueue.py +++ b/lib/bb/runqueue.py @@ -1063,8 +1063,16 @@ class RunQueueExecute: # a fork() or exec*() activates PSEUDO... envbackup = {} + umask = None taskdep = self.rqdata.dataCache.task_deps[fn] + if 'umask' in taskdep and taskname in taskdep['umask']: + # umask might come in as a number or text string.. + try: + umask = int(taskdep['umask'][taskname],8) + except TypeError: + umask = taskdep['umask'][taskname] + if 'fakeroot' in taskdep and taskname in taskdep['fakeroot']: envvars = (self.rqdata.dataCache.fakerootenv[fn] or "").split() for key, value in (var.split('=') for var in envvars): @@ -1103,6 +1111,9 @@ class RunQueueExecute: newsi = os.open(os.devnull, os.O_RDWR) os.dup2(newsi, sys.stdin.fileno()) + if umask: + os.umask(umask) + bb.data.setVar("BB_WORKERCONTEXT", "1", self.cooker.configuration.data) bb.data.setVar("__RUNQUEUE_DO_NOT_USE_EXTERNALLY", self, self.cooker.configuration.data) bb.data.setVar("__RUNQUEUE_DO_NOT_USE_EXTERNALLY2", fn, self.cooker.configuration.data) |