From 1d6dab1dbbbfbcb32e58dba3111130157ef2b24f Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Mon, 27 Oct 2014 03:37:41 -0400 Subject: license.bbclass: canonicalise the licenses named with 'X+' If INCOMPATIBLE_LICENSE=GPLv3, GPLv3+ should be excluded as well but not now since there is no SPDXLICENSEMAP for licenses named with 'X+', we can add all the SPDXLICENSEMAP settings for licenses named with 'X+' in licenses.conf, but it's more like a duplication, so improve the canonical_license function to auto map for 'X+' if SPDXLICENSEMAP for 'X' is available, so GPLv3+ becomes GPL-3.0+. Signed-off-by: Jackie Huang Signed-off-by: Ross Burton --- meta/classes/license.bbclass | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'meta/classes') diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index a34ea39493..14d3107c4a 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -274,9 +274,16 @@ 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), or the passed license if there is no canonical form. + becomes GPL-3.0), for the license named 'X+', return canonical form of + 'X' if availabel and the tailing '+' (so GPLv3+ becomes GPL-3.0+), + or the passed license if there is no canonical form. """ - return d.getVarFlag('SPDXLICENSEMAP', license, True) or license + lic = d.getVarFlag('SPDXLICENSEMAP', license, True) or "" + if not lic and license.endswith('+'): + lic = d.getVarFlag('SPDXLICENSEMAP', license.rstrip('+'), True) + if lic: + lic += '+' + return lic or license def incompatible_license(d, dont_want_licenses, package=None): """ -- cgit v1.2.3