Condividi tramite


licenses.nuget.org

Spiegazione

Con l'introduzione delle espressioni di licenza, è nata l'esigenza di avere un servizio affidabile che specificasse un testo di riferimento per ogni identificatore di licenza, identificatore di eccezione o espressione di licenza. Un requisito aggiuntivo per questo servizio è la necessità di uno schema URL stabile, che non sia soggetto alla rottura dei collegamenti, ma che possa invece essere usato in modo sicuro per assicurare ai client meno recenti compatibilità con le versioni precedenti.

Licenses.NuGet.org è il servizio adatto. Viene usato da Nuget.org per creare il riferimento di testo della licenza per i pacchetti che specificano la licenza usando un'espressione di licenza. Con il comando nuget pack o la compressione di altri strumenti client si imposta l'elemento licenseUrl in modo che faccia riferimento a licenses.nuget.org to per assicurare compatibilità con le versioni precedenti ai client meno recenti che non supportano l'elemento license.

Testo licenza ed eccezione

Le informazioni sull'eccezione di licenza e licenza visualizzate in licenses.nuget.org vengono copiate dal repository dei dati dell'elenco licenze del progetto SPDX. Il formato che le informazioni vengono visualizzate da vicino simula il formato utilizzato dal sito Web SPDX stesso, ad esempio vedere MIT su licenses.nuget.org e MIT su SPDX.org.

Le licenze non approvate dall'iniziativa Open Source o Free Software Foundation non sono ospitate in licenses.nuget.org e vengono escluse.

Diversi stili oltre al testo normale vengono usati nella visualizzazione della licenza. In base alle domande frequenti sui dati dell'elenco licenze SPDX, il testo rosso è considerato sostituibile e il testo blu è considerato omettebile. Per altre informazioni sui dati dell'elenco delle licenze SPDX, vedere le domande frequenti e la specifica del modello di licenza SPDX.

Si noti che i dati vengono copiati da SPDX a licenses.nuget.org dal nuget.org su base ad hoc. Se un identificatore di licenza viene approvato dall'iniziativa Open Source o da Free Software Foundation ma non viene visualizzato in licenses.nuget.org, segnalare un problema e il team nuget.org collaborare per aggiornare licenses.nuget.org e nuget.org convalida del caricamento dei pacchetti con i dati più recenti di SPDX.

Se l'autore di pacchetti non è soddisfatto del testo della licenza condiviso disponibile in licenses.nuget.org, è possibile prendere in considerazione l'uso del testo della licenza incorporato (<license type="file">) anziché un'espressione di licenza per il pacchetto NuGet. In questo modo è possibile personalizzare completamente le condizioni di licenza e includere il testo personalizzato all'interno del pacchetto.

Protocollo

Licenses.nuget.org è destinato a essere visualizzato dagli utenti nei browser. Non sono previste risposte leggibili al computer. È necessario usare il protocollo HTTPS e le richieste devono essere costruite in un modo specifico. Supporta solo richieste GET. Accetta espressioni di licenza o identificatori di eccezione di licenza come input nel modo specificato di seguito. Si noti che tutti gli elementi delle espressioni di licenza fanno distinzione tra maiuscole e minuscole, pertanto tutti gli input a licenses.nuget.org faranno altrettanto distinzione tra maiuscole e minuscole.

Espressioni di licenza

Richiedi

Le espressioni di licenza (inclusi i casi semplici in cui l'espressione è costituita da una singola licenza) devono essere codificate in URL e usate come percorso nella richiesta a licenses.nuget.org.

Espressione di licenza URL da usare
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+)

Il servizio supporta solo identificatori di licenza e identificatori di eccezione di licenza accettati da nuget.org. In particolare, questo significa che verranno accettati solo gli identificatori di licenza approvati dall'iniziativa Open Source o Free Software Foundation. Tutte le espressioni di licenza che contengono identificatori di licenza o identificatori di eccezione di licenza non supportati o che non sono conformi alla sintassi delle espressioni di licenza vengono considerate non valide.

Response

Licenses.nuget.org risponde alle richieste contenenti espressioni di licenza valide con un codice di stato HTTP 200 e una pagina Web che contiene una descrizione dell'espressione di licenza:

  • Se l'espressione di licenza specificata contiene un unico identificatore di licenza, viene restituita una pagina Web contenente il testo di rifermento a tale licenza;
  • Se l'espressione di licenza specificata contiene un'espressione di licenza composita, viene restituita una pagina Web contenente l'espressione di licenza con i collegamenti alla singola licenza o ai riferimenti di eccezione di licenza.

Tutte le richieste contenenti un'espressione di licenza non valida generano una risposta HTTP 404.

Eccezioni di licenza

Richiedi

Gli identificatori delle eccezioni di licenza devono essere codificati con URL e usati come percorso nella richiesta di licenses.nuget.org. In una singola richiesta è possibile specificare un solo identificatore di eccezione di licenza. Nessun carattere aggiuntivo oltre all'identificatore di eccezione di licenza può essere incluso nella parte di percorso dell'URL.

Identificatore di eccezione di licenza URL da usare
FLTK-exception https://licenses.nuget.org/FLTK-exception
openvpn-openssl-exception https://licenses.nuget.org/openvpn-openssl-exception

Response

Licenses.nuget.org risponde a una richiesta contenente un identificatore di eccezione di licenza noto con una risposta HTTP 200 e una pagina Web che contiene il testo di riferimento per l'eccezione di licenza specificata.

Tutte le richieste contenenti un identificatore di eccezione di licenza non supportato generano una risposta HTTP 404.