Licencia "Todos los derechos reservados" en package.json

111

Tengo un pequeño proyecto de node.js que es interno de la empresa y no se publicará ni se compartirá con terceros. Ciertamente no se contribuirá a ningún repositorio público de paquetes.

Pero cuando ejecuto npm installsiempre obtengo el siguiente error:

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

La licencia deseada es: "copyright nuestro y todos los derechos reservados". No pude encontrar nada que pareciera aplicable en la lista de licencias de SPDX . La sugerencia en esta respuesta tampoco funciona. Si simplemente elimino el licensecampo del package.jsonerror cambia ano license field .

¿Cómo puedo no npm installmostrar errores o advertencias sin poner una referencia de licencia allí que no queramos usar?

wberry
fuente

Respuestas:

176

De acuerdo con la nueva especificación npm, puede usarlo { "license": "UNLICENSED"} si no desea otorgar a otros el derecho a usar un paquete privado o no publicado bajo ningún término.

Consulte los detalles completos aquí.

Por lo tanto, es posible que no obtenga el error que mencionó.

kds
fuente
Ciertamente, esto es excelente sin licencia, pero no ayuda si desea hacer referencia a una licencia externa.
brandonscript
11
Desde la misma página de npmjs, "Considere también establecer" privado ": verdadero para evitar la publicación accidental".
bgth
1
la lista SPDX contiene Unlicensesin la D final y en caso mixto. ¿A eso te refieres? aunque al mirarlo, no parece que sea lo correcto. no hay ninguno UNLICENSEDen la lista
ekkis
@ekkis, la documentación de package.jsonsí se describe UNLICENSEDcomo un valor válido (cf. docs.npmjs.com/files/package.json#license ).
Frederik Krautwald
10
@ekkis The Unlicense es todo lo contrario de { "license": "UNLICENSED" } spdx.org/licenses/Unlicense . (Me doy cuenta de que echó un vistazo a la licencia y vio que no estaba bien, solo pensé que esto debe ser escrito aquí por si acaso)
JollyJoker
51

Según los últimos documentos de package.json :

Si está usando una licencia a la que no se le ha asignado un identificador SPDX, o si está usando una licencia personalizada, use la siguiente expresión SPDX válida:

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

Luego incluya un archivo nombrado <filename>en el nivel superior del paquete.

brandonscript
fuente
5

TR; DL: 'SIN LICENCIA' significa sin licencia, mientras que 'sin licencia' (¡sin 'd' al final) se refiere a una licencia llamada 'Los sin licencia' que es algo muy diferente. Para evitar confusiones, y si desea hacer valer un derecho de autor, debe indicarle a alguien su propio archivo de licencia interno, como se indica a continuación.

-

Definitivamente NO use el { "license": "unlicense"}como se sugiere en la respuesta más votada si desea comunicar claramente que desea tener una licencia de estilo de reclamo de derechos de autor.

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

Un clip de los dos primeros párrafos de la licencia UNLICENSE deja en claro que esto no tiene ninguna relación con la solicitud del OP de tener un reclamo de derechos de autor:

Este es un software gratuito y sin trabas lanzado al dominio público.

Cualquiera es libre de copiar, modificar, publicar, usar, compilar, vender o distribuir este software, ya sea en forma de código fuente o como un binario compilado, para cualquier propósito, comercial o no comercial, y por cualquier medio.

Para el crédito de respuestas más votadas, la página de documentación de Node afirma que el uso de la opción SIN LICENCIA es para que no se otorgue ningún derecho a otros:

si no desea otorgar a otros el derecho de usar un paquete privado o no publicado bajo ningún término:

Esta no parece ser una opción segura real para conservar sus derechos.

  • No tengo claro si esto fue el resultado de la ignorancia o de las malas intenciones. Podría inferir que la falta de la D adicional significa que estos son dos términos completamente diferentes, pero no puede asumir que otros lo sabrán y cuando busquen cuál es la licencia SIN LICENCIA, pueden obtener el enlace que encontré.

    {"license": "VER LICENCIA EN"}

Es la respuesta más segura en este momento.

NOTA: Sentí que era importante hacer de esta una respuesta de alto nivel, en lugar de una respuesta, ya que la respuesta más votada en este momento tiene un gran potencial para ser malinterpretada y esto necesita visibilidad.

Carl Kidwell
fuente
2
No creo que esto sea correcto. La lista de licencias de SPDX incluye una entrada para "The Unlicense" que encontró, y es diferente a "UNLICENSED" que no otorga derechos. spdx.org/licenses/Unlicense.html Entonces, si bien un error de ortografía sería altamente consecuente ("Unlicense" es una licencia sin restricciones y "SIN LICENCIA" se reserva todos los derechos), no hay ambigüedad. La especificación package.json establece claramente que "SIN LICENCIA" no otorga ningún derecho "bajo ningún término".
wberry
1
Aun así, creo que su respuesta tiene un buen propósito de señalar qué tan cerca están estas dos opciones entre sí. Es algo a tener en cuenta. ¡Bienvenido a Stack Overflow!
wberry
1
Gracias wberry. No vi la definición de SPDX para "The Unlicense", esa es una buena llamada.
Carl Kidwell