首页 > 范文大全 > 正文

GPLv3,纷争与未来

开篇:润墨网以专业的文秘视角,为您筛选了一篇GPLv3,纷争与未来范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

GNU通用公共许可证(简称为GPL),是由自由软件基金会发行的用于计算机软件的许可证。GPL是一份针对软件和其他种类作品的、自由的、公共的授权文件。我们使用的大多数软件的授权剥夺了使用者共享和修改软件的自由,而GPL可以保护这些自由。与其他一些更“许可的”自由软件许可证(比如BSD许可证)相比,GPL寻求确保上述自由能在复制及衍生作品中得到保障。它通过一种由Stallman发明的Copyleft(非赢利版权)的法律机制实现,即要求GPL程序的衍生作品也必须遵从GPL。相反,BSD式的许可证并不禁止衍生作品变成版权所有软件。

缘起:GPL前生今世

GPL是自由软件和开源软件最流行的许可证,根据FreshMeat网站的统计,目前超过65%的项目使用了GPL协议,如表1所示。许多优秀的自由软件都是遵循GPL许可证,比如Linux Kernel与GNU Compiler Collection(GCC)。一些其他的自由软件具有双重许可,其中一个许可证通常采用的是GPL。

GPL由Richard Stallman撰写,用于GNU计划。以GNU Emacs、GDB、GCC许可证的早期版本为蓝本,这些许可证都包含有一些GPL的版权思想,但只针对特定程序。为了创造一种可以普遍适用的许可证,在1989年诞生了GPL第一版本。

第2版GPL,在1991公布。在接下来的15年中,一些FOSS(Free and Open Source Software)社区的成员认为有些软件和硬件商找到了GPL的漏洞,允许GPL许可的软件可以用于与程序编写者最初意愿相悖的其他目的。这些关注的问题包括Tivoization(将GPL许可的软件内置于硬件,软件与硬件相关,修改后的版本不能在运行于原硬件上);在Web接口使用非开源的,修改的GPL软件的版本;还有专利权在Microsoft、Linux与Unix发行者之间的分发,这些发行者可以尝试使用许可证专利权作为与GNU/Linux系统竞争的武器。

第3版GPL试着解决关注的这些问题,其于2007年6月29日官方正式。gplv3的变化有如下几点:与2.0版本的Apache协议相兼容,使得开发人员更容易地开发软件;针对类似“Microsoft-Novell”方式合作进行了相关规定;限制基于GPLv3协议的软件的商业应用;增加了一些附加条款等。

一些人认为GPL提供的非赢利版权对于GNU/Linux的成功是至关重要的,给了捐献项目的程序编写者信心,因为软件或许会给整个世界带来利益而且会保持自由的状态,而非被一些软件公司只是索取而不回馈的使用,还有一些人认为GNU/Linux在BSD许可下也会有好的发展。

改进:GPLv3之变

第3版GPL许可证未更改GPL的核心观念,也就是:凡是受GPL管理的项目,其基本原始码都可供任何人检视、修改或再分发。不过,凡是修改和再分发该软件者,都必须公开自己做了哪些改变。最新版授权附加了几项新条款:

第3版GPL附带明确的专利许可,意思是任何贡献软件给GPL计划者,都连带把适用该软件的专利授予GPL永久使用,而且不收权利金。

另有一项条款,阻止未来再签订类似Novell与微软所签的那种合约。该合约让微软销售Novell Suse Linux Enterprise Server的优惠券,所以客户不必担心会惹上侵犯微软专利权的官司。但在GPLv3里,FSF表示,所有的GPL软件使用者都将受惠于Novell与微软的协议。FSF授权法令遵循工程师Brett Smith表示:“如果你透过安排,对向你买软件的人提供专利保护,那个保护的范围就自动扩及任何领受该软件的人,不论他们是用什么方法取得该软件。”

一项“反TiVo化”条款(anti-tivoization)。这项条款的用意,是确定倘若某系统内含GPL软件,则系统所有人可以更改那项软件。TiVo个人录像装置使用Linux,有人主张明文规定,倘若系统所有人修改软件,就不适用,但FSF表示反对。FSF最近在草案中对这项条款轻描淡写,但这项条款至今仍是Torvalds反对GPLv3的一大理由。

纷争:GNU的繁荣还是没落

1.GPLv3支持之声

GPLv3首先阻止了一个主要危险,即Tivoization。Tivoization是计算机(或者叫电子产品)含有GPL许可软件,但这些软件却不能改变,改变了之后的软件是不能直接在原有硬件上运行的。这些计算机软硬件的生产商享受了自由软件提供的自由,但却没有赋予大家同样的自由。

比如在“数字版权管理(DRM)”领域内,数字签名的设计限制了使用自己电脑中已有的数据。而且根据数字版权法及其他相似法律,在美国和许多其他国家,如果在销售DVD机的时候没有根据DVD同盟的规定对用户做出法律规定的相应限制,那是非法的。

GPLv3确保能自由地去除这种限制,不禁止DRM,同样也不禁止任何功能。但是要求厂商不能在功能性方面设置任何限制,用户可以为一个程序添加功能,也可以删除它。虽然GPLv3也容忍一些Tivoization,但仅限于产品在商业机构内或组织内排它性地使用。

GPLv3的制定弥补的另一威胁就是专利协议,比如类似于Novell-Microsoft的协议。微软可以利用该协议迫使GNU/Linux用户付费,同时让Novell的客户受到一定程度的微软专利保护。GPLv3可以利用这个协议的一些漏洞,把有限的专利保护扩展到整个自由软件社区。

如果微软将来让发行商向软件用户收取微软专利费,使用GPL第3版的程序就会受到保护。针对程序的贡献者和发行者,GPLv3同样为用户提供了明确的专利保护。如果使用GPLv2,用户只能依赖于暗含的专利授权,希望提供软件的公司不会因专利侵权而控告他们或者接受他们拷贝的用户。

其实最理想的方式是想让分发GPL代码的所有人都交出全部软件专利。因为软件专利看起来是一个荒谬的制度,它让所有的软件开发者都处于被的境地,被那些他们从未听说过的或巨型的公司控告。

大型软件总是包含了成百数千个专利,专利已经阻碍了自由软件的发展,让软件开发更安全的唯一途径就是放弃软件专利,这是开源爱好者想达成的目标。但并不能通过一个软件许可证就达成这一点。任何软件,不论自由与否,都可能被一个毫不相关的第三方软件专利扼杀,而软件授权并不能防止这个发生。

GPLv3也不能解决这个矛盾,只是寻求限制并疏导这个危险。GPLv3中明确的专利授权确保使用GPL的公司给予用户不可收回的4种自由,并且不能将某些用户排除在外,也防止了专利权人相互勾结。同时GPLv3还更好的支持了国际化,支持BitTorrent,以及同Apache许可兼容。

2.GPLv3反对之音

也有很多人认为GPLv3使得GNU的前景堪忧。特别是Linux的开发者对此持有异议。他们认为现有GPLv2没有太多的问题,并不需要做大的修改,而且现有的GPLv2在开源界是占有统治地位的。

2006年9月22日草案2刚公布的时候,FOSS社区Linux Kernel开发者针对GPL进行了一轮投票,其结果出现一边倒的结果。29位Linux Kernel维护者没有一位投票对GPLv3表示赞成,全部持悲观的态度,认为GPLv3并不优于GPLv2。

还有人提到GPLv3对于开发者和用户而言增加了许多的限制和规定。FSF表示,在GPLv3中专利权许可证以及硬件性能新的限制和规定会使得对于软件的使用更加的自由,这听起来是十分荒谬的。GPLv3引入了许多自由软件基金会许可的软件许可证的限制。

这个许可证要求所有修改了GPLv3软件的人对于软件可能有的专利授予一个“非独家的、全世界的、没有特权的专利权许可”。而且, GPLv3规定必须不能使用“反欺骗技术”, 甚至是放弃“安装信息”, 如果不这样,就需要提供所有的解锁或是控制硬件的文件和数据。这对于DVD和DRM厂商来说当然是不合情理的。

当前草案的附加部分规定使得GPLv3可以变得更为挑剔。而且, 附加条款使得众多的自由软件许可证变的相互分裂, 这样的话就变得很难结合与分发(因为需要明确每个许可证独立的规定)。因此, 这使得人们很难快速的升级和转移到新的许可证。

表1 FreshMeat网站关于使用开源许可证的统计

对于公司而言将一个GPLv3许可的程序使用到其网站将会危及公司的专利权公文。因为Linux软件系统依赖于一些公司的捐赠,所以这样做有可能打消公司对开源和自由软件的热情。

Linux的开发者认为,首先GPLv2经历了很长的时间,而且因为它是开发者合约的基础,使得Linux和其他的一些自由软件成功的发展到了今天。迄今为止,在GPLv2的历史上,产生了许多成功的项目,GPLv2没有出现显著的问题,并不需要对其进行修改。

Linux发行版,不仅仅包含内核,他们也包含各种开源组件,内核仅仅是一部分(虽然内核是重要而且是不可或缺的),这些一起构成了可以使用的系统。开源许可证逐渐的变得越来越多使得版本的发行变得越来越麻烦,甚至是花上大量的时间检查和评定以不同的许可证的(甚至是相互矛盾的),互相关联的软件包分支。

确实,有的时候因为许可证的考虑,不得不将一个软件包排除在外。为了方便,应该对开源的许可证加以整理,而GPLv2无疑在当前的开源界是占有统治地位的。

Linux的成功也依赖于广泛捐助者和用户社区,他们对于Linux的革新起了非常重要的作用。协同的努力,而非针对不同目的的妥协,是Linux良好的管理热情的开发者与商业利益的一个重要原因。目的不同的个体是可以互惠互利的走到一起来的。

因此,为了维护基本的开发协同和顺应Linux革新的潮流,不应该支持GPL的任何改变,这些改变有可能危及基本的自由。

而且以GPLv3禁止Tivoization的条款为例,TiVo使用Linux作为其数字视频存储器产品,TiVo使用了数字签名进行加密。虽然FSF是表示强烈反对的,但Linus Torvalds认为,GPL不应该针对硬件做某种程度的规定。

有人提出,修改GPL的人的动机是强迫硬件商重新设计其设备,以符合FSF的怎样运行硬件的想法。TiVo遵守了GPLv2,将修改后的源码,但数字签名是否也应该作为修改的源码的一部分加以公布是值得商榷的。

而且许多自由软件的开发者认为,如果FSF真的想要反对DRM,应该单独作为一个草案而不应把这部分的内容全部放入新的GPLv3许可证中。

如果GPLv3投入使用。许多项目以及贡献者将不会包含GPLv3 软件, 这可能会造成将旧的GPLv2版本分支或是使用BSD许可的软件加以替代。甚至有人认为这将会是“GNU/Linux”的结束。因为在BSD领域已经有许多开源的软件代替了GNU项目程序。

未来:GPLv3何去何从

从兼容性而言,GPLv2和GPLv3是不兼容的,目前还没有一个很好的方法将GPLv2许可下的代码同GPLv3许可下的代码在一个单独的程序中结合起来。这是因为,GPLv2和GPLv3都反版权许可:其中类似于“如果你在一个大型程序中包含了本许可管理下的代码,那个大型程序就必须置于本许可之下。”的表述没有办法让它们两个兼容。

但是只有在把来自两个不同程序中的代码连接、引入或合并起来的时候,许可不兼容才会发生影响。而把一个GPLv3程序和一个GPLv2程序同时放入一个操作系统中是没有问题的。举例来说,TeX的许可和Apache的许可都和GPLv2不兼容,但这不会影响在同一系统上与Linux、Bash以及GCC一起运行TeX和Apache。这是因为它们都是单独的程序,同样,如果Bash和GCC升级到GPLv3,而Linux仍然保持GPLv2,也不会有冲突。

FSF代表Brett Smith表示,有大约150个软件项目在GNU Project中,其版权归属于Free Software Foundation。在这些项目中, 至少15个一定会转变到今天的GPLv3。哪些项目最终会升级到GPLv3还没有最终确定,但应该包括基本的GNU/Linux系统工具sed和tar,Internet软件套件FTP和telnet servers,客户端软件inetutils,以及Texinfo文件系统。

OpenBSD项目还没有决定是否在OpenBSD base system中采用GPLv3许可的软件。像其他的BSD系统一样,OpenBSD有非常少量的GPL程序,而且可以将一些现有的工具使用BSD许可的工具来替代。大多数的OpenBSD中的GPL程序很陈旧并且打了许多补丁,所以对GNU项目最新的包依赖很少。

而FreeBSD核心团队成员这样说到:“如你所知,FreeBSD项目有很长的历史将源码以自由的BSD开源许可证。这个许可证允许我们的软件没有限制的以开源或是非开源的方式重用源码。我们确实依赖了一些GPL组件,最关键的是GCC开发工具套件,但我们工作的核心目标是将FreeBSD打造为完善的操作系统,有BSD许可的内核、系统库、服务,以及命令行工具。而现在还不好对GPLv3发表评论。”

Sun已经表示未来的OpenSolaris项目在GPLv3的授权下进行。这样的迁移为扩展GPL授权的代码带来了很大的机会,同时由于符合自由软件规则,FSF可以说服Linux内核项目也来遵循GPLv3。随着在同一授权下的多平台可用性的提升,将会有各种各样新的代码合并的机会。

微软长期以来反对GPL,并且喜欢发展拥有自的软件。因此自然会采取措施摆脱GPLv3的纠缠。微软知识产权与授权副总裁Horacio Gutierrez表示,微软没有参与GPLv3授权,该公司的任何行动也都不能解释为接受GPLv3的约束,或者对此类协议有法律义务。

Gutierrez指出:“事实上,我们认为微软不需要根据GPL协议执行与Novell的合作,即使Novell今后选择发行GPLv3代码也是如此。另外,微软不承认GPLv3直接或间接带来的专利权,GPLv3授权人无权以任何方式约束微软。”

Linux Kernel SCSI Maintainership的负责人James Bottomley也反对GPLv3。 Bottomley表示,GPLv2和v3两个版本并不兼容,在可预见的将来,Linux核心仍然将坚持使用GPLv2。之前,Linux的核心发展人Linus Torvalds也反对GPLv3,因为担心其中的数字版权管理(digital rights management)条文会引起困扰。

对于硬件而言,新的GPLv3要求硬件厂商不能把GPLv3的代码放到硬件中,然后进行锁定,使其不能被其他软件取代。这个要求可以理解,但是肯定不会被大厂商所接受。

其实,GPL版本的改进是依据现有的自由软件许可证使用中出现的问题进行的修补,随着新技术的出现,GPL的变化不会随着GPLv3的而终止。如果有一天新的威胁再次危害到用户的“自由”开发,GPL v4也会随之出现的。而GPLv3对自由软件团体和开发者以及商业软件厂商的影响也会在今后逐渐的显露。GPLv3在“自由”与“利益”的冲突间,或许还需要很长一段时间来找到两者平衡点。