mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 21:32:12 +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
|
||||
|
||||
# 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[:]
|
||||
spdxmapkeys = d.getVarFlags('SPDXLICENSEMAP').keys()
|
||||
for wld_lic in wildcard_licenses:
|
||||
spdxflags = fnmatch.filter(spdxmapkeys, wld_lic)
|
||||
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()
|
||||
for wld_lic in wildcard_licenses:
|
||||
|
||||
Reference in New Issue
Block a user