注:该译文系原样复制于:https://mp.weixin.qq.com/s/dVXyzi2knXonyVuUc_jimg ,译者为卫剑钒。GNU GPL v2.0英文原文见于https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
人话版翻译:卫剑钒 2020.7
【人话版译者序言】
阅读时,你需要一个软件不断流转的概念,就是软件由最初作者写好后,发给了别人,别人又发给了你,你改了改,又发给其他人,所以开源软件有上下游之说,上游把软件分发给你,你又分发给下游,开源软件就是这样不断传播散布开来。
GPL协议只有英文原版才有法律效力,本文看看就好,主要是帮助理解,尤其对新手而言。
1、GPL是FSF制定的,文中的“我们”,指的就是FSF,如果说“我”,有可能是Richard Stallman,也有可能是“本程序”的作者,请根据上下文判断。
2、关于概念,很多人喜欢说“A可不是B”,不过我喜欢说“A就是B”,所以:本文中,“程序”、“软件”、“作品”都是一个东西,“发布”就是“分发”,“授权”就是“许可”,“协议”就是“许可证”,“担保”就是“保证”,“无担保”就是“免责”。
由于说人话,难免会有一些演绎的成分,不会字字句句对应,但总体上是严格对应原文精神的。
GPL 2.0许可证
版本 2, 1991年6月
版权 (C) :1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
你可以复制、发布本许可证,但不能修改本许可证。一个字都不能动。
开场白!
我们设计GPL协议,目的很简单,就是给程序员自由,给用户自由!
我们FSF的软件大都用这个协议,但并不是说只有我们能用,任何人都可以用这个协议!
我们认为,人应该有这样的自由:
每个人都有分发软件的自由,而且可以因此收费。
"译者注:“分发”就是有人把软件卖给你、寄给你、发给你、拷给你、让你下载、帮你安装等等,只要你从他那儿搞到软件,就算他分发给你了。有时候会用“发布”一词,请视为等同。"
"译者注:本文所讲的“程序”、“软件”、“作品”、“东西”、“玩意”,在绝大多数情况下,指的都是一个东西:自由软件,尤指使用GPL的软件。"
每个人有获取源码的自由,软件应该附带源码!
为什么要带源码?因为源码让程序员更自由,源码让用户更自由。
"译者注:如果你搞过开发,你就会懂的。"
每个人有改动源码的自由。 这就好比你买了搭好的乐高积木,却不能拆了重新组装,那多没劲。
每个人都应该知道上面这些理念。所以,本许可证带着这个开场白,而使用GPL的软件,都带着本许可证,就是为了让你看见这些理念。
GPL协议的目的就是要确保做到上面这些。每个分发GPL软件的人,都要按照GPL的要求做。
记住:我们给了你自由,你要把自由再传递给其他人。最基本的就是要把源码公开!
每个人都应该知道,自由软件是不提供任何担保的,也即如果用出什么问题,您自己负责。如果你修改了别人的程序,你要说明你修改了,这样,你带来的bug,不会影响原作者的声誉。
我们绝不允许将自由软件专有化,你如果基于本程序做了修改,并对修改申请了专利,你就要把这个专利让所有人免费使用,要么你就不要发布。
条款和条件
- 先定义一下:如果一个作品包含本程序的全部或者部分,或者是对本程序做了修改,或者将本程序翻译成其他语言,那么,这个作品就是基于本程序的,也称衍生程序或衍生作品。
"译者注:注意,本文中的“本程序”,就是使用了GPL的程序,本程序发布时是带着本许可证的。"
本协议管的是对本程序的复制、修改和分发。其他的事我不管。比如执行本程序是不受限制的,程序的输出也不受限制,除非输出内容的本身就是本程序的衍生作品。
"译者注:事实上,只要你不分发,只是自己用用,都不会管的,比如你可以随便复制1000份放在你的硬盘上,你也可以随便改,只要你不拿出来传播就好。但如果你哪怕只是发给了小伙伴张三,那就要注意了,你要按GPL的要求做,否则就会违规。除非这个小伙伴和你一个公司而你们正在受公司之命使用或修改本程序。"
"译者注:关于程序输出,可以考虑一下这些情景:你使用受GPL保护的软件LibreOffice写了一本书(这就是输出),这本书不受GPL限制;你用Emacs编辑器(GPL的)写了个程序(这就是输出),这个程序不受GPL限制;你用mysql(GPL的)做数据库并搭了个网站,这也不受GPL限制。但如果你用LibreOffice、Emacs编辑的是本程序的源码,或者用mysql数据库存储了本程序的源码并在网站上输出,那就另当别论了,这你懂吧。"
- 如果你要分发的是一字未改的本程序(也就是说这个程序是别人分发给你的),记着必须要在明显的地方,带上本程序的版权声明、免责声明(或称无担保声明)、以及本许可证。而且必须是原封不动的本许可证和免责声明。
"你应该知道为什么带这些吧,前面我已经大致说过了,这里再说一遍:第一,你要给原作者留名,人家写自由软件图啥?至少要给人家个名吧!第二,人家也没有收维保费,不能说有点bug还找人家算账,软件不好使,你们自己想办法。第三,要带上我这个GPL协议,要让所有人知道他的权利和义务,更重要的是,让他们看看我的开场白,理解自由软件的初心。"
你可以因为分发软件的具体行为收成本费。(比如你可以收制作光盘的费用,邮寄的费用,拷贝的费用,但不能收研发费!不能收许可费!不能收专利费!总之,你要知道这是自由软件,你要接受我们的理念,否则你就不要分发。)
你要是能提供维保服务,你可以收维保费。(有些服务商就是靠这个赚钱的,我们允许这种商业行为。)
"译者注:所谓维保,也就是用户软件出故障了,你给人家解决bug,需要版本升级了,你给人家升级,发现安全漏洞了,你给人家补丁,用户不会用了,你给人家培训,这些活,都属于维保。原作者一般是不会干这个的,他更喜欢开发。"
- 如果你要分发的是你修改后的本程序(或曰衍生程序),除了上面第1条的要求外,你还要满足以下条件。
-
a) 对于你修改了的文件,你必须在那个文件上带上明显的修改声明,并附上日期信息。
-
b) 哪怕你的软件有一点点含有或来自我的程序,你分发时,就要按照GPL,授权所有的第三方都可免费使用、复制、修改、再分发你这个软件。
-
c) 如果你修改后的程序在运行时和用户以命令的方式交互,你必须在程序运行的开始,显示版权声明、无担保声明(如果你有担保你就显示担保声明),你要告诉用户分发你程序时的条件,告诉用户如何读取本许可证。但是:如果本程序不显示这些,那你不需要专门改成这样。
"译者注:比如gdb运行时就会出来一堆这些声明。命令式交互并不仅限于“命令行”交互,完全可以是图形界面的命令式交互甚至是音频的交互。"
如果你的作品有一部分可以独立出来,而且这部分完全是你写的(不基于本程序),那你分发这部分的时候,不需要遵守本许可证。
但如果你写的那部分不能独立出来,而是必须要和本程序作为一个整体发布,那就得遵守本规定。
我不是要掠夺你写的那部分程序,我是想让所有基于本程序的软件,都能真正的自由起来!如果你还不明白,再去看看我的开场白。
当然,如果一个程序仅仅是和本作品放在同一张光盘上、同一个U盘上、同一块活动硬盘上,而它本身不基于本程序,我们不会要求该程序遵守GPL的。(我们没有这么变态,也不会有人真以为能这样“传染”吧?!)
- 如果你要分发本程序(或衍生程序)的目标代码或可执行文件,除了满足前面第1条和第2条,还必须满足以下3个选项的其中1个。
-
a) 伴随这个目标代码或可执行文件,你必须提供机器可读的源代码。(也就是说,这个源码不能是图片、照片、打印在纸上的、印刷在书上的,要的是电脑可读的。)而且你要使用拷贝软件常用的方式。(你别给我弄到磁带上、纸带上、稀奇古怪的介质上)总之,别耍花样,老老实实交出源码。
-
b) 或者你可以这样做,你附上一个书面的报价单,让用户想买的时候可以买,有效期至少三年,收费不能超过成本费。(比如收费只是你制作光盘、制作U盘的费用。)
-
c) 或者,如果你只是把你得到的程序又转发给别人,而且并不收钱,那你带上获取源码的信息就可以了(如果是商业行为,你就得给源码,或者弄书面报价单了)。
所谓源代码形式,就是那种最便于修改的形式。对于一个可执行程序,完整的源代码包括其所有模块的源代码、接口定义文件、编译程序的脚本、安装程序的脚本。但不包括内核、编译器这些操作系统主要部件的源码,这不是该你负责的部分,除非你的程序就是干这些事的。
(总之,提供源码就要提供完整的,而且是便于编译的,即便是编程菜鸟,能应该能按照指示,简单几步就能把源码弄成可执行文件,如果你只是扔来一堆源码,而故意隐藏一些信息或制造一些编译上的难度,那只能说你品质低下。)
如果可执行文件(目标代码)的分发是在特定的地点完成的,那么,在同一地点也应该提供对源码的拷贝。当然,来获取可执行文件的人,完全可以选择不要源码,不能强迫非要给人家源码。
- 除了本许可明确允许的方式,你不能复制、修改、分发和再许可本程序。如果你试图干这些事,本许可证授予你的权利将自动终止。但已经从你这里获得了拷贝的人,只要他们遵守规定,他们的授权并不会自动终止。
"译者注:事实上,如果你不分发,只是自己用用,复制、修改的自由还是有的。"
-
你可以不接受本许可证,但不接受你就不能修改和分发本程序(及衍生程序)。所以,你只要干了这些事,就表明你接受了本许可证。
-
每当你发布本程序(或衍生程序)时,收到本程序的人,自动获得本程序原始授权人依本许可证所赋予的权利,你不能添加任何额外的限制。你也不用负责别人是不是按照本许可做。 (译者注:由此可知,一旦一个GPL的程序诞生,它的子子孙孙都会是GPL的。)
-
不管是哪种情况,比如法院判决、专利指控或其他情况,导致你无法遵从本许可证的条件,那也不代表你就可以搞特殊,如果你无法求得两全,那你就只能放弃发布。比如某个专利,要求人们必须付授权费后,才能再次分发,这就和本许可冲突了。为了避免这种问题,你唯一能做的,就是不分发本程序。 (译者注:此即著名的“自由或死亡”条款,“Liberty or Death”)
不管在什么场景下,如果本条款的任何一部分不能执行或者被判定无效,其他部分也是有效的,且条款整体在其他场景下仍是有效的。
本条的目的不是诱使你侵犯专利或知识产权,也不是让你去和别人争执更应该执行谁的条件,本条的唯一目的,就是保护GPL的完整性,而不是让它被支离破碎地执行,正是通过GPL的一致执行,我们的事业才取得了如此显著的成就。
原创作者有权利使用其他协议发布他的作品,任何人不能强迫原创作者必须使用GPL协议。
本条试图彻底解释清楚其他条款所带来的可能后果。
-
如果在某些国家因为专利或版权的问题难以分发,那么版权所有人在分发时,可以对分发的地区加以明确限制,以排除那些国家。在这种情况下,这些限制不认为是对本协议的修改。 (译者注:反正本协议是不允许修改的,这条例外不算修改。)
-
FSF会不定时发布GPL的新版本,精神上应该不会大变,主要是增加一些对新情况的描述。每一版都会有新的版本号,如果一个软件说使用“GPL 2.0 and later version”,这表示你可以用2.0,或者其后的某个版本,如果只说使用GPL 2.0,那就只能用2.0,如果说使用GPL但没有指定版本号,那就可以任意选择一个FSF发布过的版本。
-
如果你希望将本程序的一部分纳入采用其他许可证的自由软件中 (译者注:注意符合自由软件定义的许可证有很多,比如MIT、Apache等都是) ,你要征得本程序作者的书面同意。如果他同意,那就可以。如果本程序的版权归FSF,那你得问我们,一般来说,我们的作品以及衍生作品都必须要用GPL的,但是,我们有时候也同意一些例外。 (译者注:决策权当然是在作者这里的,作者想用什么许可就用什么许可。) 我们的决策主要考虑两个目标,一是保证自由软件的子子孙孙都是自由的,二是促进软件的普遍共享和复用。
无担保声明
-
由于本程序是免费提供的,所以在法律许可范围内,除非有书面说明,本程序是没有担保的。本程序是“AS IS”的,没有任何明示或暗示的保证,比如默认的适销性、适用性这些保证都没有,关于本程序的功能和性能导致的风险都由用户自己承担,本作品的缺陷请你自己想办法搞定,你可以花钱买服务,会有人愿意做这事的。
-
除非是法律要求或者书面同意,否则在任何情况下,本程序的版权所有者、修改本程序的人、重新发布本程序的人,都不会对你的任何损失负责,不管这个损失是一般的还是特殊的,不管是偶然的还是间接的,不管是本程序自己的问题,还是因为你不会用导致的,不管是数据丢失还是数据不准确,不管是你导致的,还是其他人导致的,亦或是本程序和其他程序共同导致的。即便版权所有者或修改人已经被告知有危险,他们也不会对此负责。总之一句话,我不负责。
条件和条款就这么多了!
你的新程序如何使用本许可证?
如果你开发了一个新程序,并且想最大程度造福人类,我向你保证,最好的办法就是使用我们的GPL,把它变成自由软件,让任何人都可以修改它、分发它。
如何使用GPL?最好把下面这段话放在程序的头部,以便最有效地传达免责声明。
至少也应该写一行版权,然后给出一个链接,指向完整的许可证。
[你程序的名字,你程序的用途,注意最好一行搞定。]
Copyright (C) 年份, 作者名字
本程序是一个自由软件,你可以重新分发它,可以修改它,但要遵守GPL 2.0版本或者后续其他版本。
我们希望本程序是有用的,但是我们不保证它能用,不保证它好用,我们不提供任何保证。
更多请见GPL全文,如果理解不了,找人话版看看。
按道理你在得到本软件时,应该已经得到一份GPL,如果你没找到,写信给自由软件基金会(FSF):
51 Franklin Street, Fifth Floor, Boston, MA 02110‐1301, USA
然后在文件头部附上你的电子邮件地址和纸质件邮寄地址。
如果你的程序是交互式的(用户可以输入指令并得到反应 ),那么,请在交互式运行的一开始,输出版权、免责及许可信息,下面是个例子:
Gnomovision v69,版权 (c) 1988 steven
Gnomovision没有任何保证,了解更多请输入’show w'。
这是一个自由软件,欢迎再次分发本程序,但要满足一定条件,欲知详情请输入’show c'。
这里的'show w’和’show c’只是例子,你可以用别的指令,还可以是鼠标点击或菜单选择,只要显示GPL的相应条款即可。
若你是在工作场景下写的这程序,如果必要,你可能需要让你的公司或学校(译者注:你知道学校里的学生有时就像雇员),签署一个“版权放弃书”。
范例如下,修改其中的名字即可:
Yoyodyne公司声明放弃James Hacker所写的’Gnomovision'程序的版权权益。
Ty Coon签字,1989年4月1日
Ty Coon公司,副总裁
我们不允许一个GPL的程序集成到私有程序(或称专有软件)中。如果你的程序是一个函数库,而且你认为让私有程序链接这个库更有利于自由的力量,那你可以使用LGPL,而不是GPL。
全文结束