Compartilhar via


licenses.nuget.org

Fundamento

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

Licenses.nuget.org cumpre essa função. O nuget.org usa-o 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 o empacotamento com outras ferramentas de cliente define o elemento licenseUrl para que ele aponte para licenses.nuget.org visando fornecer compatibilidade 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 em 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 é muito semelhante ao formato usado pelo próprio site do 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 pela Free Software Foundation não são hospedadas em 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 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 as 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 por nuget.org em uma base ad hoc. Se um identificador de licença for aprovado pela Open Source Initiative ou pela Free Software Foundation, mas não aparecer em licenses.nuget.org, registre um problema e a equipe de nuget.org trabalhará para atualizar a validação de upload de pacotes de 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 da licença compartilhada disponível em licenses.nuget.org, considere usar o texto de licença incorporado (<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 exibido por pessoas em seus navegadores; nenhuma resposta legível por computador é fornecida. O protocolo HTTPS precisa ser usado, e as solicitações devem ser construídas de uma maneira específica. Ele só dá suporte a solicitações GET. Aceita expressões de licença ou identificadores de exceção de licença como entrada de uma forma especificada abaixo. Observe que todos os elementos de expressões de licença diferenciam maiúsculas de minúsculas e, portanto, toda entrada para licenses.nuget.org também diferencia maiúsculas de minúsculas.

Expressões de licença

Solicitação

As expressões de licença (incluindo os casos triviais em que a expressão consiste em uma única licença) devem 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)
(LGPL-2.0-only WITH FLTK-exception OR Apache-2.0+) https://licenses.nuget.org/(LGPL-2.0-only%20WITH%20FLTK-exception%20OR%20Apache-2.0+)

O serviço oferece suporte apenas a identificadores de licença e identificadores de exceção de licença que são aceitos por nuget.org. Isso significa que apenas identificadores de licença aprovados pela Open Source Initiative ou pela Free Software Foundation serão aceitos. Todas as expressões de licença que contêm identificadores de licença ou identificadores de exceção de licença sem suporte ou que não estejam em conformidade com a sintaxe da expressão de licença são consideradas inválidas.

Resposta

Licenses.nuget.org responde às 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, será retornada uma página da Web que contém o texto de referência dessa licença;
  • se a expressão de licença fornecida for uma expressão de licença composta, será retornada uma página da Web que contém a expressão de licença com links para referências de exceção de licença ou licença individual.

Qualquer solicitação que contenha uma expressão de licença inválida resulta em uma resposta HTTP 404.

Exceções de licença

Solicitação

Os identificadores de exceção de licença devem ser codificados por 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
FLTK-exception 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 contendo 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.