Licence «Tous droits réservés» dans package.json

111

J'ai un petit projet node.js qui est interne à l'entreprise et qui ne sera pas rendu public ni partagé avec des tiers. Il ne sera certainement pas contribué à des dépôts publics de paquets.

Mais quand je cours, npm installj'obtiens toujours l'erreur suivante:

npm WARN package.json <<myproject>>@0.1.0 license should be a valid SPDX license expression

La licence souhaitée est: "copyright par nous et tous droits réservés". Je n'ai rien trouvé qui semblait applicable dans la liste des licences SPDX . La suggestion de cette réponse ne fonctionne pas non plus. Si je supprime simplement le licensechamp de package.jsonl'erreur, il devient no license field.

Comment puis-je npm installafficher aucune erreur ou avertissement sans insérer une référence de licence que nous ne souhaitons pas utiliser?

wberry
la source

Réponses:

177

Selon la nouvelle spécification npm, vous pouvez utiliser { "license": "UNLICENSED"} si vous ne souhaitez pas accorder à d'autres le droit d'utiliser un package privé ou non publié sous quelque condition que ce soit.

Veuillez consulter les détails complets ici

Donc, vous pourriez ne pas obtenir l'erreur que vous avez mentionnée.

kds
la source
C'est certainement génial pour aucune licence, mais n'aide pas si vous souhaitez référencer une licence externe.
brandonscript
11
À partir de la même page npmjs, "Pensez également à définir" private ": true pour éviter une publication accidentelle."
bgth
1
la liste SPDX contient Unlicensesans le D final et en cas mixte. c'est ce à quoi vous faites allusion? bien qu'en le regardant, cela ne semble pas être la bonne chose. il n'y a pas UNLICENSEDdans la liste
ekkis
@ekkis, la documentation de package.jsondécrit UNLICENSEDcomme une valeur valide (cf. docs.npmjs.com/files/package.json#license ).
Frederik Krautwald
10
@ekkis The Unlicense est l'opposé complet de { "license": "UNLICENSED" } spdx.org/licenses/Unlicense . (Je me rends compte que vous avez jeté un coup d'œil à la licence et que vous avez vu que ce n'était pas correct, je pensais juste que cela devait être précisé ici au cas où)
JollyJoker
51

Selon les derniers documents pour package.json :

Si vous utilisez une licence à laquelle aucun identifiant SPDX n'a ​​été attribué, ou si vous utilisez une licence personnalisée, utilisez l'expression SPDX valide suivante:

{ "license" : "SEE LICENSE IN <filename>" }

Incluez ensuite un fichier nommé <filename>au niveau supérieur du package.

brandonscript
la source
5

TR; DL: «UNLICENSED» signifie pas de licence, tandis que «sans licence» (pas de «d» à la fin!) Se réfère à une licence nommée «The Unlicensed» qui est quelque chose de très différent. Pour éviter toute confusion et si vous souhaitez faire valoir un droit d'auteur, vous devez diriger quelqu'un vers votre propre fichier de licence interne, comme ci-dessous.

-

N'utilisez certainement PAS le { "license": "unlicense"}comme suggéré dans la réponse la plus votée si vous souhaitez indiquer clairement que vous souhaitez avoir une licence de style de revendication de droit d'auteur.

https://choosealicense.com/licenses/unlicense/

Un clip des deux premiers paragraphes de la licence UNLICENSE indique clairement que cela n'a aucun rapport avec la demande de l'OP de réclamer un droit d'auteur:

Il s'agit d'un logiciel gratuit et sans encombrement publié dans le domaine public.

Tout le monde est libre de copier, modifier, publier, utiliser, compiler, vendre ou distribuer ce logiciel, soit sous forme de code source, soit sous forme de binaire compilé, à toutes fins, commerciales ou non, et par tous moyens.

Au premier rang des réponses aux votes, la page de documentation Node affirme que l'utilisation de l'option UNLICENSED est de faire en sorte que vous n'accordiez aucun droit à d'autres:

si vous ne souhaitez pas accorder à d'autres le droit d'utiliser un package privé ou non publié sous quelque condition que ce soit:

Cela ne semble pas être un choix sûr pour conserver vos droits

  • Je ne sais pas si c'était le résultat d'une ignorance ou d'une mauvaise intention. Vous pouvez en déduire que l'absence de D supplémentaire signifie que ce sont deux termes entièrement différents - mais vous ne pouvez pas supposer que d'autres le sauront et quand ils chercheront la licence SANS LICENCE, ils peuvent obtenir le lien que j'ai trouvé.

    {"license": "VOIR LICENCE DANS"}

Est la réponse la plus sûre pour le moment.

REMARQUE: J'ai pensé qu'il était important d'en faire une réponse de haut niveau, plutôt qu'une réponse, car la réponse la plus votée à ce moment a un grand potentiel d'être mal interprétée et cela a besoin de visibilité.

Carl Kidwell
la source
2
Je ne pense pas que ce soit correct. La liste des licences SPDX inclut une entrée pour "The Unlicense" que vous avez trouvée, et elle est différente de "UNLICENSED" qui n'accorde aucun droit. spdx.org/licenses/Unlicense.html Ainsi, même si une faute d'orthographe serait très importante ("Unlicense" étant une licence sans restriction et "UNLICENSED" réservant tous les droits), il n'y a pas d'ambiguïté. La spécification package.json indique clairement que "UNLICENSED" n'accorde aucun droit "sous aucune condition".
wberry
1
Même ainsi, je pense que votre réponse sert un bon objectif de souligner à quel point ces deux choix sont proches l'un de l'autre. C'est quelque chose à surveiller. Bienvenue dans Stack Overflow!
wberry
1
Merci wberry, je n'ai pas vu la définition SPDX pour "The Unlicense" c'est un bon appel.
Carl Kidwell