diff mbox series

create-spdx: fix do_create_spdx cannot find any SPDX file for recipe

Message ID 20231013154214.2233184-1-jose.quaresma@foundries.io
State New
Headers show
Series create-spdx: fix do_create_spdx cannot find any SPDX file for recipe | expand

Commit Message

Jose Quaresma Oct. 13, 2023, 3:42 p.m. UTC
Given that we need some SPDX files produced in other recipes by do_create_spdx task,
we need to ensure that any of this other do_create_spdx build-time dependencies
runs first to produce the artidacts we need in the do_create_spdx of the current recipe.

Fix the following which especially affects multiconfig machines:

| ERROR: flex-native-2.6.4-r0 do_create_spdx: Cannot find any SPDX file for recipe autoconf-native, True sstate:autoconf-native:x86_64-linux:2.72c:r0:x86_64:11: sstate:autoconf-native::2.72c:r0::11:

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
 meta/classes/create-spdx-2.2.bbclass | 1 +
 1 file changed, 1 insertion(+)

Comments

Joshua Watt Oct. 13, 2023, 4:20 p.m. UTC | #1
The dependency chain here is a little weird, because do_create_spdx()
depends on do_collect_spdx_deps(), and the do_collect_spdx_deps has a
deptask on do_create_sdpx to get the dependencies from upstream
recipes (read the comment in there for why that is). We avoided
recrdeptask because we _should_ only be pulling in SPDX documents from
direct dependencies, so the "recursive" part _should_ not be necessary
(which is why we use deptask instead of recrdeptask).

That being said, there is a bug here somewhere and I can't quite
figure out what it might be and I'm having a really hard time
reproducing it; but I'm not sure this is the fix.

I don't think

On Fri, Oct 13, 2023 at 9:42 AM Jose Quaresma <quaresma.jose@gmail.com> wrote:
>
> Given that we need some SPDX files produced in other recipes by do_create_spdx task,
> we need to ensure that any of this other do_create_spdx build-time dependencies
> runs first to produce the artidacts we need in the do_create_spdx of the current recipe.
>
> Fix the following which especially affects multiconfig machines:
>
> | ERROR: flex-native-2.6.4-r0 do_create_spdx: Cannot find any SPDX file for recipe autoconf-native, True sstate:autoconf-native:x86_64-linux:2.72c:r0:x86_64:11: sstate:autoconf-native::2.72c:r0::11:
>
> Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
>  meta/classes/create-spdx-2.2.bbclass | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass
> index b0aef80db1..a37245bdba 100644
> --- a/meta/classes/create-spdx-2.2.bbclass
> +++ b/meta/classes/create-spdx-2.2.bbclass
> @@ -709,6 +709,7 @@ addtask do_create_spdx_setscene
>  do_create_spdx[dirs] = "${SPDXWORK}"
>  do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}"
>  do_create_spdx[depends] += "${PATCHDEPENDENCY}"
> +do_create_spdx[recrdeptask] += "do_create_spdx"
>
>  def collect_package_providers(d):
>      from pathlib import Path
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#189071): https://lists.openembedded.org/g/openembedded-core/message/189071
> Mute This Topic: https://lists.openembedded.org/mt/101942902/3616693
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [JPEWhacker@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Jose Quaresma Oct. 13, 2023, 4:33 p.m. UTC | #2
I can try to reproduce this issue again with just-oe-core and some bsp
layer
that have multiconfig machines. I have only see this when using meta-ti
and after they switch to barematel [1].
This commit fixes the issue in my meta-lmp layer distro but this can also
be fixed
if we build the failing dependencies one by one.

https://git.yoctoproject.org/meta-ti/commit/?id=811c87bbbd324d4f176332b9e5f7c3699310cb06

Next week I will try to do the same with poky.
Thanks for your help.

Joshua Watt <jpewhacker@gmail.com> escreveu no dia sexta, 13/10/2023 à(s)
17:20:

> The dependency chain here is a little weird, because do_create_spdx()
> depends on do_collect_spdx_deps(), and the do_collect_spdx_deps has a
> deptask on do_create_sdpx to get the dependencies from upstream
> recipes (read the comment in there for why that is). We avoided
> recrdeptask because we _should_ only be pulling in SPDX documents from
> direct dependencies, so the "recursive" part _should_ not be necessary
> (which is why we use deptask instead of recrdeptask).
>
> That being said, there is a bug here somewhere and I can't quite
> figure out what it might be and I'm having a really hard time
> reproducing it; but I'm not sure this is the fix.
>
> I don't think
>
> On Fri, Oct 13, 2023 at 9:42 AM Jose Quaresma <quaresma.jose@gmail.com>
> wrote:
> >
> > Given that we need some SPDX files produced in other recipes by
> do_create_spdx task,
> > we need to ensure that any of this other do_create_spdx build-time
> dependencies
> > runs first to produce the artidacts we need in the do_create_spdx of the
> current recipe.
> >
> > Fix the following which especially affects multiconfig machines:
> >
> > | ERROR: flex-native-2.6.4-r0 do_create_spdx: Cannot find any SPDX file
> for recipe autoconf-native, True
> sstate:autoconf-native:x86_64-linux:2.72c:r0:x86_64:11:
> sstate:autoconf-native::2.72c:r0::11:
> >
> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> >  meta/classes/create-spdx-2.2.bbclass | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/meta/classes/create-spdx-2.2.bbclass
> b/meta/classes/create-spdx-2.2.bbclass
> > index b0aef80db1..a37245bdba 100644
> > --- a/meta/classes/create-spdx-2.2.bbclass
> > +++ b/meta/classes/create-spdx-2.2.bbclass
> > @@ -709,6 +709,7 @@ addtask do_create_spdx_setscene
> >  do_create_spdx[dirs] = "${SPDXWORK}"
> >  do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}"
> >  do_create_spdx[depends] += "${PATCHDEPENDENCY}"
> > +do_create_spdx[recrdeptask] += "do_create_spdx"
> >
> >  def collect_package_providers(d):
> >      from pathlib import Path
> > --
> > 2.34.1
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#189071):
> https://lists.openembedded.org/g/openembedded-core/message/189071
> > Mute This Topic: https://lists.openembedded.org/mt/101942902/3616693
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> JPEWhacker@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
diff mbox series

Patch

diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass
index b0aef80db1..a37245bdba 100644
--- a/meta/classes/create-spdx-2.2.bbclass
+++ b/meta/classes/create-spdx-2.2.bbclass
@@ -709,6 +709,7 @@  addtask do_create_spdx_setscene
 do_create_spdx[dirs] = "${SPDXWORK}"
 do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}"
 do_create_spdx[depends] += "${PATCHDEPENDENCY}"
+do_create_spdx[recrdeptask] += "do_create_spdx"
 
 def collect_package_providers(d):
     from pathlib import Path