154 lines
6.9 KiB
Plaintext
154 lines
6.9 KiB
Plaintext
SPDX-License-Identifier: GPL-2.0
|
|
|
|
U-Boot is Free Software. It is copyrighted by Wolfgang Denk and
|
|
many others who contributed code (see the actual source code and the
|
|
git commit messages for details). You can redistribute U-Boot and/or
|
|
modify it under the terms of version 2 of the GNU General Public
|
|
License as published by the Free Software Foundation. Most of it can
|
|
also be distributed, at your option, under any later version of the
|
|
GNU General Public License -- see individual files for exceptions.
|
|
|
|
NOTE! This license does *not* cover the so-called "standalone"
|
|
applications that use U-Boot services by means of the jump table
|
|
provided by U-Boot exactly for this purpose - this is merely
|
|
considered normal use of U-Boot, and does *not* fall under the
|
|
heading of "derived work" -- see file Licenses/Exceptions for
|
|
details.
|
|
|
|
Also note that the GPL and the other licenses are copyrighted by
|
|
the Free Software Foundation and other organizations, but the
|
|
instance of code that they refer to (the U-Boot source code) is
|
|
copyrighted by me and others who actually wrote it.
|
|
-- Wolfgang Denk
|
|
|
|
|
|
Like many other projects, U-Boot has a tradition of including big
|
|
blocks of License headers in all files. This not only blows up the
|
|
source code with mostly redundant information, but also makes it very
|
|
difficult to generate License Clearing Reports. An additional problem
|
|
is that even the same licenses are referred to by a number of
|
|
slightly varying text blocks (full, abbreviated, different
|
|
indentation, line wrapping and/or white space, with obsolete address
|
|
information, ...) which makes automatic processing a nightmare.
|
|
|
|
To make this easier, such license headers in the source files will be
|
|
replaced with a single line reference to Unique License Identifiers
|
|
as defined by the Linux Foundation's SPDX project [1].
|
|
|
|
If a "SPDX-License-Identifier:" line references more than one Unique
|
|
License Identifier, then this means that the respective file can be
|
|
used under the terms of either of these licenses, i. e. with
|
|
|
|
SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
|
|
|
|
you can choose between GPL-2.0+ and BSD-3-Clause licensing.
|
|
|
|
We use the SPDX Unique License Identifiers here; these are available
|
|
at [2].
|
|
|
|
License identifier syntax
|
|
-------------------------
|
|
|
|
1. Placement:
|
|
|
|
The SPDX license identifier in U-Boot files shall be added at the first
|
|
possible line in a file which can contain a comment. For the majority
|
|
or files this is the first line, except for scripts which require the
|
|
'#!PATH_TO_INTERPRETER' in the first line. For those scripts the SPDX
|
|
identifier goes into the second line.
|
|
|
|
|
|
|
|
|
2. Style:
|
|
|
|
The SPDX license identifier is added in form of a comment. The comment
|
|
style depends on the file type::
|
|
|
|
C source: // SPDX-License-Identifier: <SPDX License Expression>
|
|
C header: /* SPDX-License-Identifier: <SPDX License Expression> */
|
|
ASM: /* SPDX-License-Identifier: <SPDX License Expression> */
|
|
scripts: # SPDX-License-Identifier: <SPDX License Expression>
|
|
.rst: .. SPDX-License-Identifier: <SPDX License Expression>
|
|
.dts{i}: // SPDX-License-Identifier: <SPDX License Expression>
|
|
|
|
If a specific tool cannot handle the standard comment style, then the
|
|
appropriate comment mechanism which the tool accepts shall be used. This
|
|
is the reason for having the "/\* \*/" style comment in C header
|
|
files. There was build breakage observed with generated .lds files where
|
|
'ld' failed to parse the C++ comment. This has been fixed by now, but
|
|
there are still older assembler tools which cannot handle C++ style
|
|
comments.
|
|
|
|
|
|
|
|
|
3. Syntax:
|
|
|
|
A <SPDX License Expression> is either an SPDX short form license
|
|
identifier found on the SPDX License List, or the combination of two
|
|
SPDX short form license identifiers separated by "WITH" when a license
|
|
exception applies. When multiple licenses apply, an expression consists
|
|
of keywords "AND", "OR" separating sub-expressions and surrounded by
|
|
"(", ")" .
|
|
|
|
License identifiers for licenses like [L]GPL with the 'or later' option
|
|
are constructed by using a "+" for indicating the 'or later' option.::
|
|
|
|
// SPDX-License-Identifier: GPL-2.0+
|
|
// SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
WITH should be used when there is a modifier to a license needed.
|
|
For example, the linux kernel UAPI files use the expression::
|
|
|
|
// SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
|
|
// SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
|
|
|
|
Other examples using WITH exceptions found in the linux kernel are::
|
|
|
|
// SPDX-License-Identifier: GPL-2.0 WITH mif-exception
|
|
// SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
|
|
|
|
Exceptions can only be used with particular License identifiers. The
|
|
valid License identifiers are listed in the tags of the exception text
|
|
file.
|
|
|
|
OR should be used if the file is dual licensed and only one license is
|
|
to be selected. For example, some dtsi files are available under dual
|
|
licenses::
|
|
|
|
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
|
|
|
|
Examples from U-Boot for license expressions in dual licensed files::
|
|
|
|
// SPDX-License-Identifier: GPL-2.0 OR MIT
|
|
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
|
|
|
|
AND should be used if the file has multiple licenses whose terms all
|
|
apply to use the file. For example, if code is inherited from another
|
|
project and permission has been given to put it in U-Boot, but the
|
|
original license terms need to remain in effect::
|
|
|
|
// SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
|
|
|
|
Another other example where both sets of license terms need to be
|
|
adhered to is::
|
|
|
|
// SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
|
|
|
|
[1] http://spdx.org/
|
|
[2] http://spdx.org/licenses/
|
|
|
|
Full name SPDX Identifier OSI Approved File name URI
|
|
=======================================================================================================================================
|
|
GNU General Public License v2.0 only GPL-2.0 Y gpl-2.0.txt http://www.gnu.org/licenses/gpl-2.0.txt
|
|
GNU General Public License v2.0 or later GPL-2.0+ Y gpl-2.0.txt http://www.gnu.org/licenses/gpl-2.0.txt
|
|
GNU Library General Public License v2 or later LGPL-2.0+ Y lgpl-2.0.txt http://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt
|
|
GNU Lesser General Public License v2.1 or later LGPL-2.1+ Y lgpl-2.1.txt http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
|
|
eCos license version 2.0 eCos-2.0 eCos-2.0.txt http://www.gnu.org/licenses/ecos-license.html
|
|
BSD 2-Clause License BSD-2-Clause Y bsd-2-clause.txt http://spdx.org/licenses/BSD-2-Clause
|
|
BSD 3-clause "New" or "Revised" License BSD-3-Clause Y bsd-3-clause.txt http://spdx.org/licenses/BSD-3-Clause#licenseText
|
|
IBM PIBS (PowerPC Initialization and IBM-pibs ibm-pibs.txt
|
|
Boot Software) license
|
|
ISC License ISC Y isc.txt https://spdx.org/licenses/ISC
|
|
SIL OPEN FONT LICENSE (OFL-1.1) OFL-1.1 Y OFL.txt https://spdx.org/licenses/OFL-1.1.html
|
|
X11 License X11 x11.txt https://spdx.org/licenses/X11.html
|