[OE-core] [CONSOLIDATED PULL 062/113] meta/classes/base.bbclass: base.bbclass should check for multiple (or) licenses in bb files

Saul Wold sgw at linux.intel.com
Tue Jan 3 06:19:48 UTC 2012


From: Andrei Gherzan <andrei.gherzan at windriver.com>

base.bbclass modified in order to check if there is an "or" operand, and if it is,
should check further if there are other non-excluded licenses.

[YOCTO #1844]

Signed-off-by: Andrei Gherzan <andrei at gherzan.ro>
---
 meta/classes/base.bbclass |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index e65a722..4ac809a 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -401,8 +401,21 @@ python () {
                 import re
                 this_license = d.getVar('LICENSE', 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)
+		    this_license_no_spaces = re.sub(r'\s', '', this_license)
+		    licenses = re.split('[|]', this_license_no_spaces)
+		    if len(licenses) != 0:
+			good_license=""
+		        for onelicense in licenses:
+			    if not re.search(dont_want_license, onelicense):
+				good_license = onelicense
+			if good_license == "":
+			    bb.note("SKIPPING %s because it's %s" % (pn, this_license))
+			    raise bb.parse.SkipPackage("incompatible with license %s" % this_license)
+			else:
+			    bb.note("NOT SKIPPING %s because it's %s which contains %s" % (pn, this_license, good_license))
+		    else:
+			bb.note("SKIPPING %s because it's %s" % (pn, this_license))
+			raise bb.parse.SkipPackage("incompatible with license %s" % this_license)
 
     srcuri = d.getVar('SRC_URI', 1)
     # Svn packages should DEPEND on subversion-native
-- 
1.7.6.4





More information about the Openembedded-core mailing list