123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- 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
- MIT License MIT Y mit.txt https://spdx.org/licenses/MIT.html
- 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
|