licenses.nuget.org

Lógica

Com a introdução das expressões de licença, surgiu um requisito para ter um serviço confiável que fornecesse um texto de referência para identificadores de licença individuais, identificadores de exceção ou expressões de licença. Um requisito adicional para esse serviço é ter um esquema de URLs estável, que não seja suscetível a apodrecimento de links, para que possamos usá-lo com segurança para fornecer compatibilidade retroativa para clientes antigos.

Licenses.nuget.org cumpre essa função. Nuget.org a usa para fornecer a referência de texto de licença para pacotes que especificam sua licença usando uma expressão de licença. nuget pack ou empacotar com outras ferramentas do cliente, defina o elemento licenseUrl para apontar para licenses.nuget.org e fornecer compatibilidade com versões anteriores com clientes mais antigos que não dão suporte ao elemento license.

Texto de licença e exceção

As informações de licença e exceção de licença exibidas no licenses.nuget.org são copiadas do repositório de dados da lista de licenças do projeto SPDX. O formato em que as informações são exibidas imita de perto o formato usado pelo próprio site spdx, por exemplo, consulte MIT em licenses.nuget.org e MIT em SPDX.org.

As licenças que não são aprovadas pela Open Source Initiative ou pelo Free Software Foundation não são hospedadas no licenses.nuget.org e são excluídas.

Vários estilos além do texto sem formatação são usados na exibição da licença. De acordo com as perguntas frequentes sobre os dados da lista de licenças SPDX, o texto vermelho é considerado substituível e o texto azul é considerado omitível. Para obter informações mais gerais sobre os dados da lista de licenças SPDX, consulte suas perguntas frequentes e a especificação do modelo de licença SPDX.

Observe que os dados são copiados do SPDX para licenses.nuget.org pelo nuget.org em uma base ad hoc. Se um identificador de licença for aprovado pela Iniciativa de Software Livre ou pelo Free Software Foundation, mas não aparecer no licenses.nuget.org, relate um problema e a equipe do nuget.org trabalhe para atualizar a validação de upload de pacote licenses.nuget.org e nuget.org com os dados mais recentes do SPDX.

Se você, como autor do pacote, não estiver satisfeito com o texto de licença compartilhado disponível no licenses.nuget.org, poderá considerar o uso de texto de licença inserido (<license type="file">) em vez de uma expressão de licença para seu pacote NuGet. Isso permite que você personalize totalmente seus termos de licenciamento e inclua o texto personalizado dentro do pacote.

Protocolo

Licenses.nuget.org destina-se a ser visualizado por pessoas em seus navegadores, nenhuma resposta legível por computador é fornecida. O protocolo HTTPS deve ser usado e espera-se que as solicitações sejam construídas de uma determinada maneira. Ele só dá suporte a GET solicitações. Ele aceita expressões de licença ou identificadores de exceção de licença como uma entrada de uma maneira especificada abaixo. É importante observar que todos os elementos de expressões de licença diferenciam maiúsculas de minúsculas e, portanto, todas as entradas para licenses.nuget.org também precisam diferenciar maiúsculas de minúsculas.

Expressões de licença

Solicitação

Expressões de licença (incluindo os casos triviais em que a expressão consiste em uma única licença) precisam ser codificadas em URL e usadas como um caminho na solicitação para licenses.nuget.org.

Expressão de licença URL a ser usada
MIT https://licenses.nuget.org/MIT
(MIT) https://licenses.nuget.org/(MIT)
(SOMENTE LGPL-2.0 COM exceção FLTK OU Apache-2.0+) https://licenses.nuget.org/(LGPL-2.0-only%20WITH%20FLTK-exception%20OR%20Apache-2.0+)

O serviço dá suporte apenas a identificadores de licença e identificadores de exceção de licença que são aceitos por nuget.org. Notavelmente, isso significa que somente os identificadores de licença aprovados pela Iniciativa de Software Livre ou pela Free Software Foundation serão aceitos. Todas as expressões de licença que contêm identificadores de licença sem suporte ou identificadores de exceção de licença ou que não estão em conformidade com a sintaxe de expressão de licença são consideradas inválidas.

Resposta

Licenses.nuget.org responde a solicitações que contêm expressões de licença válidas com um código de status HTTP 200 e uma página da Web que contém uma descrição da expressão de licença:

  • se a expressão de licença fornecida contiver um único identificador de licença, uma página da Web será retornada que contém esse texto de referência de licença;
  • se a expressão de licença fornecida for uma expressão de licença composta, uma página da Web será retornada que contém a expressão de licença com links para referências individuais de licença ou exceção de licença.

Todas as solicitações que contêm uma expressão de licença inválida resultam em uma resposta HTTP 404.

Exceções de licença

Solicitação

Os identificadores de exceção de licença devem ser codificados em URL e usados como um caminho na solicitação para licenses.nuget.org. Somente um único identificador de exceção de licença pode ser fornecido em uma única solicitação. Nenhum caractere adicional além do identificador de exceção de licença pode estar presente na parte do caminho da URL.

Identificador de exceção de licença URL a ser usada
Exceção do FLTK https://licenses.nuget.org/FLTK-exception
openvpn-openssl-exception https://licenses.nuget.org/openvpn-openssl-exception

Resposta

Licenses.nuget.org responde a uma solicitação com um identificador de exceção de licença conhecido com uma resposta HTTP 200 e uma página da Web que contém o texto de referência para a exceção de licença especificada.

Qualquer solicitação que contenha um identificador de exceção de licença sem suporte resulta em uma resposta HTTP 404.