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

bip3: Switch to SPDX License Expressions

This commit is contained in:
Tim Ruffing 2025-07-09 08:59:18 +02:00
parent c17a3dbceb
commit c3b6691284

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 acceptable 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,22 +389,21 @@ 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 GNU-All-Permissive
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 text is fully licensed under both the Creative Commons CC0 1.0 Universal license as well as the
GNU All-Permissive License, and anyone may modify and redistribute the text provided they comply with the terms of GNU All-Permissive License, and anyone may modify and redistribute the text 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. 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 license source code differently from the BIP text 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 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 license header or a LICENSE/COPYING file). It is recommended to make any test vectors available
@ -423,10 +420,6 @@ For example, a preamble specifying the optional License-Code header might look l
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 code in the BIP is not available under CC0-1.0, but is only available under the terms of the MIT
License. License.
BIPs are not required to be *exclusively* licensed under approved terms, and may also be licensed under unacceptable
licenses *in addition to* at least one acceptable license. In this case, only the acceptable license(s) should be listed
in the License and License-Code headers.
It is recommended that BIPs that include literal code be licensed under the same license terms as the project it 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 modifies. For example, literal code intended for Bitcoin Core would ideally be licensed (or dual-licensed) under the MIT
license terms. license terms.
@ -435,6 +428,14 @@ In all cases, details of the licensing terms must be provided in the Copyright s
#### Acceptable Licenses[^licenses] #### Acceptable Licenses[^licenses]
Each new BIP must be made available under at least one acceptable license as listed below. BIPs are not required to be
*exclusively* licensed under approved terms, and may also be licensed under unacceptable licenses *in addition to* at
least one acceptable license. In this case, only the acceptable license(s) should be specified in the License and
License-Code headers.
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: [OSI-approved BSD 2-clause license](https://opensource.org/licenses/BSD-2-Clause) * BSD-2-Clause: [OSI-approved BSD 2-clause license](https://opensource.org/licenses/BSD-2-Clause)
* BSD-3-Clause: [OSI-approved BSD 3-clause license](https://opensource.org/licenses/BSD-3-Clause) * BSD-3-Clause: [OSI-approved 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/)
@ -447,7 +448,7 @@ In all cases, details of the licensing terms must be provided in the Copyright s
#### 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 allowed under other terms, and should use these identifiers
when no other license is granted: when no other license is granted:
* PD: Released into the public domain * PD: Released into the public domain