根拠
ライセンス式の導入に伴い、個々のライセンス識別子、例外識別子、またはライセンス式の参照テキストを提供する信頼性の高いサービスが必要になった。 このサービスの追加の要件は、リンクの破損の影響を受けにくい安定した URL スキーマを持つことです。これにより、古いクライアントに下位互換性を提供するために安全に使用できます。
Licenses.nuget.org はその役割を果たします。 Nuget.orgは、ライセンス表現を使用してライセンスを指定するパッケージに対し、ライセンステキストのリファレンスを提供しています。
nuget packまたは、他のクライアント ツールを使用してパックすると、licenseUrl要素をサポートしていない古いクライアントとの下位互換性を提供するために、license要素が licenses.nuget.org をポイントするように設定されます。
ライセンスと例外のテキスト
licenses.nuget.org に表示されるライセンスおよびライセンス例外情報は、SPDX プロジェクトの ライセンス リスト データ リポジトリからコピーされます。 情報が表示される形式は、SPDX Web サイト自体で使用される形式とよく似ている(例: licenses.nuget.org の MIT 、 SPDX.org の MIT を参照)。
オープン ソース イニシアチブまたは Free Software Foundation によって承認されていないライセンスは、licenses.nuget.org でホストされておらず、除外されます。
ライセンスの表示には、プレーンテキストに加えていくつかのスタイルが使用されます。 SPDX ライセンス 一覧のデータに関する FAQ によると、赤いテキストは置き換え可能と見なされ、青いテキストは省略可能と見なされます。 SPDX ライセンス 一覧データの一般的な情報については、その FAQ と SPDX ライセンス テンプレートの仕様を参照してください。
データは SPDX から licenses.nuget.org にアドホックベースで nuget.org によってコピーされることに注意してください。 ライセンス識別子がオープン ソース イニシアチブまたは Free Software Foundation によって承認されているが、licenses.nuget.org には表示されない場合は、 問題を報告してください。nuget.org チームは、SPDX からの最新のデータを使用して licenses.nuget.org と nuget.org パッケージのアップロード検証を更新します。
パッケージ作成者として、licenses.nuget.org で使用できる共有ライセンス テキストに満足できない場合は、NuGet パッケージのライセンス式ではなく 、埋め込みライセンス テキスト (<license type="file">) を使用することを検討できます。 これにより、ライセンス条項を完全にカスタマイズし、カスタマイズしたテキストをパッケージ内に含めることができます。
プロトコル
Licenses.nuget.org はブラウザー内のユーザーが表示することを目的としており、コンピューターで読み取り可能な応答は提供されません。
HTTPS プロトコルを使用する必要があり、要求は特定の方法で構築される必要があります。
GET要求のみをサポートします。
ライセンス式またはライセンス例外識別子は、以下で指定した方法で入力として受け入れます。 ライセンス式のすべての要素では大文字と小文字が区別されるため、licenses.nuget.org に対するすべての入力でも大文字と小文字が区別されることに注意してください。
ライセンス表現
リクエスト
ライセンス式 (式が 1 つのライセンスで構成される場合を含む単純なケースを含む) は 、URL でエンコード され、licenses.nuget.org 要求のパスとして使用される必要があります。
| ライセンス表現 | 使用予定の URL |
|---|---|
| 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+) |
このサービスでは、nuget.org で受け入れられるライセンス識別子とライセンス例外識別子のみがサポートされます。特に、これは、オープン ソース イニシアチブまたはフリー ソフトウェア 財団によって承認されたライセンス識別子のみが受け入れられることを意味します。 サポートされていないライセンス識別子またはライセンス例外識別子を含む、またはライセンス式の構文に準拠していないライセンス式はすべて無効と見なされます。
[応答]
Licenses.nuget.org は、HTTP 200 状態コードと、ライセンス式の説明を含む Web ページを使用して、有効なライセンス式を含む要求に応答します。
- 指定されたライセンス式に単一のライセンス識別子が含まれている場合は、そのライセンス参照テキストを含む Web ページが返されます。
- 指定されたライセンス式が複合ライセンス式の場合は、個々のライセンスまたはライセンス例外参照へのリンクを含むライセンス式を含む Web ページが返されます。
無効なライセンス式を含む要求は、HTTP 404 応答になります。
ライセンスの例外
リクエスト
ライセンス例外識別子は URL でエンコードされ、licenses.nuget.org 要求のパスとして使用される必要があります。1 つの要求で指定できるライセンス例外識別子は 1 つだけです。 URL のパス部分には、ライセンス例外識別子以外の追加の文字は存在しません。
| ライセンス例外識別子 | 使用する URL |
|---|---|
| FLTK-exception | https://licenses.nuget.org/FLTK-exception |
| openvpn-openssl-exception | https://licenses.nuget.org/openvpn-openssl-exception |
[応答]
Licenses.nuget.org は、HTTP 200 応答と、指定されたライセンス例外の参照テキストを含む Web ページで、既知のライセンス例外識別子を持つ要求に応答します。
サポートされていないライセンス例外識別子を含む要求は、HTTP 404 応答になります。