mirror of
https://git.yoctoproject.org/poky
synced 2026-05-08 05:09:24 +00:00
licenses: Fix canonical license for 'or-later' handling
GPLv2 and GPLv2+ are two difference licenses with different meanings and we can't just pretend they're the same thing. Change the code to treat them separately. (From OE-Core rev: d1baf74ac92fe0c8c32dff101fd77d77f70fd583) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -252,16 +252,9 @@ def return_spdx(d, license):
|
||||
def canonical_license(d, license):
|
||||
"""
|
||||
Return the canonical (SPDX) form of the license if available (so GPLv3
|
||||
becomes GPL-3.0), for the license named 'X+', return canonical form of
|
||||
'X' if available and the tailing '+' (so GPLv3+ becomes GPL-3.0+),
|
||||
or the passed license if there is no canonical form.
|
||||
becomes GPL-3.0) or the passed license if there is no canonical form.
|
||||
"""
|
||||
lic = d.getVarFlag('SPDXLICENSEMAP', license) or ""
|
||||
if not lic and license.endswith('+'):
|
||||
lic = d.getVarFlag('SPDXLICENSEMAP', license.rstrip('+'))
|
||||
if lic:
|
||||
lic += '+'
|
||||
return lic or license
|
||||
return d.getVarFlag('SPDXLICENSEMAP', license) or license
|
||||
|
||||
def available_licenses(d):
|
||||
"""
|
||||
|
||||
@@ -10,14 +10,7 @@ from fnmatch import fnmatchcase as fnmatch
|
||||
def license_ok(license, dont_want_licenses):
|
||||
""" Return False if License exist in dont_want_licenses else True """
|
||||
for dwl in dont_want_licenses:
|
||||
# If you want to exclude license named generically 'X', we
|
||||
# surely want to exclude 'X+' as well. In consequence, we
|
||||
# will exclude a trailing '+' character from LICENSE in
|
||||
# case INCOMPATIBLE_LICENSE is not a 'X+' license.
|
||||
lic = license
|
||||
if not re.search(r'\+$', dwl):
|
||||
lic = re.sub(r'\+', '', license)
|
||||
if fnmatch(lic, dwl):
|
||||
if fnmatch(license, dwl):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user