[OE-core] [PATCH] bitbake: cooker: Ensure bbappends are found in stable order
Mark Hatle
mark.hatle at windriver.com
Wed Sep 11 17:12:50 UTC 2019
On 9/11/19 12:07 PM, Peter Kjellerstedt wrote:
>> -----Original Message-----
>> From: openembedded-core-bounces at lists.openembedded.org <openembedded-
>> core-bounces at lists.openembedded.org> On Behalf Of Wes Lindauer
>> Sent: den 28 augusti 2019 23:38
>> To: openembedded-core at lists.openembedded.org
>> Subject: [OE-core] [PATCH] bitbake: cooker: Ensure bbappends are found
>> in stable order
>>
>> Thanks to wildcards in bbappend filenames, it's possible to have
>> multiple bbappends that apply to the same recipe in the same directory.
>> In order to get sstate hits between different workspaces, we want to
>> apply those bbappend files in a consistent order. Since readdir()
>> returns files in a non-deterministic order between workspaces (based on
>> inode number and/or time of creation), we'll need to sort its result in
>> order to have any consistency.
>>
>> Signed-off-by: Wes Lindauer <wesley.lindauer at gmail.com>
>> ---
>> bitbake/lib/bb/cooker.py | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
>> index 0607fcc708..a9ee142aa5 100644
>> --- a/bitbake/lib/bb/cooker.py
>> +++ b/bitbake/lib/bb/cooker.py
>> @@ -1869,6 +1869,7 @@ class CookerCollectFiles(object):
>> (bbappend, filename) = b
>> if (bbappend == f) or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
>> filelist.append(filename)
>> + filelist.sort()
>> return filelist
>>
>> def collection_priorities(self, pkgfns, d):
>> --
>> 2.14.5
>
> I don't think this was a good idea at all. Before, bbappends were applied
> in the priority order of the layers, but this change throws the sorting
> based on priority out the window and might cause bbappend files for higher
> layers to be applied before lower layers' bbappend files.
>
> Please revert this change, and rethink how to maintain a stable order for
> bbappend files from the same directory without affecting bbappend files
> from different layers.
I had assumed that the sorting was only within each layer's bbappends. If it's
global, you are absolutely right that priority order matters.
So maybe:
Within a layer (multiple .bbappends) 'sort' (alphabetic)
Between layers first by priority, then by order in the bblayers (for two layers
with the same priority)?
--Mark
> //Peter
>
More information about the Openembedded-core
mailing list