ライセンス表現¶
PEP 639 では、 pyproject.toml のライセンス の新しい値を定義していて、対応する コアとなるメタデータのライセンス表現フィールドコアとなるメタデータのライセンス表現フィールド を追加しました。この仕様は、どのライセンス表現が受け入れ可能であるかを定義しています。
仕様¶
ライセンスは、バージョン 2.2 もしくはより新しい互換性のあるバージョンの SPDX 仕様 で文書化されているように、正当な SPDX ライセンス表現 であるテキスト文字列として定義することができます。
ライセンス表現では、次のようなライセンス識別子を使用することができます:
任意の SPDX に列挙された短表現の識別子で、 SPDX ライセンスリスト のバージョン 3.17 もしくはそれ以降の互換性のあるバージョンで公開されているもの。
[idstring]をユニークな文字列で文字・数字・.・-を含むものとした時、カスタムのLicenseRef-[idstring]は SPDX ライセンスリストに含まれていないライセンスを識別するもの。カスタムの識別子は、該当するバージョンの SPDX 仕様の 10.1 節 に従っていなければなりません。
正当なライセンス表現の例:
MIT
BSD-3-Clause
MIT AND (Apache-2.0 OR BSD-2-Clause)
MIT OR GPL-2.0-or-later OR (FSFUL AND BSD-2-Clause)
GPL-3.0-only WITH Classpath-Exception-2.0 OR BSD-3-Clause
LicenseRef-Special-License OR CC0-1.0 OR Unlicense
LicenseRef-Proprietary
不当なライセンス表現の例:
Use-it-after-midnight # No `LicenseRef` prefix
Apache-2.0 OR 2-BSD-Clause # 2-BSD-Clause is not a valid SPDX identifier
LicenseRef-License with spaces # spaces are not allowed
LicenseRef-License_with_underscores # underscore are not allowed