GPLv3已经发布了,这是
RMS写的文章的翻译。翻译没有授权,译文没有认证。本译文使用许可同原文保持一致。
原文版权声明:
Copyright 2007 Richard Stallman
Verbatim copying and distribution of this entire article are permitted worldwide without royalty in any medium provided this notice is preserved.
第3版的GNU通用许可证很快就要完成了,自由软件包可以从GPL第2版升级。本文解释了为什么升级这个许可是很重要的。
首先,认识到升级是一个选择是很重要的。GPL第2版仍将是一个有效许可,如果某些程序坚持使用GPLv2,而其他一些升级到GPLv3,也不会有什么灾难发生。这两个许可不兼容,但这不是一个严重的问题。
我们说GPLv2和GPLv3不兼容时,它是说没有一个合法的方法把GPLv2许可下的代码同GPLv3许可下的代码在一个单独的程序中结合起来。这是因为,GPLv2和GPLv3都是反版权许可:它两个说的是,“如果你在一个大型程序中包含了本许可管理下的代码,那个大型程序就必须置于本许可之下。”没有办法让它们两个兼容。我们倒是可以给GPLv3增加一些与GPLv2兼容的语句,但它也没用,因为GPLv2会需要同样的说法。
幸运的是,只有在你想把来自两个不同程序中的代码连接、引入或合并起来的时候,许可不兼容才会发生影响。而把一个GPLv3程序和一个GPLv2程序一同放入一个操作系统中是没有问题的。举例来说,TeX的许可和Apache的许可都和GPLv2不兼容,但这不会影响我们在同一系统上和Linux、Bash以及GCC一块运行TeX和Apache。这是因为它们都是单独的程序。同样地,如果Bash和GCC升级到GPLv3,而Linux仍然保持GPLv2,也不会有冲突。
将一个程序保留在GPLv2下面不会产生问题。之所以要升级的原因则在于GPLv3要说明的那些现存的问题。
GPLv3将要阻止的一个主要危险是tivoization(也就是GPL程序的固化)。Tivoization是说计算机(或者叫电子产品)含有GPL许可软件,但这些软件却不能改变,因为如果这个产品发生软件有变化时就会关机。做这种设计的一个通常考虑是生产商认为这个软件带有的一些特性是许多人不喜欢的。这些计算机的生产商享受了自由软件提供的自由,但它们却不让你也同样做。
某些人说自由市场中这些电子产品的竞争将会使这些恶心的功能保持在一个低水平。也有可能,竞争会避免这些专横的、毫无意义的所谓功能,像“每周二下午1点到5点之间必须关机”,但即便如此,选择主人仍然不是自由。自由意味着你控制你的软件能干什么,而不只是你可以哀求或威胁什么别的替你做决定的人。
在严酷的“数字限制管理(DRM)”的领域内——恶心的设计用于限制你使用自己电脑中数据的功能——竞争也无可奈何,因为相关的竞争是被禁止的。根据数字千年版权法以及其他相似法律,如果在销售DVD机的时候,你没有根据DVD同盟的规定对用户做出限制,在美国和许多其他国家都是非法的(DVD conspiracy的网站是http://www.dvdcca.org/,但这个规定似乎没有在上面发布)。公众不能说买个没有DRM的DVD机就能拒绝DRM,因为根本就没有这种机器。不论有多少产品供你选择,它们都一样是数字手拷。
GPLv3确保你能自由地去除这种手拷。它不禁止DRM,同样也不禁止任何功能。它不在功能性设置任何限制,你可以为一个程序添加功能,或是去除它。更进一步,它保证你拥有和生产商增加功能一样的去除某种恶心功能的自由。Tivoization是一种它们否认你的自由的方法;保护你的自由,GPLv3禁止Tivoization。
对Tivozation的禁止对任何消费者使用的产品都适用,甚至偶然的,对期望使用的产品也适用。GPLv3也容忍一些Tivoization,但仅限于产品仅在商业机构内或组织内排它地使用。(最新GPLv3草案对此标准有明确说明。)
GPLv3要反抗的另一威胁是专利协议,就像Novell-Microsoft的协议。微软想用它的数千项专利迫使GNU/Linux用户交钱,并制造了这个交易来获得它。这个交易让Novell的客户受到相当有限的微软专利保护。
在Novell-Microsoft交易中,微软犯了几个错误,GPLv3的设计就将利用它们来反对微软,把这有限制的专利保护扩展到整个社区。要获取这一优势,程序需要使用GPLv3。
微软的律师并不傻,下一次他们就会努力避免这些错误。因此,GPLv3让他们再也没有下一次。如果微软将来再让发行商向软件用户收取微软专利费,用GPL第3版发布的程序将受到保护。
针对程序的贡献者和发行者,GPLv3同样为用户提供了明确的专利保护。如果使用GPLv2,用户只能依赖于暗含的专利授权,希望提供软件的公司不会因专利侵权而控告他们或者接受他们拷贝的用户。
GPLv3中的明确专利授权也没有走到像我们希望的那样远。理想地,我们想让分发GPL代码的所有人都交出全部软件专利,包括没有再次分发的所有人也如此。软件专利是一个邪恶的荒谬的制度,它让所有的软件开发者都处于被控告的境地,被那些他们从未听说过的或巨型的公司控告。大型软件总是包含了数千种思路,如果其中有几百个专利,那是一点也不稀奇。大公司会收集上万的专利,并用这些专利来威吓小开发者。专利已经阻碍到了自由软件的发展。
让软件开发更安全的唯一途径就是放弃软件专利,这是我们想到达成的目标。但我们并不能通过一个软件许可证就达成这一点。任何软件,不论自由与否,都可能被一个毫不相关的第三方手中的软件专利扼杀,而软件授权并不能防止这个发生。只有法庭的命令或是专利法的改变才能让软件开发对专利也安全。如果我们想用GPLv3达成这一点,那只会失败。
因此,GPLv3寻求限制并疏导这个危险。特别是,我们努力让自由软件避免一种比死亡还要坏的命运:完全专有化,通过专利。GPLv3中明确的专利授权确保使用GPL的公司给予用户不可收回的4种自由,并且不能对某些用户说:“那不包括你在内。”它同时也阻止它们同其他专利权人勾结来这样做。
GPLv3的其他优势包括更好的国际化、更文雅的用词、支持BitTorrent,以及同Apache许可兼容。(完整信息,参见gplv3.fsf.org)总之,有很多理由去升级。
变化并不随着GPLv3发布而消失。如果有针对用户自由的新威胁出现,我们还将设计GPL第4版。到时,确保软件毫无问题地升级到GPLv4将是重要的。
用“GPL第3版及更新版”来发布软件是一个办法。另一个方法是所有的贡献者都声明一个代理,这个代理人能决定是否升级到未来的GPL。第三个办法是所有的贡献者将版权授予一个专门的版权所有人,由他来升级许可版本。不论采用哪种方法,软件应该为将来准备好这种灵活性。