面向商务人士的Linux - Linus拒绝新的GPL草案

作者:Doc Searls

2006年1月,自由软件基金会(FSF)发布了GNU通用公共许可证(GPL)的修订和更新草案版本 (gplv3.fsf.org/draft)。Linux在GPLv2版本下已经发展了14年。自然而然地,人们立即对新草案将如何被Linux的创建者和原始许可证的选择者Linus Torvalds接受产生了兴趣。

Linus选择保持Linux在GPLv2下获得许可。

Linus做出该选择的方式和原因在2006年1月25日至2006年2月2日期间Linux内核邮件列表(LKML)上的交流中得到了明确说明,主要是在主题为“GPL V3和Linux—已故版权所有者”的讨论串中。这是一个非常有趣的阅读材料,我决定在此摘录并引用最相关的部分。

2006年1月25日,星期三,Chase Venters写道

这意味着当代码从GPLv1过渡到GPLv2时,这种过渡是允许的。Linux v1.0随GPLv2一起发布。它没有像现在这样,附带一个单独的条款,明确指出“您只能使用**这个**版本的GPL”。(我没有做任何研究来找出这个条款是什么时候添加的,但它是在过渡到v2之后。)

以下是Linus最初的看法

啧啧。仔细看看。

Linux内核**一直**都是在GPLv2下。从来没有其他版本是有效的。

GPL复制文件中“许可证版本2,或(您可选择)任何更高版本”的语言不是,而且从来都不是许可证本身的组成部分。它是关于如何将许可证应用于您的程序的**解释性**文本的一部分,并且它说,**如果**您想接受任何更高版本的GPL,您可以在源代码中声明。

Linux内核通常从未声明过这一点。一些作者选择使用建议的FSF样板文件(包括“任何更高版本”的语言),但内核通常从未这样做过。

换句话说:**默认**的许可证策略始终只是伴随项目的特定版本的GPL。如果您想在**任何**更高版本的GPL下许可程序,您必须明确声明。Linux从未这样做过。

因此,内核源代码树中COPYING文件顶部的额外说明不是为了**更改**许可证,而是为了**澄清**这些要点,以便不会产生任何混淆。

Linux内核是在GPL版本2下许可的。而不是其他任何版本。一些单独的文件可以在v3下许可,但内核通常不是。

坦率地说,我不认为这种情况会改变。例如,我认为要求人们提供他们的私有签名密钥是疯狂的。我不会这样做。所以我不认为GPLv3的转换会发生在内核上,因为我个人不想转换我的任何代码。

然后讨论串继续进行

如果发生迁移到v3的情况,我看到的唯一潜在的麻烦是,如果有人以他们向Linus标记为“仅GPLv2”的内核版本贡献了代码为由提出异议。IANAL。

Linus回应道

不。你认为“v2或更高版本”是默认的。事实并非如此。**默认**是不允许转换。

转换不会发生。

以下是Linus在2006年1月27日的总结帖子中的说法

Linux**很长**一段时间以来一直是仅v2版本,早在甚至有许可证选择之前。那个明确的“仅v2版本”的东西至少在2.4.0版本中就存在了,那是五年多以前的事了。所以这不是对当前GPLv3发布的突然反应。这与当前的GPLv3讨论**完全独立**

如果您不同意您编写的代码,您可以(并且一直都能够)表明这一点,并以多种不同的方式进行双重许可,包括使用“或更高版本”的语言。但这并不能改变这样一个事实,即其他人(**很多**其他人)都非常清楚内核的“仅v2版本”规则,并且大多数Linux内核源代码都受该规则约束。

有人认为Linux没有指定版本,并且根据第9段,您可以选择任何您喜欢的版本。我不同意。Linux一直都指定了版本:我没有将许可证放在源代码中,源代码只是说:“版权所有 (C) 1991-2002 Linus Torvalds”,许可证在COPYING文件中,该文件**始终**是v2版本。甚至在(出于澄清原因)明确说明之前就是如此。

换句话说,“如果没有提及版本”根本就不是一个论点。这就像争辩说“如果没有提及许可证,它就受您想要的任何许可证约束”,这简直是胡说八道。如果没有提及许可证,您根本没有任何许可证可以使用它。许可证和版本一直都非常明确:linux/COPYING自1992年以来就存在,并且自第一天起就是许可证的**version_2**版本。

人们可以以他们喜欢的任何方式反对这一点。最终,您**真正**反对它的唯一方法是在法庭上。就我所见,意图比任何法律诡辩都重要。Linux一直以特定版本的GPL分发这一事实是一个重要的线索,而我在过去几年中已经非常清楚地表明了我的意图,这是另一个巨大的线索。

我没有看到GPLv3有任何真正的好处,但我确实看到了潜在的缺点。在v2下有效的东西在v3下不再有效,因此更改许可证确实有缺点。

坦率地说,**如果**我们有一天要更改为GPLv3,那将是因为有人说服我和其他版权所有者在所有文件中添加“或任何更高版本”的条款,仅仅因为v3真的要好得多。这似乎不太可能,但是,如果有人证明GPLv2是违宪的(哈哈!),也许会发生类似的事情。

所以我不是**完全**拒绝升级,但坦率地说,升级将是一个巨大的问题。不仅是我,而且在过去五到十年中在Linux上工作的其他人也必须同意。相比之下,坚持使用GPLv2是无需动脑筋的:我们已经使用了它近15年,它运行良好,而且不需要说服任何人。

这确实是一个大问题:GPLv2是一个非常好的许可证。它已经为我们工作了14年;GPLv3的引入并没有真正改变什么。事实上,有一个较新的许可证可供选择并不会减损旧许可证的价值。

Linus的一个主要症结是GPLv3中的新语言,引用许可证草案的话来说,它“本质上不利于限制用户复制、修改和共享受版权保护作品的自由的技术尝试”。

回到讨论串,2006年2月1日,星期三,Karim Yaghmour写道

DRM是值得抗争的东西,但我们需要一些能够攻击根本问题而不是其症状的东西。相比之下,GPLv2确实成功地攻击了软件发行自由的根本问题。它如何通过对另一个问题的症状引入限制来利用这一点仍然让我困惑。

Linus回应道

旁注:GPLv2在对抗使用版权来对抗限制性版权的根本问题上如此成功的原因是,它使“有趣的材料”在禁止进一步限制它的许可证下可用。

我建议任何想认真对抗DRM做法的人都应该从同等的角度来看待。如果您创建了有趣的内容,您可以禁止**内容**永远被加密或限制。

换句话说,我个人认为,反DRM条款在知识共享许可的背景下比在软件许可中更合理。如果您创建了其他用户想要使用的有价值且有用的内容(朗朗上口的曲调、有趣的动画、精美的图标),我建议您保护**内容**,声明它不能用于任何内容保护方案中。

据我所知,所有知识共享许可都已经要求您不能使用技术措施来限制您通过CC许可赋予的权利。特别是“相同方式共享”许可证要求所有基于它的作品也以相同方式共享——也就是说,它具有“GPL的感觉”。

如果足够多的有趣内容以这种方式获得许可,DRM最终将被边缘化。是的,这需要几十年,但这与GPL的工作方式并没有什么不同。GPL已经花了数十年时间,它尚未“边缘化”商业专有软件,但它已经发展到至少较少的人**担心**它的程度。

只要您期望迪士尼来喂养您的大脑,而您只是坐在沙发上,迪士尼公司就始终能够控制您看到的内容。DRM只是其中最小的一部分——我们每天看到和听到的垃圾(无论是否有任何保护)是一个更大的问题。

GPL已经要求提供源代码(即,非受保护的内容)。因此,就**软件**而言,GPL实际上**确实**具有反DRM条款。如果您想在非软件领域对抗DRM,您需要创建非软件内容,并在**那里**与之抗争。

我意识到程序员不擅长内容创作。所以很多程序员觉得他们不能用这种方式对抗DRM。没办法。而是传播信息。不要试图用错误的方式对抗DRM。

在2006年2月2日的一篇帖子中,Linus回复了一个关于GPLv2本身在对抗DRM方面存在缺陷的建议。以下是该建议

重点不仅是获得源代码的访问权限,而且还能够更改它。能够自由地研究代码只是GPL之美的一半。另一半,能够更改它,可以通过使用DRM非常有效地阻止。

Linus的回复

不,它不能。

当然,DRM可能意味着您无法在其他人的硬件上**安装****运行**您的更改。但是,这绝不会改变您获得了所有源代码,并且您可以对其进行更改(并使用他们的更改)这一事实。即使是普通的GPLv2,这一要求也一直存在。您拥有源代码。

区别是什么?硬件可能只运行签名内核。硬件是封闭的这一事实是**硬件**许可证问题。而不是软件许可证问题。我建议您与您的硬件供应商协商,并很可能只是决定不购买该硬件。用脚投票。加入OpenCores小组。制作您自己的FPGA。

重要的是要认识到,在某些情况下,您无法以修改形式运行的签名内核在许多情况下根本不是一个坏主意。

例如,发行版对其编译的内核模块(在GPL下分发)进行签名,并使其内核要么完全拒绝加载它们(在“安全策略”下),要么将生成的内核标记为“已污染”(在“不太安全”的策略下)是一件好事。

请注意,当前的GPLv3草案非常清楚地表明,Red Hat将不得不分发其私钥,以便人们可以对他们重新编译的模块的自己的版本进行签名,以便重新创建他们自己的Red Hat创建的签名二进制文件的版本。这太疯狂了。

顺便说一下,签名的RPM存档呢?您认为如果安全自动更新程序无法信任数字签名,它的效果会如何?

我认为很多人可能会发现,GPLv3的“反DRM”措施最终并没有那么美妙。

因为数字签名和密码学不仅仅是“糟糕的DRM”。它们也非常是“良好的安全性”。

婴儿和洗澡水....

然后,同样在2006年2月2日,Pierre Ossman写道

那么,将开源软件和封闭硬件结合起来,变成我无法修改的东西,您认为可以接受吗?

Linus回应道

但是您可以修改软件部分。您可以在其他硬件上运行它。归根结底是:我们编写了软件。这是**我**唯一关心的部分,也许(至少对我而言)更重要的是,因为它是我们创建的唯一部分,所以它是我觉得我们有道德权利控制的唯一部分。

**确实**觉得我们——作为软件开发人员——没有道德权利将我们的规则强加给硬件制造商。我们不是十字军战士,试图强迫人们向我们至高无上的上帝屈服。我们正在努力向他人展示合作和开放效果更好。

至少这是我的立场。一直都是如此。这就是我最初选择GPL的原因(这也是我编写原始Linux版权许可证的完全相同的原因)。我做的是**软件**,我许可的是**软件**

而且我意识到其他人并不总是同意我的观点。没关系。您不必如此。但我根据**我**同意的许可证许可了我的项目,即GPLv2。有不同想法的其他人可以用他们自己的许可证进行许可。包括非常重要的GPLv3。

我不是在反对GPLv3。

我是在说GPLv3对**我**来说是错误的,而且它不是我曾经选择的许可证。

并且,同样在2006年2月2日,Pierre Ossman继续说道

那么我不得不问,为什么是GPL而不是BSD许可证?毕竟,GPL是将我们的信念强加给任何希望从我们的工作中受益的人。

为了回应这篇文章,他在这个讨论串中的最后一篇文章中,Linus阐述了他与自由软件基金会的不同之处

是的,很多人将GPL视为“十字军式的”许可证,我认为这部分是因为FSF实际上一直像一个十字军战士一样行事。

但我认为Linux成功的主要原因之一是,我不认为Linux社区真的热衷于十字军东征(其中一些小部分是,但这不是主要原因)。我认为Linux通过对GPL的态度比FSF少得多宗教色彩,使GPL更具“社会可接受性”。

所以对我而言,GPL的重点不是“转化异教徒”的逻辑,而是完全不同的东西——“等价交换”。

这就是我的出发点。我对原始许可证的最初理由(也是“您必须在相同许可证下提供更改”)不是十字军东征,而是简单的互惠。我发布源代码——如果您互惠,您可以使用它。

换句话说,对我而言,GPL“回馈源代码”是一个公平问题。我要求的不会超过我给出的。我要求提供源代码以及将您的更改合并回**我的**使用的能力,但我不想以任何方式限制**您的**使用。

所以在我的世界观中——不是作为十字军战士——GPLv2是**公平的**。它要求其他人回馈我本人所提供的:可以玩耍的源代码。我没有要求控制他们的其他项目(无论是硬件还是软件),也没有要求控制版权(在内核中,**鼓励**人们保留他们的版权,而不是将其转让给我)。

我只要求对我所提供的进行精确的互惠:我自由使用我对我发起的源代码的更改的许可证。

在我看来,GPLv3从根本上改变了这种平衡。它要求的比它给出的更多。它不再仅仅要求回馈源代码,而是要求**控制**您在其中使用源代码的任何系统。

看到了吗?我认为GPLv3作为转换工具非常有道理。但作为“请以同等方式互惠”的工具,GPLv2更好。

现在,我最早的原始许可证(和GPLv2)符合我的互惠概念,并且如前所述,这就是我“最初”选择它而不是BSD许可证的原因。然而,随着时间的推移,在看到事物如何发展之后,我开始欣赏GPLv2的另一个方面,这就是为什么我永远不会将我个人真正关心的项目置于BSD许可证之下——鼓励合并。

我已经开始相信BSD许可证不是一个“可持续”的许可证,因为虽然它比GPL更鼓励(并允许)分叉,但它不鼓励将分叉合并回来。

而且我私下得出结论,如果您没有能力将最终结果合并回来,分叉的真正价值就会丧失。并非所有分叉都应该合并回来——大多数分叉都是死胡同——但是,**如果**事实证明它不是死胡同,则必须具有合并回来的坚定能力。

GPL保证您有权同时分叉**和**合并结果——平等地,并且在双方。这使其具有可持续性。相比之下,BSD许可证鼓励分叉,但也允许不合并回来,这意味着如果项目发展到存在经济或政治原因需要分歧的地步,它**最终**将分歧,并且根本没有任何对抗力量。

现在,并非所有项目都有经济动机需要分歧。有很多充分的理由保持在一个基础上,并且分叉的成本大于优势。因此,像Apache和Sendmail这样的项目运行良好——与众不同(当您“只是”一个网络服务时)的痛苦通常远高于差异化的收益。

但是在几乎任何其他地方,BSD许可项目的“凝聚力”都较低。您会看到有人对其进行商业发布,他们会在其上花费更多的精力,并且最终原始的自由许可项目将变得无关紧要。

因此,从长远来看,我认为GPL许可的项目更稳定。例如,我相信Wine切换到LGPL(它与凝聚力论点有很多共同之处)对于该项目来说是一个非常重要的决定,否则它最终将变得无关紧要,并且BSD许可代码的商业用户将接管。但请注意,我的第二个理由不是我**开始**使用GPLv2的原因,而且这对于GPLv3和LGPL也同样适用。无论如何,我喜欢GPLv2还有其他原因。它是一个“已知的实体”,并且已经存在很长时间了。

事实上,即使在92年,当我切换到GPL时,“已知因素”部分也是切换的主要次要原因。我可以尝试仅更改我自己的许可证——但我认为成为人们了解的东西,而不必解释它并与律师核对它,这是一种优势。与我**自己**的许可证相比,当时GPLv2仍然“年轻”的事实根本不算什么。

我们在这里看到的是对Linus、Linux和开源开发是多么保守和务实的绝佳观察。

Doc Searls是Linux Journal的资深编辑。

加载Disqus评论