1
0
mirror of https://github.com/bitcoin/bips.git synced 2025-07-21 12:58:14 +00:00

Merge pull request #1892 from real-or-random/202507-spdx

bip3: Switch to SPDX identifiers
This commit is contained in:
Jon Atack 2025-07-18 13:45:02 -07:00 committed by GitHub
commit 340c1a3d53
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -120,8 +120,8 @@ appear in the following order. Headers marked with "\*" are optional. All other
Status: <Draft | Complete | Deployed | Closed> Status: <Draft | Complete | Deployed | Closed>
Type: <Specification | Informational | Process> Type: <Specification | Informational | Process>
Created: <Date of number assignment (yyyy-mm-dd), or "?"> Created: <Date of number assignment (yyyy-mm-dd), or "?">
License: <Identifier(s) of acceptable license(s)> License: <SPDX License Expression>
* License-Code: <Identifier(s) for Code under different acceptable license(s)> * License-Code: <SPDX License Expression for Code (if different)>
* Discussion: <Noteworthy discussion threads in "yyyy-mm-dd: URL" format> * Discussion: <Noteworthy discussion threads in "yyyy-mm-dd: URL" format>
* Version: <MAJOR.MINOR.PATCH> * Version: <MAJOR.MINOR.PATCH>
* Requires: <BIP number(s)> * Requires: <BIP number(s)>
@ -147,10 +147,8 @@ appear in the following order. Headers marked with "\*" are optional. All other
Authors header. See the [BIP Ownership](#bip-ownership) section above. Authors header. See the [BIP Ownership](#bip-ownership) section above.
* Status — The stage of the workflow of the proposal. See the [Workflow](#workflow) section below. * Status — The stage of the workflow of the proposal. See the [Workflow](#workflow) section below.
* Type — See the [BIP Types](#bip-types) section below for a description of the three BIP types. * Type — See the [BIP Types](#bip-types) section below for a description of the three BIP types.
* License and License-Code — These headers list SPDX License Identifier(s) of the acceptable licenses under which the * License and License-Code — These headers specify SPDX License Expressions describing the licenses under which the
BIP and corresponding code are available. See the [BIP Licensing](#bip-licensing) section below for a description of BIP and corresponding code are available. See the [BIP Licensing](#bip-licensing) section below.
the Licenses and their SPDX License Identifiers. If there are multiple acceptable licenses, each should be on a
separate line.
* Discussion — The Discussion header points the audience to relevant discussions of the BIP, e.g., the mailing list * Discussion — The Discussion header points the audience to relevant discussions of the BIP, e.g., the mailing list
thread in which the idea for the BIP was discussed, a thread where a new version of the BIP was presented, or relevant thread in which the idea for the BIP was discussed, a thread where a new version of the BIP was presented, or relevant
discussion threads on other platforms. Entries take the format "yyyy-mm-dd: URL", e.g., `2009-01-09: discussion threads on other platforms. Entries take the format "yyyy-mm-dd: URL", e.g., `2009-01-09:
@ -391,28 +389,28 @@ innovate on a level playing field. Only freely licensed contributions are accept
### Specification ### Specification
Each new BIP must identify at least one acceptable license in its preamble. Licenses must be referenced per their Each new BIP must specify in two ways under which license terms it is made available. First, it must specify an [SPDX
respective [SPDX License identifier](https://spdx.org/licenses). New BIPs may be accepted with the licenses described License Expression](https://spdx.dev/ids/) in the License field in the preamble. Second, it must include a matching
below. Copyright section, possibly providing further details on licensing.
For example, a preamble might include the following License header: For example, a preamble might include the following License header:
License: CC0-1.0 License: CC0-1.0 OR MIT
GNU-All-Permissive
In this case, the BIP text is fully licensed under both the Creative Commons CC0 1.0 Universal license as well as the In this case, the BIP (including all auxiliary files) is made available under the terms of both Creative Commons CC0 1.0 Universal as well as the
GNU All-Permissive License, and anyone may modify and redistribute the text provided they comply with the terms of MIT License, and anyone may modify and redistribute it provided they comply with the terms of
*either* license. In other words, the license list is an "OR choice", not an "AND also" requirement. *either* license, at their option. In other words, the license list is an "OR choice", not an "AND also" requirement. See the [SPDX
documentation](https://spdx.dev/ids/) and the [SPDX License List](https://spdx.org/licenses/) for further details.
It is also possible to license source code differently from the BIP text by including the optional License-Code header It is also possible to specify that source code is licensed differently by including the optional License-Code header
after the License header. Again, each license must be referenced by their respective SPDX License identifier shown after the License header. Again, the licensing terms must be specified using an SPDX License Expression.
below.
Each source code file or source directory should specify the license under which it is made available as is common in Each auxiliary source code file or source directory should specify the license under which it is made available as is common in
software (e.g., with a license header or a LICENSE/COPYING file). It is recommended to make any test vectors available software (e.g., with a [`SPDX-License-Identifier: <SPDX License Expression>` comment](https://spdx.dev/ids/),
under CC0-1.0 or GNU-All-Permissive in addition to any other licenses to allow anyone to copy test vectors into their a license header, or a LICENSE/COPYING file). It is recommended to make any test vectors available
implementations without introducing license hindrances. Licenses listed in the License-Code header apply to all source under CC0-1.0 or FSFAP in addition to any other licenses to allow anyone to copy test vectors into their
directories, source code files, and test vectors provided with the BIP except those where a LICENSE file in a directory implementations without introducing license hindrances. Licenses listed in the License-Code header apply to all source directories,
source code files, and test vectors provided with the BIP except those where a LICENSE file in a directory
or the file header states otherwise. or the file header states otherwise.
For example, a preamble specifying the optional License-Code header might look like: For example, a preamble specifying the optional License-Code header might look like:
@ -420,38 +418,40 @@ For example, a preamble specifying the optional License-Code header might look l
License: CC0-1.0 License: CC0-1.0
License-Code: MIT License-Code: MIT
In this case, the code in the BIP is not available under CC0-1.0, but is only available under the terms of the MIT In this case, the source code in the BIP is not available under Creative Commons CC0 1.0 Universal, but is only available under the MIT
License. License.
BIPs are not required to be *exclusively* licensed under approved terms, and may also be licensed under unacceptable It is recommended that source code included in a BIP (whether within the text or in auxiliary files) be licensed under the same license terms as the project it
licenses *in addition to* at least one acceptable license. In this case, only the acceptable license(s) should be listed is proposed to modify, if any. For example, changes intended for Bitcoin Core would ideally be licensed (also) under the MIT
in the License and License-Code headers. License.
It is recommended that BIPs that include literal code be licensed under the same license terms as the project it
modifies. For example, literal code intended for Bitcoin Core would ideally be licensed (or dual-licensed) under the MIT
license terms.
In all cases, details of the licensing terms must be provided in the Copyright section of the BIP. In all cases, details of the licensing terms must be provided in the Copyright section of the BIP.
#### Acceptable Licenses[^licenses] #### Acceptable Licenses[^licenses]
* BSD-2-Clause: [OSI-approved BSD 2-clause license](https://opensource.org/licenses/BSD-2-Clause) Each new BIP must be made available under at least one acceptable license as listed below. BIPs are not required to be
* BSD-3-Clause: [OSI-approved BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause) *exclusively* licensed under approved terms, and may also be licensed under other licenses *in addition to* at least one
acceptable license.
In other words, a new BIP must specify an SPDX License Expression that is either "L" or equivalent to "L OR E" for some
acceptable license L from the following list and another SPDX License Expression E.
* BSD-2-Clause: [BSD 2-Clause License](https://opensource.org/licenses/BSD-2-Clause)
* BSD-3-Clause: [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)
* CC0-1.0: [Creative Commons CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/) * CC0-1.0: [Creative Commons CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/)
* GNU-All-Permissive: [GNU All-Permissive License](http://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html) * FSFAP: [FSF All Permissive License](https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html)
* CC-BY-4.0: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/) * CC-BY-4.0: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/)
* MIT: [Expat/MIT/X11 license](https://opensource.org/licenses/MIT) * MIT: [Expat/MIT/X11 License](https://opensource.org/licenses/MIT)
* Apache-2.0: [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0) * Apache-2.0: [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
* BSL-1.0: [Boost Software License, version 1.0](http://www.boost.org/LICENSE_1_0.txt) * BSL-1.0: [Boost Software License 1.0](https://www.boost.org/LICENSE_1_0.txt)
#### Not Acceptable Licenses #### Not Acceptable Licenses
All licenses not explicitly included in the above lists are not acceptable terms for a Bitcoin Improvement Proposal. All licenses not explicitly included in the above lists are not acceptable terms for a Bitcoin Improvement Proposal.
However, BIPs predating this proposal were allowed under other terms, and should use these abbreviations However, BIPs predating this proposal were accepted under other terms, and should use one the following identifiers.
when no other license is granted:
* PD: Released into the public domain * LicenseRef-PD: Placed into the public domain
* OPL: [Open Publication License, version 1.0](http://opencontent.org/openpub/) * OPUBL-1.0: [Open Publication License 1.0](https://opencontent.org/openpub/)
## BIP Editors ## BIP Editors
@ -734,9 +734,9 @@ feedback, and helpful comments.
* PD: 42 * PD: 42
* CC0-1.0: 23 * CC0-1.0: 23
* BSD-3-Clause: 19 * BSD-3-Clause: 19
* OPL: 5 * OPUBL-1.0: 5
* CC-BY-SA-4.0: 4 * CC-BY-SA-4.0: 4
* GNU-All-Permissive: 3 * FSFAP: 3
* MIT: 2 * MIT: 2
* CC-BY-4.0: 1 * CC-BY-4.0: 1
@ -747,15 +747,15 @@ feedback, and helpful comments.
The following previously acceptable licenses were retained per request of reviewers, even though they have so far The following previously acceptable licenses were retained per request of reviewers, even though they have so far
never been used in the BIPs process: never been used in the BIPs process:
* Apache-2.0: [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0) * Apache-2.0: [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
* BSL-1.0: [Boost Software License, version 1.0](http://www.boost.org/LICENSE_1_0.txt) * BSL-1.0: [Boost Software License 1.0](https://www.boost.org/LICENSE_1_0.txt)
The following previously acceptable licenses have never been used in the BIPs Process and have been dropped: The following previously acceptable licenses have never been used in the BIPs Process and have been dropped:
* AGPL-3.0+: [GNU Affero General Public License (AGPL), version 3 or newer](http://www.gnu.org/licenses/agpl-3.0.en.html) * AGPL-3.0+: [GNU Affero General Public License (AGPL) 3](https://www.gnu.org/licenses/agpl-3.0.en.html)
* FDL-1.3: [GNU Free Documentation License, version 1.3](http://www.gnu.org/licenses/fdl-1.3.en.html) * FDL-1.3: [GNU Free Documentation License 1.3](https://www.gnu.org/licenses/fdl-1.3.en.html)
* GPL-2.0+: [GNU General Public License (GPL), version 2 or newer](http://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) * GPL-2.0+: [GNU General Public License (GPL) 2 or newer](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
* LGPL-2.1+: [GNU Lesser General Public License (LGPL), version 2.1 or newer](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) * LGPL-2.1+: [GNU Lesser General Public License (LGPL) 2.1 or newer](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
Why are software licenses included? Why are software licenses included?
@ -772,7 +772,7 @@ feedback, and helpful comments.
and therefore CC-BY-SA-4.0 (and the GPL-flavors) is no longer considered acceptable for new BIPs. As mentioned and therefore CC-BY-SA-4.0 (and the GPL-flavors) is no longer considered acceptable for new BIPs. As mentioned
above, existing BIPs will retain their original licensing. above, existing BIPs will retain their original licensing.
Why are OPL and Public Domain no longer acceptable for new BIPs? Why are Open Publication License and Public Domain no longer acceptable for new BIPs?
* Public domain is not universally recognised as a legitimate action, thus it is inadvisable. * Public domain is not universally recognised as a legitimate action, thus it is inadvisable.
* The OPL is generally regarded as obsolete, and not a license suitable for new publications. * The Open Publication License is generally regarded as obsolete, and not a license suitable for new publications.