[OE-core] [PATCH 1/1] archvier.bbclass: fix copyleft filter behavior

Kevin Strasser kevin.strasser at linux.intel.com
Thu Jan 24 23:34:15 UTC 2013


copyleft_should_include() was only filtering out recipes that
contain a license in COPYLEFT_LICENSE_EXCLUDE. This change adds
the requirement that the recipe contain a copyleft license, as
defined by COPYLEFT_LICENSE_INCLUDE.

Also, filtering results were being mistakenly negated in tar_filter().

Signed-off-by: Kevin Strasser <kevin.strasser at linux.intel.com>
---
 meta/classes/archiver.bbclass |    6 ++++--
 meta/lib/oe/license.py        |    4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index a4a2158..7fd4f0f 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -64,8 +64,10 @@ def copyleft_should_include(d):
     else:
         if is_included:
             return True, 'recipe has included licenses: %s' % ', '.join(reason)
-        else:
+        elif reason:
             return False, 'recipe has excluded licenses: %s' % ', '.join(reason)
+        else:
+            return False, 'recipe has neither included nor excluded licenses'
 
 def tar_filter(d):
     """
@@ -75,7 +77,7 @@ def tar_filter(d):
     """
     if d.getVar('FILTER', True) == "yes":
         included, reason = copyleft_should_include(d)
-        if not included:
+        if included:
             return False
         else:
             return True
diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py
index 173e319..fc15e9e 100644
--- a/meta/lib/oe/license.py
+++ b/meta/lib/oe/license.py
@@ -112,5 +112,7 @@ def is_included(licensestr, whitelist=None, blacklist=None):
     included = filter(lambda lic: include_license(lic), licenses)
     if excluded:
         return False, excluded
-    else:
+    elif included:
         return True, included
+    else:
+        return False, None
-- 
1.7.9.5





More information about the Openembedded-core mailing list