mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 00:49:33 +02:00
license.bbclass: Improve parsing time when INCOMPATIBLE_LICENSES is big
The commit 08cbf1748 (licenses: Update INCOMPATIBLE_LICENSE for 'or-later' handling) increased the parsing time considerably if there are many licenses in INCOMPATIBLE_LICENSE. Reorganize the code to get almost all the time back. (From OE-Core rev: dd2532279fb239e7f61396898a8aa44ee5104d1d) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
9952e546e1
commit
28648ee17f
@@ -282,16 +282,15 @@ def expand_wildcard_licenses(d, wildcard_licenses):
|
|||||||
"""
|
"""
|
||||||
import fnmatch
|
import fnmatch
|
||||||
|
|
||||||
# Assume if we're passed "GPLv3" or "*GPLv3" it means -or-later as well
|
|
||||||
for lic in wildcard_licenses[:]:
|
|
||||||
if not lic.endswith(("-or-later", "-only", "*")):
|
|
||||||
wildcard_licenses.append(lic + "+")
|
|
||||||
|
|
||||||
licenses = wildcard_licenses[:]
|
licenses = wildcard_licenses[:]
|
||||||
spdxmapkeys = d.getVarFlags('SPDXLICENSEMAP').keys()
|
spdxmapkeys = d.getVarFlags('SPDXLICENSEMAP').keys()
|
||||||
for wld_lic in wildcard_licenses:
|
for wld_lic in wildcard_licenses:
|
||||||
spdxflags = fnmatch.filter(spdxmapkeys, wld_lic)
|
spdxflags = fnmatch.filter(spdxmapkeys, wld_lic)
|
||||||
licenses += [d.getVarFlag('SPDXLICENSEMAP', flag) for flag in spdxflags]
|
licenses += [d.getVarFlag('SPDXLICENSEMAP', flag) for flag in spdxflags]
|
||||||
|
# Assume if we're passed "GPLv3" or "*GPLv3" it means -or-later as well
|
||||||
|
if not wld_lic.endswith(("-or-later", "-only", "*", "+")):
|
||||||
|
spdxflags = fnmatch.filter(spdxmapkeys, wld_lic + "+")
|
||||||
|
licenses += [d.getVarFlag('SPDXLICENSEMAP', flag) for flag in spdxflags]
|
||||||
|
|
||||||
spdx_lics = d.getVar('AVAILABLE_LICENSES').split()
|
spdx_lics = d.getVar('AVAILABLE_LICENSES').split()
|
||||||
for wld_lic in wildcard_licenses:
|
for wld_lic in wildcard_licenses:
|
||||||
|
|||||||
Reference in New Issue
Block a user