summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaul Wold <Saul.Wold@intel.com>2010-08-16 14:48:04 -0700
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-20 16:53:36 +0100
commit179e056519c5ad761b2d942d7196664874c155e4 (patch)
treee5b28703e41d0dbc77b88c8cfbaab740b90d4030
parente7e01e7831faf2d20fae13f356f58368c0ec99c8 (diff)
downloadopenembedded-core-179e056519c5ad761b2d942d7196664874c155e4.tar.gz
openembedded-core-179e056519c5ad761b2d942d7196664874c155e4.tar.bz2
openembedded-core-179e056519c5ad761b2d942d7196664874c155e4.zip
base.bbclass: Initial work to add GPLv2 Only Build with Whitelist for GPLv3 Native tools
[tweaks from Richard Purdie] Signed-off-by: Saul Wold <Saul.Wold@intel.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/classes/base.bbclass14
-rw-r--r--meta/conf/distro/poky.conf6
2 files changed, 19 insertions, 1 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 6ef2baba71..843c380a9e 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -437,6 +437,7 @@ do_build[func] = "1"
python () {
import exceptions
+ pn = bb.data.getVar('PN', d, 1)
# If we're building a target package we need to use fakeroot (pseudo)
# in order to capture permissions, owners, groups and special files
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
@@ -464,7 +465,18 @@ python () {
if this_machine and not re.match(need_machine, this_machine):
raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine)
- pn = bb.data.getVar('PN', d, 1)
+
+ dont_want_license = bb.data.getVar('INCOMPATIBLE_LICENSE', d, 1)
+ if dont_want_license and not pn.endswith("-native") and not pn.endswith("-cross") and not pn.endswith("-cross-initial") and not pn.endswith("-cross-intermediate"):
+ gplv3_hosttools_whitelist = (bb.data.getVar("GPLv3_HOSTTOOLS_WHITELIST", d, 1) or "").split()
+ gplv3_lgplv2_whitelist = (bb.data.getVar("GPLv3_LGPLv2_WHITELIST", d, 1) or "").split()
+ gplv3_whitelist = (bb.data.getVar("GPLv3_WHITELIST", d, 1) or "").split()
+ if pn not in gplv3_hosttools_whitelist and pn not in gplv3_lgplv2_whitelist and pn not in gplv3_whitelist:
+ import re
+ this_license = bb.data.getVar('LICENSE', d, 1)
+ if this_license and re.search(dont_want_license, this_license):
+ bb.note("SKIPPING %s because it's %s" % (pn, this_license))
+ raise bb.parse.SkipPackage("incompatible with license %s" % this_license)
# OBSOLETE in bitbake 1.7.4
srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1)
diff --git a/meta/conf/distro/poky.conf b/meta/conf/distro/poky.conf
index cd2067d405..8fb6742d50 100644
--- a/meta/conf/distro/poky.conf
+++ b/meta/conf/distro/poky.conf
@@ -117,5 +117,11 @@ IMAGE_FEATURES ?= ""
EXTRAOPKGCONFIG = "poky-feed-config-opkg"
+# This is a list of packages that are used by poky to build the distribution, they are not
+# directly part of the distribution.
+GPLv3_HOSTTOOLS_WHITELIST = ""
+GPLv3_WHITELIST = "less gnome-common"
+GPLv3_LGPLv2_WHITELIST = "libassuan gnutls libtasn1 libidn"
+
require conf/distro/include/world-broken.inc
require conf/distro/include/distro_tracking_fields.inc