piapia123
zh

SPDX 许可证标识符校验

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

一行一个 SPDX 标识符,逐条给出结论:是否合法、规范写法是什么、是否已废弃、是否 OSI 认可、是宽松还是传染性许可、是否要求保留版权与许可声明。重点是大小写:SPDX 标识符大小写敏感,规范写法是 `Apache-2.0` 而不是 `apache-2.0`,而 npm、pip 这类生态常常不校验,写错的能装能跑,直到合规扫描或 SBOM 工具才拒收 —— 所以这里会逐字给出规范写法。废弃关系也讲清楚:`GPL-2.0` 已废弃、现行写作 `GPL-2.0-only`;`GPL-2.0+` 与 `GPL-2.0-or-later` 同义,前者已废弃。内置一张精选的常见许可证表(约七十个),只收能确认字段的,不确定的一律不收;因此「查不到」只表示不在本表范围。全部在浏览器本地完成。

功能

  • 大小写敏感校验,写错时给出逐字的规范写法
  • 区分「合法」与「已废弃」:废弃的标识符仍是合法标识符
  • 已废弃项给出现行的替代写法(GPL-2.0 → GPL-2.0-only)
  • 讲清 `GPL-2.0+` 与 `GPL-2.0-or-later`、`GPL-2.0` 与 `GPL-2.0-only` 的关系
  • 标注 OSI(Open Source Initiative)是否认可
  • 传染性分级:宽松 / 弱传染(文件级)/ 强传染 / 网络传染(AGPL)
  • 标注是否要求保留版权与许可声明
  • 内置约七十个常见许可证:MIT、Apache、BSD、GPL、LGPL、AGPL、MPL、ISC、CC0、EPL、Artistic、Zlib、BSL、WTFPL 等
  • 一行一个,一批标识符可以一起核对
  • SPDX 表达式(如 MIT OR Apache-2.0)会单独提示拆分

使用方法

  1. 一行贴一个 SPDX 标识符
  2. 结果逐条给出结论与释义
  3. 大小写写错时会指出规范写法
  4. 点行末的复制按钮取走单个结论

常见问题

`GPL-2.0` 与 `GPL-2.0-only` 差在哪?
`GPL-2.0` 是旧写法、已废弃,因为它含义含糊:既可能被理解为「仅 GPL-2.0」,也可能被理解为「GPL-2.0 或更高版本」。现行 SPDX 把它拆成了两个明确标识符:`GPL-2.0-only`(仅 2.0)与 `GPL-2.0-or-later`(2.0 或更高)。新项目里请写这两个之一,具体选哪个取决于你的授权意图。
`GPL-2.0+` 和 `GPL-2.0-or-later` 是一回事吗?
语义相同,但 `GPL-2.0+` 已废弃。那个尾随的 `+` 是旧式「或更高版本」的写法,现行 SPDX 要求写成 `-or-later`,可读性更好、也不容易和别的符号混。工具会把 `GPL-2.0+` 标为废弃并指出应改用 `GPL-2.0-or-later`。
「弱传染」和「强传染」有什么区别?
弱传染(LGPL、MPL、EPL 等)通常只作用于单个文件:你修改了那个文件、再分发它,才需要按同样的许可开放该文件的改动;把它链接进闭源程序通常没问题。强传染(GPL)作用于整个作品:分发链接了 GPL 代码的程序时,整个程序都要以 GPL 发布。网络传染(AGPL)更进一步:即使不分发,只是通过网络提供服务,也要提供源码。
为什么有的许可证查不到?
本表是手工精选的,只收了约七十个常见许可证,并且只收作者能确认字段的那些。SPDX 官方列表有六百多个标识符,其中很多是冷门的许可证与异常(exception)。把强传染错标成宽松的代价比「查不到」大得多,所以这里宁缺毋滥 —— 查不到时请到 SPDX 官方列表核对,而不是认为它不存在。
这些信息会被上传吗?
不会。整张许可证表就在页面里,校验在浏览器本地完成,不发送任何请求、不查询任何接口,断网也能用。

相关工具