Skip to content

Declare licensing with REUSE

Jonathon Anderson requested to merge blue42u/hpctoolkit:blue42u/reuse into develop

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
Edited by Jonathon Anderson

Merge request reports