From f58d54b31a1ddb4e60eb07365bfb7dfe78ed56af Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Tue, 14 Sep 2021 20:11:15 +0200 Subject: 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 Signed-off-by: Richard Purdie --- meta/classes/create-spdx.bbclass | 13 ++++++++----- 1 file 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) -- cgit 1.2.3-korg