|
|
@@ -1,3 +1,5 @@ |
|
|
|
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 |
|
|
@@ -31,27 +33,107 @@ 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]. For example, |
|
|
|
in a source file the full "GPL v2.0 or later" header text will be |
|
|
|
replaced by a single line: |
|
|
|
|
|
|
|
SPDX-License-Identifier: GPL-2.0+ |
|
|
|
|
|
|
|
Ideally, the license terms of all files in the source tree should be |
|
|
|
defined by such License Identifiers; in no case a file can contain |
|
|
|
more than one such License Identifier list. |
|
|
|
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+ BSD-3-Clause |
|
|
|
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/ |
|
|
|
|
|
|
|