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 <[email protected]> --- meta/classes/base.bbclass | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index bfc78db..531b0e7 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 -- 1.9.1 ------------------------------------------------------------- Intel Ireland Limited (Branch) Collinstown Industrial Park, Leixlip, County Kildare, Ireland Registered Number: E902934 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
