21. 自由软件的定义

[freesoft]

我们写这个自由软件的定义是为了清楚地表明,对于一个软件必须具备什么条件才能被认为是自由软件。

“自由软件”有一种自由,不是价格方面的。要理解这一概念,您想到的“自由”应该是“自由的演讲”,而不是“免费的啤酒”。

自由软件是一种用户的自由,可以自由地运行、拷贝、发布、学习、修改和改进软件。更准确地说,它对软件的用户而言涉及四种自由:

  • 运行程序的自由,出于任何目的(freedom 0)。
  • 学习程序如何工作并按需要修改的自由(freedom 1)。获得源码是前提条件。
  • 再发布拷贝的自由,这样您就能帮助您周围的人(freedom 2)。
  • 改进程序,并向公众发布改进的自由,整个社区都能获益(freedom 3)。获得源码是前提条件。

如果用户拥有所有这些自由,那么这个软件就是自由软件。因此,您可以自由地再发布拷贝,修改或不修改,免费或收费,可以在任何地方给任何人。自由的做这些事意味着您不需要请求许可或为许可付费。

您也有修改和私下使用它们的自由,甚至不提及它们的存在。如果您公布您的修改,那么您不需要特别地或以任何特别的方式通知任何人。

使用程序的自由意味着任何人或组织有使用它的自由,在任何一种计算机系统上,用于任何种类的任务,并且不需要和开发者或任何单位沟通。

再发布拷贝的自由对于修改或未修改的版本都必须包括二进制或可执行的程序,以及源代码。(发布可运行形式的程序对于自由操作系统上的方便安装是需要的)对于特定的程序,如果没有办法生成二进制或可执行形式的程序也是可以的(因为一些语言不支持那种特性),但是您必须有再发布这种形式的自由,即您能够找到或开发一种方法来生成它们。

为了能有修改的自由,发布改进版本的自由,您必须能够获得程序的源代码。因此,源代码的可获得性是自由软件的必需条件。

为了将这些自由变为现实,它们必须是不可取消的,只要您不做错任何事。如果软件的开发者有权利撤回许可,而不是出于您的原因,那么软件就不是自由的。

然而,某些发布自由软件的方式也是可以接受的,当它们与主要的自由不冲突时。例如,copyleft就是这样一种规则,当您在发布程序的时候,您不能增加限制来否定别人的主要自由。这种规则与主要的自由不冲突,实际上保护了它们。

您也许花钱得到了自由软件的拷贝,或者没花钱就得到了。但不管如何得到拷贝,您都有拷贝、修改软件,甚至出售拷贝的自由。

“自由软件”并不意味着“非商业化”。自由软件必须是可以商业使用、商业开发和商业发布的。自由软件的商业开发不再难得一见,这种自由的商业软件也很重要。

如何打包一个修改的版本都是可以接受的,只要它们没有实质上妨碍您发布修改版本的自由。在同样的条件下,这种规则 – “如果您使程序以这种方式可用,那么您必须使它以那种方式也可用”,也是可以接受的。(注意这样的规则依然可以让您选择是否发布程序)对于许可,这样的要求也是可以接受的,即如果您发布了一个修改的版本,并且先前的开发者请求一份拷贝,那么您必须发送一份给他,或者在您的修改上标示出您自己。

在GNU项目中,我们使用“copyleft”在法律上保护每个人的这些自由,但非copyleft的自由软件也存在。我们相信有使用copyleft更好的重要原因,但如果您的程序是非copyleft的自由软件,我们依然能使用它。

参阅自由软件的范畴,了解什么是“自由软件”,什么是“copyleft的软件”,以及软件的其它范畴。

有时政府的出口控制规章和贸易制裁会限制您在国际范围内发布拷贝的自由。软件开发者没有能力消除或跨越这些限制,但是他们能做和必须做的是,拒绝将它们作为使用程序的条件。这样一来,这些限制就不会影响到这些政府管辖之外的活动和人。

大多数自由软件的许可基于copyright,哪种需求有限制可以通过copyright来添加。如果一个基于copyright的许可用上面描述的方式尊重自由,那么它未必有其它某种我们没有预见的问题(尽管这也偶然发生)。然而,一些自由软件的许可是基于合同的,合同可能包含众多可能的限制。这意味着有多种可能的方式能使许可有无法接受的限制,并且不自由。

我们不能列出所有可能的、不可接受的合同限制。如果基于合同的许可以一种不寻常的方式(基于copyright的许可所不能的)限制用户,并且是这里没有提到的,那么我们必须考虑它,并且我们或许会把它定为不自由的。

当谈到自由软件的时候,最好避免使用这样的术语,如“give away”或“for free”,因为这些术语意味着关于价格、不自由的问题。一些常见术语,如“盗版”,包含了我们不希望您认可的看法。看到让人迷惑的字或词组,我们应该避免这些术语的讨论。我们也有”free software”的多种语言翻译的列表。

最后,注意一些准则,如这个自由软件定义中规定的,需要认真考虑它们的解释。为了确定一个特定的软件许可是否能作为自由软件的许可,我们基于这些准则来判断它,确定它是否符合它们的精神以及准确的词汇。如果一个许可包括了不合理的限制,我们拒绝它,甚至如果我们不能预见这些问题。有时一个许可带来一个问题,在我们确定这些要求是否可接受之前,它要求我们广泛的思考,包括与律师讨论。当我们得到一个关于新问题的结论后,我们会经常更新这些准则,使得我们能够很容易地看清某个许可为什么合适或不合适。

如果您对一个特定的许可是否可作为自由软件的许可有兴趣,请参阅我们的许可列表。如果您关心的许可并未列出来,那么您可以通过email向我们咨询它的情况,email地址是licensing@gnu.org<licensing@gnu.org>。