No valid value for license appropriate for proprietary code
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
The only non-SPDX value allowed in the `license` field is `NONE`. But since cabal files are also human-readable, the text `license: NONE` cannot be included in a cabal file for proprietary code for obvious legal reasons, no matter what the machine-readable meaning. Nor can any SPDX-compliant value be used. Without a `license` field at all, cabal refuses to build the package.
By comparison, `npm` is also SPDX-compliant. There are [several reasonable options](https://softwareengineering.stackexchange.com/questions/285885/which-spdx-license-is-equivalent-to-all-rights-reserved) for proprietary code in `npm`:
* `{ "license": "UNLICENSED"}` - not great, but much better than `NONE`.
* `{ "license": "Proprietary", "private": true }` - this disables the ability to upload the package to the public distribution channel, which is fine for truly proprietary code.
* `{ "license": "SEE LICENSE IN "}` - allows upload with a custom license, possibly proprietary. We might not want to allow that for Hackage.
See also #2141. Now "AllRightsReserved" has not two meanings, but zero meanings, which is much worse. Not that we should necessarily resurrect "AllRightsReserved", but there needs to be *some* reasonable alternative.
Contributor guide
Assessment
This issue has not been assessed yet.