From patchwork Thu Dec 29 10:20:15 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: meta/classes/base.bbclass: base.bbclass should check for multiple (or) licenses in bb files Date: Thu, 29 Dec 2011 10:20:15 -0000 From: Andrei Gherzan X-Patchwork-Id: 17777 Message-Id: <1325154015-3328-1-git-send-email-andrei@gherzan.ro> To: openembedded-core@lists.openembedded.org Cc: Andrei Gherzan , Andrei Gherzan From: Andrei Gherzan 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 --- 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 fbcaefb..1010b5a 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -402,8 +402,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