Home | History | Annotate | Download | only in Licenses
      1 SPDX-License-Identifier: GPL-2.0
      2 
      3   U-Boot is Free Software.  It is copyrighted by Wolfgang Denk and
      4 many others who contributed code (see the actual source code and the
      5 git commit messages for details).  You can redistribute U-Boot and/or
      6 modify it under the terms of version 2 of the GNU General Public
      7 License as published by the Free Software Foundation.  Most of it can
      8 also be distributed, at your option, under any later version of the
      9 GNU General Public License -- see individual files for exceptions.
     10 
     11   NOTE! This license does *not* cover the so-called "standalone"
     12 applications that use U-Boot services by means of the jump table
     13 provided by U-Boot exactly for this purpose - this is merely
     14 considered normal use of U-Boot, and does *not* fall under the
     15 heading of "derived work" -- see file  Licenses/Exceptions  for
     16 details.
     17 
     18   Also note that the GPL and the other licenses are copyrighted by
     19 the Free Software Foundation and other organizations, but the
     20 instance of code that they refer to (the U-Boot source code) is
     21 copyrighted by me and others who actually wrote it.
     22 -- Wolfgang Denk
     23 
     24 
     25 Like many other projects, U-Boot has a tradition of including big
     26 blocks of License headers in all files.  This not only blows up the
     27 source code with mostly redundant information, but also makes it very
     28 difficult to generate License Clearing Reports.  An additional problem
     29 is that even the same licenses are referred to by a number of
     30 slightly varying text blocks (full, abbreviated, different
     31 indentation, line wrapping and/or white space, with obsolete address
     32 information, ...) which makes automatic processing a nightmare.
     33 
     34 To make this easier, such license headers in the source files will be
     35 replaced with a single line reference to Unique License Identifiers
     36 as defined by the Linux Foundation's SPDX project [1].
     37 
     38 If a "SPDX-License-Identifier:" line references more than one Unique
     39 License Identifier, then this means that the respective file can be
     40 used under the terms of either of these licenses, i. e. with
     41 
     42 	SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
     43 
     44 you can choose between GPL-2.0+ and BSD-3-Clause licensing.
     45 
     46 We use the SPDX Unique License Identifiers here; these are available
     47 at [2].
     48 
     49 License identifier syntax
     50 -------------------------
     51 
     52 1. 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 
     62 2. 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 
     84 3. 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 
    137 [1] http://spdx.org/
    138 [2] http://spdx.org/licenses/
    139 
    140 Full name					SPDX Identifier	OSI Approved	File name		URI
    141 =======================================================================================================================================
    142 GNU General Public License v2.0 only		GPL-2.0		Y		gpl-2.0.txt		http://www.gnu.org/licenses/gpl-2.0.txt
    143 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
    144 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
    145 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
    146 eCos license version 2.0			eCos-2.0			eCos-2.0.txt		http://www.gnu.org/licenses/ecos-license.html
    147 BSD 2-Clause License				BSD-2-Clause	Y		bsd-2-clause.txt	http://spdx.org/licenses/BSD-2-Clause
    148 BSD 3-clause "New" or "Revised" License		BSD-3-Clause	Y		bsd-3-clause.txt	http://spdx.org/licenses/BSD-3-Clause#licenseText
    149 IBM PIBS (PowerPC Initialization and		IBM-pibs			ibm-pibs.txt
    150 	Boot Software) license
    151 ISC License					ISC		Y		isc.txt			https://spdx.org/licenses/ISC
    152 SIL OPEN FONT LICENSE (OFL-1.1)			OFL-1.1		Y		OFL.txt			https://spdx.org/licenses/OFL-1.1.html
    153 X11 License					X11				x11.txt			https://spdx.org/licenses/X11.html
    154