diff options
author | Julius Werner <jwerner@chromium.org> | 2014-06-11 14:16:35 -0700 |
---|---|---|
committer | Marc Jones <marc.jones@se-eng.com> | 2015-01-09 07:06:27 +0100 |
commit | 22adcd67a27e1a99a743ef26b49ae2afab6fe624 (patch) | |
tree | e35a6b02b0ff3dd0f189648580350601451f948a /payloads/libpayload/LICENSES | |
parent | 092cac58dee8fb87e0615d060a9de0f7ec693ee4 (diff) |
libpayload: Introduce new Kconfig to explicitly allow GPL code
There have been leaks of GPL code into libpayload for a while now, for
new features or improvements that require third party code with no
adequate alternative among BSD-licensed software. It seems silly and
counter-productive to keep holding back features and performance
improvements from libpayload for a use-case (proprietary payloads) that
doesn't even seem to be implemented anywhere to date. Open-source
payloads should not need to suffer to appease commercial ones.
Instead, this patch introduces a new Kconfig option to explicitly allow
inclusion of GPL code. It will use Kconfig dependencies and/or Makefile
rules to ensure that no GPL code can end up in the final payload if that
option is unset, allowing proprietary payloads to keep working with the
existing BSD-licensed feature set. New features and patches (that are
sufficiently separate and self-contained to allow guarding through this
config option) can choose whether to import GPL code, and need to depend
on this option if they do.
Also clean up all (known) existing uses of GPL code to depend on the new
option, add some recent third-party imports to the LICENSES file, and
relicense the selfboot.c files to BSD with permission of the author.
BUG=chrome-os-partner:24957
TEST=Compiled Falco and Nyan_Big both with and without the new option,
disassembled output binaries to ensure that memcpy() looks as expected.
Original-Change-Id: I6e3a75b1a8e46291c75a876844c7a01f7d3f2a0e
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/203513
Original-Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
(cherry picked from commit d8e5a9fdf583b5ac861f34baea6a16c4d8536512)
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Change-Id: I446fef028264c793b946dd9f765e446bf708b4db
Reviewed-on: http://review.coreboot.org/8118
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'payloads/libpayload/LICENSES')
-rw-r--r-- | payloads/libpayload/LICENSES | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/payloads/libpayload/LICENSES b/payloads/libpayload/LICENSES index 49388923b9..f340eadb7d 100644 --- a/payloads/libpayload/LICENSES +++ b/payloads/libpayload/LICENSES @@ -34,8 +34,20 @@ BSD license: For some parts, which were taken from external projects, other (compatible) licenses may apply. Please check the individual source files for details, -or see the section below for an overview of third-party code in libpayload. +or see the section at the bottom of this file for an overview of third-party +code in libpayload. +Some parts of libpayload are licensed under the GNU General Public License +(version 2). These parts are clearly separated by the CONFIG_GPL Kconfig +option (default off), and will not be linked into the output payload unless +that option has been chosen. The full text of that license is provided in the +LICENSE_GPL file. + +(Please note that the coreboot project makes a best effort to keep licensing +information up to date and accurate, but provides no legal guarantees to that +regard. If you redistribute libpayload code in source or binary form, it is +your liability to ensure that you conform to all legal requirements that this +might entail.) Third-party Code and License Overview ------------------------------------- @@ -110,3 +122,12 @@ holders, and the exact license terms that apply. Original files: src/lib/libc/hash/sha1.c Current version we use: CVS revision 1.20 2005/08/08 +* arch/arm/mem*.S: GPLv2 + Source: Linux, http://www.kernel.org + Original files: arch/arm/lib/mem*.S + Current version we use: 3.9 (418df63adac56841ef6b0f1fcf435bc64d4ed177) + +* arch/x86/string.c: LGPLv2.1, modified to GPLv2 under the terms of section 3 + Source: GNU C Library (glibc), http://www.gnu.org/software/libc/libc.html + Original files: sysdeps/i386/memset.c + Current version we use: 2.14 |