许可证表达式¶
PEP 639 定义了一个新的 pyproject.toml 的许可证 值,并添加了相应的 核心元数据 License-Expression 字段。本规范定义了哪些许可证表达式是可接受的。
规范¶
许可证可以定义为一个文本字符串,该字符串是有效的 SPDX 许可证表达式,如 SPDX 规范(版本 2.2 或更高兼容版本)中所述。
许可证表达式可以使用以下许可证标识符:
任何发布在 SPDX 许可证列表(版本 3.17 或任何更高兼容版本)中的 SPDX 列出的短格式许可证标识符。
自定义
LicenseRef-[idstring]
字符串,其中[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