Re: [OE-core] [PATCH] create-spdx: Don't collect natives sources
From: Joshua Watt <hidden>
Date: 2021-09-23 12:16:36
On Thu, Sep 23, 2021, 5:27 AM Peter Kjellerstedt < peter.kjellerstedt@axis.com> wrote:
quoted
-----Original Message----- From: openembedded-core@lists.openembedded.org <openembedded- core@lists.openembedded.org> On Behalf Of Konrad Weihmann Sent: den 23 september 2021 10:24 To: Saul Wold <redacted>; openembedded- core@lists.openembedded.org; JPEWhacker@gmail.com Subject: Re: [OE-core] [PATCH] create-spdx: Don't collect natives sources On 23.09.21 00:14, Saul Wold wrote:quoted
When the collect_dep_sources() runs, it collects sources from bothnativequoted
and non-native recipes. Later when the GENERATED_FROM matching occursitquoted
quoted
may find the file (via checksum) from the native recipe since it's the same checksum as the target file. The that are generated DocumentRefs point to the native recipe rather than the target recipe DocumentRef. Signed-off-by: Saul Wold <redacted> --- meta/classes/create-spdx.bbclass | 4 ++++ 1 file changed, 4 insertions(+)diff --git a/meta/classes/create-spdx.bbclass b/meta/classes/create-spdx.bbclassquoted
index 3c73c21c04..8f7fae43f1 100644--- a/meta/classes/create-spdx.bbclass +++ b/meta/classes/create-spdx.bbclass@@ -336,6 +336,10 @@ def collect_dep_sources(d, dep_recipes): sources = {} for dep in dep_recipes: + # Don't collect sources from native recipes as they + # match non-native sources also. + if "-native" in dep.recipe.name:That looks a bit too fuzzy to me - I would have expected if dep.recipe.name.endswith("-native"): here. Otherwise this is very prone to false positivesAbsolutely. E.g., we have a recipe called crate-native-tls for the native-tls Rust crate. At the same time I hate all these hardcoded tests for recipe types all over OE Core as they assume only the types that are in OE Core exist without any (easy) way of extending the tests for non-OE Core recipe types. Would it instead be possible to add the is_native in do_create_spdx() to the recipe object so that it is available here?
Yes. We should be able to add a custom annotation when we create the recipe that we can check later
quoted
quoted
+ continue recipe_files = set(dep.recipe.hasFiles) for spdx_file in dep.doc.files://Peter