haskell / haskell/cabal

No valid value for license appropriate for proprietary code

Open
#5,697 29 comments 4 reactions 0 assignees View on GitHub
documentation re: license
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.