2017-09-03GNU真相

GPL协议大剖析——GPL就是给软件开发者们准备的坑

引言:

最新版的GPL协议在官方网站挂了10年了,但并没有产生多大的影响力。懂法律的人都知道,法律是绝大多数人基于公平正义的原则产生的。一个由少数“理想主义者”炮制出来的、不被广大开发者认可的GPL协议,却在其条文中主动反对专利法、反破解法,那么它怎么可能拥有崇高的法律地位,又如何服众?

近来细读了一下GPL协议中文版,发现它满是针对开发者的霸王条款,分不清开源的主方(开发者)和客方(用户),一个劲的强调用户自由自由自由,浅一看,挺美好,挺蛊惑人心,但只要仔细想想,这个只为用户着想的协议,本身前提就搞错了。没有开发者的代码,哪里来用户的自由?没有父母的养育,哪里来孩子的自由?让开发者去接受GPL协议,打个不恰当的比方说,就像让一个女人脱了裤子说“处男们的自由是最重要的,我不应该封闭自己的身体,来,共享我吧,自由万岁!”

GPL通篇都是一小撮人的一厢情愿,充满自相矛盾的表述,一会儿说所谓自由非免费,一会儿又说开源必须免费,真不知道经历了多少次内斗才形成这么一个文本!这么多年PC端、移动端、客户端、服务器端应用程序红红火火地一阵又一阵子,开发者们都不鸟它,说明什么?说明变态受虐狂还是少数嘛!……真搞不懂怎么会有商业公司会跳这个坑,要知道,在市场竞争中真要恪守GPL规则要么必死无疑要么半死不活!Linux的生态差及其诸多后果——例如Linux桌面难用等,也跟GPL有很大的关系。

小衲多次批判极左GPL并不代表我会赞同无良微软公司那样处处收费处处限制的做法。从开发者的正常生存权角度出发,除了极少数抢占了先机的个人(Linus)或公司(Redhat)以外,GPL(和所有其他开源许可证)显然不能满足广大码农们的生存权利,哪怕是最最基本的生存权。

码代码是非常辛苦的活动,有时甚至可以用呕心沥血、鞠躬尽瘁来形容,在这种情况下正当权益还要被GPL剥夺,不是作死吗?

原GPL协议参看GNU官方链接的peterrk的简体中文版本

GNU通用公共许可协议【分析批判文字已用黄底楷体字注明,修正翻译部分用红字注明

第三版,2007年6月29日
版权所有 © 2007 自由软件基金会 <http://fsf.org/>
任何人皆可复制和发布本协议的完整副本,但不得修改

【引言】

GNU通用公共许可协议是一份面向软件及其他类型作品的,自由的版权共产协议共产”这个词在这里翻译的非常靠谱,真正做到了信达雅。Copyleft就是版权共产,其他的“左版”、“版左”、“对称版权”、“反版权”、“版权所无”的翻译都很古怪。不过GNU斗士们并不领情,他们知道“共产”的名声很臭,所以竭力要跟“共产”撇清关系。就算他们明白自由总是跟私有制联系在一起的,就算他们听说GNU运动二号人物Moglen写过一篇叫《网络共产党宣言》的奇文,他们也要给自己贴稳“自由斗士”的虚假标签。

就多数软件而言,许可协议被设计用于剥夺你分享和修改软件的自由这里的“你”指的是开源的客方也就是用户。本文有多处“你”,一会儿指开源主方即开发者,一会儿又指开源客方即用户。针对开发者的限制很多——如果是初始开发者,不能多层收费;如果是下游开发者,不能闭源;如果是发布二进制包,必须无条件公开源代码并且免费;如果发布了GPL软件后反悔,你不能逐一追回,只能任由其像病毒一样扩散;如果开发者想通过其他条款来限制GPL,没门;如果开发者想搞专利,滚蛋!——针对用户却非常宽宏,整个GPL的目的就是确保开源受体用户绝对的自由。相反,GNU通用公共许可协议力图保障你分享和修改某程序全部版本的权利——确保自由软件对其用户来说是自由的说的明明白白,GPL协议长篇大论,目的就一个——“确保用户自由”,而且这个自由是绝对的自由。至于开发者的权利呢?就一条——申明版权,然而这个版权只是个虚名而已。我们自由软件基金会将GNU通用公共许可协议用于我们的大多数软件,并为一些其他作品的作者效仿。你也可以将本协议用于你的程序。

所谓自由软件,强调自由,而非免费这样的强调,只能暂时安慰一下开发者,后面有一些条文表明这个“自由”恰恰必须以免费为前提。结合GNU教头Stallman的经历和著作来看,他痛恨商业社会的一切,这个“非免费”不是“收费”,而是“不止免费”的意思。。本GNU通用公共许可协议设计用于确保你享有分发自由软件的自由(你可以为此服务收费)这个“你”是分发自由软件的用户,但说到“为此服务收费”,貌似又在说开发者。莫非拥有副本的下游分发者也可以随便收费???,确保你可以在需要的时候获得这些软件的源码,确保你可以修改这些软件或者在新的自由软件中复用其中某些片段,并且确保你在这方面享有知情权确保开源受体用户们享有非常多的自由

为保障你的权益,我们需要作一些限定:禁止任何人否认你的上述权利,或者要求你放弃它们。因此,当你分发或修改这些软件时,你有一定的责任——尊重他人的自由没人能侵犯你的自由,你也不能侵犯别人的自由,自由就是一切。。如果你分发这种程序的副本,无论收费还是免费,你必须给予与你同等的权利用户享有跟开发者同等的权力。这就是说病人可以跟医生共同操刀,学生也可以跟老师一起讲课。荒唐可笑。。你还要确保他们也能收到源码并了解他们的权利。

采用GNU通用公共许可协议的开发者通过两步保障你的权益:其一,申明软件的版权;其二,通过本协议使你可以合法地复制、分发和修改该软件这是全文唯一说到保障源码和程序主开发者权益的地方,然而还是那么混乱,第一条说的是开发者的虚权——申明版权,第二条说的却是程序受体即用户的“复制、分发、修改”的权利。总之,GPL就是拧不清谁是开源的授方和受方。

为了保护每一位作者和开发者,GNU通用公共许可协议指明一点:自由软件并没有品质担保。为用户和作者双方着想,GNU通用公共许可协议要求修改版必须有标记,以免其问题被错误地归到先前版本的作者身上这条算是为开发者赦免的条款。如果没有这一条,那真的是逆天了!如果用户不仅可以全盘免费拿走开发者绞尽脑汁设计开发的东西,还要求开发者为其中的bug负责,那还不如做牛做马呢。

某些设备设计成拒绝用户安装运行修改过的软件,但厂商不受限。这和我们保护用户享有修改软件的自由的宗旨存在根本性矛盾一切一切的宗旨:保护用户自由。该滥用协议的模式出现于个人用品领域,这恰是最不可接受的开始怼闭源软件的商家了。这里说就是GNU的死敌——制造个人操作系统的的微软。微软所有产品不许用户擅自修改运行。。因此,我们设计了这版GNU通用公共许可协议来禁止这类产品。如果此类问题在其他领域涌现,我们时刻准备着在将来的版本中把规定扩展到相应领域,以保护用户的自由表示时刻准备着跟微软的同类——闭源专有软件厂商斗争到底!这样的话语出现在协议中是不是有些欠妥?

最后,每个程序都持续受到软件专利的威胁。政府不应该允许专利限制通用计算机软件的开发和应用,在做不到这点时,我们希望避免专利应用有效地使自由软件私有化的危险。就此,GNU通用公共许可协议保证专利不能使程序非自由化这一段就非常厉害了,怼的竟然是政府和《专利法》,在GPL里出现这样的文字,只会降低GPL的威信。

下文是关于复制、分发和修改的严谨描述和实施条件。

【关于复制、分发和修改的术语和条件】

〇、定义

“本协议”指GNU通用公共许可协议第三版。

“版权”也指适用于诸如半导体掩模的其他类型作品的类似法律。

“本程序”指任何在本协议保护下的有版权的作品。每个许可获得者称作“你”许可获得者就是用户,作为用户的“你”可以在本许可的保护下获得极大的自由。。“许可获得者”和“接收者”可以是个人或组织。

“修改”一个作品指需要版权许可的复制及对作品全面的或部分的改编行为,有别于制作副本。所产生的作品称作前作的“修改版”,或“基于”前作的作品。

“受保护作品”指程序或其派生作品这个“受保护作品”在Bergwolf最初的版本里被错误地翻译为“覆盖作品”。“受保护作品”是这个协议里经常出现的概念,指的是当前添加了GPL许可证文档的受GPL许可保护的作品。我在这句话里加上了一个“本”字(用红字标注),其定义变得很明晰。英文原文:A “covered work” means either the unmodified Program or a work based on the Program. 这里的the Program指的的就是“本程序”

传播扩散”作品指那些未经许可就会在适用版权法律下构成直接或间接侵权的行为,不包括在计算机上运行和私下的修改。传播包括复制、分发(无论修改与否)、向公众公开,以及在某些国家的其他行为。因为是侵权行为,我觉得翻译为“扩散”可能更为准确。传播是个偏褒义词。扩散是中性词。

“转发”作品指让他方能够制作或者接收副本的行为转发”这个词真有意思!市场社会无时时刻不存在的商品交换销售行为在GPL里竟然变成了跟金钱无关的“转发”,呵呵了。“扩散”和“转发”分的非常清楚,扩散是公开的一对N行为,转发是私下的一对一行为。假如说中标麒麟的公司人员通过修改GPL软件为客户解决了一个问题,那么中标麒麟必须乖乖的给客户交出所有代码。这很可笑,实际上这种事情私下里不太可能发生。只要软件能为用户解决问题,谁会刻意要源代码?以为谁都是当年问打印机厂商要源代码碰壁无数次的斯托曼大怪才吗?能看懂源代码,谁还请你中标麒麟公司做事?。仅仅通过计算机网络和用户交互,没有传输副本,则不算转发也就是说用网页展示代码不算转发,只有复制到对方硬盘才算转发。

一个显示“适当的法律声明”的交互式用户界面应包括一个便捷而醒目的可视化特性:(1)显示适当的版权声明;(2)告知用户没有品质担保(提供了品质担保的情况除外),许可获得者可以在本协议约束下转发该作品,及查看本协议副本的途径。如果该界面提供一个命令列表,如菜单,其表项应符合上述规范。

一、源码

作品的源码指其可修改的首选形式,目标码指所有其他形式结果码指的是作品的非源码形式我认为“Object code”应该翻译成“结果码”才对。原文“Object code” means any non-source form of a work. 应该翻译成“结果码指作品的非源码形式”。结果码是什么?打个比方说用vb.net做的程序,那个exe程序就是结果码,vb.net代码就是源码。exe程序其实也是“code”(码),不过是二进制的。

“标准接口”指标准化组织定义的官方标准中的接口,或针为某种编程语言设定的接口中为开发者广泛使用的接口。

可执行作品中的“系统库”不是指整个程序,而是涵盖此等内容:(a)以通常形式和主部件打包到一起却并非后者一部分,且(b)仅为和主部件一起使作品可用或实现某些已有公开实现源码的接口。“主部件”在这里指可执行作品运行依赖的操作系统(如果存在)的必要部件(内核、窗口系统等),生成该作品的编译器,或运行所需的目标码结果码解释器。

目标码结果码形式的作品中“相应的源码”指所有修改作品及生成、安装、运行(对可执行作品而言)目标码结果码所需的源码,包括控制上述行为的脚本。可是,其中不包括系统库、通用工具、未修改直接用于支持上述行为却不是该作品一部分的通常可得的自由软件。例如,相应的源码包含配合作品源文件的接口定义,以及共享库和作品专门依赖的动态链接子程序的源码。这里的依赖体现为频密的数据交换或者该子程序和作品其他部分的控制流切换这两段话限制了“源码”的范围,比如vb.net做的程序的源码的提供者不必提供Microsoft Visual Studio这个IDE的源代码。要不然算什么?难道开源还要连坐???
相应的源码不必包含那些用户可以通过源码其他部分自动生成的内容。

源码形式作品的相应源码即其本身。

二、基本许可

本协议的一切授权都是对本程序的版权而言的,并且在所述条件都满足时不可撤销。本协议明确批准你不受限制地运行本程序的未修改版本。受保护作品的运行输出,仅当其内容构成一个受保护作品时,才会为本协议所约束这句话的意思很模糊。用Inkscape做的图形到底是不必受约束不必开源,还是必须受约束必须开源?相当晦涩难懂啊!我认为这种晦涩的废话应该从GPL协议中删掉。英文原文:The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work.。如版权法所赋予,本协议承认你正当使用或与之等价的权利。

只要你获得的许可仍有效,你可以制作、运行和传播扩散那些你并不转发的受保护作品。只要你遵守本协议中关于转发你不占有版权的材料的条款,你可以向他人转发,仅仅以求对方为你做定制或向你提供运行这些作品的工具既然都允许随意扩散了,在这里添加关于“转发”的条文纯粹是多此一举。】。那些为你制作或运行这些受保护作品的人,应该在你的指引和控制下,谨代表你工作,即禁止他们在双方关系之外制作任何你提供的受版权保护材料副本【意思是如果你要请码农做一个GPL作品,码农是没有传播权的,只有你才能决定。】。

仅当满足后文所述条件时,其他各种情况下的转发才是允许的。不允许再授权行为,而第十条的存在使再授权变得没有必要。

三、保护用户的合法权益免受反破解法限制

在任何满足1996年12月20日通过的WIPO版权条约第11章要求的法律,或类似的禁止或限制技术手段破解的法律下,受保护作品不应该视为有效技术手段的一部分。怼成文法啦!GPL反对反破解法。开发者做的东西必须免破解就能随意使用。

当你转发一个受保护作品时,你将失去任何通过法律途径限制技术手段破解的权力,乃至于通过行使本协议所予权利实现的破解。你即已表明无心通过限制用户操作或修改受保护作品来确保你或第三方关于禁止技术手段破解的法定权利。 怼成文法啦!GPL反对反破解法。开发者做的东西必须免破解就能随意使用。

四、转发完整副本

你可以通过任何媒介发布你接收到的本程序的完整源码副本,但要做到:为每一个副本醒目而恰当地发布版权声明翻译掉了两个字“声明”;完整地保留关于本协议及按第七条加入的非许可性条款;完整地保留免责声明;给接收者附上一份本协议的副本。

你可以免费或收费转发难道非初始开发者对完整副本也可以有收费的权力??GPL协议中的“你”真的是指代不清!,也可以选择提供技术支持或品质担保以换取收入全篇协议唯一一处让码农欣慰的地方。以后只要你提供的东西或服务能够提供品质保证,就可以光明正大的收费了,就不要再可怜巴巴的乞求捐赠了!

五、转发修改过的源码版本

你可以以源码形式转发基于本程序的作品或修改的内容,除满足第四条外还需要满足以下几点要求:

a)该作品必须带有醒目的修改声明及相应的日期。

b)该作品必须带有醒目的声明,指出其在本协议及任何符合第七条的附加条件下发布。这个要求修正了第四条关于“完整保留”的内容。

c)你必须按照本协议将该作品整体向想要获得许可的人授权意思是说改过的源码如果扩散或转发了也必须遵循GPL协议,GPL是有传染性的。,本协议及符合第七条的附加条款就此适用于整个作品,即其每一部分,不管如何建包。本协议不允许以其他形式授权该作品,但如果你收到别的许可则另当别论。

d)如果该作品有交互式用户界面,则其必须显示适当的法律声明。然而,当本程序有交互式用户界面却不显示适当的法律声明时,你的作品也不必。

一个在存储或分发媒介上的受保护作品和其他分离的单体作品的联合作品,在既不是该受保护作品的自然扩展,也不以构筑更大的程序为目的,并且自身及其产生的版权并非用于限制单体作品给予联合作品用户的访问及其他合法权利时,称为“聚合体”。在聚合作品中包含受保护作品并不会使本协议影响聚合作品的其他部分。

六、以非源码形式转发GPL对非源码形式的东西(如二进制exe包)着墨颇多,对其有大量苛刻的限制,有仇恨才有动力嘛

你可以如第四条和第五条所述那样以目标码结果码形式转发受保护作品,同时在本协议规范下以如下方式之一转发机器可读的对应源码:

a)目标码结果码通过实体产品(涵盖某种实体分发媒介)转发时实体包括cdftp,通过常用于软件交换的耐用型实体媒介随同转发相应的源码也就是说发布二进制软件必须随付源码,这样看来,那些不发布源码的发行版都没有遵守GPL原则。上了革命派的船,你就不要做机会主义者的美梦啦。

b)目标码结果码通过实体产品(涵盖某种实体分发媒介)转发时,伴以具有至少三年且与售后服务用户技术支持等长有效期的书面承诺,给予目标码结果码的持有者(1)包含产品全部软件的相应源码的常用于软件交换的耐用型实体媒介,且收费不超过其合理的转发物理成本,或者(2)通过网络免费获得相应源码的途径这是GPL协议针对开发者的最刺眼的霸王条款:发布二进制发行版的时候不仅不要提供所有源码,而且要提供三年后期服务且提供书面承诺,如果是CD的话,只能收取CD光盘成本费,如果是网络的话,必须免费!不过好在这一项是可选的,估计也没谁敢选它。

c)单独转发目标码结果码时,伴以提供源码的书面承诺。本选项仅在你收到目标码结果码及b项形式的承诺的情况下可选原来,苛刻的b条款是为了c条款准备的。

d)通过在指定地点提供目标码结果码获取服务(无论是否收费)的形式转发目标码结果码时,在同一地点以同样的方式提供对等的源码获取服务,并不得额外收费也就是说二进制包可以收费,源码不能收费。这是为同行(英文counterpart冤家)大开方便之门啊。有了免费的源码,二进制包继续收费有什么意义?。你不以无须要求接收者在复制目标码结果码的同时复制源码。如果提供目标码结果码复制的地点为网络服务器,相应的源码可以提供在另一个支持相同复制功能的服务器上(由你或者第三方运营),不过你要在目标码结果码处指出相应源码的确切路径。不管你用什么源码服务器,你有义务要确保持续可用以满足这些要求这里的“义务”是对拥有源码的开发者说的。这是本协议唯一明确说到“义务”的地方,却是针对开发者说的。呵呵!

e)通过点对点传输转发目标码结果码时,告知其他节点目标码结果码和源码在何处以d项形式向大众免费提供。

“面向用户的产品”指(1)“消费品”,即个人、家庭或日常用途的个人有形财产;或者(2)面向社会团体设计或销售,却落入居家之物。在判断一款产品是否消费品时,争议案例的判断将向利于扩大保护靠拢。就特定用户接收到特定产品而言,“正常使用”指对此类产品的典型或一般使用,不管该用户的身份,该用户对该产品的实际用法,以及该产品的预期用法。无论产品是否实质上具有商业上的,工业上的,及非面向消费者的用法,它都视为消费品,除非以上用法代表了它唯一的重要使用模式。

“安装信息”对面向用户的产品而言,指基于修改过的源码安装运行该产品中的受保护作品的修改版所需的方法、流程、认证码及其他信息。这些信息必须足以保证修改过的目标码结果码不会仅仅因为被修改过而不能继续工作这段话是什么意思,下载过windows程序注册机的人都知道。我们安装windows程序的时候经常发现不能提供正确的注册码或者无法破解注册功能,就无法继续使用软件。GPL炮制者对这种现象是看在眼里恨在心里,化成了这一段GPL条文。

如果你根据本条在,或随,或针对一款面向用户的产品,以目标码结果码形式转发某作品,且转发体现于该产品的所有权和使用权永久或者在一定时期内转让予接收者的过程(无论其有何特点),根据本条进行的源码转发必须伴有安装信息。不过,如果你和第三方都没有保留在该产品上安装修改后的目标码结果码的能力(如作品安装在ROM上),这项要求不成立。

要求提供安装信息并不要求为修改或安装的作品,以及其载体产品继续提供技术支持、品质担保和升级。当修改本身对网络运行有实质上的负面影响,或违背了网络通信协议和规则时,可以拒绝其联网。

根据本条发布的源码及安装信息,必须以公共的文件格式(并且存在可用的空开源码的处理工具)存在,同时不得对解压、阅读和复制设置任何密码为用户解除一切限制。反正能证明开发者实质所有权的“障碍”都要清除。

七、附加条款这一条的用意是为了限制附加条款的权力,保证GPL的权力。

“附加许可”用于补充本协议,以允许一些例外情况。合乎适用法律的对整个程序适用的附加许可,应该被视为本协议包含的内容视为被本协议所包含。如果附加许可作用于程序的某部分,则该部分受此附加许可约束,而其他部分不受其影响。附加条款要么被本GPL协议所包含,要么就平行。总之GPL的权力不能被缩小。

当你转发本程序时,你可以选择性删除副本或其部分的附加条款。(附加条款可以写明在某些情况下要求你修改时删除该条款。)在你拥有或可授予恰当版权许可的受保护作品中,你可以在你添加的材料上附加许可。

尽管已存在本协议的其他条款,对你添加到受保护作品的材料,你可以(如果你获得该材料版权持有人的授权如果你已从该材料版权持有人那里获得授权)以如下条款补充本协议:

a)表示不提供品质担保或有超出十五、十六条的责任。

b)要求在此材料中或在适当的法律声明中保留特定的合理法律声明或创作印记。

c)禁止误传材料的起源,或要求合理标示修改以别于原版。

d)限制以宣传为目的使用该材料的作者或授权人的名号。

e)降低约束以便赋予在商标法下使用商品名、商品标识及服务标识。

f)要求任何转发该材料(或其修改版)并对接收者提供契约性责任许诺的人,保证这种许诺不会给作者或授权人带来连带责任。

此外的非许可性附加条款都被视作第十条所说的“进一步的限制”。如果你接收到的程序或其部分,声称受本协议约束,却补充了这种进一步的限制条款,你可以去掉它们一旦有限制条款,就要求去掉或移除,总之要保证用户的自由是绝对无限制的。。如果某许可协议包含进一步的限制条款,但允许通过本协议再授权或转发,你可以通过本协议再授权或转发加入了受前协议管理的材料,不过要同时移除上述条款一旦有限制条款,就要求去掉或移除,总之要保证用户的自由是绝对无限制的。

如果你根据本条向受保护作品添加了调控,你必须在相关的源文件中加入对应的声明,或者指出哪里可以找到它们调控是绝对不能有的,有就给我指出来!GPL怎么可能会放过它?

附加条款,不管是许可性的还是非许可性的,可以以独立的书面协议出现,也可以声明为例外情况,两种做法都可以实现上述要求。

八、终止授权

除非在本协议明确授权下,你不得传播或修改受保护作品。其他任何传播或修改受保护作品的企图都是无效的,并将自动中止你通过本协议获得的权利(包括第十一条第3段中提到的专利授权)。

然而,当你不再违反本协议时,你从特定版权持有人处获得的授权恢复:(1)暂时恢复,直到版权持有人明确终止;(2)永久恢复,如果版权持有人没能在60天内以合理的方式指出你的侵权行为。

再者,如果你第一次收到了特定版权持有人关于你违反本协议(对任意作品)的通告,且在收到通告后30天内改正,那你可以继续享有此授权。

当你享有的权利如本条所述被中止时,已经从你那根据本协议获得授权的他方的权利不会因此中止也就是说,你传播了某个开源软件收到警告之后,其他人不会受到影响,GPL“病毒”一旦开始传播,就停不下来滴!。在你的权利恢复之前,你没有资格凭第十条获得同一材料的授权。

九、持有副本无需接受协议修改然后传播副本的行为才要接受本协议

你不必为接收或运行本程序而接受本协议。类似的,仅仅因点对点传输接收到副本引发的对受保护作品的辅助性传播,并不要求接受本协议。但是,除本协议外没有什么可以授权你传播或修改任何受保护作品。如果你不接受本协议,这些行为就侵犯了版权。因此,一旦修改和传播一个受保护作品,就表明你接受本协议也就是说修改之后公布的作品必须遵守这个GPL协议,将所有源代码公开,保证用户修改和分享的绝对自由。

十、对下游接收者的自动授权

每当你转发一个受保护作品,其接收者自动获得来自初始授权人的授权,依照本协议可以运行、修改和传播此作。你没有要求第三方遵守该协议的义务。

“实体事务”指转移一个组织的控制权或全部资产、或拆分或合并组织的事务。如果实体事务导致一个受保护作品的传播,则事务中各收到作品副本方,都有获得前利益相关者享有或可以如前段所述提供的对该作品的任何授权,以及从前利益相关者处获得并拥有相应的源码的权利,如果前利益相关者享有或可以通过合理的努力获得此源码。

你不可以对本协议所授权利的行使施以进一步的限制这个“进一步的限制”英文原文是“further restrictions ”,应该翻译成“更远一层的限制”比较恰当,因为“进一步”这个词在简体中文里通常意思是“程度、力度更进一步”的意思,而在这里的意思是层级更近一步。。例如,你不可以索要授权费或版税,或就行使本协议所授权利征收其他费用GPL的意思是一旦第一次对自由软件进行收费,就不能重复收费。然而,就算第一次可以收费,随后永远禁止收费,仍然是对开发者正当权益的轻视和剥夺!打个比方说,你花了一年做了一套有用的软件初次开源仅收费800元,然后就再也不能收费了,为了生存你还要继续绞尽脑汁开发软件,可是别人开发相同的软件,一年可以赚80万元,你是什么滋味?一个贫穷的、被物欲世界鄙视的教徒真的一点痛感也没有吗?如果你这样的高手也这样贫穷,那我们和我们的下一代为什么还要勤奋的学习知识和技术、企图成为你这样的高手?;你也不能发起诉讼(包括交互诉讼和反诉),宣称制作、使用、零售、批发、引进本程序或其部分的行为侵犯了任何专利。

十一、专利对专利的着墨也是颇多,因为专利是GPL的敌人

“贡献人”指通过本协议对本程序或其派生作品进行使用认证的版权持有人。授权作品成为贡献人的“贡献者版”。

贡献人的“实质专利权限”指其拥有或掌控的,无论是已获得的还是将获得的全部专利权限中,可能被通过某种本协议允许的方式制作、使用或销售其贡献者版作品的行为侵犯的部分,不包括仅有修改其贡献者版作品才构成侵犯的部分。“掌控”所指包括享有和本协议相一致的专利再授权的权利。

每位贡献人皆其就实质专利权限,授予你一份全球有效的免版税的非独占专利许可,以制作、使用、零售、批发、引进,及运行、修改、传播其贡献者版的内容。

在以下三段中,“专利许可”指通过任何方式明确表达的不行使专利权(如对使用专利的明确许可和不起诉专利侵权的契约)的协议或承诺。对某方“授予”专利许可,指这种不对其行使专利权的协议或承诺。

如果你转发的受保护作品已知依赖于某专利,而其相应的源码并不是任何人都能根据本协议从网上或其他地方免费获得,那你必须(1)以上述方式提供相应的源码;或者(2)放弃从该程序的专利许可中获得利益;或者(3)以某种和本协议相一致的方式将专利许可扩展到下游接收者3条的意思是:专利一旦碰上GPL,就必须服从GPL的威严。“已知依赖于”指你实际上知道若没有专利许可,你在某国家转发受保护作品的行为,或者接收者在某国家使用受保护作品的行为,会侵犯一项或多项该国认定的专利,而这些专利你有理由相信它们的有效性。

如果根据一项事务或安排,抑或与之相关,你转发某受保护作品,或通过促成其转手以实现传播,并且该作品的接收方授予专利许可,以使指可以使用、传播、修改或转发该作品的特定副本,则此等专利许可将自动延伸及每一个收到该作品或其派生作品的人。

如果某专利在其涵盖范围内,不包含本协议专门赋予的一项或多项权利,禁止行使它们或以不行使它们为前提,则该专利是“歧视性”的。如果你和软件发布行业的第三方有合作,合作要求你就转发受保护作品的情况向其付费,并授予作品接收方歧视性专利,而且该专利(a)与你转发的副本(或在此基础上制作的副本)有关,或针对包含该受保护作品的产品或联合作品,你不得转发本程序,除非参加此项合作或取得该专利早于2007年3月28日这段话的意思:想要专利限制GPL,滚蛋!

本协议的任何部分不应被解释成在排斥或限制任何暗含的授权,或者其他在适用法律下对抗侵权的措施。

十二、不得牺牲他人的自由

即便你面临与本协议条款冲突的条件(来自于法庭要求、协议或其他),那也不能成为你违背本协议的理由。倘若你不能在转发受保护作品时同时满足本协议和其他文件的要求,你就不能转发本程序。例如,当你同意了某些要求你就再转发问题向你的转发对象收取版税的条款时,唯一能同时满足它和本协议要求的做法便是不转发本程序宁要自由,不要给钱。呵呵

十三、和GNU Affero通用公共许可协议一起使用

尽管已存在本协议的一些条款,你可以将任何受保护作品与以GNU Affero通用公共许可协议管理的作品关联或组合成一个联合作品,并转发。本协议对其中的受保护作品部分仍然有效,但GNU Affero通用公共许可协议第十三条的关于网络交互的特别要求适用于整个联合作品。

十四、本协议的修订版

自由软件联盟可能会不定时发布GNU通用公共许可协议的修订版或新版。新版将秉承当前版本的精神,但对问题或事项的描述细节不尽相同。

每一版都会有不同的版本号,如果本程序指定其使用的GNU通用公共许可协议的版本“或任何更新的版本”,你可以选择遵守该版本或者任何更新的版本的条款。如果本程序没有指定协议版本,你可以选用自由软件联盟发布的任意版本的GNU通用公共许可协议。

如果本程序指定代理来决定将来那个GNU通用公共许可协议版本适用,则该代理的公开声明将指导你选择协议版本。

新的版本可能会给予你额外或不同的许可。但是,任何作者或版权持有人的义务,不会因为你选择新的版本而增加。

十五、不提供品质担保

本程序在适用法律范围内不提供品质担保。除非另作书面声明,版权持有人及其他程序提供者“概”不提供任何显式或隐式的品质担保,品质担保所指包括而不仅限于有经济价值和适合特定用途的保证。全部风险,如程序的质量和性能问题,皆由你承担。若程序出现缺陷,你将承担所有必要的修复和更正服务的费用。这段话里多次出现“你”,是本协议里“你”指代不清的典型例子。结合上下文分析,这个“你”既可能指放入这个协议然后分发程序的开发者和修改者,又可能指接收程序和协议副本的用户。但从上面的第四条的叙述来看,这个需要自己承担程序风险的人很有可能是后者,另外,用正常人的逻辑(非本协议体现的偏向)来分析,也不可能是开发者和修改者。不得不说这样的条款是明智的,如果开发者辛辛苦苦做出来一个免费产品,公开了源代码,还要提供品质担保,那真是比做牛做马还不如了。

十六、责任范围

除非适用法律或书面协议要求,任何版权持有人或本程序按本协议可能存在的第三方修改和再发布者,都不对你的损失负有责任,包括由于使用或者不能使用本程序造成的任何一般的、特殊的、偶发的或重大的损失(包括而不仅限于数据丢失、数据失真、你或第三方的后续损失、其他程序无法与本程序协同运作),即使那些人声称会对此负责。这段话有点法理精神。用了GPL开源自由软件就算出现数据丢失,也不要怪罪于软件开发者。换句话说,看不懂源代码、付不起责,要GPL许可干嘛??

十七、第十五条和第十六条的解释

如果上述免责声明和责任范围声明不为地方法律所支持,上诉法庭应采用与之最接近的关于放弃本程序相关民事责任的地方法律,除非本程序附带收费的品质担保或责任许诺。 开发者一旦收费,就必须提供责任担保。这个算是合理的。

【附录:如何将上述条款应用到你的新程序】

如果你开发了一个新程序,并希望它能最大限度地为公众所使用,最好的办法是将其作为自由软件,以使每个人都能在本协议约束下对其再发布及修改。

为此,请在附上以下声明。最安全的做法是将其附在每份源码的开头,以便于最有效地传递免责信息。同时,每个文件至少包含一处“版权”声明和一个协议全文的链接。

<用一行来标明程序名及其作用>
版权所有(C)<年份> <作者姓名>
本程序为自由软件,在自由软件联盟发布的GNU通用公共许可协议的约束下,你可以对其进行再发布及修改。协议版本为第三版或(随你)更新的版本。
我们希望发布的这款程序有用,但不保证,甚至不保证它有经济价值和适合特定用途。详情参见GNU通用公共许可协议。
你理当已收到一份GNU通用公共许可协议的副本,如果没有,请查阅<http://www.gnu.org/licenses/>

同时提供你的电子邮件地址或传统的邮件联系方式。

如果该程序是交互式的,让它在交互模式下输出类似下面的一段声明:

<程序名> 第69版,版权所有(C)<年份> <作者姓名>
本程序从未提供品质担保,输入'show w'可查看详情。这是款自由软件,欢迎你在满足一定条件后对其再发布,输入'show c'可查看详情。

例子中的命令'show w'和'show c'应用于显示GNU通用公共许可协议相应的部分。当然你也可以因地制宜地选用别的方式,对图形界面程序可以用“关于”菜单。

如果你之上存在雇主(你是码农)或校方,你还应当让他们在必要时为此程序签署放弃版权声明。详情参见<http://www.gnu.org/licenses/>。

本GNU通用公共许可协议不允许把你的程序并入私有程序。如果你的程序是某种库,且你想允许它被私有程序链接而使之更有用,请使用GNU较宽松通用公共许可协议。决定前请先查阅<http://www.gnu.org/philosophy/why-not-lgpl.html>。

翻译:阮坤良<peterrk@pku.edu.cn>

参考:[繁体中文译本] https://www.gnu.org/licenses/translations.html

原GPL协议中文版参看GNU官方推荐的peterrk版本





8 Responses

  1. admin说道:

    真相1:GPL的主要起草人Eben Moglen正是《网络共产党宣言》的作者。GPL协议显示着共产主义野蛮的一面———对劳动成果“分娩者”的正当权利相当藐视。
    真相2:你以为你是开发者?其实你只是用户。当你使用Blender的时候,就算你自诩是这样那样的开发者,你也只是一个普通的用户,因为你并没有参与Blender的开发。本文所说的开发者是指开源代码的第一作者,是为开源代码付出了艰辛开发成本的那个(些)人。

  2. Summer说道:

    代码的用户不是开发者难道是用户?

    • admin说道:

      挂个开发者的名头,其实只是软件的普通用户,就像很多使用VS Code的开发者都不是VS Code的开发者,而都只能算VS Code软件的用户一样。

      本文所说的开发者不是使用他人代码的用户,而是遵循GPL协议已经开源了软件代码的开发者。搞清了这个前提,才能理会本文的意思。

  3. 陈兴友说道:

    6b: 误读了,原文的意思是对于装入硬件的目标码,提供至少三年的源码访问渠道,并且如果继续为硬件提供后续备件或客户服务,也要在周期内继续提供源码访问。这里约束的是,在产品的生命周期(上市、维护)内,用户应该能够随时获得源码,不是要求提供三年以上客户服务。

    • admin说道:

      GPL到底有多大意义,经济学家薛兆丰一语道破天机:“只提供精神鼓励的合约安排,不可能成气候。”

  4. Gpper说道:

    GPL是什么辣鸡

  5. 说道:

    这个我一直非常疑惑,我的理解是哪怕是原始作者在本人GPL的程序基础上升级的新版本程序(比如初代版本使用GPL是1.0,升级版本2.0),(2.0)包含之前的旧版本(1.0)程序,是不是(2.0)依然必须是GPL

  6. 说道:

    说的很有意思。我要提醒几点:
    1. FSF不承认任何翻译文件,所以你一直在解释一个没有效力的“GPL”。当然为了更多人能看懂倒是无可厚非。
    2. Copyleft的本质就是保护用户的权利,开发者被放在了“奉献”的位置。想赚钱?离GPL越远越好。
    3. “奉献”的开发者还是很多的,大量的开源项目很有用处。GPL就是给这些不想赚钱更不想让别人赚他的钱的人准备的。

进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注