licenses.nuget.org

理由

ライセンス式の導入により、個別のライセンス識別子、例外識別子、またはライセンス式に対する参照テキストを提供する信頼できるサービスを用意する要件が発生しました。 このサービスに対する追加の要件は、古いクライアントに下位互換性を提供するために安全に使用できるよう、リンク切れになりにくい安定した URL スキーマを使用することです。

licenses.nuget.org がその役割を果たします。 Nuget.org では、それを使用して、ライセンス式を使用してライセンスを指定するパッケージにライセンス テキストの参照を提供します。 nuget pack または他のクライアント ツールでのパッキングにより、license 要素をサポートしない古いクライアントとの下位互換性を提供するため、licenses.nuget.org を指すように licenseUrl 要素が設定されます。

ライセンスと例外のテキスト

licenses.nuget.org に表示されるライセンスおよびライセンス例外情報は、SPDX プロジェクトの ライセンス リスト データ リポジトリからコピーされます。 情報が表示される形式は、SPDX Web サイト自体で使用される形式とよく似ています (例: licenses.nuget.org の MIT および SPDX.org の MIT を参照)。

オープン ソース イニシアティブまたは Free Software Foundation によって承認されていないライセンスは、licenses.nuget.org でホストされておらず、除外されます。

ライセンスの表示には、プレーンテキストに加えていくつかのスタイルが使用されます。 SPDX ライセンス一覧のデータに関する FAQ によると、赤いテキストは置き換え可能と見なされ、青いテキストは省略可能と見なされます。 SPDX ライセンス一覧データの一般的な情報については、その FAQSPDX ライセンス テンプレートの仕様を参照してください。

データは nuget.org によって、アドホックベースで SPDX から licenses.nuget.org にコピーされます。 ライセンス識別子がオープン ソース イニシアティブまたは Free Software Foundation によって承認されているが、licenses.nuget.org に表示されない場合は、問題を報告してください。nuget.org チームが、SPDX からの最新のデータを使用して licenses.nuget.org と nuget.org のパッケージのアップロード検証を更新します。

パッケージ作成者として、licenses.nuget.org で使用できる共有ライセンス テキストに満足できない場合は、NuGet パッケージのライセンス式ではなく、埋め込みライセンス テキスト (<license type="file">) を使用することを検討できます。 これにより、ライセンス条項を完全にカスタマイズし、カスタマイズしたテキストをパッケージ内に含めることができます。

Protocol

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 で受け入れられるライセンス識別子とライセンス例外識別子のみがサポートされます。特に、これは、オープン ソース イニシアティブまたは Free Software Foundation によって承認されたライセンス識別子のみが受け入れられることを意味します。 サポートされていないライセンス識別子またはライセンス例外識別子が含まれるライセンス式、またはライセンス式の構文に準拠しないライセンス式はすべて、無効と見なされます。

回答

licenses.nuget.org は、ステータス コード HTTP 200 の有効なライセンス式が含まれる要求、およびライセンス式の説明が含まれる Web ページに応答します。

  • 提供されたライセンス式に 1 つのライセンス識別子が含まれる場合、そのライセンス参照テキストを含む 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 応答が返ってきます。