[bitbake-devel] [PATCH 2/2] bitbake: build.py: check dependendent task for addtask

Robert Yang liezhi.yang at windriver.com
Fri Apr 26 02:49:00 UTC 2019



On 4/25/19 6:50 PM, Richard Purdie wrote:
> On Thu, 2019-04-25 at 18:01 +0800, Robert Yang wrote:
>> The following command is incorrect, but was ignored silently, that may suprise
>> users:
>>
>> addtask task after task_not_existed
>>
>> This patch can check and warn for it. It would be better to also check "before"
>> tasks, but there is no easier way to do it.
>>
>> [YOCTO #13282]
>>
>> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
>> ---
>>   bitbake/lib/bb/build.py | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/bitbake/lib/bb/build.py b/bitbake/lib/bb/build.py
>> index 7571421..861e9a9 100644
>> --- a/bitbake/lib/bb/build.py
>> +++ b/bitbake/lib/bb/build.py
>> @@ -815,6 +815,9 @@ def add_tasks(tasklist, d):
>>           task_deps['parents'][task] = []
>>           if 'deps' in flags:
>>               for dep in flags['deps']:
>> +                # Check and warn for "addtask task after foo" while foo does not exist
>> +                if not dep in tasklist:
>> +                    bb.warn('%s: dependent task %s does not exist!' % (d.getVar('PN'), dep))
>>                   dep = d.expand(dep)
>>                   task_deps['parents'][task].append(dep)
> 
> I can't help wonder if this change has races, depending on the order of
> the addtask and deltask expressions. Do most layers parse cleanly with
> this?

The bb.build.add_tasks() is only called by ast.py's finalize(), I think that
everything should be ready in finalize stage, and there should be no races.
I tested this with meta-oe, python perl, selinux and others, didn't see
any problems (unless I depended on an invalid task).

> 
> At one point bitbake did support "floating" invalid tasks, I can't
> remember if we changed that or not though.

This warning is good for checking typos during development, I think that
user can call "bb.build.addtask()" dynamically in a function to fix the warning
for floating tasks?

// Robert

> 
> Cheers,
> 
> Richard
> 
> 


More information about the bitbake-devel mailing list