diff options
author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2021-03-12 04:18:52 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-03-14 16:33:03 +0000 |
commit | dd2532279fb239e7f61396898a8aa44ee5104d1d (patch) | |
tree | 90775bc0223d84c884180163ea86ee154c89c1e9 /meta/classes | |
parent | 715a3860f728d08b0a9575690049553c7b8dd65a (diff) | |
download | openembedded-core-contrib-dd2532279fb239e7f61396898a8aa44ee5104d1d.tar.gz |
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.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/license.bbclass | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index bcea0b3cb5..f7978e266b 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -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: |