All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] License Consolidated Pull
@ 2011-12-07 19:34 Beth Flanagan
  2011-12-07 19:34 ` [PATCH 1/8] oe.test_types: move into an oe.tests package Beth Flanagan
                   ` (8 more replies)
  0 siblings, 9 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

These are the changes from the RFCs Chris Larson and I sent out this
weekend merged into one branch along with a gettext minimal fix from
RP. I've trimmed the diffs in the PULL down some as there are a number 
of license text diffs that cause send-patch-request to choke.


The following changes since commit f17e0ae38b2e6c4cbe7f0f9d76c3e1a386335fd1:

  conf/machine: Don't poke around providers which aren't machine specific/safe (2011-12-06 22:47:09 +0000)

are available in the git repository at:
  git://git.yoctoproject.org/poky-contrib eflanagan/consolidated_license
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=eflanagan/consolidated_license

Christopher Larson (4):
  oe.test_types: move into an oe.tests package
  license: split license parsing into oe.license
  oe.license: add license flattening code
  Add copyleft compliance class

Elizabeth Flanagan (3):
  [YOCTO #1776] license: manifest and license path
  OECore license fixes: meta/*
  package.bbclass: Adding license collection

Richard Purdie (1):
  gettext-minimal-native: Fix License

 meta/classes/copyleft_compliance.bbclass           |   94 +++
 meta/classes/license.bbclass                       |  258 +++++---
 meta/classes/package.bbclass                       |    1 +
 meta/conf/licenses.conf                            |   54 ++-
 meta/files/common-licenses/AFL-1                   |   92 ---
 meta/files/common-licenses/AFL-2                   |  155 -----
 meta/files/common-licenses/AGPL-3                  |  213 ------
 meta/files/common-licenses/APL-1                   |  327 ----------
 meta/files/common-licenses/APSL-1                  |  334 ----------
 meta/files/common-licenses/APSL-2                  |  337 ----------
 meta/files/common-licenses/Adobe                   |   14 +
 meta/files/common-licenses/Apache-1                |   59 --
 meta/files/common-licenses/Apache-2                |  203 ------
 meta/files/common-licenses/Artistic                |  131 ----
 meta/files/common-licenses/Artistic-1              |   97 ---
 meta/files/common-licenses/Artistic-2              |  202 ------
 meta/files/common-licenses/BSL-1                   |   25 -
 meta/files/common-licenses/BitstreamVera           |  160 +++++
 meta/files/common-licenses/CATOSL-1                |  335 ----------
 meta/files/common-licenses/CC-BY-1                 |  185 ------
 meta/files/common-licenses/CC-BY-2                 |  205 ------
 meta/files/common-licenses/CC-BY-3                 |  283 --------
 meta/files/common-licenses/CC-BY-NC-1              |  194 ------
 meta/files/common-licenses/CC-BY-NC-2              |  220 -------
 meta/files/common-licenses/CC-BY-NC-3              |  297 ---------
 meta/files/common-licenses/CC-BY-NC-ND-1           |  146 -----
 meta/files/common-licenses/CC-BY-NC-ND-2           |  209 ------
 meta/files/common-licenses/CC-BY-NC-ND-3           |  272 --------
 meta/files/common-licenses/CC-BY-NC-SA-1           |  209 ------
 meta/files/common-licenses/CC-BY-NC-SA-2           |  242 -------
 meta/files/common-licenses/CC-BY-NC-SA-3           |  320 ---------
 meta/files/common-licenses/CC-BY-ND-2              |  194 ------
 meta/files/common-licenses/CC-BY-ND-3              |  259 --------
 meta/files/common-licenses/CC-BY-SA-1              |  201 ------
 meta/files/common-licenses/CC-BY-SA-2              |  227 -------
 meta/files/common-licenses/CC-BY-SA-3              |  319 ---------
 meta/files/common-licenses/CDDL-1                  |  313 ---------
 meta/files/common-licenses/CECILL-1                |  462 -------------
 meta/files/common-licenses/CECILL-2                |  451 -------------
 meta/files/common-licenses/CPAL-1                  |  435 -------------
 meta/files/common-licenses/CPL-1                   |  250 -------
 meta/files/common-licenses/CUA-OPL-1               |  482 --------------
 meta/files/common-licenses/DSSSL                   |   49 ++
 meta/files/common-licenses/ECL-1                   |   61 --
 meta/files/common-licenses/ECL-2                   |  218 -------
 meta/files/common-licenses/EDL-1.0                 |   13 +
 meta/files/common-licenses/EFL-1                   |   30 -
 meta/files/common-licenses/EFL-2                   |   27 -
 meta/files/common-licenses/EPL-1                   |  204 ------
 meta/files/common-licenses/EUPL-1                  |  302 ---------
 meta/files/common-licenses/Elfutils-Exception      |   12 +
 meta/files/common-licenses/ErlPL-1                 |  293 ---------
 meta/files/common-licenses/FSF-Unlimited           |    4 +
 meta/files/common-licenses/Frameworx-1             |  181 ------
 meta/files/common-licenses/FreeType                |  170 +++++
 meta/files/common-licenses/GPL-1                   |  259 --------
 meta/files/common-licenses/GPL-1.0+                |  252 --------
 meta/files/common-licenses/GPL-2                   |   23 -
 .../common-licenses/GPL-2,0-with-GCC-exception     |   17 -
 .../common-licenses/GPL-2,0-with-font-exception    |   18 -
 meta/files/common-licenses/GPL-2.0+                |  132 ----
 .../common-licenses/GPL-2.0-with-GCC-exception     |   13 +-
 .../common-licenses/GPL-2.0-with-font-exception    |   14 +-
 meta/files/common-licenses/GPL-3                   |   70 --
 meta/files/common-licenses/GPL-3.0                 |  224 +++++++-
 meta/files/common-licenses/GPL-3.0+                |    3 -
 meta/files/common-licenses/IPL-1                   |  222 -------
 meta/files/common-licenses/LGPL-2                  |  461 -------------
 meta/files/common-licenses/LGPL-2.0                |  189 +++++-
 meta/files/common-licenses/LGPL-2.0+               |  173 -----
 meta/files/common-licenses/LGPL-2.1+               |  176 -----
 meta/files/common-licenses/LGPL-3                  |  147 -----
 meta/files/common-licenses/LGPL-3.0                |   53 +-
 meta/files/common-licenses/LGPL-3.0+               |   66 --
 meta/files/common-licenses/LPL-1                   |  213 ------
 meta/files/common-licenses/LPPL-1                  |  422 ------------
 meta/files/common-licenses/MIT-style               |    1 -
 meta/files/common-licenses/MPL-1                   |  433 -------------
 meta/files/common-licenses/NASA-1                  |  246 -------
 meta/files/common-licenses/NPOSL-3                 |  206 ------
 meta/files/common-licenses/OASIS                   |   13 +
 meta/files/common-licenses/OCLC-2                  |  207 ------
 meta/files/common-licenses/OFL-1                   |   96 ---
 meta/files/common-licenses/OLDAP-2                 |   54 --
 meta/files/common-licenses/OSL-1                   |  172 -----
 meta/files/common-licenses/OSL-1.0                 |    2 +-
 meta/files/common-licenses/OSL-2                   |  171 -----
 meta/files/common-licenses/OSL-3                   |  157 -----
 meta/files/common-licenses/PHP-3                   |   70 --
 meta/files/common-licenses/Proprietary             |    1 +
 meta/files/common-licenses/Python-2                |  192 ------
 meta/files/common-licenses/QPL-1                   |   96 ---
 meta/files/common-licenses/RPL-1                   |  582 -----------------
 meta/files/common-licenses/RPSL-1                  |  535 ---------------
 meta/files/common-licenses/SPL                     |  519 ---------------
 meta/files/common-licenses/Simple-2                |   53 --
 meta/files/common-licenses/UCB                     |   26 +
 meta/files/common-licenses/VSL-1                   |   54 --
 meta/files/common-licenses/Watcom-1                |  389 -----------
 meta/files/common-licenses/XFree86-1               |   50 --
 meta/files/common-licenses/YPL-1                   |  140 ----
 meta/files/common-licenses/ZPL-1                   |   60 --
 meta/files/common-licenses/ZPL-2                   |   44 --
 meta/files/common-licenses/Zimbra-1                |  140 ----
 meta/files/common-licenses/eCos-2                  |   38 --
 meta/lib/oe/license.py                             |   62 ++
 .../CC-BY-ND-1 => lib/oe/tests/__init__.py}        |    0
 meta/lib/oe/tests/test_license.py                  |   68 ++
 meta/lib/oe/{ => tests}/test_types.py              |    0
 .../base-files/base-files/licenses/Artistic        |  131 ----
 .../base-files/base-files/licenses/BSD             |   26 -
 .../base-files/base-files/licenses/GFDL-1.2        |  397 ------------
 .../base-files/base-files/licenses/GPL-3           |  676 -------------------
 .../base-files/base-files/licenses/LGPL-2          |  481 --------------
 .../base-files/base-files/licenses/LGPL-2.1        |  510 ---------------
 .../base-files/base-files/licenses/LGPL-3          |  165 -----
 meta/recipes-core/base-files/base-files_3.0.14.bb  |   20 +-
 meta/recipes-core/busybox/busybox.inc              |    3 +-
 meta/recipes-core/busybox/busybox_1.19.3.bb        |    2 +-
 .../gettext/gettext-minimal-0.18.1.1/COPYING       |  678 +-------------------
 .../gettext/gettext-minimal-native_0.18.1.1.bb     |    4 +-
 meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    4 +-
 meta/recipes-core/jpeg/jpeg_8c.bb                  |    4 +-
 meta/recipes-devtools/elfutils/elfutils_0.148.bb   |    4 +-
 meta/recipes-devtools/python/python-pyrex_0.9.9.bb |    4 +-
 .../squashfs-tools/squashfs-tools_4.2.bb           |    4 +-
 meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb   |    4 +-
 meta/recipes-devtools/tcltk/tcl_8.5.11.bb          |    4 +-
 .../transfig/transfig-native_3.2.5d.bb             |    4 +-
 meta/recipes-extended/byacc/byacc_20110908.bb      |   10 +-
 meta/recipes-extended/bzip2/bzip2_1.0.6.bb         |    4 +-
 meta/recipes-extended/less/less_444.bb             |    7 +-
 .../tcp-wrappers/tcp-wrappers_7.6.bb               |    4 +-
 meta/recipes-extended/unzip/unzip_6.0.bb           |    4 +-
 meta/recipes-extended/xinetd/xinetd_2.3.14.bb      |    5 +-
 meta/recipes-extended/zip/zip.inc                  |    2 +-
 meta/recipes-extended/zip/zip_3.0.bb               |    2 +-
 .../recipes-gnome/gnome/gnome-icon-theme_2.31.0.bb |    4 +-
 meta/recipes-graphics/clutter/clutter-box2d.inc    |    2 +-
 meta/recipes-graphics/clutter/clutter-box2d_git.bb |    2 +-
 meta/recipes-graphics/freetype/freetype_2.4.6.bb   |    4 +-
 .../ttf-fonts/ttf-bitstream-vera_1.10.bb           |    4 +-
 meta/recipes-graphics/xorg-app/xrandr_1.3.5.bb     |    4 +-
 .../recipes-graphics/xorg-font/font-alias_1.0.3.bb |    4 +-
 meta/recipes-graphics/xorg-font/font-util_1.2.0.bb |    5 +-
 .../linux-firmware/linux-firmware_git.bb           |    5 +
 meta/recipes-multimedia/libtiff/tiff_3.9.5.bb      |    4 +-
 .../matchbox-theme-sato/matchbox-theme-sato.inc    |    2 +-
 .../matchbox-theme-sato/matchbox-theme-sato_0.1.bb |    2 +-
 .../sato-icon-theme/sato-icon-theme.inc            |    2 +-
 .../sato-icon-theme/sato-icon-theme_0.4.1.bb       |    2 +-
 meta/recipes-support/boost/boost.inc               |    4 +-
 152 files changed, 1439 insertions(+), 20828 deletions(-)
 create mode 100644 meta/classes/copyleft_compliance.bbclass
 delete mode 100644 meta/files/common-licenses/AFL-1
 delete mode 100644 meta/files/common-licenses/AFL-2
 delete mode 100644 meta/files/common-licenses/AGPL-3
 delete mode 100644 meta/files/common-licenses/APL-1
 delete mode 100644 meta/files/common-licenses/APSL-1
 delete mode 100644 meta/files/common-licenses/APSL-2
 create mode 100644 meta/files/common-licenses/Adobe
 delete mode 100644 meta/files/common-licenses/Apache-1
 delete mode 100644 meta/files/common-licenses/Apache-2
 delete mode 100644 meta/files/common-licenses/Artistic
 delete mode 100644 meta/files/common-licenses/Artistic-1
 delete mode 100644 meta/files/common-licenses/Artistic-2
 delete mode 100644 meta/files/common-licenses/BSL-1
 create mode 100644 meta/files/common-licenses/BitstreamVera
 delete mode 100644 meta/files/common-licenses/CATOSL-1
 delete mode 100644 meta/files/common-licenses/CC-BY-1
 delete mode 100644 meta/files/common-licenses/CC-BY-2
 delete mode 100644 meta/files/common-licenses/CC-BY-3
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-1
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-2
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-3
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-ND-1
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-ND-2
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-ND-3
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-SA-1
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-SA-2
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-SA-3
 delete mode 100644 meta/files/common-licenses/CC-BY-ND-2
 delete mode 100644 meta/files/common-licenses/CC-BY-ND-3
 delete mode 100644 meta/files/common-licenses/CC-BY-SA-1
 delete mode 100644 meta/files/common-licenses/CC-BY-SA-2
 delete mode 100644 meta/files/common-licenses/CC-BY-SA-3
 delete mode 100644 meta/files/common-licenses/CDDL-1
 delete mode 100644 meta/files/common-licenses/CECILL-1
 delete mode 100644 meta/files/common-licenses/CECILL-2
 delete mode 100644 meta/files/common-licenses/CPAL-1
 delete mode 100644 meta/files/common-licenses/CPL-1
 delete mode 100644 meta/files/common-licenses/CUA-OPL-1
 create mode 100644 meta/files/common-licenses/DSSSL
 delete mode 100644 meta/files/common-licenses/ECL-1
 delete mode 100644 meta/files/common-licenses/ECL-2
 create mode 100644 meta/files/common-licenses/EDL-1.0
 delete mode 100644 meta/files/common-licenses/EFL-1
 delete mode 100644 meta/files/common-licenses/EFL-2
 delete mode 100644 meta/files/common-licenses/EPL-1
 delete mode 100644 meta/files/common-licenses/EUPL-1
 create mode 100644 meta/files/common-licenses/Elfutils-Exception
 delete mode 100644 meta/files/common-licenses/ErlPL-1
 create mode 100644 meta/files/common-licenses/FSF-Unlimited
 delete mode 100644 meta/files/common-licenses/Frameworx-1
 create mode 100644 meta/files/common-licenses/FreeType
 delete mode 100644 meta/files/common-licenses/GPL-1
 delete mode 100644 meta/files/common-licenses/GPL-1.0+
 delete mode 100644 meta/files/common-licenses/GPL-2
 delete mode 100644 meta/files/common-licenses/GPL-2,0-with-GCC-exception
 delete mode 100644 meta/files/common-licenses/GPL-2,0-with-font-exception
 delete mode 100644 meta/files/common-licenses/GPL-2.0+
 delete mode 100644 meta/files/common-licenses/GPL-3
 delete mode 100644 meta/files/common-licenses/GPL-3.0+
 delete mode 100644 meta/files/common-licenses/IPL-1
 delete mode 100644 meta/files/common-licenses/LGPL-2
 delete mode 100644 meta/files/common-licenses/LGPL-2.0+
 delete mode 100644 meta/files/common-licenses/LGPL-2.1+
 delete mode 100644 meta/files/common-licenses/LGPL-3
 delete mode 100644 meta/files/common-licenses/LGPL-3.0+
 delete mode 100644 meta/files/common-licenses/LPL-1
 delete mode 100644 meta/files/common-licenses/LPPL-1
 delete mode 120000 meta/files/common-licenses/MIT-style
 delete mode 100644 meta/files/common-licenses/MPL-1
 delete mode 100644 meta/files/common-licenses/NASA-1
 delete mode 100644 meta/files/common-licenses/NPOSL-3
 create mode 100644 meta/files/common-licenses/OASIS
 delete mode 100644 meta/files/common-licenses/OCLC-2
 delete mode 100644 meta/files/common-licenses/OFL-1
 delete mode 100644 meta/files/common-licenses/OLDAP-2
 delete mode 100644 meta/files/common-licenses/OSL-1
 delete mode 100644 meta/files/common-licenses/OSL-2
 delete mode 100644 meta/files/common-licenses/OSL-3
 delete mode 100644 meta/files/common-licenses/PHP-3
 create mode 100644 meta/files/common-licenses/Proprietary
 delete mode 100644 meta/files/common-licenses/Python-2
 delete mode 100644 meta/files/common-licenses/QPL-1
 delete mode 100644 meta/files/common-licenses/RPL-1
 delete mode 100644 meta/files/common-licenses/RPSL-1
 delete mode 100644 meta/files/common-licenses/SPL
 delete mode 100644 meta/files/common-licenses/Simple-2
 create mode 100644 meta/files/common-licenses/UCB
 delete mode 100644 meta/files/common-licenses/VSL-1
 delete mode 100644 meta/files/common-licenses/Watcom-1
 delete mode 100644 meta/files/common-licenses/XFree86-1
 delete mode 100644 meta/files/common-licenses/YPL-1
 delete mode 100644 meta/files/common-licenses/ZPL-1
 delete mode 100644 meta/files/common-licenses/ZPL-2
 delete mode 100644 meta/files/common-licenses/Zimbra-1
 delete mode 100644 meta/files/common-licenses/eCos-2
 create mode 100644 meta/lib/oe/license.py
 rename meta/{files/common-licenses/CC-BY-ND-1 => lib/oe/tests/__init__.py} (100%)
 create mode 100644 meta/lib/oe/tests/test_license.py
 rename meta/lib/oe/{ => tests}/test_types.py (100%)
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/Artistic
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/BSD
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/GFDL-1.2
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/GPL-3
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/LGPL-2
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/LGPL-2.1
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/LGPL-3




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH 1/8] oe.test_types: move into an oe.tests package
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-07 19:34 ` [PATCH 2/8] license: split license parsing into oe.license Beth Flanagan
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Christopher Larson <kergoth@gmail.com>

Signed-off-by: Christopher Larson <kergoth@gmail.com>
---
 meta/lib/oe/{ => tests}/test_types.py |    0
 1 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 meta/lib/oe/tests/__init__.py
 rename meta/lib/oe/{ => tests}/test_types.py (100%)

diff --git a/meta/lib/oe/tests/__init__.py b/meta/lib/oe/tests/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/meta/lib/oe/test_types.py b/meta/lib/oe/tests/test_types.py
similarity index 100%
rename from meta/lib/oe/test_types.py
rename to meta/lib/oe/tests/test_types.py
-- 
1.7.1




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [PATCH 2/8] license: split license parsing into oe.license
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
  2011-12-07 19:34 ` [PATCH 1/8] oe.test_types: move into an oe.tests package Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-07 19:34 ` [PATCH 3/8] oe.license: add license flattening code Beth Flanagan
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Christopher Larson <kergoth@gmail.com>

In addition to moving this functionality to oe.license, makes the string
preparation more picky before passing it off to the ast compilation. This
ensures that LICENSE entries like 'GPL/BSD' are seen as invalid (due to the
presence of the unsupported '/').

Signed-off-by: Christopher Larson <kergoth@gmail.com>
---
 meta/classes/license.bbclass      |   59 ++++++++++++------------------------
 meta/lib/oe/license.py            |   32 ++++++++++++++++++++
 meta/lib/oe/tests/test_license.py |   38 +++++++++++++++++++++++
 3 files changed, 90 insertions(+), 39 deletions(-)
 create mode 100644 meta/lib/oe/license.py
 create mode 100644 meta/lib/oe/tests/test_license.py

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 4d036b1..8c6e2d2 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -1,17 +1,17 @@
 # Populates LICENSE_DIRECTORY as set in distro config with the license files as set by
-# LIC_FILES_CHKSUM. 
+# LIC_FILES_CHKSUM.
 # TODO:
 # - We should also enable the ability to put the generated license directory onto the
 #  rootfs
 # - Gather up more generic licenses
-# - There is a real issue revolving around license naming standards. See license names 
+# - There is a real issue revolving around license naming standards. See license names
 #  licenses.conf and compare them to the license names in the recipes. You'll see some
 #  differences and that should be corrected.
 
 LICENSE_DIRECTORY ??= "${DEPLOY_DIR}/licenses"
 LICSSTATEDIR = "${WORKDIR}/license-destdir/"
 
-addtask populate_lic after do_patch before do_package 
+addtask populate_lic after do_patch before do_package
 do_populate_lic[dirs] = "${LICSSTATEDIR}/${PN}"
 do_populate_lic[cleandirs] = "${LICSSTATEDIR}"
 
@@ -20,7 +20,7 @@ do_populate_lic[cleandirs] = "${LICSSTATEDIR}"
 # break the non-standardized license names that we find in LICENSE, we'll set
 # up a bunch of VarFlags to accomodate non-SPDX license names.
 #
-# We should really discuss standardizing this field, but that's a longer term goal. 
+# We should really discuss standardizing this field, but that's a longer term goal.
 # For now, we can do this and it should grab the most common LICENSE naming variations.
 
 #GPL variations
@@ -57,37 +57,25 @@ python do_populate_lic() {
     import os
     import bb
     import shutil
-    import ast
-
-    class LicenseVisitor(ast.NodeVisitor):
-        def generic_visit(self, node):
-            ast.NodeVisitor.generic_visit(self, node)
+    import oe.license
 
+    class FindVisitor(oe.license.LicenseVisitor):
         def visit_Str(self, node):
             #
             # Until I figure out what to do with
             # the two modifiers I support (or greater = +
             # and "with exceptions" being *
-            # we'll just strip out the modifier and put 
+            # we'll just strip out the modifier and put
             # the base license.
             find_license(node.s.replace("+", "").replace("*", ""))
-            ast.NodeVisitor.generic_visit(self, node)
-
-        def visit_BinOp(self, node):
-            op = node.op
-            if isinstance(op, ast.BitOr): 
-                x = LicenseVisitor()
-                x.visit(node.left)
-                x.visit(node.right)
-            else:               
-                ast.NodeVisitor.generic_visit(self, node)
+            self.generic_visit(node)
 
     def copy_license(source, destination, file_name):
         try:
             bb.copyfile(os.path.join(source, file_name), os.path.join(destination, file_name))
         except:
             bb.warn("%s: No generic license file exists for: %s at %s" % (pn, file_name, source))
-            pass 
+            pass
 
     def link_license(source, destination, file_name):
         try:
@@ -108,8 +96,8 @@ python do_populate_lic() {
                 # Great, there is an SPDXLICENSEMAP. We can copy!
                 bb.note("We need to use a SPDXLICENSEMAP for %s" % (license_type))
                 spdx_generic = d.getVarFlag('SPDXLICENSEMAP', license_type)
-                copy_license(generic_directory, gen_lic_dest, spdx_generic)            
-                link_license(gen_lic_dest, destdir, spdx_generic)            
+                copy_license(generic_directory, gen_lic_dest, spdx_generic)
+                link_license(gen_lic_dest, destdir, spdx_generic)
             else:
                 # And here is where we warn people that their licenses are lousy
                 bb.warn("%s: No generic license file exists for: %s at %s" % (pn, license_type, generic_directory))
@@ -117,7 +105,7 @@ python do_populate_lic() {
                 pass
         elif os.path.isfile(os.path.join(generic_directory, license_type)):
             copy_license(generic_directory, gen_lic_dest, license_type)
-            link_license(gen_lic_dest, destdir, license_type)            
+            link_license(gen_lic_dest, destdir, license_type)
 
     # All the license types for the package
     license_types = d.getVar('LICENSE', True)
@@ -130,7 +118,7 @@ python do_populate_lic() {
     srcdir = d.getVar('S', True)
     # Directory we store the generic licenses as set in the distro configuration
     generic_directory = d.getVar('COMMON_LICENSE_DIR', True)
-    
+
     try:
         bb.mkdirhier(destdir)
     except:
@@ -153,21 +141,14 @@ python do_populate_lic() {
         # If the copy didn't occur, something horrible went wrong and we fail out
         if ret is False or ret == 0:
             bb.warn("%s could not be copied for some reason. It may not exist. WARN for now." % srclicfile)
- 
+
     gen_lic_dest = os.path.join(d.getVar('LICENSE_DIRECTORY', True), "common-licenses")
-    
-    clean_licenses = ""
-
-    for x in license_types.replace("(", " ( ").replace(")", " ) ").split():
-        if ((x != "(") and (x != ")") and (x != "&") and (x != "|")):
-            clean_licenses += "'" + x + "'"
-        else:
-            clean_licenses += " " + x + " "
-
-    # lstrip any possible indents, since ast needs python syntax.
-    node = ast.parse(clean_licenses.lstrip())
-    v = LicenseVisitor()
-    v.visit(node)
+
+    v = FindVisitor()
+    try:
+        v.visit_string(license_types)
+    except oe.license.InvalidLicense as exc:
+        bb.fatal("%s: %s" % (d.getVar('PF', True), exc))
 }
 
 SSTATETASKS += "do_populate_lic"
diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py
new file mode 100644
index 0000000..b230d3e
--- /dev/null
+++ b/meta/lib/oe/license.py
@@ -0,0 +1,32 @@
+# vi:sts=4:sw=4:et
+"""Code for parsing OpenEmbedded license strings"""
+
+import ast
+import re
+
+class InvalidLicense(StandardError):
+    def __init__(self, license):
+        self.license = license
+        StandardError.__init__(self)
+
+    def __str__(self):
+        return "invalid license '%s'" % self.license
+
+license_operator = re.compile('([&|() ])')
+license_pattern = re.compile('[a-zA-Z0-9.+_\-]+$')
+
+class LicenseVisitor(ast.NodeVisitor):
+    """Syntax tree visitor which can accept OpenEmbedded license strings"""
+    def visit_string(self, licensestr):
+        new_elements = []
+        elements = filter(lambda x: x.strip(), license_operator.split(licensestr))
+        for pos, element in enumerate(elements):
+            if license_pattern.match(element):
+                if pos > 0 and license_pattern.match(elements[pos-1]):
+                    new_elements.append('&')
+                element = '"' + element + '"'
+            elif not license_operator.match(element):
+                raise InvalidLicense(element)
+            new_elements.append(element)
+
+        self.visit(ast.parse(' '.join(new_elements)))
diff --git a/meta/lib/oe/tests/test_license.py b/meta/lib/oe/tests/test_license.py
new file mode 100644
index 0000000..cb949fc
--- /dev/null
+++ b/meta/lib/oe/tests/test_license.py
@@ -0,0 +1,38 @@
+import unittest
+import oe.license
+
+class SeenVisitor(oe.license.LicenseVisitor):
+    def __init__(self):
+        self.seen = []
+        oe.license.LicenseVisitor.__init__(self)
+
+    def visit_Str(self, node):
+        self.seen.append(node.s)
+
+class TestSingleLicense(unittest.TestCase):
+    licenses = [
+        "GPLv2",
+        "LGPL-2.0",
+        "Artistic",
+        "MIT",
+        "GPLv3+",
+        "FOO_BAR",
+    ]
+    invalid_licenses = ["GPL/BSD"]
+
+    @staticmethod
+    def parse(licensestr):
+        visitor = SeenVisitor()
+        visitor.visit_string(licensestr)
+        return visitor.seen
+
+    def test_single_licenses(self):
+        for license in self.licenses:
+            licenses = self.parse(license)
+            self.assertListEqual(licenses, [license])
+
+    def test_invalid_licenses(self):
+        for license in self.invalid_licenses:
+            with self.assertRaises(oe.license.InvalidLicense) as cm:
+                self.parse(license)
+            self.assertEqual(cm.exception.license, license)
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH 3/8] oe.license: add license flattening code
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
  2011-12-07 19:34 ` [PATCH 1/8] oe.test_types: move into an oe.tests package Beth Flanagan
  2011-12-07 19:34 ` [PATCH 2/8] license: split license parsing into oe.license Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-07 19:34 ` [PATCH 4/8] Add copyleft compliance class Beth Flanagan
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Christopher Larson <kergoth@gmail.com>

This flattens a license tree by selecting one side of each OR operation
(chosen via the user supplied function).

Signed-off-by: Christopher Larson <kergoth@gmail.com>
---
 meta/lib/oe/license.py            |   30 ++++++++++++++++++++++++++++++
 meta/lib/oe/tests/test_license.py |   30 ++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)

diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py
index b230d3e..7ab66e7 100644
--- a/meta/lib/oe/license.py
+++ b/meta/lib/oe/license.py
@@ -30,3 +30,33 @@ class LicenseVisitor(ast.NodeVisitor):
             new_elements.append(element)
 
         self.visit(ast.parse(' '.join(new_elements)))
+
+class FlattenVisitor(LicenseVisitor):
+    """Flatten a license tree (parsed from a string) by selecting one of each
+    set of OR options, in the way the user specifies"""
+    def __init__(self, choose_licenses):
+        self.choose_licenses = choose_licenses
+        self.licenses = []
+        LicenseVisitor.__init__(self)
+
+    def visit_Str(self, node):
+        self.licenses.append(node.s)
+
+    def visit_BinOp(self, node):
+        if isinstance(node.op, ast.BitOr):
+            left = FlattenVisitor(self.choose_licenses)
+            left.visit(node.left)
+
+            right = FlattenVisitor(self.choose_licenses)
+            right.visit(node.right)
+
+            selected = self.choose_licenses(left.licenses, right.licenses)
+            self.licenses.extend(selected)
+        else:
+            self.generic_visit(node)
+
+def flattened_licenses(licensestr, choose_licenses):
+    """Given a license string and choose_licenses function, return a flat list of licenses"""
+    flatten = FlattenVisitor(choose_licenses)
+    flatten.visit_string(licensestr)
+    return flatten.licenses
diff --git a/meta/lib/oe/tests/test_license.py b/meta/lib/oe/tests/test_license.py
index cb949fc..c388886 100644
--- a/meta/lib/oe/tests/test_license.py
+++ b/meta/lib/oe/tests/test_license.py
@@ -36,3 +36,33 @@ class TestSingleLicense(unittest.TestCase):
             with self.assertRaises(oe.license.InvalidLicense) as cm:
                 self.parse(license)
             self.assertEqual(cm.exception.license, license)
+
+class TestSimpleCombinations(unittest.TestCase):
+    tests = {
+        "FOO&BAR": ["FOO", "BAR"],
+        "BAZ & MOO": ["BAZ", "MOO"],
+        "ALPHA|BETA": ["ALPHA"],
+        "BAZ&MOO|FOO": ["FOO"],
+        "FOO&BAR|BAZ": ["FOO", "BAR"],
+    }
+    preferred = ["ALPHA", "FOO", "BAR"]
+
+    def test_tests(self):
+        def choose(a, b):
+            if all(lic in self.preferred for lic in b):
+                return b
+            else:
+                return a
+
+        for license, expected in self.tests.items():
+            licenses = oe.license.flattened_licenses(license, choose)
+            self.assertListEqual(licenses, expected)
+
+class TestComplexCombinations(TestSimpleCombinations):
+    tests = {
+        "FOO & (BAR | BAZ)&MOO": ["FOO", "BAR", "MOO"],
+        "(ALPHA|(BETA&THETA)|OMEGA)&DELTA": ["OMEGA", "DELTA"],
+        "((ALPHA|BETA)&FOO)|BAZ": ["BETA", "FOO"],
+        "(GPL-2.0|Proprietary)&BSD-4-clause&MIT": ["GPL-2.0", "BSD-4-clause", "MIT"],
+    }
+    preferred = ["BAR", "OMEGA", "BETA", "GPL-2.0"]
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH 4/8] Add copyleft compliance class
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
                   ` (2 preceding siblings ...)
  2011-12-07 19:34 ` [PATCH 3/8] oe.license: add license flattening code Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-07 21:53   ` Khem Raj
  2011-12-07 19:34 ` [PATCH 5/8] gettext-minimal-native: Fix License Beth Flanagan
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Christopher Larson <kergoth@gmail.com>

Deploys sources for recipes for compliance with copyleft-style licenses
Defaults to using symlinks, as it's a quick operation, and one can easily
follow the links when making use of the files (e.g. tar with the -h arg).

By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.

Signed-off-by: Christopher Larson <kergoth@gmail.com>
---
 meta/classes/copyleft_compliance.bbclass |   94 ++++++++++++++++++++++++++++++
 1 files changed, 94 insertions(+), 0 deletions(-)
 create mode 100644 meta/classes/copyleft_compliance.bbclass

diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
new file mode 100644
index 0000000..5d9ab11
--- /dev/null
+++ b/meta/classes/copyleft_compliance.bbclass
@@ -0,0 +1,94 @@
+# Deploy sources for recipes for compliance with copyleft-style licenses
+# Defaults to using symlinks, as it's a quick operation, and one can easily
+# follow the links when making use of the files (e.g. tar with the -h arg).
+#
+# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
+#
+# vi:sts=4:sw=4:et
+
+COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
+
+COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
+COPYLEFT_LICENSE_INCLUDE[type] = 'list'
+COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
+
+COPYLEFT_LICENSE_EXCLUDE ?= 'CLOSED Proprietary'
+COPYLEFT_LICENSE_EXCLUDE[type] = 'list'
+COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which exclude licenses'
+
+
+def copyleft_should_include(d):
+    """Determine if this recipe's sources should be deployed for compliance"""
+    import ast
+    import oe.license
+    from fnmatch import fnmatchcase as fnmatch
+
+    if oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'crossdk'):
+        # not a target recipe
+        return
+
+    include = oe.data.typed_value('COPYLEFT_LICENSE_INCLUDE', d)
+    exclude = oe.data.typed_value('COPYLEFT_LICENSE_EXCLUDE', d)
+
+    def include_license(license):
+        if any(fnmatch(license, pattern) for pattern in exclude):
+            return False
+        if any(fnmatch(license, pattern) for pattern in include):
+            return True
+        return False
+
+    def choose_licenses(a, b):
+        """Select the left option in an OR if all its licenses are to be included"""
+        if all(include_license(lic) for lic in a):
+            return a
+        else:
+            return b
+
+    try:
+        licenses = oe.license.flattened_licenses(d.getVar('LICENSE', True), choose_licenses)
+    except oe.license.InvalidLicense as exc:
+        bb.fatal('%s: %s' % (d.getVar('PF', True), exc))
+
+    return all(include_license(lic) for lic in licenses)
+
+python do_prepare_copyleft_sources () {
+    """Populate a tree of the recipe sources and emit patch series files"""
+    import os.path
+    import shutil
+
+    if not copyleft_should_include(d):
+        return
+
+    sources_dir = d.getVar('COPYLEFT_SOURCES_DIR', 1)
+    src_uri = d.getVar('SRC_URI', 1).split()
+    fetch = bb.fetch2.Fetch(src_uri, d)
+    ud = fetch.ud
+
+    locals = (fetch.localpath(url) for url in fetch.urls)
+    localpaths = [local for local in locals if not local.endswith('.bb')]
+    if not localpaths:
+        return
+
+    pf = d.getVar('PF', True)
+    dest = os.path.join(sources_dir, pf)
+    shutil.rmtree(dest, ignore_errors=True)
+    bb.mkdirhier(dest)
+
+    for path in localpaths:
+        os.symlink(path, os.path.join(dest, os.path.basename(path)))
+
+    patches = src_patches(d)
+    for patch in patches:
+        _, _, local, _, _, parm = bb.decodeurl(patch)
+        patchdir = parm.get('patchdir')
+        if patchdir:
+            series = os.path.join(dest, 'series.subdir.%s' % patchdir.replace('/', '_'))
+        else:
+            series = os.path.join(dest, 'series')
+
+        with open(series, 'a') as s:
+            s.write('%s -p%s\n' % (os.path.basename(local), parm['striplevel']))
+}
+
+addtask prepare_copyleft_sources after do_fetch before do_build
+do_build[recrdeptask] += 'do_prepare_copyleft_sources'
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH 5/8] gettext-minimal-native: Fix License
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
                   ` (3 preceding siblings ...)
  2011-12-07 19:34 ` [PATCH 4/8] Add copyleft compliance class Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-07 19:34 ` [PATCH 6/8] [YOCTO #1776] license: manifest and license path Beth Flanagan
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Richard Purdie <richard.purdie@linuxfoundation.org>

Only .m4 macros are included in this recipe so the correct license is FSF-Unlimited
as specified in those marcros, not the main gettext license. This patch corrects
that mistake.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 .../gettext/gettext-minimal-0.18.1.1/COPYING       |  678 +-------------------
 .../gettext/gettext-minimal-native_0.18.1.1.bb     |    4 +-
 2 files changed, 6 insertions(+), 676 deletions(-)

diff --git a/meta/recipes-core/gettext/gettext-minimal-native_0.18.1.1.bb b/meta/recipes-core/gettext/gettext-minimal-native_0.18.1.1.bb
index 71c6045..ab4acaf 100644
--- a/meta/recipes-core/gettext/gettext-minimal-native_0.18.1.1.bb
+++ b/meta/recipes-core/gettext/gettext-minimal-native_0.18.1.1.bb
@@ -5,11 +5,11 @@ INHIBIT_DEFAULT_DEPS = "1"
 INHIBIT_AUTOTOOLS_DEPS = "1"
 
 LICENSE = "FSF-Unlimited"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0854da868a929923087141d9d7aba7d5"
 
 inherit native
 
-PR = "r1"
+PR = "r2"
 
 S = "${WORKDIR}"
 
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
                   ` (4 preceding siblings ...)
  2011-12-07 19:34 ` [PATCH 5/8] gettext-minimal-native: Fix License Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-09 13:30   ` Richard Purdie
  2011-12-07 19:34 ` [PATCH 7/8] OECore license fixes: meta/* Beth Flanagan
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>

This is a fairly large commit, so I want to step through some of
what this accomplishes:

1. Additional licenses

I've added/modified/corrected some of the common licenses
within OE-core in prep. for a major license audit. Most of these
are in SPDX format. A few, there is no OSI equivalent.

2. Additional SPDX mappings

I've added some additional SPDX mappings to account for removing
some duplicate licenses. (ie GPL-2 and GPL-2.0 were the same)
I've also remapped a few things to more accurately reflect what
they should be pointing at.

Note: Artistic/LGPL/GPL/MPL. Quite a few LICENSE fields list these
licenses. They make no sense and need auditing. In a future commit
I have some fixes to particularly egregious LICENSE fields, but
a full audit should be done. I've listed to obvious candidates at:

https://wiki.yoctoproject.org/wiki/License_Audit

3. License manifest

We now have a license manifest generation that occurs in rootfs for
everything BUT .deb. This requires the changes Paul Eggleton has
done to rootfs_* particularly the list_installed_packages function.
The manifest is accurate during a parallel bitbake now (Weee!) and
is prime for my planned SPDX format manifest during the next period.

4. License manifest on image.

We also want the ability to add licenses to the image. This
functionality is also in base-files and will be stripped out in my
next commit. The manifest is not added by default and is a two var
setting in license.conf:

If I want *just* the manifest on the image (small) then I set:
COPY_LIC_MANIFEST = "1"

This copies the manifest to:

/usr/share/common-licenses/license.manifest

If I want the actual PKG license text on the image (much larger)
I need to set both both COPY_LIC_MANIFEST and COPY_LIC_DIRS in
license.conf. This will create:

/usr/share/common-licenses/(package name)/(licenses in LIC_SRC_URI)

Word of warning. This can be larger than wanted depending on image
and is probably ripe for linking licenses, but I ran out of time this
week to get that done.

5. Custom License search path.

We now have the ability to add licenses to the build without touching
common-licenses. This is set via license.conf:

LICENSE_PATH += "/path/to/custom/licenses"

You want to make sure the license is unique. license.bbclass picks the
first license it finds.

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
---
 meta/classes/license.bbclass                       |  219 +++++---
 meta/conf/licenses.conf                            |   54 ++-
 meta/files/common-licenses/AFL-1                   |   92 ---
 meta/files/common-licenses/AFL-2                   |  155 ------
 meta/files/common-licenses/AGPL-3                  |  213 -------
 meta/files/common-licenses/APL-1                   |  327 -----------
 meta/files/common-licenses/APSL-1                  |  334 -----------
 meta/files/common-licenses/APSL-2                  |  337 -----------
 meta/files/common-licenses/Adobe                   |   14 +
 meta/files/common-licenses/Apache-1                |   59 --
 meta/files/common-licenses/Apache-2                |  203 -------
 meta/files/common-licenses/Artistic                |  131 -----
 meta/files/common-licenses/Artistic-1              |   97 ----
 meta/files/common-licenses/Artistic-2              |  202 -------
 meta/files/common-licenses/BSL-1                   |   25 -
 meta/files/common-licenses/BitstreamVera           |  160 ++++++
 meta/files/common-licenses/CATOSL-1                |  335 -----------
 meta/files/common-licenses/CC-BY-1                 |  185 -------
 meta/files/common-licenses/CC-BY-2                 |  205 -------
 meta/files/common-licenses/CC-BY-3                 |  283 ----------
 meta/files/common-licenses/CC-BY-NC-1              |  194 -------
 meta/files/common-licenses/CC-BY-NC-2              |  220 --------
 meta/files/common-licenses/CC-BY-NC-3              |  297 ----------
 meta/files/common-licenses/CC-BY-NC-ND-1           |  146 -----
 meta/files/common-licenses/CC-BY-NC-ND-2           |  209 -------
 meta/files/common-licenses/CC-BY-NC-ND-3           |  272 ---------
 meta/files/common-licenses/CC-BY-NC-SA-1           |  209 -------
 meta/files/common-licenses/CC-BY-NC-SA-2           |  242 --------
 meta/files/common-licenses/CC-BY-NC-SA-3           |  320 -----------
 meta/files/common-licenses/CC-BY-ND-2              |  194 -------
 meta/files/common-licenses/CC-BY-ND-3              |  259 ---------
 meta/files/common-licenses/CC-BY-SA-1              |  201 -------
 meta/files/common-licenses/CC-BY-SA-2              |  227 --------
 meta/files/common-licenses/CC-BY-SA-3              |  319 -----------
 meta/files/common-licenses/CDDL-1                  |  313 -----------
 meta/files/common-licenses/CECILL-1                |  462 ----------------
 meta/files/common-licenses/CECILL-2                |  451 ---------------
 meta/files/common-licenses/CPAL-1                  |  435 ---------------
 meta/files/common-licenses/CPL-1                   |  250 ---------
 meta/files/common-licenses/CUA-OPL-1               |  482 ----------------
 meta/files/common-licenses/DSSSL                   |   49 ++
 meta/files/common-licenses/ECL-1                   |   61 --
 meta/files/common-licenses/ECL-2                   |  218 --------
 meta/files/common-licenses/EDL-1.0                 |   13 +
 meta/files/common-licenses/EFL-1                   |   30 -
 meta/files/common-licenses/EFL-2                   |   27 -
 meta/files/common-licenses/EPL-1                   |  204 -------
 meta/files/common-licenses/EUPL-1                  |  302 ----------
 meta/files/common-licenses/Elfutils-Exception      |   12 +
 meta/files/common-licenses/ErlPL-1                 |  293 ----------
 meta/files/common-licenses/FSF-Unlimited           |    4 +
 meta/files/common-licenses/Frameworx-1             |  181 ------
 meta/files/common-licenses/FreeType                |  170 ++++++
 meta/files/common-licenses/GPL-1                   |  259 ---------
 meta/files/common-licenses/GPL-1.0+                |  252 ---------
 meta/files/common-licenses/GPL-2                   |   23 -
 .../common-licenses/GPL-2,0-with-GCC-exception     |   17 -
 .../common-licenses/GPL-2,0-with-font-exception    |   18 -
 meta/files/common-licenses/GPL-2.0+                |  132 -----
 .../common-licenses/GPL-2.0-with-GCC-exception     |   13 +-
 .../common-licenses/GPL-2.0-with-font-exception    |   14 +-
 meta/files/common-licenses/GPL-3                   |   70 ---
 meta/files/common-licenses/GPL-3.0                 |  224 ++++++++-
 meta/files/common-licenses/GPL-3.0+                |    3 -
 meta/files/common-licenses/IPL-1                   |  222 --------
 meta/files/common-licenses/LGPL-2                  |  461 ----------------
 meta/files/common-licenses/LGPL-2.0                |  189 ++++++-
 meta/files/common-licenses/LGPL-2.0+               |  173 ------
 meta/files/common-licenses/LGPL-2.1+               |  176 ------
 meta/files/common-licenses/LGPL-3                  |  147 -----
 meta/files/common-licenses/LGPL-3.0                |   53 +-
 meta/files/common-licenses/LGPL-3.0+               |   66 ---
 meta/files/common-licenses/LPL-1                   |  213 -------
 meta/files/common-licenses/LPPL-1                  |  422 --------------
 meta/files/common-licenses/MIT-style               |    1 -
 meta/files/common-licenses/MPL-1                   |  433 ---------------
 meta/files/common-licenses/NASA-1                  |  246 ---------
 meta/files/common-licenses/NPOSL-3                 |  206 -------
 meta/files/common-licenses/OASIS                   |   13 +
 meta/files/common-licenses/OCLC-2                  |  207 -------
 meta/files/common-licenses/OFL-1                   |   96 ----
 meta/files/common-licenses/OLDAP-2                 |   54 --
 meta/files/common-licenses/OSL-1                   |  172 ------
 meta/files/common-licenses/OSL-1.0                 |    2 +-
 meta/files/common-licenses/OSL-2                   |  171 ------
 meta/files/common-licenses/OSL-3                   |  157 ------
 meta/files/common-licenses/PHP-3                   |   70 ---
 meta/files/common-licenses/Proprietary             |    1 +
 meta/files/common-licenses/Python-2                |  192 -------
 meta/files/common-licenses/QPL-1                   |   96 ----
 meta/files/common-licenses/RPL-1                   |  582 --------------------
 meta/files/common-licenses/RPSL-1                  |  535 ------------------
 meta/files/common-licenses/SPL                     |  519 -----------------
 meta/files/common-licenses/Simple-2                |   53 --
 meta/files/common-licenses/UCB                     |   26 +
 meta/files/common-licenses/VSL-1                   |   54 --
 meta/files/common-licenses/Watcom-1                |  389 -------------
 meta/files/common-licenses/XFree86-1               |   50 --
 meta/files/common-licenses/YPL-1                   |  140 -----
 meta/files/common-licenses/ZPL-1                   |   60 --
 meta/files/common-licenses/ZPL-2                   |   44 --
 meta/files/common-licenses/Zimbra-1                |  140 -----
 meta/files/common-licenses/eCos-2                  |   38 --
 103 files changed, 1119 insertions(+), 17671 deletions(-)
 delete mode 100644 meta/files/common-licenses/AFL-1
 delete mode 100644 meta/files/common-licenses/AFL-2
 delete mode 100644 meta/files/common-licenses/AGPL-3
 delete mode 100644 meta/files/common-licenses/APL-1
 delete mode 100644 meta/files/common-licenses/APSL-1
 delete mode 100644 meta/files/common-licenses/APSL-2
 create mode 100644 meta/files/common-licenses/Adobe
 delete mode 100644 meta/files/common-licenses/Apache-1
 delete mode 100644 meta/files/common-licenses/Apache-2
 delete mode 100644 meta/files/common-licenses/Artistic
 delete mode 100644 meta/files/common-licenses/Artistic-1
 delete mode 100644 meta/files/common-licenses/Artistic-2
 delete mode 100644 meta/files/common-licenses/BSL-1
 create mode 100644 meta/files/common-licenses/BitstreamVera
 delete mode 100644 meta/files/common-licenses/CATOSL-1
 delete mode 100644 meta/files/common-licenses/CC-BY-1
 delete mode 100644 meta/files/common-licenses/CC-BY-2
 delete mode 100644 meta/files/common-licenses/CC-BY-3
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-1
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-2
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-3
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-ND-1
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-ND-2
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-ND-3
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-SA-1
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-SA-2
 delete mode 100644 meta/files/common-licenses/CC-BY-NC-SA-3
 delete mode 100644 meta/files/common-licenses/CC-BY-ND-1
 delete mode 100644 meta/files/common-licenses/CC-BY-ND-2
 delete mode 100644 meta/files/common-licenses/CC-BY-ND-3
 delete mode 100644 meta/files/common-licenses/CC-BY-SA-1
 delete mode 100644 meta/files/common-licenses/CC-BY-SA-2
 delete mode 100644 meta/files/common-licenses/CC-BY-SA-3
 delete mode 100644 meta/files/common-licenses/CDDL-1
 delete mode 100644 meta/files/common-licenses/CECILL-1
 delete mode 100644 meta/files/common-licenses/CECILL-2
 delete mode 100644 meta/files/common-licenses/CPAL-1
 delete mode 100644 meta/files/common-licenses/CPL-1
 delete mode 100644 meta/files/common-licenses/CUA-OPL-1
 create mode 100644 meta/files/common-licenses/DSSSL
 delete mode 100644 meta/files/common-licenses/ECL-1
 delete mode 100644 meta/files/common-licenses/ECL-2
 create mode 100644 meta/files/common-licenses/EDL-1.0
 delete mode 100644 meta/files/common-licenses/EFL-1
 delete mode 100644 meta/files/common-licenses/EFL-2
 delete mode 100644 meta/files/common-licenses/EPL-1
 delete mode 100644 meta/files/common-licenses/EUPL-1
 create mode 100644 meta/files/common-licenses/Elfutils-Exception
 delete mode 100644 meta/files/common-licenses/ErlPL-1
 create mode 100644 meta/files/common-licenses/FSF-Unlimited
 delete mode 100644 meta/files/common-licenses/Frameworx-1
 create mode 100644 meta/files/common-licenses/FreeType
 delete mode 100644 meta/files/common-licenses/GPL-1
 delete mode 100644 meta/files/common-licenses/GPL-1.0+
 delete mode 100644 meta/files/common-licenses/GPL-2
 delete mode 100644 meta/files/common-licenses/GPL-2,0-with-GCC-exception
 delete mode 100644 meta/files/common-licenses/GPL-2,0-with-font-exception
 delete mode 100644 meta/files/common-licenses/GPL-2.0+
 delete mode 100644 meta/files/common-licenses/GPL-3
 delete mode 100644 meta/files/common-licenses/GPL-3.0+
 delete mode 100644 meta/files/common-licenses/IPL-1
 delete mode 100644 meta/files/common-licenses/LGPL-2
 delete mode 100644 meta/files/common-licenses/LGPL-2.0+
 delete mode 100644 meta/files/common-licenses/LGPL-2.1+
 delete mode 100644 meta/files/common-licenses/LGPL-3
 delete mode 100644 meta/files/common-licenses/LGPL-3.0+
 delete mode 100644 meta/files/common-licenses/LPL-1
 delete mode 100644 meta/files/common-licenses/LPPL-1
 delete mode 120000 meta/files/common-licenses/MIT-style
 delete mode 100644 meta/files/common-licenses/MPL-1
 delete mode 100644 meta/files/common-licenses/NASA-1
 delete mode 100644 meta/files/common-licenses/NPOSL-3
 create mode 100644 meta/files/common-licenses/OASIS
 delete mode 100644 meta/files/common-licenses/OCLC-2
 delete mode 100644 meta/files/common-licenses/OFL-1
 delete mode 100644 meta/files/common-licenses/OLDAP-2
 delete mode 100644 meta/files/common-licenses/OSL-1
 delete mode 100644 meta/files/common-licenses/OSL-2
 delete mode 100644 meta/files/common-licenses/OSL-3
 delete mode 100644 meta/files/common-licenses/PHP-3
 create mode 100644 meta/files/common-licenses/Proprietary
 delete mode 100644 meta/files/common-licenses/Python-2
 delete mode 100644 meta/files/common-licenses/QPL-1
 delete mode 100644 meta/files/common-licenses/RPL-1
 delete mode 100644 meta/files/common-licenses/RPSL-1
 delete mode 100644 meta/files/common-licenses/SPL
 delete mode 100644 meta/files/common-licenses/Simple-2
 create mode 100644 meta/files/common-licenses/UCB
 delete mode 100644 meta/files/common-licenses/VSL-1
 delete mode 100644 meta/files/common-licenses/Watcom-1
 delete mode 100644 meta/files/common-licenses/XFree86-1
 delete mode 100644 meta/files/common-licenses/YPL-1
 delete mode 100644 meta/files/common-licenses/ZPL-1
 delete mode 100644 meta/files/common-licenses/ZPL-2
 delete mode 100644 meta/files/common-licenses/Zimbra-1
 delete mode 100644 meta/files/common-licenses/eCos-2

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 8c6e2d2..8c64e4c 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -1,17 +1,12 @@
 # Populates LICENSE_DIRECTORY as set in distro config with the license files as set by
 # LIC_FILES_CHKSUM.
 # TODO:
-# - We should also enable the ability to put the generated license directory onto the
-#  rootfs
-# - Gather up more generic licenses
-# - There is a real issue revolving around license naming standards. See license names
-#  licenses.conf and compare them to the license names in the recipes. You'll see some
-#  differences and that should be corrected.
+# - There is a real issue revolving around license naming standards.
 
 LICENSE_DIRECTORY ??= "${DEPLOY_DIR}/licenses"
 LICSSTATEDIR = "${WORKDIR}/license-destdir/"
 
-addtask populate_lic after do_patch before do_package
+addtask populate_lic after do_patch before do_compile
 do_populate_lic[dirs] = "${LICSSTATEDIR}/${PN}"
 do_populate_lic[cleandirs] = "${LICSSTATEDIR}"
 
@@ -22,33 +17,122 @@ do_populate_lic[cleandirs] = "${LICSSTATEDIR}"
 #
 # We should really discuss standardizing this field, but that's a longer term goal.
 # For now, we can do this and it should grab the most common LICENSE naming variations.
-
-#GPL variations
-SPDXLICENSEMAP[GPL] = "GPL-1"
-SPDXLICENSEMAP[GPLv2] = "GPL-2"
-SPDXLICENSEMAP[GPLv3] = "GPL-3"
+#
+# Changing GPL mapping to GPL-2 as it's not very likely to be GPL-1
+# We should NEVER have a GPL/LGPL without a version!!!!
+# Any mapping to MPL/LGPL/GPL should be fixed
+# see: https://wiki.yoctoproject.org/wiki/License_Audit
+
+# GPL variations
+SPDXLICENSEMAP[GPL-2] = "GPL-2.0"
+SPDXLICENSEMAP[GPLv2] = "GPL-2.0"
+SPDXLICENSEMAP[GPLv2.0] = "GPL-2.0"
+SPDXLICENSEMAP[GPL-3] = "GPL-3.0"
+SPDXLICENSEMAP[GPLv3] = "GPL-3.0"
+SPDXLICENSEMAP[GPLv3.0] = "GPL-3.0"
 
 #LGPL variations
-SPDXLICENSEMAP[LGPL] = "LGPL-2"
-SPDXLICENSEMAP[LGPLv2] = "LGPL-2"
+SPDXLICENSEMAP[LGPLv2] = "LGPL-2.0"
 SPDXLICENSEMAP[LGPL2.1] = "LGPL-2.1"
 SPDXLICENSEMAP[LGPLv2.1] = "LGPL-2.1"
-SPDXLICENSEMAP[LGPLv3] = "LGPL-3"
+SPDXLICENSEMAP[LGPLv3] = "LGPL-3.0"
 
 #MPL variations
-SPDXLICENSEMAP[MPL] = "MPL-1"
-SPDXLICENSEMAP[MPLv1] = "MPL-1"
-SPDXLICENSEMAP[MPLv1.1] = "MPL-1"
+SPDXLICENSEMAP[MPL-1] = "MPL-1.0"
+SPDXLICENSEMAP[MPLv1] = "MPL-1.0"
+SPDXLICENSEMAP[MPLv1.1] = "MPL-1.1"
 
 #MIT variations
 SPDXLICENSEMAP[MIT-X] = "MIT"
+SPDXLICENSEMAP[MIT-style] = "MIT"
 
 #Openssl variations
 SPDXLICENSEMAP[openssl] = "OpenSSL"
 
+#Python variations
+SPDXLICENSEMAP[PSF] = "Python-2.0"
+SPDXLICENSEMAP[PSFv2] = "Python-2.0"
+SPDXLICENSEMAP[Python-2] = "Python-2.0"
+
+#Apache variations
+SPDXLICENSEMAP[Apachev2] = "Apache-2.0"
+SPDXLICENSEMAP[Apache-2] = "Apache-2.0"
+
+#Artistic variations
+SPDXLICENSEMAP[Artisticv1] = "Artistic-1.0"
+SPDXLICENSEMAP[Artistic-1] = "Artistic-1.0"
+
+#Academic variations
+SPDXLICENSEMAP[AFL-2] = "AFL-2.0"
+SPDXLICENSEMAP[AFL-1] = "AFL-1.2"
+SPDXLICENSEMAP[AFLv2] = "AFL-2.0"
+SPDXLICENSEMAP[AFLv1] = "AFL-1.2"
+
 #Other variations
-SPDXLICENSEMAP[AFL2.1] = "AFL-2"
-SPDXLICENSEMAP[EPLv1.0] = "EPL-1"
+SPDXLICENSEMAP[EPLv1.0] = "EPL-1.0"
+
+license_create_manifest() {
+    mkdir -p ${LICENSE_DIRECTORY}/${IMAGE_NAME}
+    # Get list of installed packages
+    list_installed_packages | grep -v "locale" |sort > ${LICENSE_DIRECTORY}/${IMAGE_NAME}/package.manifest
+    INSTALLED_PKGS=`cat ${LICENSE_DIRECTORY}/${IMAGE_NAME}/package.manifest`
+    # list of installed packages is broken for deb
+    if [ ${IMAGE_PKGTYPE} != "deb" ]; then
+
+        for pkg in ${INSTALLED_PKGS}; do
+            # not the best way to do this but licenses are not arch dependant iirc
+            files=`find ${TMPDIR}/pkgdata/*/runtime -name ${pkg}| head -1`
+            for filename in $files; do
+                pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
+                pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/  */ /g; p }' ${filename})"
+                # check to see if the package name exists in the manifest. if so, bail.
+                if ! grep -q "PACKAGE NAME: ${pkg}" ${filename}; then
+                    # exclude local recipes
+                    if [ ! ${pkged_pn} == "*locale*" ]; then
+                        echo "PACKAGE NAME:" ${pkg} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                        echo "RECIPE NAME:" ${pkged_pn} >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                        echo "LICENSE: " >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                        for lic in ${pkged_lic}; do
+                            if [ -e "${LICENSE_DIRECTORY}/${pkged_pn}/generic_${lic}" ]; then
+                                echo ${lic}|sed s'/generic_//'g >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                            else
+                                echo "WARNING: The license listed, " ${lic} " was not in the licenses collected for " ${pkged_pn}>> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                            fi
+                        done
+                        echo "" >> ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
+                    fi
+                fi
+            done
+        done
+    fi
+
+    # Two options here:
+    # - Just copy the manifest
+    # - Copy the manifest and the license directories
+    # This will make your image a bit larger, however 
+    # if you are concerned about license compliance 
+    # and delivery this should cover all your bases
+
+    if [ -n ${COPY_LIC_MANIFEST} ]; then
+        mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/
+        cp ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest ${IMAGE_ROOTFS}/usr/share/common-licenses/license.manifest
+        if [ -n ${COPY_LIC_DIRS} ]; then
+            for pkg in ${INSTALLED_PKGS}; do
+                mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}
+                for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do
+                    # Really don't need to copy the generics as they're 
+                    # represented in the manifest and in the actual pkg licenses
+                    # Doing so would make your image quite a bit larger
+                    if [ ! ${lic} == "generic_*" ]; then
+                        cp ${LICENSE_DIRECTORY}/${pkged_pn}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic}
+                    fi
+                done
+            done
+        fi
+    fi
+
+}
+
 
 python do_populate_lic() {
     """
@@ -59,6 +143,26 @@ python do_populate_lic() {
     import shutil
     import oe.license
 
+    # All the license types for the package
+    license_types = d.getVar('LICENSE', True)
+    # All the license files for the package
+    lic_files = d.getVar('LIC_FILES_CHKSUM', True)
+    pn = d.getVar('PN', True)
+    # The base directory we wrangle licenses to
+    destdir = os.path.join(d.getVar('LICSSTATEDIR', True), pn)
+    # The license files are located in S/LIC_FILE_CHECKSUM.
+    srcdir = d.getVar('S', True)
+    # Directory we store the generic licenses as set in the distro configuration
+    generic_directory = d.getVar('COMMON_LICENSE_DIR', True)
+    license_source_dirs = []
+    license_source_dirs.append(generic_directory)
+    try:
+        additional_lic_dirs = d.getVar('LICENSE_DIR', True).split()
+        for lic_dir in additional_lic_dirs:
+            license_source_dirs.append(lic_dir)
+    except:
+        pass
+
     class FindVisitor(oe.license.LicenseVisitor):
         def visit_Str(self, node):
             #
@@ -70,54 +174,38 @@ python do_populate_lic() {
             find_license(node.s.replace("+", "").replace("*", ""))
             self.generic_visit(node)
 
-    def copy_license(source, destination, file_name):
-        try:
-            bb.copyfile(os.path.join(source, file_name), os.path.join(destination, file_name))
-        except:
-            bb.warn("%s: No generic license file exists for: %s at %s" % (pn, file_name, source))
-            pass
-
-    def link_license(source, destination, file_name):
-        try:
-            os.symlink(os.path.join(source, file_name), os.path.join(destination, "generic_" + file_name))
-        except:
-            bb.warn("%s: Could not symlink: %s at %s to %s at %s" % (pn, file_name, source, file_name, destination))
-            pass
-
     def find_license(license_type):
         try:
             bb.mkdirhier(gen_lic_dest)
         except:
             pass
-
+        spdx_generic = None
+        license_source = None
         # If the generic does not exist we need to check to see if there is an SPDX mapping to it
-        if not os.path.isfile(os.path.join(generic_directory, license_type)):
-            if d.getVarFlag('SPDXLICENSEMAP', license_type) != None:
-                # Great, there is an SPDXLICENSEMAP. We can copy!
-                bb.note("We need to use a SPDXLICENSEMAP for %s" % (license_type))
-                spdx_generic = d.getVarFlag('SPDXLICENSEMAP', license_type)
-                copy_license(generic_directory, gen_lic_dest, spdx_generic)
-                link_license(gen_lic_dest, destdir, spdx_generic)
-            else:
-                # And here is where we warn people that their licenses are lousy
-                bb.warn("%s: No generic license file exists for: %s at %s" % (pn, license_type, generic_directory))
-                bb.warn("%s: There is also no SPDXLICENSEMAP for this license type: %s at %s" % (pn, license_type, generic_directory))
-                pass
-        elif os.path.isfile(os.path.join(generic_directory, license_type)):
-            copy_license(generic_directory, gen_lic_dest, license_type)
-            link_license(gen_lic_dest, destdir, license_type)
-
-    # All the license types for the package
-    license_types = d.getVar('LICENSE', True)
-    # All the license files for the package
-    lic_files = d.getVar('LIC_FILES_CHKSUM', True)
-    pn = d.getVar('PN', True)
-    # The base directory we wrangle licenses to
-    destdir = os.path.join(d.getVar('LICSSTATEDIR', True), pn)
-    # The license files are located in S/LIC_FILE_CHECKSUM.
-    srcdir = d.getVar('S', True)
-    # Directory we store the generic licenses as set in the distro configuration
-    generic_directory = d.getVar('COMMON_LICENSE_DIR', True)
+        for lic_dir in license_source_dirs:
+            if not os.path.isfile(os.path.join(lic_dir, license_type)):
+                if d.getVarFlag('SPDXLICENSEMAP', license_type) != None:
+                    # Great, there is an SPDXLICENSEMAP. We can copy!
+                    bb.debug(1, "We need to use a SPDXLICENSEMAP for %s" % (license_type))
+                    spdx_generic = d.getVarFlag('SPDXLICENSEMAP', license_type)
+                    license_source = lic_dir
+                    break
+            elif os.path.isfile(os.path.join(lic_dir, license_type)):
+                spdx_generic = license_type
+                license_source = lic_dir
+                break
+
+        if spdx_generic and license_source:
+            # we really should copy to generic_ + spdx_generic, however, that ends up messing the manifest
+            # audit up. This should be fixed in emit_pkgdata (or, we actually got and fix all the recipes)
+            ret = bb.copyfile(os.path.join(license_source, spdx_generic), os.path.join(os.path.join(d.getVar('LICSSTATEDIR', True), pn), "generic_" + license_type))
+            # If the copy didn't occur, something horrible went wrong and we fail out
+            if not ret:
+                bb.warn("%s for %s could not be copied for some reason. It may not exist. WARN for now." % (spdx_generic, pn))
+        else:
+            # And here is where we warn people that their licenses are lousy
+            bb.warn("%s: No generic license file exists for: %s in any provider" % (pn, license_type))
+            pass
 
     try:
         bb.mkdirhier(destdir)
@@ -139,11 +227,9 @@ python do_populate_lic() {
         srclicfile = os.path.join(srcdir, path)
         ret = bb.copyfile(srclicfile, os.path.join(destdir, os.path.basename(path)))
         # If the copy didn't occur, something horrible went wrong and we fail out
-        if ret is False or ret == 0:
+        if not ret:
             bb.warn("%s could not be copied for some reason. It may not exist. WARN for now." % srclicfile)
 
-    gen_lic_dest = os.path.join(d.getVar('LICENSE_DIRECTORY', True), "common-licenses")
-
     v = FindVisitor()
     try:
         v.visit_string(license_types)
@@ -156,8 +242,9 @@ do_populate_lic[sstate-name] = "populate-lic"
 do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}"
 do_populate_lic[sstate-outputdirs] = "${LICENSE_DIRECTORY}/"
 
+ROOTFS_POSTINSTALL_COMMAND += "license_create_manifest; "
+
 python do_populate_lic_setscene () {
 	sstate_setscene(d)
 }
 addtask do_populate_lic_setscene
-
diff --git a/meta/conf/licenses.conf b/meta/conf/licenses.conf
index e81434d..e2f6149 100644
--- a/meta/conf/licenses.conf
+++ b/meta/conf/licenses.conf
@@ -1,5 +1,51 @@
-SRC_DISTRIBUTE_LICENSES += "GPL GPLv2 BSD LGPL Apache-2.0 QPL AFL"
-SRC_DISTRIBUTE_LICENSES += "MIT Sleepycat Classpath Perl PSF PD Artistic"
-SRC_DISTRIBUTE_LICENSES += "bzip2 zlib ntp cron libpng netperf openssl"
-SRC_DISTRIBUTE_LICENSES += "Info-ZIP tcp-wrappers"
+# These aren't actually used anywhere that I can tell
+# They may be in the future (or are used by someone else
+# For completion sake, I've updated them
+SRC_DISTRIBUTE_LICENSES += "AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0"
+SRC_DISTRIBUTE_LICENSES += "AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0"
+SRC_DISTRIBUTE_LICENSES += "APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0"
+SRC_DISTRIBUTE_LICENSES += "Artistic-1.0 Artistic-2.0 BitstreamVera BSD"
+SRC_DISTRIBUTE_LICENSES += "BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0"
+SRC_DISTRIBUTE_LICENSES += "CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5"
+SRC_DISTRIBUTE_LICENSES += "CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5"
+SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0"
+SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0"
+SRC_DISTRIBUTE_LICENSES += "CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0"
+SRC_DISTRIBUTE_LICENSES += "CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0"
+SRC_DISTRIBUTE_LICENSES += "CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0"
+SRC_DISTRIBUTE_LICENSES += "CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C"
+SRC_DISTRIBUTE_LICENSES += "ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL"
+SRC_DISTRIBUTE_LICENSES += "ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0"
+SRC_DISTRIBUTE_LICENSES += "Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1"
+SRC_DISTRIBUTE_LICENSES += "EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0"
+SRC_DISTRIBUTE_LICENSES += "FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0"
+SRC_DISTRIBUTE_LICENSES += "GPL-2.0 GPL-2.0-with-autoconf-exception"
+SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-classpath-exception"
+SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-font-exception"
+SRC_DISTRIBUTE_LICENSES += "GPL-2.0-with-GCC-exception"
+SRC_DISTRIBUTE_LICENSES += "GPL-2-with-bison-exception GPL-3.0"
+SRC_DISTRIBUTE_LICENSES += "GPL-3.0-with-autoconf-exception"
+SRC_DISTRIBUTE_LICENSES += "GPL-3.0-with-GCC-exception"
+SRC_DISTRIBUTE_LICENSES += "gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0"
+SRC_DISTRIBUTE_LICENSES += "LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1"
+SRC_DISTRIBUTE_LICENSES += "LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0"
+SRC_DISTRIBUTE_LICENSES += "MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA"
+SRC_DISTRIBUTE_LICENSES += "NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0"
+SRC_DISTRIBUTE_LICENSES += "OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0"
+SRC_DISTRIBUTE_LICENSES += "OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary"
+SRC_DISTRIBUTE_LICENSES += "Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5"
+SRC_DISTRIBUTE_LICENSES += "RPSL-1.0 RSCPL Ruby SAX-PD Simple-2.0 Sleepycat"
+SRC_DISTRIBUTE_LICENSES += "SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C
+SRC_DISTRIBUTE_LICENSES += "Watcom-1.0 WXwindows XFree86-1.1 Xnet YPL-1.1"
+SRC_DISTRIBUTE_LICENSES += "Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1"
 
+
+# Additional license directories. Add your custom licenses directories this path.
+# LICENSE_PATH += "${COREBASE}/custom-licenses"
+
+# Set if you want the license.manifest copied to the image
+#COPY_LIC_MANIFEST = "1"
+
+# If you want the pkg licenses copied over as well you must set 
+# both COPY_LIC_MANIFEST and COPY_LIC_DIRS
+#COPY_LIC_DIRS = "1"




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH 7/8] OECore license fixes: meta/*
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
                   ` (5 preceding siblings ...)
  2011-12-07 19:34 ` [PATCH 6/8] [YOCTO #1776] license: manifest and license path Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-07 21:16   ` Abbreviation of OpenEmbedded-Core (was: [PATCH 7/8] OECore license fixes: meta/*) Paul Menzel
                     ` (2 more replies)
  2011-12-07 19:34 ` [PATCH 8/8] package.bbclass: Adding license collection Beth Flanagan
  2011-12-08 15:25 ` [PATCH 0/8] License Consolidated Pull Richard Purdie
  8 siblings, 3 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>

This is a quick audit of only the most obviously wrong licenses
found within OECore. These fixes fall into four areas:

- LICENSE field had incorrect format so that the parser choked
- LICENSE field has a license with no version
- LICENSE field was actually incorrect
- LICENSE field has an imaginary license that didn't exist

This fixes most of the LICENSE warnings thrown, along with my prior
commit adding additional licenses to common-licenses and additional
SPDXLICENSEMAP entries.

HOWEVER..... there is much to be done on the license front.
For a list of recipes with licenses that need obvious fixing see:

https://wiki.yoctoproject.org/wiki/License_Audit

That said, I would suggest another license audit as I've found
enough inconsistencies. A good suggestion is when in doubt, look at
how openSuse or Gentoo or Debian license the package.

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
---
 .../base-files/base-files/licenses/Artistic        |  131 ----
 .../base-files/base-files/licenses/BSD             |   26 -
 .../base-files/base-files/licenses/GFDL-1.2        |  397 ------------
 .../base-files/base-files/licenses/GPL-3           |  676 --------------------
 .../base-files/base-files/licenses/LGPL-2          |  481 --------------
 .../base-files/base-files/licenses/LGPL-2.1        |  510 ---------------
 .../base-files/base-files/licenses/LGPL-3          |  165 -----
 meta/recipes-core/base-files/base-files_3.0.14.bb  |   20 +-
 meta/recipes-core/busybox/busybox.inc              |    3 +-
 meta/recipes-core/busybox/busybox_1.19.3.bb        |    2 +-
 meta/recipes-core/gettext/gettext_0.18.1.1.bb      |    4 +-
 meta/recipes-core/jpeg/jpeg_8c.bb                  |    4 +-
 meta/recipes-devtools/elfutils/elfutils_0.148.bb   |    4 +-
 meta/recipes-devtools/python/python-pyrex_0.9.9.bb |    4 +-
 .../squashfs-tools/squashfs-tools_4.2.bb           |    4 +-
 meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb   |    4 +-
 meta/recipes-devtools/tcltk/tcl_8.5.11.bb          |    4 +-
 .../transfig/transfig-native_3.2.5d.bb             |    4 +-
 meta/recipes-extended/byacc/byacc_20110908.bb      |   10 +-
 meta/recipes-extended/bzip2/bzip2_1.0.6.bb         |    4 +-
 meta/recipes-extended/less/less_444.bb             |    7 +-
 .../tcp-wrappers/tcp-wrappers_7.6.bb               |    4 +-
 meta/recipes-extended/unzip/unzip_6.0.bb           |    4 +-
 meta/recipes-extended/xinetd/xinetd_2.3.14.bb      |    5 +-
 meta/recipes-extended/zip/zip.inc                  |    2 +-
 meta/recipes-extended/zip/zip_3.0.bb               |    2 +-
 .../recipes-gnome/gnome/gnome-icon-theme_2.31.0.bb |    4 +-
 meta/recipes-graphics/clutter/clutter-box2d.inc    |    2 +-
 meta/recipes-graphics/clutter/clutter-box2d_git.bb |    2 +-
 meta/recipes-graphics/freetype/freetype_2.4.6.bb   |    4 +-
 .../ttf-fonts/ttf-bitstream-vera_1.10.bb           |    4 +-
 meta/recipes-graphics/xorg-app/xrandr_1.3.5.bb     |    4 +-
 .../recipes-graphics/xorg-font/font-alias_1.0.3.bb |    4 +-
 meta/recipes-graphics/xorg-font/font-util_1.2.0.bb |    5 +-
 .../linux-firmware/linux-firmware_git.bb           |    5 +
 meta/recipes-multimedia/libtiff/tiff_3.9.5.bb      |    4 +-
 .../matchbox-theme-sato/matchbox-theme-sato.inc    |    2 +-
 .../matchbox-theme-sato/matchbox-theme-sato_0.1.bb |    2 +-
 .../sato-icon-theme/sato-icon-theme.inc            |    2 +-
 .../sato-icon-theme/sato-icon-theme_0.4.1.bb       |    2 +-
 meta/recipes-support/boost/boost.inc               |    4 +-
 41 files changed, 79 insertions(+), 2452 deletions(-)
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/Artistic
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/BSD
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/GFDL-1.2
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/GPL-3
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/LGPL-2
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/LGPL-2.1
 delete mode 100644 meta/recipes-core/base-files/base-files/licenses/LGPL-3


diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index 8f5313b..eb40917 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -1,9 +1,15 @@
 SUMMARY = "Miscellaneous files for the base system."
 DESCRIPTION = "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system."
 SECTION = "base"
-PR = "r69"
+PR = "r70"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f"
+# Removed all license related tasks in this recipe as license.bbclass 
+# now deals with this. In order to get accurate licensing on to the image:
+# Set COPY_LIC_MANIFEST to just copy just the license.manifest to the image
+# For the manifest and the license text for each package:
+# Set COPY_LIC_MANIFEST and COPY_LIC_DIRS
+
 SRC_URI = "file://rotation \
            file://nsswitch.conf \
            file://motd \
@@ -18,14 +24,8 @@ SRC_URI = "file://rotation \
            file://usbd \
            file://share/dot.bashrc \
            file://share/dot.profile \
-           file://licenses/BSD \
            file://licenses/GPL-2 \
-           file://licenses/GPL-3 \
-           file://licenses/LGPL-2 \
-           file://licenses/LGPL-2.1 \
-           file://licenses/LGPL-3 \
-           file://licenses/GFDL-1.2 \
-           file://licenses/Artistic"
+           "
 S = "${WORKDIR}"
 
 INHIBIT_DEFAULT_DEPS = "1"
@@ -103,10 +103,6 @@ do_install () {
 	install -m 0644 ${WORKDIR}/host.conf ${D}${sysconfdir}/host.conf
 	install -m 0644 ${WORKDIR}/motd ${D}${sysconfdir}/motd
 
-	for license in BSD GPL-2 LGPL-2 LGPL-2.1 Artistic GPL-3 LGPL-3 GFDL-1.2; do
-		install -m 0644 ${WORKDIR}/licenses/$license ${D}${datadir}/common-licenses/
-	done
-
 	ln -sf /proc/mounts ${D}${sysconfdir}/mtab
 }
 
diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
index b948e2c..07ca782 100644
--- a/meta/recipes-core/busybox/busybox.inc
+++ b/meta/recipes-core/busybox/busybox.inc
@@ -5,7 +5,8 @@ BUGTRACKER = "https://bugs.busybox.net/"
 
 # bzip2 applet in busybox is based on lightly-modified bzip2 source
 # the GPL is version 2 only
-LICENSE = "GPLv2 & bzip2"
+# bzip2 is not a bzip2 license (no such thing)
+LICENSE = "GPLv2 & BSD-4-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=de10de48642ab74318e893a61105afbb"
 
 SECTION = "base"
diff --git a/meta/recipes-core/busybox/busybox_1.19.3.bb b/meta/recipes-core/busybox/busybox_1.19.3.bb
index 7a54789..7360219 100644
--- a/meta/recipes-core/busybox/busybox_1.19.3.bb
+++ b/meta/recipes-core/busybox/busybox_1.19.3.bb
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://udhcpscript.patch \
diff --git a/meta/recipes-core/gettext/gettext_0.18.1.1.bb b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
index 9db2eb1..615582e 100644
--- a/meta/recipes-core/gettext/gettext_0.18.1.1.bb
+++ b/meta/recipes-core/gettext/gettext_0.18.1.1.bb
@@ -2,10 +2,10 @@ SUMMARY = "Utilities and libraries for producing multi-lingual messages."
 DESCRIPTION = "Gettext offers to programmers, translators, and even users, a well integrated set of tools and documentation. Specifically, the GNU `gettext' utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages. These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and a few stand-alone programs to massage in various ways the sets of translatable strings, or already translated strings."
 HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
 SECTION = "libs"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3+ & LGPL-2.1+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-PR = "r5"
+PR = "r6"
 DEPENDS = "libxml2-native gettext-native virtual/libiconv ncurses expat"
 DEPENDS_virtclass-native = "libxml2-native"
 PROVIDES = "virtual/libintl virtual/gettext"
diff --git a/meta/recipes-core/jpeg/jpeg_8c.bb b/meta/recipes-core/jpeg/jpeg_8c.bb
index df6c5b6..1c242d1 100644
--- a/meta/recipes-core/jpeg/jpeg_8c.bb
+++ b/meta/recipes-core/jpeg/jpeg_8c.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "libjpeg contains a library for handling the JPEG (JFIF) image for
 HOMEPAGE = "http://www.ijg.org/"
 BUGTRACKER = ""
 
-LICENSE ="jpeg"
+LICENSE ="BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=12;md5=78fa8dbac547bb5b2a0e6457a6cfe21d \
                     file://jpeglib.h;endline=14;md5=22f1e0f8fc71f6f7563146d3b210dbe5 \
                     file://djpeg.c;endline=13;md5=ca89254925da06fef47e4b6468233432"
@@ -13,7 +13,7 @@ SECTION = "libs"
 DEPENDS = "libtool-cross"
 DEPENDS_virtclass-native = "libtool-native"
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "http://www.ijg.org/files/jpegsrc.v${PV}.tar.gz \
 	   file://debian-libjpeg7_7-1.diff;"
diff --git a/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/meta/recipes-devtools/elfutils/elfutils_0.148.bb
index 1399eb7..0f4e8ca 100644
--- a/meta/recipes-devtools/elfutils/elfutils_0.148.bb
+++ b/meta/recipes-devtools/elfutils/elfutils_0.148.bb
@@ -1,12 +1,12 @@
 DESCRIPTION = "A collection of utilities and DSOs to handle compiled objects."
 HOMEPAGE = "https://fedorahosted.org/elfutils"
 SECTION = "base"
-LICENSE = "(GPLv2 & Exception)"
+LICENSE = "(GPL-2+ & Elfutils-Exception)"
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3\
                     file://EXCEPTION;md5=570adcb0c1218ab57f2249c67d0ce417"
 DEPENDS = "libtool bzip2 zlib"
 
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "https://fedorahosted.org/releases/e/l/elfutils/elfutils-${PV}.tar.bz2"
 
diff --git a/meta/recipes-devtools/python/python-pyrex_0.9.9.bb b/meta/recipes-devtools/python/python-pyrex_0.9.9.bb
index 330f856..7d80554 100644
--- a/meta/recipes-devtools/python/python-pyrex_0.9.9.bb
+++ b/meta/recipes-devtools/python/python-pyrex_0.9.9.bb
@@ -2,10 +2,10 @@ DESCRIPTION = "Pyrex is a language specially designed for writing Python extensi
 It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
 and the messy, low-level world of C."
 SECTION = "devel/python"
-LICENSE = "Apache-2"
+LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=771d472f53f933033f57eeee7808e5bd"
 SRCNAME = "Pyrex"
-PR = "ml1"
+PR = "ml2"
 
 SRC_URI = "\
   http://www.cosc.canterbury.ac.nz/greg.ewing/python/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.2.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.2.bb
index a2ed8ba..c54081b 100644
--- a/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.2.bb
+++ b/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.2.bb
@@ -2,12 +2,12 @@
 # and I don't think the kernel supports it any more.
 DESCRIPTION = "Tools to manipulate Squashfs filesystems."
 SECTION = "base"
-LICENSE = "GPLv2 & Public Domain"
+LICENSE = "GPL-2 & PD"
 LIC_FILES_CHKSUM = "file://../COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
                     file://../../7zC.txt;beginline=12;endline=16;md5=2056cd6d919ebc3807602143c7449a7c \
                    "
 DEPENDS = "attr zlib xz"
-PR = "r0"
+PR = "1"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/squashfs/squashfs${PV}.tar.gz;name=squashfs \
            http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2;name=lzma \
diff --git a/meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb b/meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb
index 2c11628..c9ac396 100644
--- a/meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb
+++ b/meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb
@@ -2,13 +2,13 @@ DESCRIPTION = "Target Communication Framework"
 HOMEPAGE = "http://wiki.eclipse.org/TCF"
 BUGTRACKER = "https://bugs.eclipse.org/bugs/"
 
-LICENSE = "EPL-1 | EDLv1.0"
+LICENSE = "EPL-1.0 | EDL-1.0"
 LIC_FILES_CHKSUM = "file://../epl-v10.html;md5=7aa4215a330a0a4f6a1cbf8da1a0879f \
                     file://edl-v10.html;md5=522a390a83dc186513f0500543ad3679"
 
 SRCREV = "1855"
 PV = "0.0+svnr${SRCPV}"
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "svn://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk;module=agent;proto=http \
            http://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk/epl-v10.html;name=epl \
diff --git a/meta/recipes-devtools/tcltk/tcl_8.5.11.bb b/meta/recipes-devtools/tcltk/tcl_8.5.11.bb
index b1424f4..146021a 100644
--- a/meta/recipes-devtools/tcltk/tcl_8.5.11.bb
+++ b/meta/recipes-devtools/tcltk/tcl_8.5.11.bb
@@ -1,5 +1,5 @@
 DESCRIPTION = "Tool Command Language"
-LICENSE = "tcl"
+LICENSE = "BSD-3-Clause"
 SECTION = "devel/tcltk"
 HOMEPAGE = "http://tcl.sourceforge.net"
 DEPENDS = "tcl-native"
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://../license.terms;md5=a47a9be26d03f925fc1fbd2784f27e11
     file://../win/license.terms;md5=a47a9be26d03f925fc1fbd2784f27e11 \
     "
 
-PR = "r0"
+PR = "r2"
 
 BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
                 file://tcl-add-soname.patch"
diff --git a/meta/recipes-devtools/transfig/transfig-native_3.2.5d.bb b/meta/recipes-devtools/transfig/transfig-native_3.2.5d.bb
index 97441c6..c20a243 100644
--- a/meta/recipes-devtools/transfig/transfig-native_3.2.5d.bb
+++ b/meta/recipes-devtools/transfig/transfig-native_3.2.5d.bb
@@ -3,9 +3,9 @@ DESCRIPTION = "This package contains utilities (mainly fig2dev) to \
 handle XFig (Facility for Interactive Generation of figures) files."
 HOMEPAGE = "http://www-epb.lbl.gov/xfig/"
 SECTION = "console/utils"
-LICENSE = "xfig"
+LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://fig2dev/fig2dev.c;endline=16;md5=6bab01e017409cf9ab21d3e953b793f7"
-PR = "r0"
+PR = "r1"
 
 DEPENDS = "imake-native xorg-cf-files-native zlib-native jpeg-native libpng-native libxpm-native"
 
diff --git a/meta/recipes-extended/byacc/byacc_20110908.bb b/meta/recipes-extended/byacc/byacc_20110908.bb
index 5969d0a..5e01c25 100644
--- a/meta/recipes-extended/byacc/byacc_20110908.bb
+++ b/meta/recipes-extended/byacc/byacc_20110908.bb
@@ -1,5 +1,11 @@
-PR = "r0"
-LICENSE="other-BSD"
+PR = "r1"
+
+# Sigh. This is one of those places where everyone licenses it differently. Someone
+# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
+# "I've found no reliable source which states that byacc must bear a UCB copyright."
+# Setting to PD as this is what the upstream has it as.
+
+LICENSE="PD"
 LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=4dc4c30f840a7203fb6edf20b3db849e"
 require byacc.inc
 
diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
index f5b9ac1..14cd240 100644
--- a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
+++ b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
@@ -4,9 +4,9 @@ Huffman coding. Compression is generally considerably better than that achieved
 LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors."
 HOMEPAGE = "http://www.bzip.org/"
 SECTION = "console/utils"
-LICENSE = "bzip2"
+LICENSE = "BSD-4-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;beginline=8;endline=37;md5=40d9d1eb05736d1bfc86cfdd9106e6b2"
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "http://www.bzip.org/${PV}/${BPN}-${PV}.tar.gz \
            file://configure.ac \
diff --git a/meta/recipes-extended/less/less_444.bb b/meta/recipes-extended/less/less_444.bb
index c78dbaa..f198692 100644
--- a/meta/recipes-extended/less/less_444.bb
+++ b/meta/recipes-extended/less/less_444.bb
@@ -7,11 +7,14 @@ SECTION = "console/utils"
 
 # (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less
 # less is a 2-clause BSD-like permissive license
-LICENSE = "GPLv3+ | less"
+# Reading LICENSE and COPYING indicate that GPL-3+ is suffient.
+# openSuse .spec and Debian seem to agree here. setting to GPL-3+
+
+LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://LICENSE;md5=1237c0f825bb36122b0b2b486ffbe6be"
 DEPENDS = "ncurses"
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz"
 
diff --git a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index 46d9675..985e848 100644
--- a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -3,9 +3,9 @@ DESCRIPTION = "Tools for monitoring and filtering incoming requests for tcp \
 	      services."
 SECTION = "console/network"
 
-LICENSE = "tcp-wrappers"
+LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa"
-PR ="r7"
+PR ="r8"
 
 
 PACKAGES = "${PN}-dbg libwrap libwrap-doc libwrap-dev ${PN} ${PN}-doc"
diff --git a/meta/recipes-extended/unzip/unzip_6.0.bb b/meta/recipes-extended/unzip/unzip_6.0.bb
index b9eff43..79e450d 100644
--- a/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -1,10 +1,10 @@
 DESCRIPTION = "A (de)compression library for the ZIP format"
 HOMEPAGE = "http://www.info-zip.org"
 SECTION = "console/utils"
-LICENSE = "Info-ZIP"
+LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=94caec5a51ef55ef711ee4e8b1c69e29"
 PE = "1"
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/unzip60.tgz \
 	file://avoid-strip.patch"
diff --git a/meta/recipes-extended/xinetd/xinetd_2.3.14.bb b/meta/recipes-extended/xinetd/xinetd_2.3.14.bb
index 159cb2c..26ba78f 100644
--- a/meta/recipes-extended/xinetd/xinetd_2.3.14.bb
+++ b/meta/recipes-extended/xinetd/xinetd_2.3.14.bb
@@ -2,11 +2,12 @@ DESCRIPTION = "Highly configurable, modular and secure inetd"
 HOMEPAGE = "http://www.xinetd.org"
 
 # xinetd is a BSD-like license
-LICENSE = "xinetd"
+# Apple and Gentoo say BSD here.
+LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=8ad8615198542444f84d28a6cf226dd8"
 
 DEPENDS = ""
-PR ="r0"
+PR ="r1"
 
 SRC_URI = "http://www.xinetd.org/xinetd-${PV}.tar.gz \
       file://xinetd.init \
diff --git a/meta/recipes-extended/zip/zip.inc b/meta/recipes-extended/zip/zip.inc
index 8cce146..a3bbc93 100644
--- a/meta/recipes-extended/zip/zip.inc
+++ b/meta/recipes-extended/zip/zip.inc
@@ -2,7 +2,7 @@ DESCRIPTION = "Archiver for .zip files"
 HOMEPAGE = "http://www.info-zip.org"
 SECTION = "console/utils"
 
-LICENSE = "Info-ZIP"
+LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d"
 
 SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz"
diff --git a/meta/recipes-extended/zip/zip_3.0.bb b/meta/recipes-extended/zip/zip_3.0.bb
index b009c24..1238071 100644
--- a/meta/recipes-extended/zip/zip_3.0.bb
+++ b/meta/recipes-extended/zip/zip_3.0.bb
@@ -1,6 +1,6 @@
 require zip.inc
 
-PR="r0"
+PR="r1"
 
 # zip-2.32 still uses directory name of zip-2.30
 S = "${WORKDIR}/zip30"
diff --git a/meta/recipes-gnome/gnome/gnome-icon-theme_2.31.0.bb b/meta/recipes-gnome/gnome/gnome-icon-theme_2.31.0.bb
index 587ac40..00ba1d1 100644
--- a/meta/recipes-gnome/gnome/gnome-icon-theme_2.31.0.bb
+++ b/meta/recipes-gnome/gnome/gnome-icon-theme_2.31.0.bb
@@ -2,14 +2,14 @@ DESCRIPTION = "GNOME 2 default icon themes"
 HOMEPAGE = "http://www.gnome.org/"
 BUGTRACKER = "https://bugzilla.gnome.org/"
 
-LICENSE = "LGPLv3 | BY-SAv3"
+LICENSE = "LGPLv3+ | CC-BY-SA-3.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=e7e289d90fc8bdceed5e3f142f98229e"
 
 SECTION = "x11/gnome"
 DEPENDS = "icon-naming-utils-native glib-2.0 intltool-native"
 RDEPENDS_${PN} = "hicolor-icon-theme"
 RRECOMMENDS_${PN} = "librsvg-gtk"
-PR = "r1"
+PR = "r2"
 
 FILES_${PN} += "${datadir}/*"
 
diff --git a/meta/recipes-graphics/clutter/clutter-box2d.inc b/meta/recipes-graphics/clutter/clutter-box2d.inc
index 599b467..056b091 100644
--- a/meta/recipes-graphics/clutter/clutter-box2d.inc
+++ b/meta/recipes-graphics/clutter/clutter-box2d.inc
@@ -1,6 +1,6 @@
 DESCRIPTION = "Clutter Box2D"
 HOMEPAGE = "http://www.clutter-project.org/"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPLv2.1+"
 
 # The main clutter lib is machine specific so we need to be too
 PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-graphics/clutter/clutter-box2d_git.bb b/meta/recipes-graphics/clutter/clutter-box2d_git.bb
index 554ce81..d256a28 100644
--- a/meta/recipes-graphics/clutter/clutter-box2d_git.bb
+++ b/meta/recipes-graphics/clutter/clutter-box2d_git.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://box2d/License.txt;md5=e5d39ad91f7dc4692dcdb1d85139ec6
 
 SRCREV = "de5452e56b537a11fd7f9453d048ff4b4793b5a2"
 PV = "0.12.1+git${SRCPV}"
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "git://git.gnome.org/clutter-box2d.git"
 
diff --git a/meta/recipes-graphics/freetype/freetype_2.4.6.bb b/meta/recipes-graphics/freetype/freetype_2.4.6.bb
index 94a389a..f002103 100644
--- a/meta/recipes-graphics/freetype/freetype_2.4.6.bb
+++ b/meta/recipes-graphics/freetype/freetype_2.4.6.bb
@@ -6,14 +6,14 @@ image generation tools, and many other products as well."
 HOMEPAGE = "http://www.freetype.org/"
 BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype"
 
-LICENSE = "FreeTypeLicense | GPLv2+"
+LICENSE = "FreeType | GPLv2+"
 LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=28d5381b1bef2649c59f20c20bae4f39 \
                     file://docs/FTL.TXT;md5=d479e83797f699fe873b38dadd0fcd4c \
                     file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec"
 
 SECTION = "libs"
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \
            file://no-hardcode.patch"
diff --git a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
index 682184a..6214c16 100644
--- a/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
+++ b/meta/recipes-graphics/ttf-fonts/ttf-bitstream-vera_1.10.bb
@@ -5,9 +5,9 @@ and bold).  In addition Fontconfig/Xft2 can artificially oblique the \
 serif faces for you: this loses hinting and distorts the faces slightly, \
 but is visibly different than normal and bold, and reasonably pleasing."
 SECTION = "x11/fonts"
-LICENSE = "Bitstream_Vera"
+LICENSE = "BitstreamVera"
 LIC_FILES_CHKSUM = "file://COPYRIGHT.TXT;md5=27d7484b1e18d0ee4ce538644a3f04be"
-PR = "r5"
+PR = "r6"
 RDEPENDS_${PN} = "fontconfig-utils"
 
 inherit allarch
diff --git a/meta/recipes-graphics/xorg-app/xrandr_1.3.5.bb b/meta/recipes-graphics/xorg-app/xrandr_1.3.5.bb
index afb45cb..4410865 100644
--- a/meta/recipes-graphics/xorg-app/xrandr_1.3.5.bb
+++ b/meta/recipes-graphics/xorg-app/xrandr_1.3.5.bb
@@ -6,11 +6,11 @@ DESCRIPTION = "Xrandr is used to set the size, orientation and/or \
 reflection of the outputs for a screen. It can also set the screen \
 size."
 
-LICENSE= "BSD-X"
+LICENSE= "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3"
 DEPENDS += "libxrandr libxrender"
 PE = "1"
-PR = "r0"
+PR = "r1"
 
 SRC_URI[md5sum] = "9735173a84dca9b05e06fd4686196b07"
 SRC_URI[sha256sum] = "1059ff7a9ad0df8e00a765ffa4e08a505304c02663112da370ac7082030b980e"
diff --git a/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb b/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb
index 7005291..a212f19 100644
--- a/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb
+++ b/meta/recipes-graphics/xorg-font/font-alias_1.0.3.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "X font aliases."
 
 require xorg-font-common.inc
 
-LICENSE = "Font-Alias"
+LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bf0158b89be493d523d69d9f29265038 \
                     file://cyrillic/fonts.alias;md5=f40795b0640d6785826aecd3b16f6124 \
                     file://75dpi/fonts.alias;md5=6bc48023f2ae7f3bfc105db7b0ee6b49 \
@@ -18,7 +18,7 @@ RDEPENDS_${PN}_virtclass-native = "font-util-native"
 inherit allarch
 
 PE = "1"
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
 
 SRC_URI[md5sum] = "6d25f64796fef34b53b439c2e9efa562"
 SRC_URI[sha256sum] = "8b453b2aae1cfa8090009ca037037b8c5e333550651d5a158b7264ce1d472c9a"
diff --git a/meta/recipes-graphics/xorg-font/font-util_1.2.0.bb b/meta/recipes-graphics/xorg-font/font-util_1.2.0.bb
index 8834708..2c5ba41 100644
--- a/meta/recipes-graphics/xorg-font/font-util_1.2.0.bb
+++ b/meta/recipes-graphics/xorg-font/font-util_1.2.0.bb
@@ -2,7 +2,8 @@ DESCRIPTION = "X.Org font package creation/installation utilities"
 
 require xorg-font-common.inc
 
-LICENSE = "BSD & MIT-style & Unicode"
+#Unicode is MIT
+LICENSE = "BSD & MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c0067273d90f6336008cb2504e14bd32 \
                     file://ucs2any.c;endline=28;md5=8357dc567fc628bd12696f15b2a33bcb \
                     file://bdftruncate.c;endline=26;md5=4f82ffc101a1b165eae9c6998abff937 \
@@ -13,7 +14,7 @@ DEPENDS_virtclass-native = "util-macros-native"
 RDEPENDS_${PN} = "mkfontdir mkfontscale encodings"
 RDEPENDS_${PN}_virtclass-native = "mkfontdir-native mkfontscale-native"
 
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
 
 do_configure_prepend() {
         sed -i "s#MAPFILES_PATH=\`pkg-config#MAPFILES_PATH=\`PKG_CONFIG_PATH=\"${STAGING_LIBDIR_NATIVE}/pkg-config\" pkg-config#g" fontutil.m4.in
diff --git a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
index 224cec0..1534cd9 100644
--- a/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
+++ b/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
@@ -1,5 +1,10 @@
 DESCRIPTION = "Firmware files for use with Linux kernel"
 SECTION = "kernel"
+# Notes:
+# This is kind of a mess. Each bit of firmware has their own license. Some free
+# some not. Leaving this as Proprietary for now, but this recipe should be probably
+# be rethought out a bit more around how it deals with licenses.
+
 LICENSE = "Proprietary"
 
 LIC_FILES_CHKSUM = "file://LICENSE.radeon_rlc;md5=4c243f7854d2884b483abda991adef43 \
diff --git a/meta/recipes-multimedia/libtiff/tiff_3.9.5.bb b/meta/recipes-multimedia/libtiff/tiff_3.9.5.bb
index c646c15..7d60326 100644
--- a/meta/recipes-multimedia/libtiff/tiff_3.9.5.bb
+++ b/meta/recipes-multimedia/libtiff/tiff_3.9.5.bb
@@ -1,9 +1,9 @@
 DESCRIPTION = "This software provides support for the Tag Image File Format (TIFF)"
-LICENSE = "${PN}"
+LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf"
 HOMEPAGE = "http://www.remotesensing.org/libtiff/"
 DEPENDS = "zlib jpeg lzo"
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${PV}.tar.gz \
            file://libtool2.patch"
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
index 032dc2d..f031ce0 100644
--- a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato.inc
@@ -2,7 +2,7 @@ DESCRIPTION = "Matchbox window manager Sato themes"
 HOMEPAGE = "http://www.matchbox-project.org/"
 BUGTRACKER = "http://bugzilla.openedhand.com/"
 
-LICENSE = "CCPL"
+LICENSE = "CC-BY-SA-3.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=aae86bb34b0a83716ca09f4e783d6ba4"
 
 DEPENDS = "matchbox-wm"
diff --git a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
index e00386f..f6786dd 100644
--- a/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
+++ b/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
@@ -1,6 +1,6 @@
 require matchbox-theme-sato.inc
 
-PR = "r0"
+PR = "r1"
 
 SRC_URI = "http://pokylinux.org/releases/sato/matchbox-theme-sato-0.1.tar.gz"
 
diff --git a/meta/recipes-sato/sato-icon-theme/sato-icon-theme.inc b/meta/recipes-sato/sato-icon-theme/sato-icon-theme.inc
index 75e029c..9fd1012 100644
--- a/meta/recipes-sato/sato-icon-theme/sato-icon-theme.inc
+++ b/meta/recipes-sato/sato-icon-theme/sato-icon-theme.inc
@@ -2,7 +2,7 @@ DESCRIPTION = "Sato Icon Theme"
 HOMEPAGE = "http://www.o-hand.com"
 BUGTRACKER = "http://bugzilla.openedhand.com/"
 
-LICENSE = "CCPL"
+LICENSE = "CC-BY-SA-3.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=56a830bbe6e4697fe6cbbae01bb7c2b2"
 
 SECTION = "x11"
diff --git a/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb b/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
index 54e4627..652424a 100644
--- a/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
+++ b/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
@@ -2,7 +2,7 @@ require sato-icon-theme.inc
 
 DEPENDS += "icon-naming-utils-native"
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "http://pokylinux.org/releases/sato/${BPN}-${PV}.tar.gz \
            file://iconpath-option.patch"
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index fecdb97..cc26ef9 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -8,7 +8,7 @@ HOMEPAGE = "http://www.boost.org/"
 SECTION = "libs"
 DEPENDS = "boost-native zlib"
 DEPENDS_virtclass-native = ""
-LICENSE = "Boost"
+LICENSE = "BSL-1 & MIT & Python-2.0"
 
 ARM_INSTRUCTION_SET = "arm"
 
@@ -16,7 +16,7 @@ BOOST_VER = "${@"_".join(d.getVar("PV",1).split("."))}"
 BOOST_MAJ = "${@"_".join(d.getVar("PV",1).split(".")[0:2])}"
 BOOST_P = "boost_${BOOST_VER}"
 
-INC_PR = "r0"
+INC_PR = "r1"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BOOST_P}.tar.bz2"
 
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [PATCH 8/8] package.bbclass: Adding license collection
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
                   ` (6 preceding siblings ...)
  2011-12-07 19:34 ` [PATCH 7/8] OECore license fixes: meta/* Beth Flanagan
@ 2011-12-07 19:34 ` Beth Flanagan
  2011-12-08 15:25 ` [PATCH 0/8] License Consolidated Pull Richard Purdie
  8 siblings, 0 replies; 34+ messages in thread
From: Beth Flanagan @ 2011-12-07 19:34 UTC (permalink / raw)
  To: openembedded-core

From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>

emite_package_data needs to have LICENSE, as pkgdata is as an
audit of licenses collected during do_populate_license.

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
---
 meta/classes/package.bbclass |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 256cdc1..39c1d4b 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1065,6 +1065,7 @@ python emit_pkgdata() {
 		write_if_exists(sf, pkg, 'PR')
 		write_if_exists(sf, pkg, 'PKGV')
 		write_if_exists(sf, pkg, 'PKGR')
+		write_if_exists(sf, pkg, 'LICENSE')
 		write_if_exists(sf, pkg, 'DESCRIPTION')
 		write_if_exists(sf, pkg, 'SUMMARY')
 		write_if_exists(sf, pkg, 'RDEPENDS')
-- 
1.7.1




^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Abbreviation of OpenEmbedded-Core (was: [PATCH 7/8] OECore license fixes: meta/*)
  2011-12-07 19:34 ` [PATCH 7/8] OECore license fixes: meta/* Beth Flanagan
@ 2011-12-07 21:16   ` Paul Menzel
  2011-12-07 21:30     ` Abbreviation of OpenEmbedded-Core Joshua Lock
  2011-12-14 16:06   ` [PATCH 7/8] OECore license fixes: meta/* Phil Blundell
  2012-10-02 10:46   ` Phil Blundell
  2 siblings, 1 reply; 34+ messages in thread
From: Paul Menzel @ 2011-12-07 21:16 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 597 bytes --]

Dear OE folks,


Am Mittwoch, den 07.12.2011, 11:34 -0800 schrieb Beth Flanagan:
> From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
> 
> This is a quick audit of only the most obviously wrong licenses
> found within OECore. These fixes fall into four areas:

could we agree on the spelling of the abbreviation of OpenEmbedded-Core?

In the files in the repository everything is spelled OE-Core so I guess
that should be it. The Wiki uses OE-Core [1] and Elisabeth’s commit
message uses OECore.

[…]


Thanks,

Paul


[1] http://www.openembedded.org/wiki/Oe-core

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: Abbreviation of OpenEmbedded-Core
  2011-12-07 21:16   ` Abbreviation of OpenEmbedded-Core (was: [PATCH 7/8] OECore license fixes: meta/*) Paul Menzel
@ 2011-12-07 21:30     ` Joshua Lock
  2011-12-07 21:40       ` Paul Menzel
  0 siblings, 1 reply; 34+ messages in thread
From: Joshua Lock @ 2011-12-07 21:30 UTC (permalink / raw)
  To: openembedded-core

On 07/12/11 13:16, Paul Menzel wrote:
> Dear OE folks,

OE-Core folks?

> Am Mittwoch, den 07.12.2011, 11:34 -0800 schrieb Beth Flanagan:
>> From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
>>
>> This is a quick audit of only the most obviously wrong licenses
>> found within OECore. These fixes fall into four areas:
> 
> could we agree on the spelling of the abbreviation of OpenEmbedded-Core?
> 
> In the files in the repository everything is spelled OE-Core so I guess
> that should be it. The Wiki uses OE-Core [1] and Elisabeth’s commit
> message uses OECore.

I think we do have an accord here. Consistent usage in the 'code' and
documentation emphasises that. What makes you think we don't agree?

It's probably that Elizabeth's commit message was a typo. I certainly
make enough of those.

Regards,
Joshua
-- 
Joshua Lock
        Yocto Project "Johannes factotum"
        Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: Abbreviation of OpenEmbedded-Core
  2011-12-07 21:30     ` Abbreviation of OpenEmbedded-Core Joshua Lock
@ 2011-12-07 21:40       ` Paul Menzel
  0 siblings, 0 replies; 34+ messages in thread
From: Paul Menzel @ 2011-12-07 21:40 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1234 bytes --]

Am Mittwoch, den 07.12.2011, 13:30 -0800 schrieb Joshua Lock:
> On 07/12/11 13:16, Paul Menzel wrote:
> > Dear OE folks,
> 
> OE-Core folks?

I still would call the community OpenEmbedded community.

> > Am Mittwoch, den 07.12.2011, 11:34 -0800 schrieb Beth Flanagan:
> >> From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
> >>
> >> This is a quick audit of only the most obviously wrong licenses
> >> found within OECore. These fixes fall into four areas:
> > 
> > could we agree on the spelling of the abbreviation of OpenEmbedded-Core?
> > 
> > In the files in the repository everything is spelled OE-Core so I guess
> > that should be it. The Wiki uses OE-Core [1] and Elisabeth’s commit

I meant the Wiki uses OE-core.

> > message uses OECore.
> 
> I think we do have an accord here. Consistent usage in the 'code' and
> documentation emphasises that. What makes you think we don't agree?
>
> It's probably that Elizabeth's commit message was a typo. I certainly
> make enough of those.

Sorry for the confusion. The spelling is (pairwise) different in the
three examples I have given.

Oh, now I see the mailing list tag is OE-core. So this should all be
unified.


Thanks,

Paul

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class
  2011-12-07 19:34 ` [PATCH 4/8] Add copyleft compliance class Beth Flanagan
@ 2011-12-07 21:53   ` Khem Raj
  2011-12-07 22:50     ` Chris Larson
  2011-12-09  2:21     ` [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!! Ulf Samuelsson
  0 siblings, 2 replies; 34+ messages in thread
From: Khem Raj @ 2011-12-07 21:53 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On (07/12/11 11:34), Beth Flanagan wrote:
> From: Christopher Larson <kergoth@gmail.com>
> 
> Deploys sources for recipes for compliance with copyleft-style licenses
> Defaults to using symlinks, as it's a quick operation, and one can easily
> follow the links when making use of the files (e.g. tar with the -h arg).
> 
> By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
> 
> Signed-off-by: Christopher Larson <kergoth@gmail.com>
> ---
>  meta/classes/copyleft_compliance.bbclass |   94 ++++++++++++++++++++++++++++++
>  1 files changed, 94 insertions(+), 0 deletions(-)
>  create mode 100644 meta/classes/copyleft_compliance.bbclass
> 
> diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
> new file mode 100644
> index 0000000..5d9ab11
> --- /dev/null
> +++ b/meta/classes/copyleft_compliance.bbclass
> @@ -0,0 +1,94 @@
> +# Deploy sources for recipes for compliance with copyleft-style licenses
> +# Defaults to using symlinks, as it's a quick operation, and one can easily
> +# follow the links when making use of the files (e.g. tar with the -h arg).
> +#
> +# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
> +#
> +# vi:sts=4:sw=4:et
> +
> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
> +
> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
> +
> +COPYLEFT_LICENSE_EXCLUDE ?= 'CLOSED Proprietary'
> +COPYLEFT_LICENSE_EXCLUDE[type] = 'list'
> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which exclude licenses'
> +
> +
> +def copyleft_should_include(d):
> +    """Determine if this recipe's sources should be deployed for compliance"""
> +    import ast
> +    import oe.license
> +    from fnmatch import fnmatchcase as fnmatch
> +
> +    if oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'crossdk'):

we do ship some of them in SDK so IMO they should not be excluded.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class
  2011-12-07 21:53   ` Khem Raj
@ 2011-12-07 22:50     ` Chris Larson
  2011-12-09  2:21     ` [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!! Ulf Samuelsson
  1 sibling, 0 replies; 34+ messages in thread
From: Chris Larson @ 2011-12-07 22:50 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, Dec 7, 2011 at 2:53 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
>> new file mode 100644
>> index 0000000..5d9ab11
>> --- /dev/null
>> +++ b/meta/classes/copyleft_compliance.bbclass
>> @@ -0,0 +1,94 @@
>> +# Deploy sources for recipes for compliance with copyleft-style licenses
>> +# Defaults to using symlinks, as it's a quick operation, and one can easily
>> +# follow the links when making use of the files (e.g. tar with the -h arg).
>> +#
>> +# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>> +#
>> +# vi:sts=4:sw=4:et
>> +
>> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
>> +
>> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
>> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
>> +
>> +COPYLEFT_LICENSE_EXCLUDE ?= 'CLOSED Proprietary'
>> +COPYLEFT_LICENSE_EXCLUDE[type] = 'list'
>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which exclude licenses'
>> +
>> +
>> +def copyleft_should_include(d):
>> +    """Determine if this recipe's sources should be deployed for compliance"""
>> +    import ast
>> +    import oe.license
>> +    from fnmatch import fnmatchcase as fnmatch
>> +
>> +    if oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'crossdk'):
>
> we do ship some of them in SDK so IMO they should not be excluded.

Fair enough. It'd probably be useful to hook something in to use the
output of this class to produce a tree of just the sources that went
into a given image or sdk, to go alongside the new manifests. I think
this is good to go in though, I'll submit a second patch in the next
day or two to enhance it to cover more, unless someone disagrees with
that approach.
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 0/8] License Consolidated Pull
  2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
                   ` (7 preceding siblings ...)
  2011-12-07 19:34 ` [PATCH 8/8] package.bbclass: Adding license collection Beth Flanagan
@ 2011-12-08 15:25 ` Richard Purdie
  8 siblings, 0 replies; 34+ messages in thread
From: Richard Purdie @ 2011-12-08 15:25 UTC (permalink / raw)
  To: Beth Flanagan; +Cc: openembedded-core

On Wed, 2011-12-07 at 11:34 -0800, Beth Flanagan wrote:
> These are the changes from the RFCs Chris Larson and I sent out this
> weekend merged into one branch along with a gettext minimal fix from
> RP. I've trimmed the diffs in the PULL down some as there are a number 
> of license text diffs that cause send-patch-request to choke.
> 
> 
> The following changes since commit f17e0ae38b2e6c4cbe7f0f9d76c3e1a386335fd1:
> 
>   conf/machine: Don't poke around providers which aren't machine specific/safe (2011-12-06 22:47:09 +0000)
> 
> are available in the git repository at:
>   git://git.yoctoproject.org/poky-contrib eflanagan/consolidated_license
>   http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=eflanagan/consolidated_license
> 
> Christopher Larson (4):
>   oe.test_types: move into an oe.tests package
>   license: split license parsing into oe.license
>   oe.license: add license flattening code
>   Add copyleft compliance class
> 
> Elizabeth Flanagan (3):
>   [YOCTO #1776] license: manifest and license path
>   OECore license fixes: meta/*
>   package.bbclass: Adding license collection
> 
> Richard Purdie (1):
>   gettext-minimal-native: Fix License

Merged to master, thanks.

I appreciate there is some feedback but I think Chris' plan of building
upon this set of commits is a good one.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-07 21:53   ` Khem Raj
  2011-12-07 22:50     ` Chris Larson
@ 2011-12-09  2:21     ` Ulf Samuelsson
  2011-12-09  8:24       ` Ulf Samuelsson
  2011-12-09 11:45       ` Richard Purdie
  1 sibling, 2 replies; 34+ messages in thread
From: Ulf Samuelsson @ 2011-12-09  2:21 UTC (permalink / raw)
  To: openembedded-core

On 2011-12-07 22:53, Khem Raj wrote:
> On (07/12/11 11:34), Beth Flanagan wrote:
>> From: Christopher Larson<kergoth@gmail.com>
>>
>> Deploys sources for recipes for compliance with copyleft-style licenses
>> Defaults to using symlinks, as it's a quick operation, and one can easily
>> follow the links when making use of the files (e.g. tar with the -h arg).
>>
>> By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>>
>> Signed-off-by: Christopher Larson<kergoth@gmail.com>
>> ---
>>   meta/classes/copyleft_compliance.bbclass |   94 ++++++++++++++++++++++++++++++
>>   1 files changed, 94 insertions(+), 0 deletions(-)
>>   create mode 100644 meta/classes/copyleft_compliance.bbclass
>>
>> diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
>> new file mode 100644
>> index 0000000..5d9ab11
>> --- /dev/null
>> +++ b/meta/classes/copyleft_compliance.bbclass
>> @@ -0,0 +1,94 @@
>> +# Deploy sources for recipes for compliance with copyleft-style licenses
>> +# Defaults to using symlinks, as it's a quick operation, and one can easily
>> +# follow the links when making use of the files (e.g. tar with the -h arg).
>> +#
>> +# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>> +#
>> +# vi:sts=4:sw=4:et
>> +
>> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
>> +
>> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
>> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
If the Ampersand is not accepted in the LICENSE string, then the recipes 
below are broken.

 From my latest build, at least recipes with "&&" fail...
This means that nothing really completes that I have tested.

MAJOR BREAKAGE!!!!

I think it would be better FIRST to fix the recipes, and then introduce 
checking.
BR
Ulf


meta-bugfix/meta/recipes-connectivity/connman/connman-gnome_0.5.bb:LICENSE 
= "GPLv2 & LGPLv2.1"
meta-openembedded/meta-gnome/recipes-gnome/gobject-introspection/gobject-introspection_0.9.10.bb:LICENSE 
= "GPLv2+ & LGPLv2+"
meta-openembedded/meta-gnome/recipes-gnome/gobject-introspection/gobject-introspection_git.bb:LICENSE 
= "GPLv2+ & LGPLv2+"
meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb:LICENSE 
= "GPLv2 && LGPLv2"
meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb:LICENSE 
= "GPLv2+ & LGPLv2+"
meta-openembedded/meta-gnome/recipes-gnome/gtk+/gtk+3_3.0.11.bb:LICENSE 
= "LGPLv2 & LGPLv2+ & LGPLv2.1+"
meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3_3.0.2.bb:LICENSE="GPLv2 
&& LGPLv2"
meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb:LICENSE="GPLv2 
&& LGPLv2"
meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo.inc:LICENSE 
= "GPLv2 && LGPLv2.1"
meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.3.bb:LICENSE 
= "GPLv2 && LGPLv2.1"
meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb:LICENSE 
= "GPLv2 & LGPLv2"
meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.0.2.bb:LICENSE 
= "GPLv2 & LGPLv2"
meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb:LICENSE 
= "GPLv2 && LGPLv2 && GFDLv1.1"
meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb:LICENSE 
= "GPLv2 && LGPLv2 && GFDLv1.1"
meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_2.32.0.bb:LICENSE 
= "GPLv2 && LGPLv2.1"
meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome-keyring_2.32.0.bb:LICENSE 
= "LGPLv2 && GPLv2"
meta-openembedded/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb:LICENSE = 
"GPLv2 && LGPLv2.1"
meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb:LICENSE 
= "LGPLv2 && GPLv2"
meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.5.bb:LICENSE 
= "GPLv2 && LGPLv2.1"
meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm.inc:LICENSE = 
"LGPLv2.1 && GPLv2"
meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_0.4.12.bb:LICENSE 
= "MIT && zlib"
meta-openembedded/meta-oe/recipes-devtools/python/python-numeric_24.2.bb:LICENSE 
= "PSF & LLNL"
meta-openembedded/meta-oe/recipes-devtools/swig/swig.inc:LICENSE = "BSD 
&& GPLv3"
meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-4.5.inc:LICENSE="GCC 
RUNTIME LIBRARY EXCEPTION & GPLv2 & GPLv3 & LGPLv2.1 & LGPLv3"
meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm.inc:LICENSE = 
"LGPLv2.1 && GPLv2"
meta-openembedded/meta-oe/recipes-core/udev/udev_175.bb:LICENSE = 
"GPLv2+ & LGPLv2.1+"
meta-openembedded/meta-oe/recipes-core/udev/udev_173.bb:LICENSE = 
"GPLv2+ & LGPLv2.1+"
meta-openembedded/meta-oe/recipes-support/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2011.4.12.bb:LICENSE 
= "GPLv2 & LGPLv2"
meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.31.bb:LICENSE 
= "GPLv2+ && BSD"
meta-openembedded/meta-oe/recipes-support/debianutils/debianutils_2.30.bb:LICENSE 
= "GPLv2 & BSD & SMAIL_GPL"
meta-openembedded/meta-oe/recipes-support/mpfr/mpfr_3.0.0.bb:LICENSE="GPLv3&LGPLv3"
meta-openembedded/meta-oe/recipes-support/fuse/fuse_2.8.6.bb:LICENSE = 
"GPLv2&LGPLv2"
meta-openembedded/meta-oe/recipes-support/fuse/fuse_2.8.5.bb:LICENSE = 
"GPLv2&LGPLv2"
meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc:LICENSE = "GPLv2 
&& LGPLv2"
meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.28.2.bb:LICENSE 
= "LGPLv2.1 && GPLv2"
meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb:LICENSE_URL 
= "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL"
meta-smartphone/meta-aurora/recipes-aurora/aurora/aurora-daemon_git.bb:LICENSE 
= "GPLv2 & Other"
meta-ti/recipes-misc/payload/beaglebone-getting-started.bb:LICENSE = 
"GPLv2+ && MIT && PD && others"
openembedded-core/meta/recipes-multimedia/flac/flac_1.2.1.bb:LICENSE = 
"FDLv1.2 & GPLv2+ & LGPLv2.1+ & BSD"
openembedded-core/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb:LICENSE 
= "LGPLv2.1 & GPLv2+"
openembedded-core/meta/recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb:LICENSE 
= "GPLv2 & LGPLv2+"
openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio.inc:LICENSE 
= "GPLv2+ & LGPLv2.1"
openembedded-core/meta/recipes-multimedia/pulseaudio/libatomics-ops_1.2.bb:LICENSE 
= "GPLv2 & MIT"
openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb:LICENSE 
= "GPLv2+ & LGPLv2.1+ & LGPLv2+"
openembedded-core/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.11.bb:LICENSE 
= "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.35.bb:LICENSE 
= "GPLv2+ & LGPLv2+"
openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb:LICENSE 
= "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.30.bb:LICENSE 
= "GPLv2+ & LGPLv2.1+"
openembedded-core/meta/classes/src_distribute.bbclass:    licenses = 
d.getVar('LICENSE', 1).replace('&', '|')
openembedded-core/meta/classes/license.bbclass:                
pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/  
*/ /g; p }' ${filename})"
openembedded-core/meta/recipes-connectivity/bluez/bluez4.inc:LICENSE = 
"GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-connectivity/bind/bind_9.8.1.bb:LICENSE = 
"ISC & BSD"
openembedded-core/meta/recipes-connectivity/wireless-tools/wireless-tools_29.bb:LICENSE 
= "GPLv2 & (LGPL | MPL | BSD)"
openembedded-core/meta/recipes-connectivity/gypsy/gypsy_git.bb:LICENSE = 
"GPLv2+ & LGPLv2+"
openembedded-core/meta/recipes-connectivity/gypsy/gypsy_0.8.bb:LICENSE = 
"GPLv2+ & LGPLv2+"
openembedded-core/meta/recipes-connectivity/avahi/avahi.inc:LICENSE = 
"GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-connectivity/connman/connman-gnome_0.5.bb:LICENSE 
= "GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-connectivity/ppp/ppp_2.4.5.bb:LICENSE = 
"BSD & GPLv2+ & LGPLv2+ & PD"
openembedded-core/meta/recipes-connectivity/gsm/gsmd.inc:LICENSE = 
"GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-gnome/gtk+/gtk+.inc:LICENSE = "LGPLv2 & 
LGPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-gnome/libglade/libglade_2.6.4.bb:LICENSE 
= "LGPLv2 & LGPLv2+"
openembedded-core/meta/recipes-gnome/gnome/gnome-desktop.inc:LICENSE = 
"GPLv2 & LGPLv2"
openembedded-core/meta/recipes-gnome/gnome/gobject-introspection_git.bb:LICENSE 
= "GPLv2+ & LGPLv2+"
openembedded-core/meta/recipes-gnome/gnome/gnome-doc-utils.inc:LICENSE = 
"GPL & LGPL"
openembedded-core/meta/recipes-gnome/gnome/libgnome-keyring_2.32.0.bb:LICENSE 
= "LGPLv2 & LGPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-gnome/gnome/gnome-mime-data_2.18.0.bb:LICENSE 
= "GPLv2 & GPLv2+"
openembedded-core/meta/recipes-gnome/gnome/gnome-keyring_2.32.1.bb:LICENSE 
= "GPLv2+ & LGPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-extended/quota/quota_4.00-pre1.bb:LICENSE 
= "BSD & GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-extended/sudo/sudo.inc:LICENSE = "ISC & 
UCB & Zlib"
openembedded-core/meta/recipes-extended/sysklogd/sysklogd.inc:LICENSE = 
"GPLv2+ & BSD"
openembedded-core/meta/recipes-extended/xz/xz_5.0.3.bb:LICENSE = "GPLv2+ 
& GPLv3+ & LGPLv2.1+"
openembedded-core/meta/recipes-extended/cronie/cronie_1.4.8.bb:LICENSE = 
"ISC & BSD"
openembedded-core/meta/recipes-extended/libidn/libidn_0.6.14.bb:LICENSE 
= "LGPLv2.1+ & GPLv2+"
openembedded-core/meta/recipes-extended/libidn/libidn_1.22.bb:LICENSE = 
"LGPLv2.1+ & GPLv3+"
openembedded-core/meta/recipes-extended/iputils/iputils_s20101006.bb:LICENSE 
= "BSD & GPLv2+"
openembedded-core/meta/recipes-extended/bc/bc_1.06.bb:LICENSE = "GPLv2+ 
& LGPLv2.1"
openembedded-core/meta/recipes-extended/mailx/mailx_12.5.bb:LICENSE = 
"BSD & MPL-1"
openembedded-core/meta/recipes-extended/procps/procps.inc:LICENSE = 
"GPLv2+ & LGPLv2+"
openembedded-core/meta/files/common-licenses/CDDL-1.0:COVERED SOFTWARE 
IS PROVIDED UNDER THIS LICENSE ON AN &#8220;AS IS&#8221; BASIS, WITHOUT 
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT 
LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, 
MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE 
RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH 
YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU 
(NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF 
ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF 
WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY 
COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
openembedded-core/meta/files/common-licenses/CPAL-1.0:COVERED CODE IS 
PROVIDED UNDER THIS LICENSE ON AN &#8220;AS IS&#8221; BASIS, WITHOUT 
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT 
LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, 
MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE 
RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. 
SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE 
INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME 
THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS 
DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO 
USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS 
DISCLAIMER.
openembedded-core/meta/recipes-devtools/elfutils/elfutils_0.148.bb:LICENSE 
= "(GPL-2+ & Elfutils-Exception)"
openembedded-core/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc:LICENSE 
= "GPLv2 & LGPLv2 & BSD & MIT"
openembedded-core/meta/recipes-devtools/valgrind/valgrind_3.6.1.bb:LICENSE 
= "GPLv2 & GPLv2+ & BSD"
openembedded-core/meta/recipes-devtools/gdb/gdb_7.3.1.bb:LICENSE="GPLv2 
& GPLv3 & LGPLv2 & LGPLv3"
openembedded-core/meta/recipes-devtools/python/python-pycairo_1.8.10.bb:LICENSE 
= "LGPLv2.1 & MPL-1"
openembedded-core/meta/recipes-devtools/gcc/gcc-4.6.inc:LICENSE="GPL-3.0-with-GCC-exception 
& GPLv3"
openembedded-core/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.2.bb:LICENSE 
= "GPL-2 & PD"
openembedded-core/meta/recipes-devtools/libtool/libtool-2.4.2.inc:LICENSE = 
"GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-devtools/autoconf/autoconf_2.68.bb:LICENSE = 
"GPLv2 & GPLv3"
openembedded-core/meta/recipes-devtools/qemu/qemu.inc:LICENSE = "GPLv2 & 
LGPLv2.1"
openembedded-core/meta/recipes-devtools/make/make_3.82.bb:LICENSE="GPLv3&LGPLv2"
openembedded-core/meta/recipes-core/gettext/gettext_0.18.1.1.bb:LICENSE 
= "GPL-3+ & LGPL-2.1+"
openembedded-core/meta/recipes-core/glib-2.0/glib.inc:LICENSE = "LGPLv2+ 
& BSD & PD"
openembedded-core/meta/recipes-core/busybox/busybox.inc:LICENSE = "GPLv2 
& BSD-4-Clause"
openembedded-core/meta/recipes-core/udev/udev-new.inc:LICENSE = "GPLv2+ 
& LGPLv2.1+"
openembedded-core/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb:LICENSE 
= "GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-core/eglibc/eglibc-locale.inc:LICENSE = 
"GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-core/eglibc/eglibc-common.inc:LICENSE = 
"GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-core/util-linux/util-linux.inc:LICENSE = 
"GPLv2+ & LGPLv2.1+ & BSD"
openembedded-core/meta/recipes-kernel/oprofile/oprofile.inc:LICENSE = 
"LGPLv2.1+ & GPLv2"
openembedded-core/meta/recipes-kernel/lttng/lttng-ust_0.15.bb:LICENSE = 
"LGPLv2.1+ & BSD"
openembedded-core/meta/recipes-kernel/lttng/lttng-viewer_0.12.38.bb:LICENSE 
= "GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-sato/pimlico/contacts.inc:LICENSE = 
"GPLv2 & GPLv2+ & GPLv3+ "
openembedded-core/meta/recipes-sato/pimlico/tasks.inc:LICENSE = "GPLv2 & 
GPLv2+"
openembedded-core/meta/recipes-sato/pimlico/dates.inc:LICENSE = "GPLv2 & 
GPLv2+ & LGPLv2+"
openembedded-core/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb:LICENSE 
= "GPLv2 & GPLv2+"
openembedded-core/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb:LICENSE 
= "GPLv2+ & LGPLv2+"
openembedded-core/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc:LICENSE 
= "LGPLv2.1 & LGPLv2+"
openembedded-core/meta/recipes-sato/libowl/libowl_git.bb:LICENSE = 
"GPLv2 & LGPLv2+"
openembedded-core/meta/recipes-sato/eds/eds-dbus_2.20.0.bb:LICENSE = 
"LGPLv2 & LGPLv2+"
openembedded-core/meta/recipes-sato/eds/eds-dbus_git.bb:LICENSE = 
"LGPLv2 & LGPLv2+"
openembedded-core/meta/recipes-sato/owl-video-widget/owl-video_git.bb:LICENSE 
= "LGPLv2.1 & GPLv2+"
openembedded-core/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb:LICENSE 
= "GPLv2 & GPLv2+"
openembedded-core/meta/recipes-sato/webkit/webkit-gtk_svn.bb:LICENSE = 
"BSD & LGPLv2+"
openembedded-core/meta/recipes-sato/pcmanfm/pcmanfm_0.9.10.bb:LICENSE = 
"GPLv2 & GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-support/gmp/gmp_5.0.2.bb:LICENSE="LGPLv3&GPLv3"
openembedded-core/meta/recipes-support/libfm/libfm_0.1.17.bb:LICENSE = 
"GPLv2 & GPLv2+"
openembedded-core/meta/recipes-support/boost/boost.inc:LICENSE = "BSL-1 
& MIT & Python-2.0"
openembedded-core/meta/recipes-support/gpgme/gpgme_1.3.1.bb:LICENSE = 
"GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb:LICENSE = 
"GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-support/libcroco/libcroco_0.6.3.bb:LICENSE = 
"LGPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-support/libgdbus/libgdbus_git.bb:LICENSE 
= "GPLv2 & LGPLv2.1"
openembedded-core/meta/recipes-support/libgpg-error/libgpg-error_1.10.bb:LICENSE 
= "GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-support/atk/atk.inc:LICENSE = "LGPLv2 & 
LGPLv2+"
openembedded-core/meta/recipes-support/gnutls/gnutls.inc:LICENSE = 
"GPLv3+ & LGPLv2.1+"
openembedded-core/meta/recipes-support/gnutls/libtasn1_2.11.bb:LICENSE = 
"GPLv3+ & LGPLv2.1+"
openembedded-core/meta/recipes-support/libgcrypt/libgcrypt.inc:LICENSE = 
"GPLv2+ & LGPLv2.1+"
openembedded-core/meta/recipes-support/liburcu/liburcu_0.6.4.bb:LICENSE 
= "LGPLv2.1+ & MIT-style"
openembedded-core/meta/recipes-support/libassuan/libassuan_2.0.2.bb:LICENSE 
= "GPLv3 & LGPLv2.1+"
openembedded-core/meta/recipes-support/attr/acl.inc:LICENSE = "LGPLv2.1+ 
& GPLv2+"
openembedded-core/meta/recipes-support/attr/attr.inc:LICENSE = 
"LGPLv2.1+ & GPLv2+"
openembedded-core/meta/recipes-support/mpfr/mpfr_3.1.0.bb:LICENSE="GPLv3&LGPLv3"
openembedded-core/meta/recipes-graphics/xorg-util/util-macros_1.15.0.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb:LICENSE = 
"GPLv2 & GPLv2+"
openembedded-core/meta/recipes-graphics/cairo/cairo.inc:LICENSE = "MPL-1 
& LGPLv2.1"
openembedded-core/meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb:LICENSE 
= "MIT & PD"
openembedded-core/meta/recipes-graphics/xorg-font/font-util_1.2.0.bb:LICENSE 
= "BSD & MIT"
openembedded-core/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb:LICENSE 
= "MIT-X & GPLv2+"
openembedded-core/meta/recipes-graphics/fontconfig/fontconfig_2.8.0.bb:LICENSE 
= "MIT-style & MIT & PD"
openembedded-core/meta/recipes-graphics/menu-cache/menu-cache_0.3.2.bb:LICENSE 
= "GPLv2 & GPLv2+"
openembedded-core/meta/recipes-graphics/xorg-proto/fixesproto_5.0.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-proto/xextproto_7.2.0.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-proto/compositeproto_0.4.2.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-proto/videoproto_2.3.1.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-proto/xproto_7.0.22.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-proto/inputproto_2.0.2.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libxt_1.1.1.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libxmu_1.1.0.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/xtrans_1.2.6.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb:LICENSE 
= "MIT & MIT-style & BSD"
openembedded-core/meta/recipes-graphics/xorg-lib/pixman_0.24.0.bb:LICENSE = 
"MIT & MIT-style & PD"
openembedded-core/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.1.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.1.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libxfont_1.4.4.bb:LICENSE= 
"MIT & MIT-style & BSD"
openembedded-core/meta/recipes-graphics/xorg-lib/libxp_1.0.1.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libxi_1.4.3.bb:LICENSE 
= "MIT & MIT-style"
openembedded-core/meta/recipes-graphics/xorg-lib/libx11-trim_1.4.4.bb:LICENSE 
= "MIT & MIT-style & BSD"
openembedded-core/meta/recipes-graphics/xorg-lib/libx11.inc:LICENSE = 
"MIT & MIT-style & BSD"
openembedded-core/meta/recipes-rt/rt-tests/rt-tests_0.83.bb:LICENSE = 
"GPLv2 & GPLv2+"




>> +
>> +COPYLEFT_LICENSE_EXCLUDE ?= 'CLOSED Proprietary'
>> +COPYLEFT_LICENSE_EXCLUDE[type] = 'list'
>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which exclude licenses'
>> +
>> +
>> +def copyleft_should_include(d):
>> +    """Determine if this recipe's sources should be deployed for compliance"""
>> +    import ast
>> +    import oe.license
>> +    from fnmatch import fnmatchcase as fnmatch
>> +
>> +    if oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'crossdk'):
> we do ship some of them in SDK so IMO they should not be excluded.
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


-- 
Best Regards
Ulf Samuelsson
eMagii




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-09  2:21     ` [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!! Ulf Samuelsson
@ 2011-12-09  8:24       ` Ulf Samuelsson
  2011-12-09 11:45       ` Richard Purdie
  1 sibling, 0 replies; 34+ messages in thread
From: Ulf Samuelsson @ 2011-12-09  8:24 UTC (permalink / raw)
  To: openembedded-core

On 2011-12-09 03:21, Ulf Samuelsson wrote:
> On 2011-12-07 22:53, Khem Raj wrote:
>> On (07/12/11 11:34), Beth Flanagan wrote:
>>> From: Christopher Larson<kergoth@gmail.com>
>>>
>>> Deploys sources for recipes for compliance with copyleft-style licenses
>>> Defaults to using symlinks, as it's a quick operation, and one can 
>>> easily
>>> follow the links when making use of the files (e.g. tar with the -h 
>>> arg).
>>>
>>> By default, includes all GPL and LGPL, and excludes CLOSED and 
>>> Proprietary.
>>>
>>> Signed-off-by: Christopher Larson<kergoth@gmail.com>
>>> ---
>>>   meta/classes/copyleft_compliance.bbclass |   94 
>>> ++++++++++++++++++++++++++++++
>>>   1 files changed, 94 insertions(+), 0 deletions(-)
>>>   create mode 100644 meta/classes/copyleft_compliance.bbclass
>>>
>>> diff --git a/meta/classes/copyleft_compliance.bbclass 
>>> b/meta/classes/copyleft_compliance.bbclass
>>> new file mode 100644
>>> index 0000000..5d9ab11
>>> --- /dev/null
>>> +++ b/meta/classes/copyleft_compliance.bbclass
>>> @@ -0,0 +1,94 @@
>>> +# Deploy sources for recipes for compliance with copyleft-style 
>>> licenses
>>> +# Defaults to using symlinks, as it's a quick operation, and one 
>>> can easily
>>> +# follow the links when making use of the files (e.g. tar with the 
>>> -h arg).
>>> +#
>>> +# By default, includes all GPL and LGPL, and excludes CLOSED and 
>>> Proprietary.
>>> +#
>>> +# vi:sts=4:sw=4:et
>>> +
>>> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
>>> +
>>> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
>>> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
>>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs 
>>> which include licenses'
> If the Ampersand is not accepted in the LICENSE string, then the 
> recipes below are broken.
>
> From my latest build, at least recipes with "&&" fail...
> This means that nothing really completes that I have tested.
>
> MAJOR BREAKAGE!!!!
>
> I think it would be better FIRST to fix the recipes, and then 
> introduce checking.
> BR
> Ulf
>
Some more failing!
meta-angstrom/recipes-angstrom/angstrom/e-wm-config-angstrom.bb:LICENSE 
= "MIT/BSD"
meta-angstrom/recipes-angstrom/angstrom/exquisite-theme-angstrom.bb:LICENSE 
= "MIT/BSD"
meta-openembedded/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_0.7.5.bb:LICENSE 
= "MIT/X11"
meta-smartphone/meta-fso/recipes-freesmartphone/freesmartphone/illume-theme-freesmartphone_git.bb:LICENSE 
= "MIT/BSD"

BR
Ulf





>
> meta-bugfix/meta/recipes-connectivity/connman/connman-gnome_0.5.bb:LICENSE 
> = "GPLv2 & LGPLv2.1"
> meta-openembedded/meta-gnome/recipes-gnome/gobject-introspection/gobject-introspection_0.9.10.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> meta-openembedded/meta-gnome/recipes-gnome/gobject-introspection/gobject-introspection_git.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_2.30.5.bb:LICENSE 
> = "GPLv2 && LGPLv2"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-vfs/gnome-vfs_2.24.4.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> meta-openembedded/meta-gnome/recipes-gnome/gtk+/gtk+3_3.0.11.bb:LICENSE = 
> "LGPLv2 & LGPLv2+ & LGPLv2.1+"
> meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus3_3.0.2.bb:LICENSE="GPLv2 
> && LGPLv2"
> meta-openembedded/meta-gnome/recipes-gnome/nautilus/nautilus_2.32.2.bb:LICENSE="GPLv2 
> && LGPLv2"
> meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonobo.inc:LICENSE = 
> "GPLv2 && LGPLv2.1"
> meta-openembedded/meta-gnome/recipes-gnome/bonobo/libbonoboui_2.24.3.bb:LICENSE 
> = "GPLv2 && LGPLv2.1"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_2.32.1.bb:LICENSE 
> = "GPLv2 & LGPLv2"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.0.2.bb:LICENSE 
> = "GPLv2 & LGPLv2"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_2.32.1.bb:LICENSE 
> = "GPLv2 && LGPLv2 && GFDLv1.1"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-panel/gnome-panel3_3.0.2.bb:LICENSE 
> = "GPLv2 && LGPLv2 && GFDLv1.1"
> meta-openembedded/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_2.32.0.bb:LICENSE 
> = "GPLv2 && LGPLv2.1"
> meta-openembedded/meta-gnome/recipes-gnome/libgnome/libgnome-keyring_2.32.0.bb:LICENSE 
> = "LGPLv2 && GPLv2"
> meta-openembedded/meta-oe/recipes-multimedia/jack/jack_0.121.0.bb:LICENSE 
> = "GPLv2 && LGPLv2.1"
> meta-openembedded/meta-oe/recipes-multimedia/audiofile/audiofile_0.2.7.bb:LICENSE 
> = "LGPLv2 && GPLv2"
> meta-openembedded/meta-oe/recipes-connectivity/obex/openobex_1.5.bb:LICENSE 
> = "GPLv2 && LGPLv2.1"
> meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm.inc:LICENSE = 
> "LGPLv2.1 && GPLv2"
> meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_0.4.12.bb:LICENSE 
> = "MIT && zlib"
> meta-openembedded/meta-oe/recipes-devtools/python/python-numeric_24.2.bb:LICENSE 
> = "PSF & LLNL"
> meta-openembedded/meta-oe/recipes-devtools/swig/swig.inc:LICENSE = 
> "BSD && GPLv3"
> meta-openembedded/meta-oe/recipes-devtools/gcc/gcc-4.5.inc:LICENSE="GCC RUNTIME 
> LIBRARY EXCEPTION & GPLv2 & GPLv3 & LGPLv2.1 & LGPLv3"
> meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm.inc:LICENSE = 
> "LGPLv2.1 && GPLv2"
> meta-openembedded/meta-oe/recipes-core/udev/udev_175.bb:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> meta-openembedded/meta-oe/recipes-core/udev/udev_173.bb:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> meta-openembedded/meta-oe/recipes-support/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2011.4.12.bb:LICENSE 
> = "GPLv2 & LGPLv2"
> meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.31.bb:LICENSE 
> = "GPLv2+ && BSD"
> meta-openembedded/meta-oe/recipes-support/debianutils/debianutils_2.30.bb:LICENSE 
> = "GPLv2 & BSD & SMAIL_GPL"
> meta-openembedded/meta-oe/recipes-support/mpfr/mpfr_3.0.0.bb:LICENSE="GPLv3&LGPLv3" 
>
> meta-openembedded/meta-oe/recipes-support/fuse/fuse_2.8.6.bb:LICENSE = 
> "GPLv2&LGPLv2"
> meta-openembedded/meta-oe/recipes-support/fuse/fuse_2.8.5.bb:LICENSE = 
> "GPLv2&LGPLv2"
> meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc:LICENSE = 
> "GPLv2 && LGPLv2"
> meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.28.2.bb:LICENSE 
> = "LGPLv2.1 && GPLv2"
> meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb:LICENSE_URL 
> = "http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=OFL"
> meta-smartphone/meta-aurora/recipes-aurora/aurora/aurora-daemon_git.bb:LICENSE 
> = "GPLv2 & Other"
> meta-ti/recipes-misc/payload/beaglebone-getting-started.bb:LICENSE = 
> "GPLv2+ && MIT && PD && others"
> openembedded-core/meta/recipes-multimedia/flac/flac_1.2.1.bb:LICENSE = 
> "FDLv1.2 & GPLv2+ & LGPLv2.1+ & BSD"
> openembedded-core/meta/recipes-multimedia/alsa/alsa-lib_1.0.24.1.bb:LICENSE 
> = "LGPLv2.1 & GPLv2+"
> openembedded-core/meta/recipes-multimedia/alsa/alsa-tools_1.0.24.1.bb:LICENSE 
> = "GPLv2 & LGPLv2+"
> openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio.inc:LICENSE 
> = "GPLv2+ & LGPLv2.1"
> openembedded-core/meta/recipes-multimedia/pulseaudio/libatomics-ops_1.2.bb:LICENSE 
> = "GPLv2 & MIT"
> openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb:LICENSE 
> = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
> openembedded-core/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.11.bb:LICENSE 
> = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
> openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.35.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb:LICENSE 
> = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
> openembedded-core/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.30.bb:LICENSE 
> = "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/classes/src_distribute.bbclass:    licenses = 
> d.getVar('LICENSE', 1).replace('&', '|')
> openembedded-core/meta/classes/license.bbclass:                
> pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/  
> */ /g; p }' ${filename})"
> openembedded-core/meta/recipes-connectivity/bluez/bluez4.inc:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-connectivity/bind/bind_9.8.1.bb:LICENSE 
> = "ISC & BSD"
> openembedded-core/meta/recipes-connectivity/wireless-tools/wireless-tools_29.bb:LICENSE 
> = "GPLv2 & (LGPL | MPL | BSD)"
> openembedded-core/meta/recipes-connectivity/gypsy/gypsy_git.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> openembedded-core/meta/recipes-connectivity/gypsy/gypsy_0.8.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> openembedded-core/meta/recipes-connectivity/avahi/avahi.inc:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-connectivity/connman/connman-gnome_0.5.bb:LICENSE 
> = "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-connectivity/ppp/ppp_2.4.5.bb:LICENSE = 
> "BSD & GPLv2+ & LGPLv2+ & PD"
> openembedded-core/meta/recipes-connectivity/gsm/gsmd.inc:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-gnome/gtk+/gtk+.inc:LICENSE = "LGPLv2 & 
> LGPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-gnome/libglade/libglade_2.6.4.bb:LICENSE = 
> "LGPLv2 & LGPLv2+"
> openembedded-core/meta/recipes-gnome/gnome/gnome-desktop.inc:LICENSE = 
> "GPLv2 & LGPLv2"
> openembedded-core/meta/recipes-gnome/gnome/gobject-introspection_git.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> openembedded-core/meta/recipes-gnome/gnome/gnome-doc-utils.inc:LICENSE 
> = "GPL & LGPL"
> openembedded-core/meta/recipes-gnome/gnome/libgnome-keyring_2.32.0.bb:LICENSE 
> = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-gnome/gnome/gnome-mime-data_2.18.0.bb:LICENSE 
> = "GPLv2 & GPLv2+"
> openembedded-core/meta/recipes-gnome/gnome/gnome-keyring_2.32.1.bb:LICENSE 
> = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-extended/quota/quota_4.00-pre1.bb:LICENSE 
> = "BSD & GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-extended/sudo/sudo.inc:LICENSE = "ISC & 
> UCB & Zlib"
> openembedded-core/meta/recipes-extended/sysklogd/sysklogd.inc:LICENSE 
> = "GPLv2+ & BSD"
> openembedded-core/meta/recipes-extended/xz/xz_5.0.3.bb:LICENSE = 
> "GPLv2+ & GPLv3+ & LGPLv2.1+"
> openembedded-core/meta/recipes-extended/cronie/cronie_1.4.8.bb:LICENSE 
> = "ISC & BSD"
> openembedded-core/meta/recipes-extended/libidn/libidn_0.6.14.bb:LICENSE = 
> "LGPLv2.1+ & GPLv2+"
> openembedded-core/meta/recipes-extended/libidn/libidn_1.22.bb:LICENSE 
> = "LGPLv2.1+ & GPLv3+"
> openembedded-core/meta/recipes-extended/iputils/iputils_s20101006.bb:LICENSE 
> = "BSD & GPLv2+"
> openembedded-core/meta/recipes-extended/bc/bc_1.06.bb:LICENSE = 
> "GPLv2+ & LGPLv2.1"
> openembedded-core/meta/recipes-extended/mailx/mailx_12.5.bb:LICENSE = 
> "BSD & MPL-1"
> openembedded-core/meta/recipes-extended/procps/procps.inc:LICENSE = 
> "GPLv2+ & LGPLv2+"
> openembedded-core/meta/files/common-licenses/CDDL-1.0:COVERED SOFTWARE 
> IS PROVIDED UNDER THIS LICENSE ON AN &#8220;AS IS&#8221; BASIS, 
> WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, 
> WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF 
> DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. 
> THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED 
> SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN 
> ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) 
> ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS 
> DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. 
> NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER 
> THIS DISCLAIMER.
> openembedded-core/meta/files/common-licenses/CPAL-1.0:COVERED CODE IS 
> PROVIDED UNDER THIS LICENSE ON AN &#8220;AS IS&#8221; BASIS, WITHOUT 
> WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT 
> LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, 
> MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE 
> ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS 
> WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU 
> (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER 
> CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR 
> CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART 
> OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER 
> EXCEPT UNDER THIS DISCLAIMER.
> openembedded-core/meta/recipes-devtools/elfutils/elfutils_0.148.bb:LICENSE 
> = "(GPL-2+ & Elfutils-Exception)"
> openembedded-core/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc:LICENSE = 
> "GPLv2 & LGPLv2 & BSD & MIT"
> openembedded-core/meta/recipes-devtools/valgrind/valgrind_3.6.1.bb:LICENSE 
> = "GPLv2 & GPLv2+ & BSD"
> openembedded-core/meta/recipes-devtools/gdb/gdb_7.3.1.bb:LICENSE="GPLv2 & 
> GPLv3 & LGPLv2 & LGPLv3"
> openembedded-core/meta/recipes-devtools/python/python-pycairo_1.8.10.bb:LICENSE 
> = "LGPLv2.1 & MPL-1"
> openembedded-core/meta/recipes-devtools/gcc/gcc-4.6.inc:LICENSE="GPL-3.0-with-GCC-exception 
> & GPLv3"
> openembedded-core/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.2.bb:LICENSE 
> = "GPL-2 & PD"
> openembedded-core/meta/recipes-devtools/libtool/libtool-2.4.2.inc:LICENSE 
> = "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-devtools/autoconf/autoconf_2.68.bb:LICENSE 
> = "GPLv2 & GPLv3"
> openembedded-core/meta/recipes-devtools/qemu/qemu.inc:LICENSE = "GPLv2 
> & LGPLv2.1"
> openembedded-core/meta/recipes-devtools/make/make_3.82.bb:LICENSE="GPLv3&LGPLv2" 
>
> openembedded-core/meta/recipes-core/gettext/gettext_0.18.1.1.bb:LICENSE = 
> "GPL-3+ & LGPL-2.1+"
> openembedded-core/meta/recipes-core/glib-2.0/glib.inc:LICENSE = 
> "LGPLv2+ & BSD & PD"
> openembedded-core/meta/recipes-core/busybox/busybox.inc:LICENSE = 
> "GPLv2 & BSD-4-Clause"
> openembedded-core/meta/recipes-core/udev/udev-new.inc:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-core/sysfsutils/sysfsutils_2.1.0.bb:LICENSE 
> = "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-core/eglibc/eglibc-locale.inc:LICENSE = 
> "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-core/eglibc/eglibc-common.inc:LICENSE = 
> "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-core/util-linux/util-linux.inc:LICENSE 
> = "GPLv2+ & LGPLv2.1+ & BSD"
> openembedded-core/meta/recipes-kernel/oprofile/oprofile.inc:LICENSE = 
> "LGPLv2.1+ & GPLv2"
> openembedded-core/meta/recipes-kernel/lttng/lttng-ust_0.15.bb:LICENSE 
> = "LGPLv2.1+ & BSD"
> openembedded-core/meta/recipes-kernel/lttng/lttng-viewer_0.12.38.bb:LICENSE 
> = "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-sato/pimlico/contacts.inc:LICENSE = 
> "GPLv2 & GPLv2+ & GPLv3+ "
> openembedded-core/meta/recipes-sato/pimlico/tasks.inc:LICENSE = "GPLv2 
> & GPLv2+"
> openembedded-core/meta/recipes-sato/pimlico/dates.inc:LICENSE = "GPLv2 
> & GPLv2+ & LGPLv2+"
> openembedded-core/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb:LICENSE 
> = "GPLv2 & GPLv2+"
> openembedded-core/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb:LICENSE 
> = "GPLv2+ & LGPLv2+"
> openembedded-core/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc:LICENSE 
> = "LGPLv2.1 & LGPLv2+"
> openembedded-core/meta/recipes-sato/libowl/libowl_git.bb:LICENSE = 
> "GPLv2 & LGPLv2+"
> openembedded-core/meta/recipes-sato/eds/eds-dbus_2.20.0.bb:LICENSE = 
> "LGPLv2 & LGPLv2+"
> openembedded-core/meta/recipes-sato/eds/eds-dbus_git.bb:LICENSE = 
> "LGPLv2 & LGPLv2+"
> openembedded-core/meta/recipes-sato/owl-video-widget/owl-video_git.bb:LICENSE 
> = "LGPLv2.1 & GPLv2+"
> openembedded-core/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb:LICENSE = 
> "GPLv2 & GPLv2+"
> openembedded-core/meta/recipes-sato/webkit/webkit-gtk_svn.bb:LICENSE = 
> "BSD & LGPLv2+"
> openembedded-core/meta/recipes-sato/pcmanfm/pcmanfm_0.9.10.bb:LICENSE 
> = "GPLv2 & GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-support/gmp/gmp_5.0.2.bb:LICENSE="LGPLv3&GPLv3" 
>
> openembedded-core/meta/recipes-support/libfm/libfm_0.1.17.bb:LICENSE = 
> "GPLv2 & GPLv2+"
> openembedded-core/meta/recipes-support/boost/boost.inc:LICENSE = 
> "BSL-1 & MIT & Python-2.0"
> openembedded-core/meta/recipes-support/gpgme/gpgme_1.3.1.bb:LICENSE = 
> "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb:LICENSE 
> = "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-support/libcroco/libcroco_0.6.3.bb:LICENSE 
> = "LGPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-support/libgdbus/libgdbus_git.bb:LICENSE = 
> "GPLv2 & LGPLv2.1"
> openembedded-core/meta/recipes-support/libgpg-error/libgpg-error_1.10.bb:LICENSE 
> = "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-support/atk/atk.inc:LICENSE = "LGPLv2 & 
> LGPLv2+"
> openembedded-core/meta/recipes-support/gnutls/gnutls.inc:LICENSE = 
> "GPLv3+ & LGPLv2.1+"
> openembedded-core/meta/recipes-support/gnutls/libtasn1_2.11.bb:LICENSE 
> = "GPLv3+ & LGPLv2.1+"
> openembedded-core/meta/recipes-support/libgcrypt/libgcrypt.inc:LICENSE 
> = "GPLv2+ & LGPLv2.1+"
> openembedded-core/meta/recipes-support/liburcu/liburcu_0.6.4.bb:LICENSE = 
> "LGPLv2.1+ & MIT-style"
> openembedded-core/meta/recipes-support/libassuan/libassuan_2.0.2.bb:LICENSE 
> = "GPLv3 & LGPLv2.1+"
> openembedded-core/meta/recipes-support/attr/acl.inc:LICENSE = 
> "LGPLv2.1+ & GPLv2+"
> openembedded-core/meta/recipes-support/attr/attr.inc:LICENSE = 
> "LGPLv2.1+ & GPLv2+"
> openembedded-core/meta/recipes-support/mpfr/mpfr_3.1.0.bb:LICENSE="GPLv3&LGPLv3" 
>
> openembedded-core/meta/recipes-graphics/xorg-util/util-macros_1.15.0.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb:LICENSE 
> = "GPLv2 & GPLv2+"
> openembedded-core/meta/recipes-graphics/cairo/cairo.inc:LICENSE = 
> "MPL-1 & LGPLv2.1"
> openembedded-core/meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb:LICENSE 
> = "MIT & PD"
> openembedded-core/meta/recipes-graphics/xorg-font/font-util_1.2.0.bb:LICENSE 
> = "BSD & MIT"
> openembedded-core/meta/recipes-graphics/xorg-driver/xf86-video-omapfb_git.bb:LICENSE 
> = "MIT-X & GPLv2+"
> openembedded-core/meta/recipes-graphics/fontconfig/fontconfig_2.8.0.bb:LICENSE 
> = "MIT-style & MIT & PD"
> openembedded-core/meta/recipes-graphics/menu-cache/menu-cache_0.3.2.bb:LICENSE 
> = "GPLv2 & GPLv2+"
> openembedded-core/meta/recipes-graphics/xorg-proto/fixesproto_5.0.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-proto/xextproto_7.2.0.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-proto/compositeproto_0.4.2.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-proto/videoproto_2.3.1.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-proto/xproto_7.0.22.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-proto/inputproto_2.0.2.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libxt_1.1.1.bb:LICENSE = 
> "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libxmu_1.1.0.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/xtrans_1.2.6.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libx11-trim_1.3.4.bb:LICENSE 
> = "MIT & MIT-style & BSD"
> openembedded-core/meta/recipes-graphics/xorg-lib/pixman_0.24.0.bb:LICENSE 
> = "MIT & MIT-style & PD"
> openembedded-core/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.1.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.1.bb:LICENSE 
> = "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libxfont_1.4.4.bb:LICENSE= 
> "MIT & MIT-style & BSD"
> openembedded-core/meta/recipes-graphics/xorg-lib/libxp_1.0.1.bb:LICENSE = 
> "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libxi_1.4.3.bb:LICENSE = 
> "MIT & MIT-style"
> openembedded-core/meta/recipes-graphics/xorg-lib/libx11-trim_1.4.4.bb:LICENSE 
> = "MIT & MIT-style & BSD"
> openembedded-core/meta/recipes-graphics/xorg-lib/libx11.inc:LICENSE = 
> "MIT & MIT-style & BSD"
> openembedded-core/meta/recipes-rt/rt-tests/rt-tests_0.83.bb:LICENSE = 
> "GPLv2 & GPLv2+"
>
>
>
>
>>> +
>>> +COPYLEFT_LICENSE_EXCLUDE ?= 'CLOSED Proprietary'
>>> +COPYLEFT_LICENSE_EXCLUDE[type] = 'list'
>>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs 
>>> which exclude licenses'
>>> +
>>> +
>>> +def copyleft_should_include(d):
>>> +    """Determine if this recipe's sources should be deployed for 
>>> compliance"""
>>> +    import ast
>>> +    import oe.license
>>> +    from fnmatch import fnmatchcase as fnmatch
>>> +
>>> +    if oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 
>>> 'crossdk'):
>> we do ship some of them in SDK so IMO they should not be excluded.
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>


-- 
Best Regards
Ulf Samuelsson
eMagii




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-09  2:21     ` [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!! Ulf Samuelsson
  2011-12-09  8:24       ` Ulf Samuelsson
@ 2011-12-09 11:45       ` Richard Purdie
  2011-12-09 13:46         ` Ulf Samuelsson
  1 sibling, 1 reply; 34+ messages in thread
From: Richard Purdie @ 2011-12-09 11:45 UTC (permalink / raw)
  To: ulf, Patches and discussions about the oe-core layer; +Cc: openembedded-core

On Fri, 2011-12-09 at 03:21 +0100, Ulf Samuelsson wrote:
> On 2011-12-07 22:53, Khem Raj wrote:
> > On (07/12/11 11:34), Beth Flanagan wrote:
> >> From: Christopher Larson<kergoth@gmail.com>
> >>
> >> Deploys sources for recipes for compliance with copyleft-style licenses
> >> Defaults to using symlinks, as it's a quick operation, and one can easily
> >> follow the links when making use of the files (e.g. tar with the -h arg).
> >>
> >> By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
> >>
> >> Signed-off-by: Christopher Larson<kergoth@gmail.com>
> >> ---
> >>   meta/classes/copyleft_compliance.bbclass |   94 ++++++++++++++++++++++++++++++
> >>   1 files changed, 94 insertions(+), 0 deletions(-)
> >>   create mode 100644 meta/classes/copyleft_compliance.bbclass
> >>
> >> diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
> >> new file mode 100644
> >> index 0000000..5d9ab11
> >> --- /dev/null
> >> +++ b/meta/classes/copyleft_compliance.bbclass
> >> @@ -0,0 +1,94 @@
> >> +# Deploy sources for recipes for compliance with copyleft-style licenses
> >> +# Defaults to using symlinks, as it's a quick operation, and one can easily
> >> +# follow the links when making use of the files (e.g. tar with the -h arg).
> >> +#
> >> +# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
> >> +#
> >> +# vi:sts=4:sw=4:et
> >> +
> >> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
> >> +
> >> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
> >> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
> >> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
> If the Ampersand is not accepted in the LICENSE string, then the recipes 
> below are broken.
> 
>  From my latest build, at least recipes with "&&" fail...
> This means that nothing really completes that I have tested.
> 
> MAJOR BREAKAGE!!!!
> 
> I think it would be better FIRST to fix the recipes, and then introduce 
> checking.

I think the single ampersand is accepted, the double might no longer be.
Certainly oe-core does continue to work. I hadn't realised there were
incompatibilities introduced by this patch :(

Not sure what we should do about this at this point, probably fix the
layers :/.

Cheers,

Richard






^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-07 19:34 ` [PATCH 6/8] [YOCTO #1776] license: manifest and license path Beth Flanagan
@ 2011-12-09 13:30   ` Richard Purdie
  2011-12-09 19:57     ` Khem Raj
  0 siblings, 1 reply; 34+ messages in thread
From: Richard Purdie @ 2011-12-09 13:30 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, 2011-12-07 at 11:34 -0800, Beth Flanagan wrote:
> +
> +license_create_manifest() {
> +    mkdir -p ${LICENSE_DIRECTORY}/${IMAGE_NAME}
> +    # Get list of installed packages
> +    list_installed_packages | grep -v "locale" |sort > ${LICENSE_DIRECTORY}/${IMAGE_NAME}/package.manifest
> +    INSTALLED_PKGS=`cat ${LICENSE_DIRECTORY}/${IMAGE_NAME}/package.manifest`
> +    # list of installed packages is broken for deb
> +    if [ ${IMAGE_PKGTYPE} != "deb" ]; then
> +
> +        for pkg in ${INSTALLED_PKGS}; do
> +            # not the best way to do this but licenses are not arch dependant iirc
> +            files=`find ${TMPDIR}/pkgdata/*/runtime -name ${pkg}| head -1`
> +            for filename in $files; do
> +                pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
> +                pkged_lic="$(sed -n '/^LICENSE: /{ s/^LICENSE: //; s/[+|&()*]/ /g; s/  */ /g; p }' ${filename})"
> +                # check to see if the package name exists in the manifest. if so, bail.
> +                if ! grep -q "PACKAGE NAME: ${pkg}" ${filename}; then
> +                    # exclude local recipes
> +                    if [ ! ${pkged_pn} == "*locale*" ]; then

The above line is a bashism and is breaking builds with dash
as /bin/sh :(

Cheers,

Richard




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-09 11:45       ` Richard Purdie
@ 2011-12-09 13:46         ` Ulf Samuelsson
  2011-12-09 13:51           ` Koen Kooi
  2011-12-09 19:53           ` Khem Raj
  0 siblings, 2 replies; 34+ messages in thread
From: Ulf Samuelsson @ 2011-12-09 13:46 UTC (permalink / raw)
  To: openembedded-core

On 2011-12-09 12:45, Richard Purdie wrote:
> On Fri, 2011-12-09 at 03:21 +0100, Ulf Samuelsson wrote:
>> On 2011-12-07 22:53, Khem Raj wrote:
>>> On (07/12/11 11:34), Beth Flanagan wrote:
>>>> From: Christopher Larson<kergoth@gmail.com>
>>>>
>>>> Deploys sources for recipes for compliance with copyleft-style licenses
>>>> Defaults to using symlinks, as it's a quick operation, and one can easily
>>>> follow the links when making use of the files (e.g. tar with the -h arg).
>>>>
>>>> By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>>>>
>>>> Signed-off-by: Christopher Larson<kergoth@gmail.com>
>>>> ---
>>>>    meta/classes/copyleft_compliance.bbclass |   94 ++++++++++++++++++++++++++++++
>>>>    1 files changed, 94 insertions(+), 0 deletions(-)
>>>>    create mode 100644 meta/classes/copyleft_compliance.bbclass
>>>>
>>>> diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
>>>> new file mode 100644
>>>> index 0000000..5d9ab11
>>>> --- /dev/null
>>>> +++ b/meta/classes/copyleft_compliance.bbclass
>>>> @@ -0,0 +1,94 @@
>>>> +# Deploy sources for recipes for compliance with copyleft-style licenses
>>>> +# Defaults to using symlinks, as it's a quick operation, and one can easily
>>>> +# follow the links when making use of the files (e.g. tar with the -h arg).
>>>> +#
>>>> +# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>>>> +#
>>>> +# vi:sts=4:sw=4:et
>>>> +
>>>> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
>>>> +
>>>> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
>>>> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
>>>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
>> If the Ampersand is not accepted in the LICENSE string, then the recipes
>> below are broken.
>>
>>   From my latest build, at least recipes with "&&" fail...
>> This means that nothing really completes that I have tested.
>>
>> MAJOR BREAKAGE!!!!
>>
>> I think it would be better FIRST to fix the recipes, and then introduce
>> checking.
> I think the single ampersand is accepted, the double might no longer be.
Yes, the single ampersand works, but the double ampersand will break the 
build
as well as the slash '/'.


> Certainly oe-core does continue to work. I hadn't realised there were
> incompatibilities introduced by this patch :(
>
> Not sure what we should do about this at this point, probably fix the
> layers :/.
>
True, question is who and when ?

> Cheers,
>
> Richard
>


>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


-- 
Best Regards
Ulf Samuelsson
eMagii




^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-09 13:46         ` Ulf Samuelsson
@ 2011-12-09 13:51           ` Koen Kooi
  2011-12-09 20:03             ` Flanagan, Elizabeth
  2011-12-09 19:53           ` Khem Raj
  1 sibling, 1 reply; 34+ messages in thread
From: Koen Kooi @ 2011-12-09 13:51 UTC (permalink / raw)
  To: ulf, Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 2752 bytes --]


Op 9 dec. 2011, om 14:46 heeft Ulf Samuelsson het volgende geschreven:

> On 2011-12-09 12:45, Richard Purdie wrote:
>> On Fri, 2011-12-09 at 03:21 +0100, Ulf Samuelsson wrote:
>>> On 2011-12-07 22:53, Khem Raj wrote:
>>>> On (07/12/11 11:34), Beth Flanagan wrote:
>>>>> From: Christopher Larson<kergoth@gmail.com>
>>>>> 
>>>>> Deploys sources for recipes for compliance with copyleft-style licenses
>>>>> Defaults to using symlinks, as it's a quick operation, and one can easily
>>>>> follow the links when making use of the files (e.g. tar with the -h arg).
>>>>> 
>>>>> By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>>>>> 
>>>>> Signed-off-by: Christopher Larson<kergoth@gmail.com>
>>>>> ---
>>>>>   meta/classes/copyleft_compliance.bbclass |   94 ++++++++++++++++++++++++++++++
>>>>>   1 files changed, 94 insertions(+), 0 deletions(-)
>>>>>   create mode 100644 meta/classes/copyleft_compliance.bbclass
>>>>> 
>>>>> diff --git a/meta/classes/copyleft_compliance.bbclass b/meta/classes/copyleft_compliance.bbclass
>>>>> new file mode 100644
>>>>> index 0000000..5d9ab11
>>>>> --- /dev/null
>>>>> +++ b/meta/classes/copyleft_compliance.bbclass
>>>>> @@ -0,0 +1,94 @@
>>>>> +# Deploy sources for recipes for compliance with copyleft-style licenses
>>>>> +# Defaults to using symlinks, as it's a quick operation, and one can easily
>>>>> +# follow the links when making use of the files (e.g. tar with the -h arg).
>>>>> +#
>>>>> +# By default, includes all GPL and LGPL, and excludes CLOSED and Proprietary.
>>>>> +#
>>>>> +# vi:sts=4:sw=4:et
>>>>> +
>>>>> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
>>>>> +
>>>>> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
>>>>> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
>>>>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs which include licenses'
>>> If the Ampersand is not accepted in the LICENSE string, then the recipes
>>> below are broken.
>>> 
>>>  From my latest build, at least recipes with "&&" fail...
>>> This means that nothing really completes that I have tested.
>>> 
>>> MAJOR BREAKAGE!!!!
>>> 
>>> I think it would be better FIRST to fix the recipes, and then introduce
>>> checking.
>> I think the single ampersand is accepted, the double might no longer be.
> Yes, the single ampersand works, but the double ampersand will break the build
> as well as the slash '/'.
> 
> 
>> Certainly oe-core does continue to work. I hadn't realised there were
>> incompatibilities introduced by this patch :(
>> 
>> Not sure what we should do about this at this point, probably fix the
>> layers :/.
>> 
> True, question is who and when ?

The people complaining about it and right now.

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 169 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-09 13:46         ` Ulf Samuelsson
  2011-12-09 13:51           ` Koen Kooi
@ 2011-12-09 19:53           ` Khem Raj
  1 sibling, 0 replies; 34+ messages in thread
From: Khem Raj @ 2011-12-09 19:53 UTC (permalink / raw)
  To: ulf, Patches and discussions about the oe-core layer

>> Certainly oe-core does continue to work. I hadn't realised there were
>> incompatibilities introduced by this patch :(
>>
>> Not sure what we should do about this at this point, probably fix the
>> layers :/.
>>
> True, question is who and when ?
>

layer maintainers. I think this change deserved an early warning so
layer maintainers
could have buckled up.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-09 13:30   ` Richard Purdie
@ 2011-12-09 19:57     ` Khem Raj
  2011-12-09 20:02       ` Joshua Lock
                         ` (2 more replies)
  0 siblings, 3 replies; 34+ messages in thread
From: Khem Raj @ 2011-12-09 19:57 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, Dec 9, 2011 at 5:30 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> The above line is a bashism and is breaking builds with dash
> as /bin/sh :(

I thought bashism was too deep in oe. I can certainly revert to using dash if
thats no longer the case.



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-09 19:57     ` Khem Raj
@ 2011-12-09 20:02       ` Joshua Lock
  2011-12-09 21:41         ` Khem Raj
  2011-12-09 23:49       ` Richard Purdie
  2011-12-10  8:16       ` Koen Kooi
  2 siblings, 1 reply; 34+ messages in thread
From: Joshua Lock @ 2011-12-09 20:02 UTC (permalink / raw)
  To: openembedded-core

On 09/12/11 11:57, Khem Raj wrote:
> On Fri, Dec 9, 2011 at 5:30 AM, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>>
>> The above line is a bashism and is breaking builds with dash
>> as /bin/sh :(
> 
> I thought bashism was too deep in oe. I can certainly revert to using dash if
> thats no longer the case.

Richard made a concerted effort to enable Dash recently based on
feedback we received for the Yocto Project. I certainly think we should
strive to be POSIX shell compatible where possible.

Regards,
Joshua
-- 
Joshua Lock
        Yocto Project "Johannes factotum"
        Intel Open Source Technology Centre



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!!
  2011-12-09 13:51           ` Koen Kooi
@ 2011-12-09 20:03             ` Flanagan, Elizabeth
  0 siblings, 0 replies; 34+ messages in thread
From: Flanagan, Elizabeth @ 2011-12-09 20:03 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer; +Cc: ulf

[-- Attachment #1: Type: text/plain, Size: 5277 bytes --]

On Fri, Dec 9, 2011 at 5:51 AM, Koen Kooi <koen@dominion.thruhere.net>wrote:

>
> Op 9 dec. 2011, om 14:46 heeft Ulf Samuelsson het volgende geschreven:
>
> > On 2011-12-09 12:45, Richard Purdie wrote:
> >> On Fri, 2011-12-09 at 03:21 +0100, Ulf Samuelsson wrote:
> >>> On 2011-12-07 22:53, Khem Raj wrote:
> >>>> On (07/12/11 11:34), Beth Flanagan wrote:
> >>>>> From: Christopher Larson<kergoth@gmail.com>
> >>>>>
> >>>>> Deploys sources for recipes for compliance with copyleft-style
> licenses
> >>>>> Defaults to using symlinks, as it's a quick operation, and one can
> easily
> >>>>> follow the links when making use of the files (e.g. tar with the -h
> arg).
> >>>>>
> >>>>> By default, includes all GPL and LGPL, and excludes CLOSED and
> Proprietary.
> >>>>>
> >>>>> Signed-off-by: Christopher Larson<kergoth@gmail.com>
> >>>>> ---
> >>>>>   meta/classes/copyleft_compliance.bbclass |   94
> ++++++++++++++++++++++++++++++
> >>>>>   1 files changed, 94 insertions(+), 0 deletions(-)
> >>>>>   create mode 100644 meta/classes/copyleft_compliance.bbclass
> >>>>>
> >>>>> diff --git a/meta/classes/copyleft_compliance.bbclass
> b/meta/classes/copyleft_compliance.bbclass
> >>>>> new file mode 100644
> >>>>> index 0000000..5d9ab11
> >>>>> --- /dev/null
> >>>>> +++ b/meta/classes/copyleft_compliance.bbclass
> >>>>> @@ -0,0 +1,94 @@
> >>>>> +# Deploy sources for recipes for compliance with copyleft-style
> licenses
> >>>>> +# Defaults to using symlinks, as it's a quick operation, and one
> can easily
> >>>>> +# follow the links when making use of the files (e.g. tar with the
> -h arg).
> >>>>> +#
> >>>>> +# By default, includes all GPL and LGPL, and excludes CLOSED and
> Proprietary.
> >>>>> +#
> >>>>> +# vi:sts=4:sw=4:et
> >>>>> +
> >>>>> +COPYLEFT_SOURCES_DIR ?= '${DEPLOY_DIR}/copyleft_sources'
> >>>>> +
> >>>>> +COPYLEFT_LICENSE_INCLUDE ?= 'GPL* LGPL*'
> >>>>> +COPYLEFT_LICENSE_INCLUDE[type] = 'list'
> >>>>> +COPYLEFT_LICENSE_INCLUDE[doc] = 'Space separated list of globs
> which include licenses'
> >>> If the Ampersand is not accepted in the LICENSE string, then the
> recipes
> >>> below are broken.
> >>>
> >>>  From my latest build, at least recipes with "&&" fail...
> >>> This means that nothing really completes that I have tested.
> >>>
> >>> MAJOR BREAKAGE!!!!
> >>>
> >>> I think it would be better FIRST to fix the recipes, and then introduce
> >>> checking.
> >> I think the single ampersand is accepted, the double might no longer be.
> > Yes, the single ampersand works, but the double ampersand will break the
> build
> > as well as the slash '/'.
> >
> >
> >> Certainly oe-core does continue to work. I hadn't realised there were
> >> incompatibilities introduced by this patch :(
> >>
> >> Not sure what we should do about this at this point, probably fix the
> >> layers :/.
> >>
> > True, question is who and when ?
>
> The people complaining about it and right now.
>


I know there was a conversation a while back about standardizing this field
and documenting it. If anything fell out of it, IDK, If there is any
documentation for what is valid form, I've not seen it. If it exists, could
someone point me to it? If it doesn't could we get a standards discussion
going here about how to move forward with this so we have something
documented? I've seen a bunch of different standards here and I really want
to get something nailed down as trying to write code for a field that isn't
well defined is a pain.

A few things I've been thinking about here.

- LICENSE should be ast parsable.
- license within LICENSE should have no spaces.
- At last count there are 100+ OSI opensource licenses. I've been pulling
from spdx.org and trying to use their naming convention while also
supporting mappings to non-spdx naming conventions. However there are some
LICENSE entries that are just wrong (GPL without a version) and need to be
fixed.
- the operands I've been supporting are & or |, with a modifier of +. I've
also been supporting parens grouping of license. example: "(Foo-1.0 &
Bar-1.0 ) | (Foo-2.0 & Bar-2.0)".
- There is an actual issue with LICENSE in that LICENSE is recipe based. We
should probably discuss the ability to support LICENSE_pkg, because the
recipe may contain multiple packages some of which don't share a license in
LICENSE.
- LICENSE priority should probably be dealt in a config but not in the
recipe. To me, it would make more sense as the main use case would probably
center around "If I can avoid getting XXX license in this image, please do".

I'll look at this to see if there is a way to handle some of the issues
this code introduces better, as I'm sure other 3rd party layers exist that
will have the same issue with this.

-b



> -----BEGIN PGP SIGNATURE-----
>
> iEYEARECAAYFAk7iEksACgkQMkyGM64RGpEPYQCeMpX884EmuwpUaIdFrvJ4Pp09
> aPoAn08cOAO5X2JMPXSoOEcFBPzDt+0V
> =LDRp
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>


-- 
Elizabeth Flanagan
Yocto Project
Build and Release

[-- Attachment #2: Type: text/html, Size: 6988 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-09 20:02       ` Joshua Lock
@ 2011-12-09 21:41         ` Khem Raj
  0 siblings, 0 replies; 34+ messages in thread
From: Khem Raj @ 2011-12-09 21:41 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, Dec 9, 2011 at 12:02 PM, Joshua Lock <josh@linux.intel.com> wrote:
> On 09/12/11 11:57, Khem Raj wrote:
>> On Fri, Dec 9, 2011 at 5:30 AM, Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>>
>>> The above line is a bashism and is breaking builds with dash
>>> as /bin/sh :(
>>
>> I thought bashism was too deep in oe. I can certainly revert to using dash if
>> thats no longer the case.
>
> Richard made a concerted effort to enable Dash recently based on
> feedback we received for the Yocto Project. I certainly think we should
> strive to be POSIX shell compatible where possible.

agreed



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-09 19:57     ` Khem Raj
  2011-12-09 20:02       ` Joshua Lock
@ 2011-12-09 23:49       ` Richard Purdie
  2011-12-10  8:16       ` Koen Kooi
  2 siblings, 0 replies; 34+ messages in thread
From: Richard Purdie @ 2011-12-09 23:49 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, 2011-12-09 at 11:57 -0800, Khem Raj wrote:
> On Fri, Dec 9, 2011 at 5:30 AM, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> >
> > The above line is a bashism and is breaking builds with dash
> > as /bin/sh :(
> 
> I thought bashism was too deep in oe. I can certainly revert to using dash if
> thats no longer the case.

Dash works fine now, at least in all my tests, apart from this issue
obviously. We droped the sanity check a while ago due to that.

Cheers,

Richard





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-09 19:57     ` Khem Raj
  2011-12-09 20:02       ` Joshua Lock
  2011-12-09 23:49       ` Richard Purdie
@ 2011-12-10  8:16       ` Koen Kooi
  2011-12-10 10:29         ` Richard Purdie
  2 siblings, 1 reply; 34+ messages in thread
From: Koen Kooi @ 2011-12-10  8:16 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 525 bytes --]


Op 9 dec. 2011, om 20:57 heeft Khem Raj het volgende geschreven:

> On Fri, Dec 9, 2011 at 5:30 AM, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>> 
>> The above line is a bashism and is breaking builds with dash
>> as /bin/sh :(
> 
> I thought bashism was too deep in oe. I can certainly revert to using dash if
> thats no longer the case.

We try to keep OE itself free of bashisms. The biggest problem is package authors using them like the libtool/gtk bashism interaction.

regards,

Koen

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 169 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 6/8] [YOCTO #1776] license: manifest and license path
  2011-12-10  8:16       ` Koen Kooi
@ 2011-12-10 10:29         ` Richard Purdie
  0 siblings, 0 replies; 34+ messages in thread
From: Richard Purdie @ 2011-12-10 10:29 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Sat, 2011-12-10 at 09:16 +0100, Koen Kooi wrote:
> Op 9 dec. 2011, om 20:57 heeft Khem Raj het volgende geschreven:
> 
> > On Fri, Dec 9, 2011 at 5:30 AM, Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> >> 
> >> The above line is a bashism and is breaking builds with dash
> >> as /bin/sh :(
> > 
> > I thought bashism was too deep in oe. I can certainly revert to using dash if
> > thats no longer the case.
> 
> We try to keep OE itself free of bashisms. The biggest problem is
> package authors using them like the libtool/gtk bashism interaction.

There is a patch merged which should sort out most of the libtool issues
at least. libtool continues to use bash but it references it
as /bin/bash, not /bin/sh.

Cheers,

Richard





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 7/8] OECore license fixes: meta/*
  2011-12-07 19:34 ` [PATCH 7/8] OECore license fixes: meta/* Beth Flanagan
  2011-12-07 21:16   ` Abbreviation of OpenEmbedded-Core (was: [PATCH 7/8] OECore license fixes: meta/*) Paul Menzel
@ 2011-12-14 16:06   ` Phil Blundell
  2011-12-15  1:18     ` Flanagan, Elizabeth
  2012-10-02 10:46   ` Phil Blundell
  2 siblings, 1 reply; 34+ messages in thread
From: Phil Blundell @ 2011-12-14 16:06 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, 2011-12-07 at 11:34 -0800, Beth Flanagan wrote:
> diff --git a/meta/recipes-extended/less/less_444.bb b/meta/recipes-extended/less/less_444.bb
> index c78dbaa..f198692 100644
> --- a/meta/recipes-extended/less/less_444.bb
> +++ b/meta/recipes-extended/less/less_444.bb
> @@ -7,11 +7,14 @@ SECTION = "console/utils"
>  
>  # (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less
>  # less is a 2-clause BSD-like permissive license
> -LICENSE = "GPLv3+ | less"
> +# Reading LICENSE and COPYING indicate that GPL-3+ is suffient.
> +# openSuse .spec and Debian seem to agree here. setting to GPL-3+
> +
> +LICENSE = "GPLv3+"

This change is rather misleading.  The point of the "Less
License" (effectively 2-clause BSD) option given by the README is that
it provides a non-GPLv3 route for distributing the binaries -- i.e.
makes the package usable by people who can't tolerate GPLv3 for whatever
reason.  If the recipe is marked as simply GPLv3+ then it will appear
unusable to those folks.

If we have to pick just a single license for less then it seems that the
BSD one would be a better choice than GPLv3+.

p.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 7/8] OECore license fixes: meta/*
  2011-12-14 16:06   ` [PATCH 7/8] OECore license fixes: meta/* Phil Blundell
@ 2011-12-15  1:18     ` Flanagan, Elizabeth
  0 siblings, 0 replies; 34+ messages in thread
From: Flanagan, Elizabeth @ 2011-12-15  1:18 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, Dec 14, 2011 at 8:06 AM, Phil Blundell <philb@gnu.org> wrote:
> On Wed, 2011-12-07 at 11:34 -0800, Beth Flanagan wrote:
>> diff --git a/meta/recipes-extended/less/less_444.bb b/meta/recipes-extended/less/less_444.bb
>> index c78dbaa..f198692 100644
>> --- a/meta/recipes-extended/less/less_444.bb
>> +++ b/meta/recipes-extended/less/less_444.bb
>> @@ -7,11 +7,14 @@ SECTION = "console/utils"
>>
>>  # (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less
>>  # less is a 2-clause BSD-like permissive license
>> -LICENSE = "GPLv3+ | less"
>> +# Reading LICENSE and COPYING indicate that GPL-3+ is suffient.
>> +# openSuse .spec and Debian seem to agree here. setting to GPL-3+
>> +
>> +LICENSE = "GPLv3+"
>
> This change is rather misleading.  The point of the "Less
> License" (effectively 2-clause BSD) option given by the README is that
> it provides a non-GPLv3 route for distributing the binaries -- i.e.
> makes the package usable by people who can't tolerate GPLv3 for whatever
> reason.  If the recipe is marked as simply GPLv3+ then it will appear
> unusable to those folks.
>
> If we have to pick just a single license for less then it seems that the
> BSD one would be a better choice than GPLv3+.
>
> p.

I have an email out to the author to verify if it would be ok to use
BSD-2-Clause. If so, we can switch it to that. If not, we'll add less
as a license type.

Sound ok?

-b

>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



-- 
Elizabeth Flanagan
Yocto Project
Build and Release



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 7/8] OECore license fixes: meta/*
  2011-12-07 19:34 ` [PATCH 7/8] OECore license fixes: meta/* Beth Flanagan
  2011-12-07 21:16   ` Abbreviation of OpenEmbedded-Core (was: [PATCH 7/8] OECore license fixes: meta/*) Paul Menzel
  2011-12-14 16:06   ` [PATCH 7/8] OECore license fixes: meta/* Phil Blundell
@ 2012-10-02 10:46   ` Phil Blundell
  2012-10-02 15:16     ` Flanagan, Elizabeth
  2 siblings, 1 reply; 34+ messages in thread
From: Phil Blundell @ 2012-10-02 10:46 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, 2011-12-07 at 11:34 -0800, Beth Flanagan wrote:
> From: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
> 
> This is a quick audit of only the most obviously wrong licenses
> found within OECore. These fixes fall into four areas:
> 
> - LICENSE field had incorrect format so that the parser choked
> - LICENSE field has a license with no version
> - LICENSE field was actually incorrect
> - LICENSE field has an imaginary license that didn't exist

[...]

> diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
> index f5b9ac1..14cd240 100644
> --- a/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
> +++ b/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
> @@ -4,9 +4,9 @@ Huffman coding. Compression is generally considerably better than that achieved
>  LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors."
>  HOMEPAGE = "http://www.bzip.org/"
>  SECTION = "console/utils"
> -LICENSE = "bzip2"
> +LICENSE = "BSD-4-Clause"

This (and the corresponding change to busybox) doesn't seem quite right.
Although it is true that the bzip2 licence does have four clauses and is
approximately BSD-ish, these four clauses are not actually the same as
the ones in the traditional 4-clause BSD licence.

The four clauses that the bzip2 licence actually has are (to quote
LICENSE):

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. The origin of this software must not be misrepresented; you must 
   not claim that you wrote the original software.  If you use this 
   software in a product, an acknowledgment in the product 
   documentation would be appreciated but is not required.

3. Altered source versions must be plainly marked as such, and must
   not be misrepresented as being the original software.

4. The name of the author may not be used to endorse or promote 
   products derived from this software without specific prior written 
   permission.

Whereas, the four clauses from the original BSD are:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
   This product includes software developed by the <organization>.

4. Neither the name of the <organization> nor the
   names of its contributors may be used to endorse or promote products
   derived from this software without specific prior written permission.

Clauses 1 and 4 are clearly the same thing (or very nearly identical)
but clauses 2 and 3 are significantly different in both wording and
intent.  In particular the bzip2 license contains no equivalent to the
objectionable "advertising clause".

p.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 7/8] OECore license fixes: meta/*
  2012-10-02 10:46   ` Phil Blundell
@ 2012-10-02 15:16     ` Flanagan, Elizabeth
  2012-10-02 16:00       ` Phil Blundell
  0 siblings, 1 reply; 34+ messages in thread
From: Flanagan, Elizabeth @ 2012-10-02 15:16 UTC (permalink / raw)
  To: Phil Blundell; +Cc: Patches and discussions about the oe-core layer

On Tue, Oct 2, 2012 at 3:46 AM, Phil Blundell <philb@gnu.org> wrote:
>
> This (and the corresponding change to busybox) doesn't seem quite right.
> Although it is true that the bzip2 licence does have four clauses and is
> approximately BSD-ish, these four clauses are not actually the same as
> the ones in the traditional 4-clause BSD licence.

That's correct, thanks for the catch. When I was going through these,
I relied on a lot on what others had listed the package as. OBS lists
it as BSD (3 clause I believe). Gentoo lists it as bzip2.
I dislike having singular licenses but in this case, due to clause 2
and 3, the correct path here is to change it back to bzip2, add the
bzip2 text to the license directory and then email the bzip2
developers and ask them if BSD-4-clause is appropriate or not. I'll do
that today.

-b

>
> The four clauses that the bzip2 licence actually has are (to quote
> LICENSE):
>
> 1. Redistributions of source code must retain the above copyright
>    notice, this list of conditions and the following disclaimer.
>
> 2. The origin of this software must not be misrepresented; you must
>    not claim that you wrote the original software.  If you use this
>    software in a product, an acknowledgment in the product
>    documentation would be appreciated but is not required.
>
> 3. Altered source versions must be plainly marked as such, and must
>    not be misrepresented as being the original software.
>
> 4. The name of the author may not be used to endorse or promote
>    products derived from this software without specific prior written
>    permission.
>
> Whereas, the four clauses from the original BSD are:
>
> 1. Redistributions of source code must retain the above copyright
>    notice, this list of conditions and the following disclaimer.
>
> 2. Redistributions in binary form must reproduce the above copyright
>    notice, this list of conditions and the following disclaimer in the
>    documentation and/or other materials provided with the distribution.
>
> 3. All advertising materials mentioning features or use of this software
>    must display the following acknowledgement:
>    This product includes software developed by the <organization>.
>
> 4. Neither the name of the <organization> nor the
>    names of its contributors may be used to endorse or promote products
>    derived from this software without specific prior written permission.
>
> Clauses 1 and 4 are clearly the same thing (or very nearly identical)
> but clauses 2 and 3 are significantly different in both wording and
> intent.  In particular the bzip2 license contains no equivalent to the
> objectionable "advertising clause".
>
> p.
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core



-- 
Elizabeth Flanagan
Yocto Project
Build and Release



^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [PATCH 7/8] OECore license fixes: meta/*
  2012-10-02 15:16     ` Flanagan, Elizabeth
@ 2012-10-02 16:00       ` Phil Blundell
  0 siblings, 0 replies; 34+ messages in thread
From: Phil Blundell @ 2012-10-02 16:00 UTC (permalink / raw)
  To: Flanagan, Elizabeth; +Cc: Patches and discussions about the oe-core layer

On Tue, 2012-10-02 at 08:16 -0700, Flanagan, Elizabeth wrote:
> On Tue, Oct 2, 2012 at 3:46 AM, Phil Blundell <philb@gnu.org> wrote:
> >
> > This (and the corresponding change to busybox) doesn't seem quite right.
> > Although it is true that the bzip2 licence does have four clauses and is
> > approximately BSD-ish, these four clauses are not actually the same as
> > the ones in the traditional 4-clause BSD licence.
> 
> That's correct, thanks for the catch. When I was going through these,
> I relied on a lot on what others had listed the package as. OBS lists
> it as BSD (3 clause I believe). Gentoo lists it as bzip2.
> I dislike having singular licenses but in this case, due to clause 2
> and 3, the correct path here is to change it back to bzip2, add the
> bzip2 text to the license directory and then email the bzip2
> developers and ask them if BSD-4-clause is appropriate or not. I'll do
> that today.

If you're going to ask the maintainers about varying the license
wording, it might be better to ask for BSD-3-Clause rather than the
4-clause one.  Having it licensed under terms which include the
advertising clause would be a bit of a pain.

p.





^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2012-10-02 16:13 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-07 19:34 [PATCH 0/8] License Consolidated Pull Beth Flanagan
2011-12-07 19:34 ` [PATCH 1/8] oe.test_types: move into an oe.tests package Beth Flanagan
2011-12-07 19:34 ` [PATCH 2/8] license: split license parsing into oe.license Beth Flanagan
2011-12-07 19:34 ` [PATCH 3/8] oe.license: add license flattening code Beth Flanagan
2011-12-07 19:34 ` [PATCH 4/8] Add copyleft compliance class Beth Flanagan
2011-12-07 21:53   ` Khem Raj
2011-12-07 22:50     ` Chris Larson
2011-12-09  2:21     ` [PATCH 4/8] Add copyleft compliance class --- MAJOR BREAKAGE!!!! Ulf Samuelsson
2011-12-09  8:24       ` Ulf Samuelsson
2011-12-09 11:45       ` Richard Purdie
2011-12-09 13:46         ` Ulf Samuelsson
2011-12-09 13:51           ` Koen Kooi
2011-12-09 20:03             ` Flanagan, Elizabeth
2011-12-09 19:53           ` Khem Raj
2011-12-07 19:34 ` [PATCH 5/8] gettext-minimal-native: Fix License Beth Flanagan
2011-12-07 19:34 ` [PATCH 6/8] [YOCTO #1776] license: manifest and license path Beth Flanagan
2011-12-09 13:30   ` Richard Purdie
2011-12-09 19:57     ` Khem Raj
2011-12-09 20:02       ` Joshua Lock
2011-12-09 21:41         ` Khem Raj
2011-12-09 23:49       ` Richard Purdie
2011-12-10  8:16       ` Koen Kooi
2011-12-10 10:29         ` Richard Purdie
2011-12-07 19:34 ` [PATCH 7/8] OECore license fixes: meta/* Beth Flanagan
2011-12-07 21:16   ` Abbreviation of OpenEmbedded-Core (was: [PATCH 7/8] OECore license fixes: meta/*) Paul Menzel
2011-12-07 21:30     ` Abbreviation of OpenEmbedded-Core Joshua Lock
2011-12-07 21:40       ` Paul Menzel
2011-12-14 16:06   ` [PATCH 7/8] OECore license fixes: meta/* Phil Blundell
2011-12-15  1:18     ` Flanagan, Elizabeth
2012-10-02 10:46   ` Phil Blundell
2012-10-02 15:16     ` Flanagan, Elizabeth
2012-10-02 16:00       ` Phil Blundell
2011-12-07 19:34 ` [PATCH 8/8] package.bbclass: Adding license collection Beth Flanagan
2011-12-08 15:25 ` [PATCH 0/8] License Consolidated Pull Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.