Licença “Todos os direitos reservados” em package.json

111

Tenho um pequeno projeto node.js interno da empresa e não será lançado publicamente ou compartilhado com terceiros. Certamente não será contribuído para nenhum repositório público de pacotes.

Mas quando eu executo npm install, sempre recebo o seguinte erro:

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

A licença desejada é: "copyright por nós e todos os direitos reservados". Não consegui encontrar nada que parecesse aplicável na lista de licenças SPDX . A sugestão desta resposta também não funciona. Se eu simplesmente remover o licensecampo do package.jsonerro mudará para no license field.

Como faço npm installpara não mostrar erros ou avisos sem colocar uma referência de licença que não desejamos usar?

wberry
fonte

Respostas:

177

De acordo com a nova especificação do npm, você pode usar { "license": "UNLICENSED"} se não desejar conceder a outros o direito de usar um pacote privado ou não publicado sob quaisquer termos.

Consulte os detalhes completos aqui

Portanto, você pode não obter o erro que mencionou.

kds
fonte
Isso certamente é ótimo para nenhuma licença, mas não ajuda se você quiser referenciar uma licença externa.
brandonscript
11
Na mesma página npmjs, "Considere também definir" privado ": verdadeiro para evitar a publicação acidental."
dia
1
a lista SPDX contém Unlicensesem o D final e em maiúsculas e minúsculas. é a isso que você está se referindo? embora, olhando para ele, não pareça ser a coisa certa. não há nenhum UNLICENSEDna lista
ekkis
@ekkis, a documentação do package.jsondescreve UNLICENSEDcomo um valor válido (cf. docs.npmjs.com/files/package.json#license ).
Frederik Krautwald,
10
@ekkis The Unlicense é o oposto de { "license": "UNLICENSED" } spdx.org/licenses/Unlicense . (Sei que você deu uma olhada na licença e viu que não estava certa, só pensei que isso precisava ser explicado aqui para o caso)
JollyJoker
51

De acordo com os documentos mais recentes para package.json :

Se você estiver usando uma licença à qual não foi atribuído um identificador SPDX, ou se estiver usando uma licença personalizada, use a seguinte expressão SPDX válida:

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

Em seguida, inclua um arquivo nomeado <filename>no nível superior do pacote.

brandonscript
fonte
5

TR; DL: 'UNLICENSED' significa não licenciado, enquanto 'unlicense' (sem 'd' no final!) Se refere a uma licença chamada 'The Unlicensed' que é algo muito diferente. Para evitar confusão e se você quiser reivindicar direitos autorais, você deve indicar a alguém seu próprio arquivo de licença interna, conforme abaixo.

-

Definitivamente, NÃO use o { "license": "unlicense"}conforme sugerido na resposta mais votada se desejar comunicar claramente que deseja ter uma licença do estilo de reivindicação de direitos autorais.

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

Um clipe dos primeiros dois parágrafos da licença UNLICENSE deixa claro que isso não tem nenhuma relação com a solicitação do OP para ter uma reivindicação de direitos autorais:

Este é um software gratuito e desimpedido, lançado em domínio público.

Qualquer pessoa é livre para copiar, modificar, publicar, usar, compilar, vender ou distribuir este software, seja na forma de código-fonte ou como um binário compilado, para qualquer propósito, comercial ou não comercial, e por qualquer meio.

Para o crédito das respostas mais votadas, a página de documentação do Node afirma que o uso da opção UNLICENSED é para fazer com que você não conceda quaisquer direitos a terceiros:

se você não deseja conceder a outros o direito de usar um pacote privado ou não publicado sob quaisquer termos:

Esta não parece ser uma escolha realmente segura para reter seus direitos

  • Não estou certo se isso foi resultado de ignorância ou má intenção. Você poderia inferir que a falta do D extra significa que esses são dois termos totalmente diferentes - mas você não pode presumir que outros saberão disso e quando pesquisarem o que é a licença UNLICENSED, eles poderão obter o link que encontrei.

    {"licença": "VER LICENÇA EM"}

É a resposta mais segura neste momento.

NOTA: Achei que era importante fazer desta uma resposta de nível superior, em vez de uma resposta, pois a resposta mais votada neste momento tem um grande potencial para ser mal interpretada e precisa de visibilidade.

Carl Kidwell
fonte
2
Eu não acho que isso seja correto. A lista de licenças SPDX inclui uma entrada para "The Unlicense" que você encontrou, e é diferente de "UNLICENSED" que não concede direitos. spdx.org/licenses/Unlicense.html Portanto, embora um erro de ortografia seja altamente consequente ("Sem licença" sendo uma licença irrestrita e "UNLICENSED" reservando todos os direitos), não há ambigüidade. A especificação package.json afirma claramente que "UNLICENSED" não concede quaisquer direitos "sob quaisquer termos".
wberry
1
Mesmo assim, acho que sua resposta serve ao propósito de apontar o quão próximas essas duas escolhas estão uma da outra. É algo a ter em atenção. Bem-vindo ao Stack Overflow!
wberry
1
Obrigado wberry, não vi a definição SPDX para "The Unlicense", isso é uma boa chamada.
Carl Kidwell