|
|
|
SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
Licenses: introduce SPDX Unique Lincense Identifiers
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 lincenses 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 Lincense 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+
We use the SPDX Unique Lincense Identifiers here; these are available
at [2].
Note: From the legal point of view, this patch is supposed to be only
a change to the textual representation of the license information,
but in no way any change to the actual license terms. With this patch
applied, all files will still be licensed under the same terms they
were before.
Note 2: The apparent difference between the old "COPYING" and the new
"Licenses/gpl-2.0.txt" only results from switching to the upstream
version of the license which is differently formatted; there are not
any actual changes to the content.
Note 3: There are some recurring questions about linense issues, such
as:
- Is a "All Rights Reserved" clause a problem in GPL code?
- Are files without any license header a problem?
- Do we need license headers at all?
The following excerpt from an e-mail by Daniel B. Ravicher should help
with these:
| Message-ID: <4ADF8CAA.5030808@softwarefreedom.org>
| Date: Wed, 21 Oct 2009 18:35:22 -0400
| From: "Daniel B. Ravicher" <ravicher@softwarefreedom.org>
| To: Wolfgang Denk <wd@denx.de>
| Subject: Re: GPL and license cleanup questions
|
| Mr. Denk,
|
| Wolfgang Denk wrote:
| > - There are a number of files which do not include any specific
| > license information at all. Is it correct to assume that these files
| > are automatically covered by the "GPL v2 or later" clause as
| > specified by the COPYING file in the top level directory of the
| > U-Boot source tree?
|
| That is a very fact specific analysis and could be different across the
| various files. However, if the contributor could reasonably be expected
| to have known that the project was licensed GPLv2 or later at the time
| she made her contribution, then a reasonably implication is that she
| consented to her contributions being distributed under those terms.
|
| > - Do such files need any clean up, for example should we add GPL
| > headers to them, or is this not needed?
|
| If the project as a whole is licensed under clear terms, you need not
| identify those same terms in each file, although there is no harm in
| doing so.
|
| > - There are other files, which include both a GPL license header
| > _plus_ some copyright note with an "All Rights Reserved" clause. It
| > has been my understanding that this is a conflict, and me must ask
| > the copyright holders to remove such "All Rights Reserved" clauses.
| > But then, some people claim that "All Rights Reserved" is a no-op
| > nowadays. License checking tools (like OSLC) seem to indicate this is
| > a problem, but then we see quite a lot of "All rights reserved" in
| > BSD-licensed files in gcc and glibc. So what is the correct way to
| > deal with such files?
|
| It is not a conflict to grant a license and also reserve all rights, as
| implicit in that language is that you are reserving all "other" rights
| not granted in the license. Thus, a file with "Licensed under GPL, All
| Rights Reserved" would mean that it is licensed under the GPL, but no
| other rights are given to copy, modify or redistribute it.
|
| Warm regards,
| --Dan
|
| Daniel B. Ravicher, Legal Director
| Software Freedom Law Center (SFLC) and Moglen Ravicher LLC
| 1995 Broadway, 17th Fl., New York, NY 10023
| (212) 461-1902 direct (212) 580-0800 main (212) 580-0898 fax
| ravicher@softwarefreedom.org www.softwarefreedom.org
[1] http://spdx.org/
[2] http://spdx.org/licenses/
Signed-off-by: Wolfgang Denk <wd@denx.de>
12 years ago
|
|
|
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.
|
|
|
|
|
Licenses: introduce SPDX Unique Lincense Identifiers
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 lincenses 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 Lincense 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+
We use the SPDX Unique Lincense Identifiers here; these are available
at [2].
Note: From the legal point of view, this patch is supposed to be only
a change to the textual representation of the license information,
but in no way any change to the actual license terms. With this patch
applied, all files will still be licensed under the same terms they
were before.
Note 2: The apparent difference between the old "COPYING" and the new
"Licenses/gpl-2.0.txt" only results from switching to the upstream
version of the license which is differently formatted; there are not
any actual changes to the content.
Note 3: There are some recurring questions about linense issues, such
as:
- Is a "All Rights Reserved" clause a problem in GPL code?
- Are files without any license header a problem?
- Do we need license headers at all?
The following excerpt from an e-mail by Daniel B. Ravicher should help
with these:
| Message-ID: <4ADF8CAA.5030808@softwarefreedom.org>
| Date: Wed, 21 Oct 2009 18:35:22 -0400
| From: "Daniel B. Ravicher" <ravicher@softwarefreedom.org>
| To: Wolfgang Denk <wd@denx.de>
| Subject: Re: GPL and license cleanup questions
|
| Mr. Denk,
|
| Wolfgang Denk wrote:
| > - There are a number of files which do not include any specific
| > license information at all. Is it correct to assume that these files
| > are automatically covered by the "GPL v2 or later" clause as
| > specified by the COPYING file in the top level directory of the
| > U-Boot source tree?
|
| That is a very fact specific analysis and could be different across the
| various files. However, if the contributor could reasonably be expected
| to have known that the project was licensed GPLv2 or later at the time
| she made her contribution, then a reasonably implication is that she
| consented to her contributions being distributed under those terms.
|
| > - Do such files need any clean up, for example should we add GPL
| > headers to them, or is this not needed?
|
| If the project as a whole is licensed under clear terms, you need not
| identify those same terms in each file, although there is no harm in
| doing so.
|
| > - There are other files, which include both a GPL license header
| > _plus_ some copyright note with an "All Rights Reserved" clause. It
| > has been my understanding that this is a conflict, and me must ask
| > the copyright holders to remove such "All Rights Reserved" clauses.
| > But then, some people claim that "All Rights Reserved" is a no-op
| > nowadays. License checking tools (like OSLC) seem to indicate this is
| > a problem, but then we see quite a lot of "All rights reserved" in
| > BSD-licensed files in gcc and glibc. So what is the correct way to
| > deal with such files?
|
| It is not a conflict to grant a license and also reserve all rights, as
| implicit in that language is that you are reserving all "other" rights
| not granted in the license. Thus, a file with "Licensed under GPL, All
| Rights Reserved" would mean that it is licensed under the GPL, but no
| other rights are given to copy, modify or redistribute it.
|
| Warm regards,
| --Dan
|
| Daniel B. Ravicher, Legal Director
| Software Freedom Law Center (SFLC) and Moglen Ravicher LLC
| 1995 Broadway, 17th Fl., New York, NY 10023
| (212) 461-1902 direct (212) 580-0800 main (212) 580-0898 fax
| ravicher@softwarefreedom.org www.softwarefreedom.org
[1] http://spdx.org/
[2] http://spdx.org/licenses/
Signed-off-by: Wolfgang Denk <wd@denx.de>
12 years ago
|
|
|
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+
|
|
|
|
|
Licenses: introduce SPDX Unique Lincense Identifiers
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 lincenses 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 Lincense 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+
We use the SPDX Unique Lincense Identifiers here; these are available
at [2].
Note: From the legal point of view, this patch is supposed to be only
a change to the textual representation of the license information,
but in no way any change to the actual license terms. With this patch
applied, all files will still be licensed under the same terms they
were before.
Note 2: The apparent difference between the old "COPYING" and the new
"Licenses/gpl-2.0.txt" only results from switching to the upstream
version of the license which is differently formatted; there are not
any actual changes to the content.
Note 3: There are some recurring questions about linense issues, such
as:
- Is a "All Rights Reserved" clause a problem in GPL code?
- Are files without any license header a problem?
- Do we need license headers at all?
The following excerpt from an e-mail by Daniel B. Ravicher should help
with these:
| Message-ID: <4ADF8CAA.5030808@softwarefreedom.org>
| Date: Wed, 21 Oct 2009 18:35:22 -0400
| From: "Daniel B. Ravicher" <ravicher@softwarefreedom.org>
| To: Wolfgang Denk <wd@denx.de>
| Subject: Re: GPL and license cleanup questions
|
| Mr. Denk,
|
| Wolfgang Denk wrote:
| > - There are a number of files which do not include any specific
| > license information at all. Is it correct to assume that these files
| > are automatically covered by the "GPL v2 or later" clause as
| > specified by the COPYING file in the top level directory of the
| > U-Boot source tree?
|
| That is a very fact specific analysis and could be different across the
| various files. However, if the contributor could reasonably be expected
| to have known that the project was licensed GPLv2 or later at the time
| she made her contribution, then a reasonably implication is that she
| consented to her contributions being distributed under those terms.
|
| > - Do such files need any clean up, for example should we add GPL
| > headers to them, or is this not needed?
|
| If the project as a whole is licensed under clear terms, you need not
| identify those same terms in each file, although there is no harm in
| doing so.
|
| > - There are other files, which include both a GPL license header
| > _plus_ some copyright note with an "All Rights Reserved" clause. It
| > has been my understanding that this is a conflict, and me must ask
| > the copyright holders to remove such "All Rights Reserved" clauses.
| > But then, some people claim that "All Rights Reserved" is a no-op
| > nowadays. License checking tools (like OSLC) seem to indicate this is
| > a problem, but then we see quite a lot of "All rights reserved" in
| > BSD-licensed files in gcc and glibc. So what is the correct way to
| > deal with such files?
|
| It is not a conflict to grant a license and also reserve all rights, as
| implicit in that language is that you are reserving all "other" rights
| not granted in the license. Thus, a file with "Licensed under GPL, All
| Rights Reserved" would mean that it is licensed under the GPL, but no
| other rights are given to copy, modify or redistribute it.
|
| Warm regards,
| --Dan
|
| Daniel B. Ravicher, Legal Director
| Software Freedom Law Center (SFLC) and Moglen Ravicher LLC
| 1995 Broadway, 17th Fl., New York, NY 10023
| (212) 461-1902 direct (212) 580-0800 main (212) 580-0898 fax
| ravicher@softwarefreedom.org www.softwarefreedom.org
[1] http://spdx.org/
[2] http://spdx.org/licenses/
Signed-off-by: Wolfgang Denk <wd@denx.de>
12 years ago
|
|
|
[1] http://spdx.org/
|
|
|
|
[2] http://spdx.org/licenses/
|
|
|
|
|
|
|
|
Full name SPDX Identifier OSI Approved File name URI
|
Licenses: introduce SPDX Unique Lincense Identifiers
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 lincenses 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 Lincense 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+
We use the SPDX Unique Lincense Identifiers here; these are available
at [2].
Note: From the legal point of view, this patch is supposed to be only
a change to the textual representation of the license information,
but in no way any change to the actual license terms. With this patch
applied, all files will still be licensed under the same terms they
were before.
Note 2: The apparent difference between the old "COPYING" and the new
"Licenses/gpl-2.0.txt" only results from switching to the upstream
version of the license which is differently formatted; there are not
any actual changes to the content.
Note 3: There are some recurring questions about linense issues, such
as:
- Is a "All Rights Reserved" clause a problem in GPL code?
- Are files without any license header a problem?
- Do we need license headers at all?
The following excerpt from an e-mail by Daniel B. Ravicher should help
with these:
| Message-ID: <4ADF8CAA.5030808@softwarefreedom.org>
| Date: Wed, 21 Oct 2009 18:35:22 -0400
| From: "Daniel B. Ravicher" <ravicher@softwarefreedom.org>
| To: Wolfgang Denk <wd@denx.de>
| Subject: Re: GPL and license cleanup questions
|
| Mr. Denk,
|
| Wolfgang Denk wrote:
| > - There are a number of files which do not include any specific
| > license information at all. Is it correct to assume that these files
| > are automatically covered by the "GPL v2 or later" clause as
| > specified by the COPYING file in the top level directory of the
| > U-Boot source tree?
|
| That is a very fact specific analysis and could be different across the
| various files. However, if the contributor could reasonably be expected
| to have known that the project was licensed GPLv2 or later at the time
| she made her contribution, then a reasonably implication is that she
| consented to her contributions being distributed under those terms.
|
| > - Do such files need any clean up, for example should we add GPL
| > headers to them, or is this not needed?
|
| If the project as a whole is licensed under clear terms, you need not
| identify those same terms in each file, although there is no harm in
| doing so.
|
| > - There are other files, which include both a GPL license header
| > _plus_ some copyright note with an "All Rights Reserved" clause. It
| > has been my understanding that this is a conflict, and me must ask
| > the copyright holders to remove such "All Rights Reserved" clauses.
| > But then, some people claim that "All Rights Reserved" is a no-op
| > nowadays. License checking tools (like OSLC) seem to indicate this is
| > a problem, but then we see quite a lot of "All rights reserved" in
| > BSD-licensed files in gcc and glibc. So what is the correct way to
| > deal with such files?
|
| It is not a conflict to grant a license and also reserve all rights, as
| implicit in that language is that you are reserving all "other" rights
| not granted in the license. Thus, a file with "Licensed under GPL, All
| Rights Reserved" would mean that it is licensed under the GPL, but no
| other rights are given to copy, modify or redistribute it.
|
| Warm regards,
| --Dan
|
| Daniel B. Ravicher, Legal Director
| Software Freedom Law Center (SFLC) and Moglen Ravicher LLC
| 1995 Broadway, 17th Fl., New York, NY 10023
| (212) 461-1902 direct (212) 580-0800 main (212) 580-0898 fax
| ravicher@softwarefreedom.org www.softwarefreedom.org
[1] http://spdx.org/
[2] http://spdx.org/licenses/
Signed-off-by: Wolfgang Denk <wd@denx.de>
12 years ago
|
|
|
=======================================================================================================================================
|
|
|
|
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
|
|
|
|
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
|