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 |
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] > -=-=-=-=-=-=-=-=-=-=-=- >
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 --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
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(+)