许可·条件·限制一览
条件
- 版权与许可声明分发时必须附上许可证副本和版权声明。
- 标明修改如果修改了原作品,必须标明这一事实。
- 公开源代码分发时必须提供源代码。
- 相同许可证分发修改版或衍生作品时,必须使用相同(或兼容)的许可证。
限制
- 责任限制明确声明不对损害承担责任。
- 无担保明确声明不提供任何担保。
许可·条件·限制分类来源:choosealicense.com(GitHub,MIT 许可证)数据。
这是什么样的许可证
GPL(GNU General Public License)3.0 由自由软件基金会(FSF)于 2007 年 6 月 29 日发布。其核心是著佐权(copyleft)原则:任何人都可以自由使用、研究、修改和分发,但分发时也必须保证接收者享有同样的自由。分发包含或结合了此代码的程序时,必须以 GPL 连同对应的源代码一起提供整个程序。GNU Bash、GIMP、GNU Emacs 等都使用 GPL-3.0-or-later。
与 GPL-2.0 相比的变化
- 明确的专利许可(第 11 条):贡献者授予其贡献所需的专利使用权。
- 安装信息(Installation Information):将 GPL-3.0 软件放入家用设备等「用户产品(User Product)」中分发时,还必须提供能将修改后的软件安装到该设备上的信息(签名密钥等)(第 6 条)。通常称为「防 Tivo 化」。
- 违约纠正期(第 8 条):首次违约时,如果在收到版权所有者通知之日起 30 天内纠正,权利即可恢复。在 GPL-2.0 中,一旦违约权利立即终止。
- 兼容性扩大:可以接纳 Apache-2.0 代码,并可与 AGPL-3.0 结合(第 13 条)。
分发时须遵守的事项
- 提供全部对应源代码(包括构建脚本),或通过书面要约等第 6 条规定的方式之一提供。
- 保留版权和许可声明,并标明修改事实和日期(第 5 条)。
- 不得附加限制 GPL 赋予接收者权利的额外条件(如禁止再分发的合同)。
常见误解
- 「使用 GPL 代码就必须公开」 — 公开义务在分发(conveying)时产生。如果只在公司内部使用或只在服务器上运行,不会产生 GPL-3.0 的源代码提供义务。要把网络使用也纳入,需要 AGPL-3.0。
- 「GPL 软件不能出售」 — 可以出售。只是不能阻止接收者再次分发。
- 「在 GPL 程序上运行的我的程序也会变成 GPL」 — 作为独立程序运行或以标准方式通信的情况,通常视为「聚合」。是否构成结合,因链接方式和数据交换方式不同而存在解释分歧。
- 「GPL-3.0 与 GPL-2.0 兼容」 — 如果 GPL-2.0 是 only 而非「or later」,则不兼容(only vs or-later 指南)。
如何应用
将原文原样放入 LICENSE(或按 GNU 惯例放入 COPYING),并在每个源文件顶部加上 GNU 官方声明。此时通过声明决定是否为「or later」。SPDX 标识符使用 GPL-3.0-only 或 GPL-3.0-or-later(单纯的 GPL-3.0 是 SPDX 中已弃用的标识符)。
适用场景
适合希望基于自己代码的改进不会流入闭源产品、而是回馈给所有人的应用、工具和社区项目。如果是库,可以同时考虑让闭源应用也能使用的 LGPL-3.0。
GPL-3.0 代码能放进其他项目吗?
以下是将以此许可证发布的代码合并到下列许可证的项目中一起发布时的一般判定。 在兼容性检查器中查看其他组合 →
| 目标项目 | 判定 | 备注 |
|---|---|---|
| 专有(商业)软件 | 不可以 | 合并发布的整个程序必须以相同的 GNU 许可证连同源代码一起公开,因此在保留项目原许可证的情况下无法放入。 |
| MIT | 不可以 | 合并发布的整个程序必须以相同的 GNU 许可证连同源代码一起公开,因此在保留项目原许可证的情况下无法放入。 |
| Apache-2.0 | 不可以 | 合并发布的整个程序必须以相同的 GNU 许可证连同源代码一起公开,因此在保留项目原许可证的情况下无法放入。 |
| MPL-2.0 | 不可以 | 合并发布的整个程序必须以相同的 GNU 许可证连同源代码一起公开,因此在保留项目原许可证的情况下无法放入。 |
| LGPL-2.1 | 有条件可以 | 组合作品须按 GPL-3.0 条件发布。 |
| LGPL-3.0 | 有条件可以 | 组合作品须按 GPL-3.0 条件发布。 |
| GPL-2.0 | 不可以 | 3.0 版本的代码与 GPL-2.0(only)的条件不相容,无法放入。 |
| AGPL-3.0 | 可以 | GPL-3.0 与 AGPL-3.0 各自通过第 13 条允许相互结合。在组合作品中,AGPL 部分的网络源代码提供义务依然保留。 |
本网站内容仅为一般信息,不构成法律意见。实际发布、合同或纠纷的判断,请咨询律师等专业人士。