-----Original Message-----
From: Richard Purdie <[email protected]> 
Sent: Wednesday, March 13, 2024 23:04
To: Marko, Peter (ADV D EU SK BFS1) <[email protected]>; 
[email protected]
Subject: Re: [OE-core][PATCH] meta-ide-support: depend recursively on 
populate_sysroot

> On Wed, 2024-03-13 at 18:48 +0100, Peter Marko via
> lists.openembedded.org wrote:
> > From: Peter Marko <[email protected]>
> > 
> > Following workflow is broken when built from sstate-cache:
> > https://docs.yoctoproject.org/singleindex.html#setting-up-the-extensible-sdk-environment-directly-in-a-yocto-build
> > This is already broken in kirkstone.
> > 
> > Reproducer:
> > $ bitbake meta-ide-support && bitbake build-sysroots -c
> > build_native_sysroot
> > $ ls -1 build/tmp/sysroots/*/*gdb-cross* && echo OK || echo FAIL #
> > succeeds from scratch
> > build/tmp/sysroots/x86_64/manifest-x86_64-gdb-cross-
> > x86_64.populate_sysroot
> > OK
> > $ rm -rf build/tmp
> > $ bitbake meta-ide-support && bitbake build-sysroots -c
> > build_native_sysroot
> > $ ls -1 build/tmp/sysroots/*/*gdb-cross* && echo OK || echo FAIL #
> > fails from sstate-cache
> > ls: cannot access 'build/tmp/sysroots/*/*gdb-cross*': No such file or
> > directory
> > FAIL
> > 
> > build-sysroot populates sysroot with recipes which run
> > populate_sysroot or populate_sysroot_setscene.
> > Dependency on its own populate_sysroot does not seem to work when
> > building from sstate-cache as this task is not executed.
> > This seem to becaused by inheriting nopackages class which deletes
> > tasks
> > thus messing the setscene dependencies.
> > 
> > Depend explicitly recursively on prepare_recipe_sysroot.
> > 
> > Signed-off-by: Peter Marko <[email protected]>
> > ---
> >  meta/recipes-core/meta/meta-ide-support.bb | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/meta/recipes-core/meta/meta-ide-support.bb
> > b/meta/recipes-core/meta/meta-ide-support.bb
> > index d85aa120c0..9aa87f3056 100644
> > --- a/meta/recipes-core/meta/meta-ide-support.bb
> > +++ b/meta/recipes-core/meta/meta-ide-support.bb
> > @@ -37,4 +37,4 @@ do_deploy () {
> >  
> >  addtask deploy before do_build
> >  
> > -do_build[deptask] += "do_prepare_recipe_sysroot"
> > +do_build[recrdeptask] += "do_populate_sysroot"
>
> Whilst I can agree there is likely a problem, this does not look like
> the right fix. This is running a lot of other sstate task
> do_populate_sysroot tasks which we simply don't care about in the
> context of this recipe.
>
> Which tasks is nopackages deleting which this recipe needs? Can we add
> in the missing dependencies that are needed?
>
> Cheers,
>
> Richard

Unfortunately, I still can see the problem when I remove nopackages class.
I could swear that it worked for me before, but most probably I didn't run from 
sstate-cache.

Thinking about it again, I think that deptask is different from task ordering 
by addtask before/after.
It is not run because it's covered by do_package_setscene.
This statement is based on fact that following patch also fixes this problem:
-do_build[deptask] += "do_prepare_recipe_sysroot"
+addtask prepare_recipe_sysroot after do_patch before do_build

I agree that root of this problem is hidden deeper in bitbake/setscene code, 
but I have no idea how to fix it at that level.
So I could just offer to resubmit with an updated commit message if that would 
be acceptable (temporary) solution.

Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#197094): 
https://lists.openembedded.org/g/openembedded-core/message/197094
Mute This Topic: https://lists.openembedded.org/mt/104910980/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to