summaryrefslogtreecommitdiffstats
path: root/meta/classes/create-spdx.bbclass
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2021-09-01 08:44:53 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-09-03 09:53:29 +0100
commit45ea7b7970ff69265e935dfc9c4adb7df848f739 (patch)
treef4d234593f156b552f213591f37b32fd3141a115 /meta/classes/create-spdx.bbclass
parentde3b8717863c4fd78d16852bf9c6f7b67dda57fd (diff)
downloadpoky-45ea7b7970ff69265e935dfc9c4adb7df848f739.tar.gz
classes/create-spdx: Add special exception for Public Domain license
The Public Domain license (PD) needs a special exception in the license processing since there is no common license text to be extracted for these licenses. (From OE-Core rev: fe5b757712aa99ff1ff10d2304ac320100635200) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/create-spdx.bbclass')
-rw-r--r--meta/classes/create-spdx.bbclass33
1 files changed, 21 insertions, 12 deletions
diff --git a/meta/classes/create-spdx.bbclass b/meta/classes/create-spdx.bbclass
index aa640977f9..f72b7b762e 100644
--- a/meta/classes/create-spdx.bbclass
+++ b/meta/classes/create-spdx.bbclass
@@ -51,6 +51,23 @@ def convert_license_to_spdx(lic, document, d):
51 import oe.spdx 51 import oe.spdx
52 52
53 license_data = d.getVar("SPDX_LICENSE_DATA") 53 license_data = d.getVar("SPDX_LICENSE_DATA")
54
55 def add_extracted_license(ident, name, text):
56 nonlocal document
57
58 for lic_data in license_data["licenses"]:
59 if lic_data["licenseId"] == ident:
60 return False
61
62 spdx_lic = oe.spdx.SPDXExtractedLicensingInfo()
63 spdx_lic.name = name
64 spdx_lic.licenseId = ident
65 spdx_lic.extractedText = text
66
67 document.hasExtractedLicensingInfos.append(spdx_lic)
68
69 return True
70
54 def convert(l): 71 def convert(l):
55 if l == "(" or l == ")": 72 if l == "(" or l == ")":
56 return l 73 return l
@@ -67,19 +84,11 @@ def convert_license_to_spdx(lic, document, d):
67 return spdx_license 84 return spdx_license
68 85
69 spdx_license = "LicenseRef-" + l 86 spdx_license = "LicenseRef-" + l
70 for spdx_lic in document.hasExtractedLicensingInfos:
71 if spdx_lic.licenseId == spdx_license:
72 return spdx_license
73
74 bb.warn("No SPDX License found for %s. Creating a place holder" % l)
75 87
76 spdx_lic = oe.spdx.SPDXExtractedLicensingInfo() 88 if l == "PD":
77 spdx_lic.name = l 89 add_extracted_license(spdx_license, l, "Software released to the public domain")
78 spdx_lic.licenseId = spdx_license 90 elif add_extracted_license(spdx_license, l, "This software is licensed under the %s license" % l):
79 # TODO: Extract the actual license text from the common license files 91 bb.warn("No SPDX License found for %s. Creating a place holder" % l)
80 spdx_lic.extractedText = "This software is licensed under the %s license" % l
81
82 document.hasExtractedLicensingInfos.append(spdx_lic)
83 92
84 return spdx_license 93 return spdx_license
85 94