定义与现状

The GNU General Public License (GNU GPL or GPL) is a widely used free software license, which guarantees end users the freedom to run, study, share and modify the software.

GPL是一种被开源项目广泛采用的开源协议。目前GPL协议的最新版本为GPLv3,于2007年6月29日发布。根据BlackDuckKnowledgeBase的数据,GPL的v2和v3版本目前分别占全球开源项目采用协议的17.75%和7.47%,以下为具体图表。

img

采用GPL开源协议的著名开源项目有Linux kernel、Emacs、git等。

COPYLEFT

GPL最独特的地方莫过于其提出的Copyleft概念,这亦是GPL协议中的核心概念,这一概念目前并没有很好的中文翻译,目前一些常见的翻译有:著作传、著佐权、反版权、版权属左、脱离版权、版权所无、版权左派、公共版权、著作续、版责、版可等。

关于Copyleft的定义,我们可参见提出者Richard Stallman的文章《What is Copyleft?》

Copyleft is a general method for making a program (or other work) free (in the sense of freedom, not “zero price”), and requiring all modified and extended versions of the program to be free as well. Copyleft says that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it. Copyleft guarantees that every user has freedom.

Copyleft最主要的两个特性在于:

  1. Copyleft保障任何用户使用、研究、发行、修改、公布此作品的权利。
  2. Copyleft强制所有基于GPL协议开源的作品,其复制或衍生作品均使用GPL协议开源。

可以看到,Copyleft是与Copyright截然相反的一个概念。相对于Copyleft,Copyright保障创作人或者版权所有者的权利,但几乎不授予用户任何额外的权利(除了使用的权利),而Copyleft则赋予用户任意使用、研究、修改、发布原作品的权利,前提是用户发布的作品同样基于GPL协议开源。

一个常见的关于Copyleft和GPL的误解是,如果一个作品采用GPL协议开源,那原作者就放弃了作品的版权。实际上GPL的Copyleft概念正是建立在Copyright上的,正是因为Copyright,才让Copyleft这一概念在法律上具有可行性,原作者并未放弃作品的版权,只是通过GPL协议赋予了其他人使用、研究、修改、发行等对该作品的权利。

Copyleft is a way of using of the copyright on the program. It doesn’t mean abandoning the copyright; in fact, doing so would make copyleft impossible. The “left” in “copyleft” is not a reference to the verb “to leave”—only to the direction which is the mirror image of “right”.

Richard Stallman还在文章最后提出,人们常用Copyright符号的镜像来表示Copyleft,实际上这并不是合法的,由于作者仍然保留了项目的著作权,所以正确的做法仍然是采用Copyright符号(©)来标识版权。

Liberty or Death

Free software 的定义如下:

A program is Free Software if you, the user, have these four freedoms: - Freedom zero is the freedom to run the program as you wish, for any purpose. - Freedom one is the freedom to study the source code and change it to make it do what you wish. - Freedom two is the freedom to help your neighbour, that’s the freedom to make copies and distribute them to others when you wish. - Freedom three is the freedom to help your community: the freedom to publish or distribute modified versions when you wish.

Copyleft这一概念实际上基于Free Software理念,其核心目的是知识共享。GPL协议试图达成一种人人贡献知识、人人收益于知识的理想环境,为了这个目的,则必须要求最大程度的知识共享。

因而在所有的开源协议中,GPL是对待开源最为严肃的。遵循着Free Software的理念,GPL要求用户在自己的项目中使用GPL的同时,必须开放源代码,而不仅仅是可执行的二进制文件,以便于他人的使用和研究、修改、发布。并且在发布任何基于GPL许可的软件时,不能添加任何限制性的条款。GPL协议还要求用户在发布基于或者包含使用GPL协议的开源项目的项目(或者说复制件和演绎项目)时,必须同样使用GPL协议,即必须开源且保障其他用户对该项目的权利。

在GPLv2中,Richard Stallman正式添加了“Liberty or Death”这一条款。

GPL的传染性

由于Copyleft强制所有基于GPL协议开源的作品,其复制或衍生作品均使用GPL协议的特性,GPL协议并不赋予使用者将衍生项目闭源或者封闭的权利,使得GPL协议具有非常强大的传染能力,因而也被一些人批评。2001年微软的CEO史蒂夫·鲍尔默称使用GPL协议的Linux为“癌症”,因为任何使用Linux kernel源代码的项目,均必须采用GPL协议开源。

GPL给予了计算机程序自由软件的定义,其设计哲学也处处遵循着自由软件的理念。与其他开源协议(诸如BSD协议、MIT协议、Apache协议)不同,GPL最大程度的确保项目是自由软件、而其他协议则最大限度的给予“所有人”最大的自由,包括闭源的自由。通常认为,GPL对于开源的态度过于极端,不如其他开源协议来的包容,因而在现在的开源项目协议中占比减小。

由于这一特性,一方面,GPL促进了许多项目的开源,同时鼓励更多人参与开源项目的开发,使得这些开源项目有了经久不衰的生命力,促进了开源事业的蓬勃发展。比如采用GPL协议的Linux kernel,尽管这个项目最初是Linus的个人项目,但随着发展,最终这个项目的代码里,仅有不到1%是出自Linus之手,其他的代码均来自世界各地的开发者,他们自发开发维护着Linux kernel,从而使得Linux生态茁壮成长。

另一方面,由于GPL对于闭源的不友好,而使很多闭源项目对使用GPL协议的开源项目敬而远之,这一方面,其实GPL又对开源产生了一些负面影响。于是GNU基金会又推出了一个相对宽松的LGPL协议,该协议允许衍生项目闭源,以期解决这个问题。同时,大部分的开源协议,均是GPL兼容的。

GPL的法律效力

2002 年,MySQL AB 公司起诉 Progress NuSphere 侵犯版权和商标。NuSphere 被指以链接代码的形式侵犯了著作权。最终此案以调解结束。在听证期间,法官 “认为没有什么原因”会使得 GPL 失去法律效力。

2003 年 8 月,SCO Group 称他们认为 GPL 没有法律效力,且准备就在 Linux 核心中使用的 SCO Unix 代码进行诉讼。

2004 年 4 月,在 SiteCom 拒绝停止发行 Netfilter 项目的 GPL 软件后,慕尼黑地区法庭据对 GPL 条款的侵犯判定对 SiteCom 进行临时性禁令(诉前停止侵犯专利权行为的措施)。同年 7 月,法庭确认此勒令为对 SiteCom 最终判决。此判决十分重要,因为它是全球首次法庭确认 GPL 是有法律效力的。

2005 年 5 月,Daniel Wallace于美国联邦印第安纳南区地方法院起诉自由软件基金会,因为二者对GPL是否是非法意见不一。后诉讼于3月结束,因为Wallace没有有效的反托拉斯陈述。法庭注意到“GPL鼓励,而不是反对电脑操作系统的自由竞争和发行,这直接使消费者受益。” Wallace被拒绝改变诉由,并被要求支付诉讼费用。

相似来源协议

LGPL,全称“GNU宽通用公共许可证(英语:GNU Lesser General Public License)”,它允许企业与软件开发者使用,或将 LGPL 授权的软件集成至他们自己的软件内(即使该软件是私有软件也被允许),同时不会受到 Copyleft 特性的许可证强制对软件开源的限制。

WTFPL(Do What The Fuck You Want To Public License,中文译名:你他妈的想干嘛就干嘛公共许可证)是一种不太常用的、极度放任的自由软件许可证。它的条款基本等同于贡献到公有领域。

小结

开源or闭源是软件开发里经久不衰的话题,就像vim vs emacs或者tab vs space或者大括号换行不换行一样,是程序员们津津乐道的话题之一。

作为GNU项目的发起者,Richard Stallman发起GPL协议的目的是知识共享,旨在营造人人参与人人收益的环境。秉承着自由软件的理念,GPL协议鼓励人们与他人共享自己的成果,并确保这成果的发展不会被据为私有。

由于其对于开源的极致追求,GPL协议在全球计算机发展中起到了无可替代的作用,产生了巨大而深远的影响,极大的促进了开源事业的发展。

我个人对GPL协议很感兴趣,与其他更为宽松的开源协议相比,GPL协议选择了对开源的极致追求,而排斥闭源,从而使得GPL协议具有其他协议所不具备的传染能力。假如一个商业闭源项目需要使用一个以GPL协议开源的项目,那么他们就必须开源自己的项目,否则就必须自己重新造轮子或者找其他替代品。GPL协议确保了开发者的工作仅会对开源项目做出贡献。

在当前时代,知识共享是时代的大趋势。版权作为技术知识快速发展的环境下的产物,对于保护作者对于该知识产权的权利起到了非常积极的作用,它使得原作者的权利不会被其他人所侵犯,但同时也不可避免的阻碍了知识共享的过程。为了解决这一问题,Copyleft赋予了其他人与原作者对于该作品几乎等同的权利。我个人认为,Copyright看似来是Copyright的对立面,实则是对Copyright的补充与发展。

由于其极端性,GPL协议不可避免的受到了诸多批评,但我认为,由于作者本身有选择使用何种开源协议的自由,所以如果作者本身愿意自己的作品被闭源项目使用,则可以使用其他相对宽松的开源协议。所以GPL协议本身并不是作品成为”cancer”的原因,GPL仅仅是为作者提供了一种更为极端的开源选择。

References