diff options
author | Beth Flanagan <elizabeth.flanagan@intel.com> | 2015-07-31 16:40:07 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-08-01 07:38:31 +0100 |
commit | c9da529943b2f563b7b0aeb43576c13dd3b6f932 (patch) | |
tree | a245a981d775d28d795231ccad9ea0ed49188eef /meta | |
parent | f1596b7169146afcb38db683eb6170a480422d73 (diff) | |
download | openembedded-core-c9da529943b2f563b7b0aeb43576c13dd3b6f932.tar.gz openembedded-core-c9da529943b2f563b7b0aeb43576c13dd3b6f932.tar.bz2 openembedded-core-c9da529943b2f563b7b0aeb43576c13dd3b6f932.zip |
base.bbclass: Note when including pn with INCOMPATIBLE_LICENSES
We need to be able to tell people if we WHITELIST a recipe
that contains an incompatible licese.
Example: If we set WHITELIST_GPL-3.0 ?= "foo", foo will end
up on an image even if GPL-3.0 is incompatible. This is the
correct behaviour but there is nothing telling people that it
is even happening.
Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/base.bbclass | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index bfc78dba3a..531b0e72c0 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -478,12 +478,30 @@ python () { bad_licenses = expand_wildcard_licenses(d, bad_licenses) whitelist = [] + incompatwl = [] + htincompatwl = [] for lic in bad_licenses: + spdx_license = return_spdx(d, lic) for w in ["HOSTTOOLS_WHITELIST_", "LGPLv2_WHITELIST_", "WHITELIST_"]: whitelist.extend((d.getVar(w + lic, True) or "").split()) - spdx_license = return_spdx(d, lic) - if spdx_license: - whitelist.extend((d.getVar('HOSTTOOLS_WHITELIST_%s' % spdx_license, True) or "").split()) + if spdx_license: + whitelist.extend((d.getVar(w + spdx_license, True) or "").split()) + ''' + We need to track what we are whitelisting and why. If pn is + incompatible and is not HOSTTOOLS_WHITELIST_ we need to be + able to note that the image that is created may infact + contain incompatible licenses despite INCOMPATIBLE_LICENSE + being set. + ''' + if "HOSTTOOLS" in w: + htincompatwl.extend((d.getVar(w + lic, True) or "").split()) + if spdx_license: + htincompatwl.extend((d.getVar(w + spdx_license, True) or "").split()) + else: + incompatwl.extend((d.getVar(w + lic, True) or "").split()) + if spdx_license: + incompatwl.extend((d.getVar(w + spdx_license, True) or "").split()) + if not pn in whitelist: recipe_license = d.getVar('LICENSE', True) pkgs = d.getVar('PACKAGES', True).split() @@ -504,6 +522,11 @@ python () { elif all_skipped or incompatible_license(d, bad_licenses): bb.debug(1, "SKIPPING recipe %s because it's %s" % (pn, recipe_license)) raise bb.parse.SkipPackage("incompatible with license %s" % recipe_license) + elif pn in whitelist: + if pn in incompatwl: + bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted") + elif pn in htincompatwl: + bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted for HOSTTOOLS") srcuri = d.getVar('SRC_URI', True) # Svn packages should DEPEND on subversion-native |