diff --git a/bip-0003.md b/bip-0003.md index 5f096386ad..c5f4476115 100644 --- a/bip-0003.md +++ b/bip-0003.md @@ -120,8 +120,8 @@ appear in the following order. Headers marked with "\*" are optional. All other Status: Type: Created: - License: -* License-Code: + License: +* License-Code: * Discussion: * Version: * Requires: @@ -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. * 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. -* License and License-Code — These headers list SPDX License Identifier(s) of the acceptable licenses under which the - BIP and corresponding code are available. See the [BIP Licensing](#bip-licensing) section below for a description of - the Licenses and their SPDX License Identifiers. If there are multiple acceptable licenses, each should be on a - separate line. +* 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. * 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 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 -Each new BIP must identify at least one acceptable license in its preamble. Licenses must be referenced per their -respective [SPDX License identifier](https://spdx.org/licenses). New BIPs may be accepted with the licenses described -below. +Each new BIP must specify in two ways under which license terms it is made available. First, it must specify an [SPDX +License Expression](https://spdx.dev/ids/) in the License field in the preamble. Second, it must include a matching +Copyright section, possibly providing further details on licensing. For example, a preamble might include the following License header: - License: CC0-1.0 - GNU-All-Permissive + License: CC0-1.0 OR MIT -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 -*either* license. In other words, the license list is an "OR choice", not an "AND also" requirement. +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 +MIT License, and anyone may modify and redistribute it provided they comply with the terms of +*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 -after the License header. Again, each license must be referenced by their respective SPDX License identifier shown -below. +It is also possible to specify that source code is licensed differently by including the optional License-Code header +after the License header. Again, the licensing terms must be specified using an SPDX License Expression. -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 -under CC0-1.0 or GNU-All-Permissive in addition to any other licenses to allow anyone to copy test vectors into their -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 +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 [`SPDX-License-Identifier: ` comment](https://spdx.dev/ids/), +a license header, or a LICENSE/COPYING file). It is recommended to make any test vectors available +under CC0-1.0 or FSFAP in addition to any other licenses to allow anyone to copy test vectors into their +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. 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-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. -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 -modifies. For example, literal code intended for Bitcoin Core would ideally be licensed (or dual-licensed) under the MIT -license terms. +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 +is proposed to modify, if any. For example, changes intended for Bitcoin Core would ideally be licensed (also) under the MIT +License. In all cases, details of the licensing terms must be provided in the Copyright section of the BIP. #### Acceptable Licenses[^licenses] -* 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) +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 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/) -* 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/) -* 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) -* BSL-1.0: [Boost Software License, version 1.0](http://www.boost.org/LICENSE_1_0.txt) +* MIT: [Expat/MIT/X11 License](https://opensource.org/licenses/MIT) +* Apache-2.0: [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) +* BSL-1.0: [Boost Software License 1.0](https://www.boost.org/LICENSE_1_0.txt) #### Not Acceptable Licenses 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 -when no other license is granted: +However, BIPs predating this proposal were accepted under other terms, and should use one the following identifiers. -* PD: Released into the public domain -* OPL: [Open Publication License, version 1.0](http://opencontent.org/openpub/) +* LicenseRef-PD: Placed into the public domain +* OPUBL-1.0: [Open Publication License 1.0](https://opencontent.org/openpub/) ## BIP Editors @@ -734,9 +734,9 @@ feedback, and helpful comments. * PD: 42 * CC0-1.0: 23 * BSD-3-Clause: 19 - * OPL: 5 + * OPUBL-1.0: 5 * CC-BY-SA-4.0: 4 - * GNU-All-Permissive: 3 + * FSFAP: 3 * MIT: 2 * 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 never been used in the BIPs process: - * Apache-2.0: [Apache License, version 2.0](http://www.apache.org/licenses/LICENSE-2.0) - * BSL-1.0: [Boost Software License, version 1.0](http://www.boost.org/LICENSE_1_0.txt) + * Apache-2.0: [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) + * 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: - * AGPL-3.0+: [GNU Affero General Public License (AGPL), version 3 or newer](http://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) - * GPL-2.0+: [GNU General Public License (GPL), version 2 or newer](http://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) + * 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 1.3](https://www.gnu.org/licenses/fdl-1.3.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) 2.1 or newer](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) 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 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. - * 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.