Re: [OE-core] [PATCH 2/5] archiver.bbclass: Make do_deploy_archives a recursive dependency

Mark Hatle
2020-04-01T14:50:07Z

(I know this is an old thread, but I ran into this as well..)

...

On 3/11/20 6:40 AM, Paul Barker wrote:
> On Tue, 10 Mar 2020 23:18:33 +0000
> Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
>
>> On Mon, 2020-03-09 at 14:21 +0000, Paul Barker wrote:
>>> To ensure that archives are captured for all dependencies of a typical
>>> bitbake build we add do_deploy_archives to the list of recursive
>>> dependencies of do_build. Without this, archives may be missed for
>>> recipes such as gcc-source which do not create packages or populate a
>>> sysroot.
>>>
>>> do_deploy_archives is also added to the recursive dependencies of
>>> do_populate_sdk so that all sources required for an SDK can be captured.
>>>
>>> Signed-off-by: Paul Barker <pbarker@konsulko.com>
>>> ---
>>> meta/classes/archiver.bbclass | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
>>> index fef7ad4f62..c11d36d708 100644
>>> --- a/meta/classes/archiver.bbclass
>>> +++ b/meta/classes/archiver.bbclass
>>> @@ -604,7 +604,9 @@ addtask do_ar_configured after do_unpack_and_patch
>>> addtask do_ar_mirror after do_fetch
>>> addtask do_dumpdata
>>> addtask do_ar_recipe
>>> -addtask do_deploy_archives before do_build
>>> +addtask do_deploy_archives
>>> +do_build[recrdeptask] += "do_deploy_archives"
>>> +do_populate_sdk[recrdeptask] += "do_deploy_archives"
>>
>> We implemented the --runall option to bitbake to try and avoid having
>> recrdeptask versions of most tasks. Does that not work here? It should
>> also work for the SDK I think?

You can't use a --runall operation on a task target, such as:

bitbake core-image-minimal -c populate_sdk

I can't find any way to get all of the archiver sources for the populate_sdk
target. The above should resolve this, and as Paul said below it will ensure
that populate_sdk follows the same behavior as regular image generation as well.

I'm wondering if do_populate_sdk_ext needs it as well.

> If the archiver is enabled, its tasks should be in the dependency tree of
> whatever you're building so that you don't need to invoke bitbake twice to
> produce the required artifacts. For images that's the way the archiver has
> always worked, if it's enabled then you just need to do `bitbake image` to
> build the image and deploy the source archives. This change just extends that
> behaviour to cover other things we can build and ensures that we don't miss
> sources for recipes like gcc-source.
>