[bitbake-devel] [PATCH 1/1] runqueue.py: Add umask task control
Mark Hatle
mark.hatle at windriver.com
Fri Jun 24 01:11:40 UTC 2011
On 6/23/11 6:22 PM, Khem Raj wrote:
> On 06/22/2011 10:57 AM, Mark Hatle wrote:
>> 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.)
>>
>> Signed-off-by: Mark Hatle<mark.hatle at windriver.com>
>> ---
>> lib/bb/build.py | 1 +
>> lib/bb/runqueue.py | 12 ++++++++++++
>> 2 files changed, 13 insertions(+), 0 deletions(-)
>>
>> diff --git a/lib/bb/build.py b/lib/bb/build.py
>> index 15ba956..4bbf10f 100644
>> --- a/lib/bb/build.py
>> +++ b/lib/bb/build.py
>> @@ -465,6 +465,7 @@ def add_tasks(tasklist, d):
>> getTask('nostamp')
>> getTask('fakeroot')
>> getTask('noexec')
>> + getTask('umask')
>> task_deps['parents'][task] = []
>> for dep in flags['deps']:
>> dep = data.expand(dep, d)
>> diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
>> index 1f3b54c..e455893 100644
>> --- a/lib/bb/runqueue.py
>> +++ b/lib/bb/runqueue.py
>> @@ -1063,8 +1063,17 @@ class RunQueueExecute:
>> # a fork() or exec*() activates PSEUDO...
>>
>> envbackup = {}
>> + umask = -1
>>
>> 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]
>> + logger.warning("Using umask 0%o %s, %s" % (umask, fn, taskname))
>> +
>
> this will be annoying. It should be made part of verbose messages though
That was a mistake, debugging message that ended up in the pull request.
>
>> 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 +1112,9 @@ class RunQueueExecute:
>> newsi = os.open(os.devnull, os.O_RDWR)
>> os.dup2(newsi, sys.stdin.fileno())
>>
>> + if umask != -1:
>> + 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)
>
>
> _______________________________________________
> bitbake-devel mailing list
> bitbake-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/bitbake-devel
More information about the bitbake-devel
mailing list