mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-01 13:58:04 +00:00
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. (From OE-Core rev: c9da529943b2f563b7b0aeb43576c13dd3b6f932) (From OE-Core rev: c468724d2932708dffc766e182a69665de6226f6) Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster@mvista.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
3a2725e5d9
commit
55fbde1fde
|
|
@ -434,12 +434,30 @@ python () {
|
|||
bad_licenses = map(lambda l: canonical_license(d, l), 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()
|
||||
|
|
@ -460,6 +478,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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user