Declare licensing with REUSE
Convert the licensing declarations to use the REUSE Specification.
License headers are long and hard to read for very little gain overall.
It's also very easy to accidentally mangle the license header, or cause
confusion when multiple copyrights/licenses are at play. This MR converts the
codebase to consistently use the REUSE Specification (and by proxy SPDX License Expressions) to express the
licensing and copyright metadata in a human- and machine-readable form.
In practice, this just means there are SPDX-FileCopyrightText
and SPDX-License-Identifier
markers in the files themselves or sibling .license
files.
This is meant to be strictly a conversion, the original license terms are simply identified in REUSE-compliant syntax. For our code and where allowed by the license itself, the license text is removed from the file and replaced by an SPDX expression. In other cases the original text is preserved as much as possible while matching REUSE recommendations.
Note that although the LICENSE file claims the repository is BSD-3-Clause
, there are vendored code fragments licensed under potentially incompatible licenses: Apache-2.0
, PSF-2.0
, W3C
, and bzip2-1.0.6
. These will need to be cleared out and some discussion will be necessary there.
To Demonstrate
First install the REUSE helper tool, written in Python and available via the PyPI:
$ pipx install reuse
Then audit the repository for REUSE compliance:
$ reuse lint
# SUMMARY
* Bad licenses: 0
* Deprecated licenses: 0
* Licenses without file extension: 0
* Missing licenses: 0
* Unused licenses: 0
* Used licenses: CDLA-Permissive-2.0, W3C, CC-BY-4.0, Apache-2.0, PSF-2.0, BSD-3-Clause, MIT, Unlicense, CC0-1.0, LLVM-exception, bzip2-1.0.6
* Read errors: 0
* files with copyright information: 1609 / 1609
* files with license information: 1609 / 1609
Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)
Backward Compatibility
- This MR does not alter the data formats.
- This MR does not alter any CLIs.
Additional Information
This MR is based on top of Mass reorganization of the codebase (!1105 - merged).
Checklist
-
I have run pre-commit run -a
on my local checkout and fixed any reported issues. -
I have confirmed that existing tests and/or the tests added by this MR cover the changes introduced by this MR. -
I have confirmed that any added tests will be automatically run in CI. -
I have updated all relevant documentation: -
The LICENSE
file
-