[bitbake-devel] [PATCH] cooker.py: allow dangling bbappends if explicitly whitelisted

Mark Hatle mark.hatle at windriver.com
Fri Jun 2 16:20:50 UTC 2017


On 6/2/17 11:14 AM, Patrick Ohly wrote:
> On Fri, 2017-06-02 at 13:58 +0100, Richard Purdie wrote:
>> On Mon, 2017-05-22 at 12:50 +0200, Patrick Ohly wrote:
>>> Having a .bbappend without corresponding .bb file triggers an error
>>> or
>>> at least warning, depending on the global
>>> BB_DANGLINGAPPENDS_WARNONLY.
>>>
>>> Some layers (for example, meta-freescale) avoid that message by only
>>> adding .bbappends to the BBFILES when the layers they apply to are
>>> present. Others (like intel-iot-refkit) avoid such .bbappends by
>>> falling back to global assignments with _pn-<recipe> as override.
>>> Both
>>> is complicated.
>>>
>>> Now the warning code checks BBAPPENDS_DANGLING_WHITELIST and ignores
>>> all bbappends which match a file pattern in that list. This is an
>>> easier way to have bbappends which may or may not apply to an
>>> existing recipe.
>>>
>>> Example usage:
>>>
>>>   # We have recipes-* directories, add to BBFILES
>>>   BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
>>> 	${LAYERDIR}/optional-bbappends/recipes-*/*/*.bbappend \
>>> 	${LAYERDIR}/recipes-*/*/*.bbappend"
>>>
>>>   # Several of our *.bbappends might be for layers that are not
>>>   # guaranteed to be present. Don't warn or even error out because
>>>   # of those.
>>>   BBAPPENDS_DANGLING_WHITELIST += "${LAYERDIR}/optional-
>>> bbappends/recipes-*/*/*.bbappend"
>>
>> I've been giving this some thought. The freescale layer approach does
>> have ordering issues which I don't like. Equally, Chris' comment about
>> this is also a valid concern. Experience suggests saying the layer
>> maintainer needs to be careful doesn't work in practise.
>>
>> I'm wondering if there is a hybrid solution if we extend this syntax a
>> little, e.g.:
>>
>> BBFILES_DYNAMIC += "\
>>     XXXX:${LAYERDIR}/optional-bbappends-XXX/recipes-*/*/*.bbappend
>>     YYYY:${LAYERDIR}/optional-bbappends-YYY/recipes-*/*/*.bbappend
>> "
>>
>> so that the code only applies these BBFILES entries if the layer named
>> in the first parameter is present?
>>
>> This would happen at the end of parsing so ordering becomes a moot
>> point. The direction you stack BBFILES_DYANMIC in would determin
>> bbappend application order.
> 
> While the usecase above was for .bbappends, would the same also make
> sense for .bb files, and would that change the implementation? Perhaps
> not.
> 
> The use case would be a .bb which depends on something in a layer which
> may or may not be present. It's a bit harder, though, because it's not
> always as clear as for the .bbappend case where something comes from
> that a recipe depends on.
> 

My assumption is the (new) BBFILES_DYNAMIC should have the same format as the
existing BBFILES.  So it will work for both bbappend and bb files.

--Mark



More information about the bitbake-devel mailing list