I've got a package.json
that's expecting a SPDX-approved license acronym, but I can't find one that means 'proprietary commercial license, all rights reserved'.
Is there one for non-FOSS, where I want to specify that I want to allow no reuse?
As of npm 3.10 you have to use UNLICENSED:
{ "license": "UNLICENSED"}
or
{ "license": "SEE LICENSE IN <filename>"}
The value of license must either one of the options above or the identifier for the license from this list of SPDX licenses. Any other value is not valid.
The following is no longer valid for current versions of npm
For npm versions before 3.10 you may use:
{ "license" : "LicenseRef-LICENSE" }
Then include a LICENSE
file at the top level of the package. It could be as short as:
(c) Copyright 2015 person or company, all rights reserved.
But you might want to be more explicit about what is not allowed.
{ "license" : "SEE LICENSE IN <filename>" }
– emertechie
Jul 28 '15 at 04:31
npm init
. LicenseRef-LICENSE
works{ "license": "UNLICENSED"}
"if you do not wish to grant others the right to use a private or unpublished package under any terms". That's an even easier option than an explicit license file.
– Jörn Zaefferer
Sep 28 '15 at 09:49
license should be a valid SPDX license expression
for me
– cdmckay
Oct 09 '15 at 13:33
{ "license" : "SEE LICENSE IN <filename>" }
– Kent Bull
Sep 16 '16 at 17:17
"private": true
and it won't bother you about including a license.
– spex
May 25 '17 at 20:31
npm
-recommended "UNLICENSED" with the SPDX compliant identifier "Unlicense", which is the exact opposite of "all rights reserved".
– Levente Huszko
Oct 17 '17 at 11:04
" SEE..."
and so on making this not work.
– vidstige
Mar 12 '18 at 03:02
SEE LICENSE IN LICENSE
is notably less clear and less searchable than LicenceRef-LICENSE
. I'm sure there were good reasons to not allow LicenseRef-
, but this alone is enough to make me doubt that those reasons were good enough.
– mtraceur
May 21 '20 at 08:37
UNLICENSED
- it can easily be confused with The Unlicense which does exactly the opposite of what you want.
– TmTron
Oct 24 '20 at 07:23
This does not exactly answer your question, but what about:
{
"license": "Proprietary",
"private": true,
}
{ "name": "my-descriptive-name", "description": "yeah, what it says", "repository": "npm/npm", "license": "Copyright Your Company 2019, all rights reserved.", "private": true, "dependencies": { "request": "^2.88.0", "request-promise-native": "^1.0.5" } }
Not so sure about specifically npm, but SPDX standard version 1.2 (2013) and later has provision for specifying arbitrary custom licensing terms, in their machine-readable license expressions format. Section Other Licensing Information Detected
:
5.1.4 Data Format: "LicenseRef-"[idString] where [idString] is a unique string containing letters, numbers, “.”, “-” or “+”.
This is also present in the latest (today) spec version 2.3 (2022).
So basically, we should be able to say:
{"license": "LicenseRef-Proprietary"}
,{"license": "LicenseRef-Custom-Commercial-Agreement"}
,{"license": "LicenseRef-PrivateUndisclosed"}
,and so on, along those lines.
Relatedly, there's also the special keyword NOASSERTION
— but it isn't considered a "valid SPDX License Expression", and I'm not positive if it's intended for package developers. See PackageLicenseDeclared: that keyword is apparently for license-scanning software to express "I failed to determine the SPDX ID of the package's license, or didn't even try".
license: "UNLICENSED",
.[1] https://github.com/npm/npm/issues/8918
– Jason Axelson Oct 02 '15 at 20:04might not actually [have] an acronym for what you are requesting
is still a perfectly valid answer to a perfectly valid question. – Qix - MONICA WAS MISTREATED Sep 15 '16 at 04:51"license": "proprietary"
according to the docs. – Quinn Comendant Oct 16 '19 at 19:58