license vs relicense — Di 14 April 2026

你好,世界!

软件许可证对软件作者和软件用户都很重要;对自由软件,因为其目的是保护软件用户的运行、学习、修改和分发的自由,所以理解自由软件的许可证规则尤其重要。

许可证与再许可:概念、区别与兼容性解析

在自由软件社区中,许可证(License)再许可(Relicense) 是两个经常被提及但又容易被混淆的核心概念。本文旨在系统梳理二者的定义、权利主体、操作方式以及与“许可证兼容性”之间的关系。本文基于 Yoni Rabkin 撰写的《Relicensing vs. Compatibility》一文,作者声明自己不是律师,而本文亦不构成法律建议。

一、许可证的基本含义

许可证是版权持有人授予他人使用、修改、分发其作品的法律许可。版权是政府授予版权所有者的排他性权利,其中一项重要权利就是许可他人使用作品

在自由软件社区中,版权持有人通常会选择一个尊重自由的许可证(如 GPL、修改版 BSD、MPL 等),将其应用于自己的作品,并向社区发布。社区成员在遵守许可证条款的前提下,可以自由地学习、修改、再分发该作品。

关键点:只有版权持有人才有权对作品施加许可证。其他人必须遵守许可证的条款,但不能更改作品本身的许可证。

二、再许可的真正含义

再许可是指版权持有人对作品的未来版本或副本采用一个不同的许可证。例如,一个项目最初采用 GPLv2 发布,后来版权持有人决定将后续版本改用修改版 BSD 许可证发布,这就是再许可。

重要原则

常见误解:很多人以为只要许可证允许,下游用户就可以“再许可”作品。实际上,下游用户只能在版权持有人预先允许的选项中进行选择(如下文所述),这不是真正的再许可。

三、明确允许的“再许可”情形

部分许可证包含条款,允许非版权持有人在特定条件下,以不同许可证进一步分发其手中的副本。这是一种受限的许可证变更,而非真正的再许可。

示例

关键区别

四、许可证兼容性(Compatibility)的概念

兼容性指两个或多个不同许可证的条款之间不存在矛盾,因此分别采用这些许可证的独立作品可以被合并成一个更大的作品,并且能够同时满足所有许可证的要求。

兼容不等于再许可:当两个兼容许可证的作品合并后,每个部分仍然保留其原始许可证。例如,修改版 BSD 代码在合并后的作品中依然是修改版 BSD 许可,并未被“再许可”为 GPLv3。接收者仍然可以将该修改版 BSD 部分提取出来,按照原来的修改版 BSD 许可证独立分发。

五、许可证与再许可的核心区别总结

| 维度 | 许可证 | 再许可 | |----------------|--------------------------|---------------------| | 定义 | 版权持有人授予的使用/分发规则 | 版权持有人更换作品的许可证 | | 执行者 | 版权持有人(初始施加) | 仅版权持有人(变更) | | 对已发布版本的影响 | 初始发布时确定 | 不影响已发布版本,只适用于未来版本 | | 下游用户能否操作 | 只能遵守,不能更改 | 不能(除非版权持有人明确允许特定选项) | | 与兼容性的关系 | 兼容性是比较不同许可证的条款 | 再许可不依赖兼容性,是权利行使 |

六、实践中的意义与注意事项

  1. 权利归属是根本:无论许可证如何设计,只有版权持有人有权再许可。下游用户在合并兼容许可证的作品时,并没有改变任何部分的许可证。
  2. 兼容性促进代码复用:兼容性允许不同许可证的作品合法地组合,这是自由软件社区繁荣的基础之一。
  3. 避免误解:不要将“许可证兼容合并”误解为“下游用户可以再许可”。例如,将 GPL 代码与修改版 BSD 代码合并后,修改版 BSD 代码仍然是修改版 BSD 许可,没有变成 GPL。
  4. 明确允许的升级选项:如果你希望用户能将你的代码升级到更新版本的许可证(如 GPLv2 → GPLv3),请确保你在许可证中明确加入了“升级选项”。

结语

理解许可证与再许可的区别,以及许可证兼容性的工作原理,对于自由软件项目的维护者、贡献者及下游使用者都至关重要。只有厘清这些概念,我们才能合法、自信地组合与分发自由软件,避免法律风险,并真正推动自由软件社区的健康成长。

如果你对自由软件许可证和再许可还有问题,立伯乐 或许可以帮你。

让 GNU 带给你进入自由软件的世界!