recipetool: Add support for linenumbers to licenses.csv

Add support for linenumbers (begin and end lines) to licenses.csv. Add
an optional linenumbers parameter to get_license_md5sums to support
different use cases.

(From OE-Core rev: d5c4979669f125e73c24dcc73fa3c4f3787bbb62)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Stefan Herbrechtsmeier 2021-10-08 09:48:30 +02:00 committed by Richard Purdie
parent bb54949b17
commit aee9854734

View File

@ -1002,11 +1002,11 @@ def handle_license_vars(srctree, lines_before, handled, extravalues, d):
handled.append(('license', licvalues))
return licvalues
def get_license_md5sums(d, static_only=False):
def get_license_md5sums(d, static_only=False, linenumbers=False):
import bb.utils
import csv
md5sums = {}
if not static_only:
if not static_only and not linenumbers:
# Gather md5sums of license files in common license dir
commonlicdir = d.getVar('COMMON_LICENSE_DIR')
for fn in os.listdir(commonlicdir):
@ -1024,10 +1024,14 @@ def get_license_md5sums(d, static_only=False):
csv_path = os.path.join(path, 'lib', 'recipetool', 'licenses.csv')
if os.path.isfile(csv_path):
with open(csv_path, newline='') as csv_file:
fieldnames = ['md5sum', 'license']
fieldnames = ['md5sum', 'license', 'beginline', 'endline', 'md5']
reader = csv.DictReader(csv_file, delimiter=',', fieldnames=fieldnames)
for row in reader:
md5sums[row['md5sum']] = row['license']
if linenumbers:
md5sums[row['md5sum']] = (
row['license'], row['beginline'], row['endline'], row['md5'])
else:
md5sums[row['md5sum']] = row['license']
return md5sums