]> git.ipfire.org Git - thirdparty/u-boot.git/blame - Licenses/README
Add valgrind headers to U-Boot
[thirdparty/u-boot.git] / Licenses / README
CommitLineData
d405dae3
TR
1SPDX-License-Identifier: GPL-2.0
2
eca3aeb3
WD
3 U-Boot is Free Software. It is copyrighted by Wolfgang Denk and
4many others who contributed code (see the actual source code and the
5git commit messages for details). You can redistribute U-Boot and/or
6modify it under the terms of version 2 of the GNU General Public
7License as published by the Free Software Foundation. Most of it can
8also be distributed, at your option, under any later version of the
9GNU General Public License -- see individual files for exceptions.
10
11 NOTE! This license does *not* cover the so-called "standalone"
12applications that use U-Boot services by means of the jump table
13provided by U-Boot exactly for this purpose - this is merely
14considered normal use of U-Boot, and does *not* fall under the
15heading of "derived work" -- see file Licenses/Exceptions for
16details.
17
18 Also note that the GPL and the other licenses are copyrighted by
19the Free Software Foundation and other organizations, but the
20instance of code that they refer to (the U-Boot source code) is
21copyrighted by me and others who actually wrote it.
22-- Wolfgang Denk
23
24
25Like many other projects, U-Boot has a tradition of including big
26blocks of License headers in all files. This not only blows up the
27source code with mostly redundant information, but also makes it very
28difficult to generate License Clearing Reports. An additional problem
29is that even the same licenses are referred to by a number of
30slightly varying text blocks (full, abbreviated, different
31indentation, line wrapping and/or white space, with obsolete address
32information, ...) which makes automatic processing a nightmare.
33
34To make this easier, such license headers in the source files will be
35replaced with a single line reference to Unique License Identifiers
d405dae3 36as defined by the Linux Foundation's SPDX project [1].
17fd36c1
WD
37
38If a "SPDX-License-Identifier:" line references more than one Unique
39License Identifier, then this means that the respective file can be
40used under the terms of either of these licenses, i. e. with
41
d405dae3 42 SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
17fd36c1 43
4dcd9a65 44you can choose between GPL-2.0+ and BSD-3-Clause licensing.
17fd36c1 45
eca3aeb3
WD
46We use the SPDX Unique License Identifiers here; these are available
47at [2].
48
d405dae3
TR
49License identifier syntax
50-------------------------
51
521. Placement:
53
54 The SPDX license identifier in U-Boot files shall be added at the first
55 possible line in a file which can contain a comment. For the majority
56 or files this is the first line, except for scripts which require the
57 '#!PATH_TO_INTERPRETER' in the first line. For those scripts the SPDX
58 identifier goes into the second line.
59
60|
61
622. Style:
63
64 The SPDX license identifier is added in form of a comment. The comment
65 style depends on the file type::
66
67 C source: // SPDX-License-Identifier: <SPDX License Expression>
68 C header: /* SPDX-License-Identifier: <SPDX License Expression> */
69 ASM: /* SPDX-License-Identifier: <SPDX License Expression> */
70 scripts: # SPDX-License-Identifier: <SPDX License Expression>
71 .rst: .. SPDX-License-Identifier: <SPDX License Expression>
72 .dts{i}: // SPDX-License-Identifier: <SPDX License Expression>
73
74 If a specific tool cannot handle the standard comment style, then the
75 appropriate comment mechanism which the tool accepts shall be used. This
76 is the reason for having the "/\* \*/" style comment in C header
77 files. There was build breakage observed with generated .lds files where
78 'ld' failed to parse the C++ comment. This has been fixed by now, but
79 there are still older assembler tools which cannot handle C++ style
80 comments.
81
82|
83
843. Syntax:
85
86 A <SPDX License Expression> is either an SPDX short form license
87 identifier found on the SPDX License List, or the combination of two
88 SPDX short form license identifiers separated by "WITH" when a license
89 exception applies. When multiple licenses apply, an expression consists
90 of keywords "AND", "OR" separating sub-expressions and surrounded by
91 "(", ")" .
92
93 License identifiers for licenses like [L]GPL with the 'or later' option
94 are constructed by using a "+" for indicating the 'or later' option.::
95
96 // SPDX-License-Identifier: GPL-2.0+
97 // SPDX-License-Identifier: LGPL-2.1+
98
99 WITH should be used when there is a modifier to a license needed.
100 For example, the linux kernel UAPI files use the expression::
101
102 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
103 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note
104
105 Other examples using WITH exceptions found in the linux kernel are::
106
107 // SPDX-License-Identifier: GPL-2.0 WITH mif-exception
108 // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0
109
110 Exceptions can only be used with particular License identifiers. The
111 valid License identifiers are listed in the tags of the exception text
112 file.
113
114 OR should be used if the file is dual licensed and only one license is
115 to be selected. For example, some dtsi files are available under dual
116 licenses::
117
118 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
119
120 Examples from U-Boot for license expressions in dual licensed files::
121
122 // SPDX-License-Identifier: GPL-2.0 OR MIT
123 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
124
125 AND should be used if the file has multiple licenses whose terms all
126 apply to use the file. For example, if code is inherited from another
127 project and permission has been given to put it in U-Boot, but the
128 original license terms need to remain in effect::
129
130 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
131
132 Another other example where both sets of license terms need to be
133 adhered to is::
134
135 // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+
136
eca3aeb3
WD
137[1] http://spdx.org/
138[2] http://spdx.org/licenses/
139
35084760 140Full name SPDX Identifier OSI Approved File name URI
eca3aeb3 141=======================================================================================================================================
fba0882b 142bzip2 and libbzip2 License v1.0.6 bzip2-1.0.6 bzip2-1.0.6.txt https://spdx.org/licenses/bzip2-1.0.6.html
35084760
RM
143GNU General Public License v2.0 only GPL-2.0 Y gpl-2.0.txt http://www.gnu.org/licenses/gpl-2.0.txt
144GNU General Public License v2.0 or later GPL-2.0+ Y gpl-2.0.txt http://www.gnu.org/licenses/gpl-2.0.txt
145GNU 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
146GNU 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
147eCos license version 2.0 eCos-2.0 eCos-2.0.txt http://www.gnu.org/licenses/ecos-license.html
cb3761ea
WD
148BSD 2-Clause License BSD-2-Clause Y bsd-2-clause.txt http://spdx.org/licenses/BSD-2-Clause
149BSD 3-clause "New" or "Revised" License BSD-3-Clause Y bsd-3-clause.txt http://spdx.org/licenses/BSD-3-Clause#licenseText
1b387ef5 150IBM PIBS (PowerPC Initialization and IBM-pibs ibm-pibs.txt
46263f2d 151 Boot Software) license
c25a1784 152ISC License ISC Y isc.txt https://spdx.org/licenses/ISC
824ed85b 153MIT License MIT Y mit.txt https://spdx.org/licenses/MIT.html
0f4d2f8e 154SIL OPEN FONT LICENSE (OFL-1.1) OFL-1.1 Y OFL.txt https://spdx.org/licenses/OFL-1.1.html
40a39e87 155X11 License X11 x11.txt https://spdx.org/licenses/X11.html