Skip to content
Snippets Groups Projects
README 7.01 KiB
Newer Older
  • Learn to ignore specific revisions
  •   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
    
    Anastasiia Lukianenko's avatar
    Anastasiia Lukianenko committed
    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