diff options
author | Denis OSTERLAND-HEIM <denis.osterland@diehl.com> | 2025-01-20 13:04:58 +0000 |
---|---|---|
committer | Ross Burton <ross.burton@arm.com> | 2025-01-23 12:14:29 +0000 |
commit | f0c5b10901c5416fc29ddb8d06470ab20a9b8b88 (patch) | |
tree | a15b2c4e1892fae0474f9878037a65bc1db929ba /meta/classes | |
parent | 9e54ce7eac6886a037a6dc791abca2b918d96137 (diff) | |
download | poky-f0c5b10901c5416fc29ddb8d06470ab20a9b8b88.tar.gz |
create-spdx: support line numbers
LIC_FILES_CHKSUM supports begin-/endline for licenses included in
for instance header files. This patch adds support for line numbers
to NO_GENERIC_LICENSE, too.
(From OE-Core rev: 8e7ee19fc9e74cf042880f4bc317782482ba6f66)
Signed-off-by: Denis Osterland-Heim <denis.osterland@diehl.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/create-spdx-2.2.bbclass | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass index 27242ecf70..494bde117f 100644 --- a/meta/classes/create-spdx-2.2.bbclass +++ b/meta/classes/create-spdx-2.2.bbclass | |||
@@ -75,11 +75,17 @@ def convert_license_to_spdx(lic, license_data, document, d, existing={}): | |||
75 | pass | 75 | pass |
76 | if extracted_info.extractedText is None: | 76 | if extracted_info.extractedText is None: |
77 | # If it's not SPDX or PD, then NO_GENERIC_LICENSE must be set | 77 | # If it's not SPDX or PD, then NO_GENERIC_LICENSE must be set |
78 | filename = d.getVarFlag('NO_GENERIC_LICENSE', name) | 78 | entry = d.getVarFlag('NO_GENERIC_LICENSE', name).split(';') |
79 | filename = entry[0] | ||
80 | params = {i.split('=')[0]: i.split('=')[1] for i in entry[1:] if '=' in i} | ||
81 | beginline = int(params.get('beginline', 1)) | ||
82 | endline = params.get('endline', None) | ||
83 | if endline: | ||
84 | endline = int(endline) | ||
79 | if filename: | 85 | if filename: |
80 | filename = d.expand("${S}/" + filename) | 86 | filename = d.expand("${S}/" + filename) |
81 | with open(filename, errors="replace") as f: | 87 | with open(filename, errors="replace") as f: |
82 | extracted_info.extractedText = f.read() | 88 | extracted_info.extractedText = "".join(line for idx, line in enumerate(f, 1) if beginline <= idx and idx <= (endline or idx)) |
83 | else: | 89 | else: |
84 | bb.fatal("Cannot find any text for license %s" % name) | 90 | bb.fatal("Cannot find any text for license %s" % name) |
85 | 91 | ||