附录:将许可证分类器映射到 SPDX 标识符
大多数单一许可证分类器(即所有未在下面提到的分类器)都映射到一个有效的 SPDX 许可证标识符,允许工具推断它们对应的 SPDX 许可证标识符,这在分析和审核软件包时使用,也为根据PEP 639 规范填充 license
键或 License-Expression
字段提供了一种半自动机制。
一些旧的许可证分类器旨在指定特定许可证,但没有指定特定版本或变体,导致对其条款、兼容性和可接受性的严重歧义。工具在使用这些分类器时,在没有用户明确操作的情况下,绝对不能尝试自动推断 License-Expression
License :: OSI Approved :: Academic Free License (AFL)
License :: OSI Approved :: Apache Software License
License :: OSI Approved :: Apple Public Source License
License :: OSI Approved :: Artistic License
License :: OSI Approved :: BSD License
License :: OSI Approved :: GNU Affero General Public License v3
License :: OSI Approved :: GNU Free Documentation License (FDL)
License :: OSI Approved :: GNU General Public License (GPL)
License :: OSI Approved :: GNU General Public License v2 (GPLv2)
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Dustin Ingram整理了这些分类器及其可能特定标识符的全面映射,工具可以将其作为参考,以便在提示用户明确选择他们为项目所用的许可证标识符时,提供给用户选择标识符的选项。
注意
在上述映射中,还列出了几个额外的分类器,即 AGPLv3、GPLv2、GPLv3 和 LGPLv3 的“或更高版本”变体,但这些变体明确映射到各自的许可证,因此未在此处列出。但是,LGPLv2 包含在上面,因为它可能会模棱两可地指代该许可证的不同 v2.0 或 v2.1 变体。
此外,对于各种特殊情况,以下映射被认为是规范的,并且对于本规范而言是规范性的
- 分类器
License :: Public Domain
可以映射到通用的License-Expression: LicenseRef-Public-Domain
。如果工具这样做,它们应该发出一个信息警告,鼓励使用更明确和法律可移植的许可证标识符,例如CC0 1.0 许可证 (CC0-1.0
)、Unlicense (Unlicense
) 或MIT 许可证 (MIT
),因为与“公有领域”一词相关的含义完全取决于所涉及的具体法律管辖区,其中一些完全没有这个概念。或者,工具可以选择将这些分类器视为模棱两可的。 - 通用的,有时模棱两可的分类器
License :: Free For Educational Use
License :: Free For Home Use
License :: Free for non-commercial use
License :: Freely Distributable
License :: Free To Use But Restricted
License :: Freeware
License :: Other/Proprietary License
可以映射到通用的
License-Expression: LicenseRef-Proprietary
,但工具在这样做时,必须发出一个突出的、信息丰富的警告。或者,工具可以选择将这些分类器视为模棱两可的。 - 通用的,模棱两可的分类器
License :: OSI Approved
和License :: DFSG approved
不映射到任何许可证表达式,因此工具应该将它们视为模棱两可的,或者如果不能,则必须忽略它们。 - 分类器
License :: GUST Font License 1.0
和License :: GUST Font License 2006-09-30
无法映射到 SPDX 许可证标识符,截至 2022-07-09,PyPI 软件包中没有使用它们。
当使用多个许可证分类器时,它们之间的关系是模棱两可的,通常不可能确定所有许可证是否都适用,或者是否存在在许可证之间进行选择的可能性。在这种情况下,工具绝对不能自动推断许可证表达式,除非一个许可证分类器是另一个许可证分类器的父类,即子类包含父类的所有 ::
分隔组件,在这种情况下,工具可以忽略父分类器,但在这样做时应该发出一个信息丰富的警告。