[OE-core] [PATCH 1/1] classes/license: tweak license format messages

Paul Eggleton paul.eggleton at linux.intel.com
Tue Feb 3 15:28:52 UTC 2015


Strictly speaking not all of these characters are operators, so reword
the message to describe them as separators. Also use the standard
"recipename: message" format.

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
 meta/classes/license.bbclass | 15 ++++++++-------
 meta/lib/oe/license.py       |  3 ++-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index d659b76..21465d8 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -417,19 +417,20 @@ def check_license_format(d):
     """
     pn = d.getVar('PN', True)
     licenses = d.getVar('LICENSE', True)
-    from oe.license import license_operator
-    from oe.license import license_pattern
+    from oe.license import license_operator, license_operator_chars, license_pattern
 
     elements = filter(lambda x: x.strip(), license_operator.split(licenses))
     for pos, element in enumerate(elements):
         if license_pattern.match(element):
             if pos > 0 and license_pattern.match(elements[pos - 1]):
-                bb.warn("Recipe %s, LICENSE (%s) has invalid format, " \
-                        "LICENSES must have operator \"%s\" between them." %
-                        (pn, licenses, license_operator.pattern))
+                bb.warn('%s: LICENSE value "%s" has an invalid format - license names ' \
+                        'must be separated by the following characters to indicate ' \
+                        'the license selection: %s' %
+                        (pn, licenses, license_operator_chars))
         elif not license_operator.match(element):
-            bb.warn("Recipe %s, LICENSE (%s) has invalid operator (%s) not in" \
-                  " \"%s\"." % (pn, licenses, element, license_operator.pattern))
+            bb.warn('%s: LICENSE value "%s" has an invalid separator "%s" that is not ' \
+                    'in the valid list of separators (%s)' %
+                    (pn, licenses, element, license_operator_chars))
 
 SSTATETASKS += "do_populate_lic"
 do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}"
diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py
index 340da61..31ca15b 100644
--- a/meta/lib/oe/license.py
+++ b/meta/lib/oe/license.py
@@ -25,7 +25,8 @@ class InvalidLicense(LicenseError):
     def __str__(self):
         return "invalid characters in license '%s'" % self.license
 
-license_operator = re.compile('([&|() ])')
+license_operator_chars = '&|() '
+license_operator = re.compile('([' + license_operator_chars + '])')
 license_pattern = re.compile('[a-zA-Z0-9.+_\-]+$')
 
 class LicenseVisitor(ast.NodeVisitor):
-- 
1.9.3




More information about the Openembedded-core mailing list