Message ID | 1e91d93673d7414baea355383b0f0ebe@diehl.com |
---|---|
State | Accepted, archived |
Commit | 8e7ee19fc9e74cf042880f4bc317782482ba6f66 |
Headers | show |
Series | create-spdx: support line numbers | expand |
On Mon, Jan 20, 2025 at 6:10 AM Denis OSTERLAND-HEIM via lists.openembedded.org <denis.osterland=diehl.com@lists.openembedded.org> wrote: > > 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. > > Signed-off-by: Denis Osterland-Heim <denis.osterland@diehl.com> LGTM Reviewed-by: Joshua Watt <JPEWhacker@gmail.com> > --- > Resent without signature > > meta/classes/create-spdx-2.2.bbclass | 10 ++++++++-- > 1 file 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={}): > pass > if extracted_info.extractedText is None: > # If it's not SPDX or PD, then NO_GENERIC_LICENSE must be set > - filename = d.getVarFlag('NO_GENERIC_LICENSE', name) > + entry = d.getVarFlag('NO_GENERIC_LICENSE', name).split(';') > + filename = entry[0] > + params = {i.split('=')[0]: i.split('=')[1] for i in entry[1:] if '=' in i} > + beginline = int(params.get('beginline', 1)) > + endline = params.get('endline', None) > + if endline: > + endline = int(endline) > if filename: > filename = d.expand("${S}/" + filename) > with open(filename, errors="replace") as f: > - extracted_info.extractedText = f.read() > + extracted_info.extractedText = "".join(line for idx, line in enumerate(f, 1) if beginline <= idx and idx <= (endline or idx)) > else: > bb.fatal("Cannot find any text for license %s" % name) > > -- > 2.45.2 > Diehl Metering GmbH, Donaustrasse 120, 90451 Nuernberg > Sitz der Gesellschaft: Ansbach, Registergericht: Ansbach HRB 69 > Geschaeftsfuehrer: Dr. Christof Bosbach (Sprecher), Dipl.-Dolm. Annette Geuther, Dipl.-Kfm. Reiner Edel, Jean-Claude Luttringer > > Bitte denken Sie an die Umwelt, bevor Sie diese E-Mail drucken. Diese E-Mail kann vertrauliche Informationen enthalten. Sollten die in dieser E-Mail enthaltenen Informationen nicht für Sie bestimmt sein, informieren Sie bitte unverzueglich den Absender per E-Mail und loeschen Sie diese E-Mail in Ihrem System. Jede unberechtigte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt. Informationen zum Datenschutz finden Sie auf unserer Homepage<https://www.diehl.com/metering/de/impressum-und-rechtliche-hinweise/>. > > Before printing, think about environmental responsibility.This message may contain confidential information. If you are not authorized to receive this information please advise the sender immediately by reply e-mail and delete this message without making any copies. Any form of unauthorized use, publication, reproduction, copying or disclosure of the e-mail is not permitted. Information about data protection can be found on our homepage<https://www.diehl.com/metering/en/data-protection/>. > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#210028): https://lists.openembedded.org/g/openembedded-core/message/210028 > Mute This Topic: https://lists.openembedded.org/mt/110713816/3616693 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [JPEWhacker@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
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={}): pass if extracted_info.extractedText is None: # If it's not SPDX or PD, then NO_GENERIC_LICENSE must be set - filename = d.getVarFlag('NO_GENERIC_LICENSE', name) + entry = d.getVarFlag('NO_GENERIC_LICENSE', name).split(';') + filename = entry[0] + params = {i.split('=')[0]: i.split('=')[1] for i in entry[1:] if '=' in i} + beginline = int(params.get('beginline', 1)) + endline = params.get('endline', None) + if endline: + endline = int(endline) if filename: filename = d.expand("${S}/" + filename) with open(filename, errors="replace") as f: - extracted_info.extractedText = f.read() + extracted_info.extractedText = "".join(line for idx, line in enumerate(f, 1) if beginline <= idx and idx <= (endline or idx)) else: bb.fatal("Cannot find any text for license %s" % name)
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. Signed-off-by: Denis Osterland-Heim <denis.osterland@diehl.com> --- Resent without signature meta/classes/create-spdx-2.2.bbclass | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) -- 2.45.2 Diehl Metering GmbH, Donaustrasse 120, 90451 Nuernberg Sitz der Gesellschaft: Ansbach, Registergericht: Ansbach HRB 69 Geschaeftsfuehrer: Dr. Christof Bosbach (Sprecher), Dipl.-Dolm. Annette Geuther, Dipl.-Kfm. Reiner Edel, Jean-Claude Luttringer Bitte denken Sie an die Umwelt, bevor Sie diese E-Mail drucken. Diese E-Mail kann vertrauliche Informationen enthalten. Sollten die in dieser E-Mail enthaltenen Informationen nicht für Sie bestimmt sein, informieren Sie bitte unverzueglich den Absender per E-Mail und loeschen Sie diese E-Mail in Ihrem System. Jede unberechtigte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung und/oder Publikation dieser E-Mail ist strengstens untersagt. Informationen zum Datenschutz finden Sie auf unserer Homepage<https://www.diehl.com/metering/de/impressum-und-rechtliche-hinweise/>. Before printing, think about environmental responsibility.This message may contain confidential information. If you are not authorized to receive this information please advise the sender immediately by reply e-mail and delete this message without making any copies. Any form of unauthorized use, publication, reproduction, copying or disclosure of the e-mail is not permitted. Information about data protection can be found on our homepage<https://www.diehl.com/metering/en/data-protection/>.