在自由和开放源码软体(FOSS)的世界中,GNU 通用公共许可证(GPL)一直是一个核心的法律框架。自1989年由理查德·史达曼创建以来,GPL 不仅定义了自由软体的标准,也影响到了许多知名专案,包括 Linux 核心。然而,随着时间的推移,GPL 的不同版本引发了相当大的争议。为什么 Linux 核心仍然选择坚持使用 GPLv2 而非更新的 GPLv3 呢?
GPL 是首个可供一般使用的 copyleft 许可证,保障最终使用者自由运行、研究、分享或修改软体的权利。
GPL 的发展历史可以追溯至它的第一版(GPLv1),它的主要目的是确保使用者能够获得源代码以进行修改和再发布,这种自由也被称为 “copyleft”。在 GPLv1 被引入后,第二版(GPLv2)在 1991 年发布,并且面临了一些与时俱进的挑战。
随着时间的推进,开源社区对 GPLv2 的一些问题表示担忧,包括 “tiVoization” 的问题,即某些硬体设备不允许用户安装修改过的软体。这样的行为使得开源的初衷遭到抑制,并引发了情感上的不满。特别是在法律和专利协议逐渐成为主流的情况下,一些社区成员担心这将会使 GPL 软体不再自由。
根据大卫·A·惠勒的观点,GPL 提供的 copyleft 对于基于 Linux 的系统的成功至关重要,程序员有信心自己的工作会惠及全世界。
面对这些挑战,FSF 在2007年发布了 GPLv3,针对这些问题进行了讨论和调整。其中一项重要改变是针对专利的规定,也对 DRM(数位版权管理)做出了应对,以便保护自由使用的权利。然而,这一变化并未得到 Linux 核心开发者的青睐,特别是 Linus Torvalds,他选择让 Linux 核心继续使用 GPLv2。
GPLv2 与 GPLv3 在某些条款上存在明显的差异。例如 GPLv2 中的 “自由或死亡” 条款强调许可证的所有义务和其他法律义务内的内容不可分割,而 GPLv3 则更关注于专利的相关议题。这使得许多开发者更加倾向于保持他们的产品稳定性和原始的许可条款,而不想接受 GPLv3 潜在的复杂性和法律风险。
在使用 GPLv3 时,开发者需要考虑其与其他许可证的相容性问题,而这并不总是直观的。例如,GPLv3 提高了与 Apache 许可证的相容性,但这就意味着不再能够和不兼容的 GPLv2 软体进行无缝结合。
Linus Torvalds 警告过,GPLv3 的某些条款可能会造成开源界的 Balkanization。
有人认为,安全和稳定的生态系统对于 Linux 核心的开发至关重要。即使新版本有其优点,对于数据中心与大规模部署来说,改变核心许可证的规则可能会导致实际应用的代价。由于 GPLv3 中某些许可条款的增加,许多企业可能会选择以更谨慎的态度来评估他们能否使用这些开放源码的软体。
最后,回到我们的核心问题:在日益复杂的开源许可证环境中,您认为 Linux 核心开发者的选择是基于惧怕已知的影响还是真的对未来的开放性持保留态度?这引发了对于软体自由和使用者权益的深思?