summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>2021-09-14 20:11:15 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-16 09:48:38 +0100
commitf58d54b31a1ddb4e60eb07365bfb7dfe78ed56af (patch)
tree783ccb2c42a931d27b2477c3d87bded55dd6e10a
parent4a839d7c66e4589050ce3f145a8c7cf820e6b35d (diff)
downloadopenembedded-core-f58d54b31a1ddb4e60eb07365bfb7dfe78ed56af.tar.gz
create-spdx.bbclass: Search all license directories for licenses
Before, even if the code was seemingly written to search through all licenses in ${COMMON_LICENSE_DIR} and ${LICENSE_PATH}, it would actually bail out after only searching ${COMMON_LICENSE_DIR} due to the exception handling. Also refrain from using f-strings. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/create-spdx.bbclass13
1 files changed, 8 insertions, 5 deletions
diff --git a/meta/classes/create-spdx.bbclass b/meta/classes/create-spdx.bbclass
index db85677d4c..3c73c21c04 100644
--- a/meta/classes/create-spdx.bbclass
+++ b/meta/classes/create-spdx.bbclass
@@ -67,6 +67,7 @@ def convert_license_to_spdx(lic, document, d, existing={}):
extracted_info = oe.spdx.SPDXExtractedLicensingInfo()
extracted_info.name = name
extracted_info.licenseId = ident
+ extracted_info.extractedText = None
if name == "PD":
# Special-case this.
@@ -78,10 +79,12 @@ def convert_license_to_spdx(lic, document, d, existing={}):
with (Path(directory) / name).open(errors="replace") as f:
extracted_info.extractedText = f.read()
break
- except Exception as e:
- # Error out, as the license was in available_licenses so
- # should be on disk somewhere.
- bb.error(f"Cannot find text for license {name}: {e}")
+ except FileNotFoundError:
+ pass
+ if extracted_info.extractedText is None:
+ # Error out, as the license was in available_licenses so should
+ # be on disk somewhere.
+ bb.error("Cannot find text for license %s" % name)
else:
# If it's not SPDX, or PD, or in available licenses, then NO_GENERIC_LICENSE must be set
filename = d.getVarFlag('NO_GENERIC_LICENSE', name)
@@ -90,7 +93,7 @@ def convert_license_to_spdx(lic, document, d, existing={}):
with open(filename, errors="replace") as f:
extracted_info.extractedText = f.read()
else:
- bb.error(f"Cannot find any text for license {name}")
+ bb.error("Cannot find any text for license %s" % name)
extracted[name] = extracted_info
document.hasExtractedLicensingInfos.append(extracted_info)