[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