夜天之书 #6

2021/09/09 14:50
阅读数 1K

本文转载自:yatennosyo,作者:tisonkun 

原文链接:https://mp.weixin.qq.com/s/FsolP0IPIq0pFolPVDD8Ug

今天的内容搬运一下以前写的一篇旧文,Copyleft 不是病毒,以下正文。

今天读到著名开源协议律师 Heather Meeker 的《Open Source for Business[1]》一书中为 Copyleft 开源协议辩护的文字,深感在过去的几十年里将开源协议污蔑成病毒,动辄以所谓传染性恐吓使用者的风气的不合理。于是撰写本文,在书中观点的基础上重申 Copyleft 开源协议不是病毒。

或许成长在信息时代的人,不再记得上个世纪末自由软件运动跟某公司之间的恩怨情仇,但是当时的争论中双方互相贴上的标签,却带来了深远的影响。这里面流传最广的莫过于将以 GPL 为代表的的 Copyleft 开源协议许可的软件,定性为病毒或者传染源。

Copyleft 开源协议要求分发采用该协议许可的软件及其衍生作品时,必须原封不动的保留原协议。也就是说,当你拿到一份 GPLv2 协议许可的 Linux 源码后,如果你要再分发得到的 Linux 源码,或者是在其基础上做出修改后再分发其修订版或者叫衍生作品,那么你必须沿用 GPLv2 协议许可。由于 GPLv2 等 Copyleft 协议授予收到源码的人自由地运行,修改和重新分发源码的权利,因此自由软件能够保证在流传过程中一直是自由的。

那些将 Copyleft 开源协议许可的软件定性为病毒或者传染源的人,针对上文中关于衍生作品的要求大肆攻击。以 GPL 为例,如果一个软件是由 GPL 许可的代码和其他代码整合而成的,那么这就是 GPL 许可的代码的一个衍生作品。GPL 要求在这种情况下,整个软件的所有代码都应该以 GPL 许可,从而能够被自由地运行,修改和重新分发。这个论调听起来就像是 GPL 许可的代码会将所有与它整合的代码都“变成” GPL 许可的代码,从而,被曲解成,让你的专有代码或商业机密被迫公开。这就是关于 Copyleft 开源协议是病毒的指责。

然而,真相真的是这样吗?

Heather Meeker 根据其丰富的法务经验驳斥了这种说法,并批评长期以来律师对开源协议的污名化。她提到,

In fact, if a company were to combine GPL and proprietary code in a way that violated GPL, the result would be that GPL had been violated - no more, no less.

也就是说,违背 GPL 的结果,就是 GPL 被违背了。这是不是有最近流行的“听君一席话,如听一席话”的味道了?

从法律上说,这意味着 GPL 软件的作者能够追究其作品以违背著作权法的形式被使用的责任,并且如果 GPL 由于使用者不遵守协议而终止,作者能够对未经许可使用 GPL 软件采取维权措施。从实际效果看,前者意味着侵权方需要赔偿,后者意味着侵权方需要停止使用 GPL 软件。

可以看到,对于其他代码,没有会被追究的责任,当然也没有必须公开专有代码或商业机密的说法,也不可能强制改变专有代码的协议。

换句话说,除非你打算继续合法的使用 GPL 软件,在这种情况下你可以通过将其他整合的代码以 GPL 许可发布来遵守 GPL 的要求,否则最多就是因为侵权而被要求赔偿,以及终止侵权行为。这是再正常不过的要求,不应该被扣上病毒或传染性的帽子,更没有强制的意味在里面。

Heather Meeker 在原文中提到,这不过是 Copyleft 开源协议和专有协议不相容的情形,而不是一方同化另一方的情形。一个恰当的比喻是软件冲突,而不是软件病毒。

诚哉斯言。

以上正文,聊点近期新的感悟。

仍然会有人问,自研软件中引入了 GPLv3 许可的软件后是否会被传染的问题。如上所述,传染这个词有误导性。对于这个词,我想了两个比较好的替代。一个是软件被 GPLv3 的条款所影响,另一个是软件也被要求以 GPLv3 协议发布。

影响比较中性,确实会被影响。引入了 APL 2.0 许可的软件也会被影响,需要保留 APL 2.0 的 LICENSE 文件和 NOTICE 等。要求说明了一种主观意愿,违背了或许会被起诉并强制停止侵害或赔偿损失,你可以选择以 GPLv3 协议发布来停止侵害,也可以选择不再发布并召回以停止侵害。

最后,需要对发布再做一个注脚。GPLv3 是否要求衍生作品必须对全世界开源呢?是也不是。精神上是如此,但是实际上条款约束的是发布这个行为。也就是说,如果你就是在企业内部发布并使用,企业以外无法拿到发行版,那么在企业内这个“世界”开源即可。这也是 AGPL 试图解决的问题,当通过网络访问了你的软件,就认为是某种形式的发布,进而需要对能通过网络访问了你的软件的人提供源代码。

云的诞生导致了新的软件开发格局,开源协议也必须与时俱进。我想这也是 Heather Meeker 参与起草 SSPL 和 Elastic 协议做探索的原因。暂时我们不知道新时代下哪个协议能够继承 Copyleft 的精神,应对新的软件开发形势,但是,我们终将知道。

References

[1] Open Source for Business: https://book.douban.com/subject/35309516/

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部