什么是自由软件?

“自由软件”是指尊重用户自由和社区。大致来说,这意味着用户拥有自由运行、复制、分发、学习、更改和改进软件因此,“自由软件”是一个自由,而不是价格。要理解这个概念,你应该考虑“自由”如“言论自由”,而不是“免费啤酒。”我们有时称之为“libre”软件,“借用法语或西班牙语单词“自由”与自由一样,表明我们不是指软件是免费的。

你可能已经花钱购买了免费程序的副本,或者你可能免费获得了副本。但无论你是如何获得的拷贝,您始终可以自由复制和更改软件,甚至到出售副本.

我们为这些自由而运动,因为每个人都应该享有这些自由。使用这些自由,用户(单独或集体)控制程序以及它为他们做了什么。当用户不控制程序,我们称之为“非免费”或“专有”程序。非自由程序控制用户和开发人员控制程序;这使得程序不公正权力的工具.

“开源”是不同的:它有一个非常基于不同价值观的不同哲学。它很实用定义也不同,但几乎所有的开源程序都是实际上是免费的。我们解释差异为什么“开源”忽视了自由软件的意义.

自由软件定义

自由软件定义提供了以下标准:特定的软件程序有资格成为自由软件。从时间到当我们修改这个定义,澄清它或解决问题时关于微妙的问题。请参阅历史记录部分下面是影响自由定义的更改列表软件。

四大基本自由

如果程序的用户拥有四大基本自由:[1]

  • 自由运行程序,出于任何目的(自由度0)。
  • 研究程序如何工作并对其进行更改的自由做你想做的计算(自由1)。访问源代码是实现这一点的前提。
  • 重新分发副本以便帮助他人的自由(自由2)。
  • 分发修改版本副本的自由对他人(自由3)。通过这样做,你可以给予全部社区有机会从你的改变中受益。访问源代码是实现这一点的前提。

如果一个程序充分地为用户提供了所有这些,那么它就是自由软件自由。否则,它是非免费的。虽然我们可以区分各种非自由分配方案的不足程度由于自由,我们认为它们都同样不道德。

在任何给定的场景中,这些自由必须适用于任何代码我们计划利用或引导他人利用。例如,考虑一个程序a,它自动启动程序B处理一些案件。如果我们计划按现状分配A意味着用户需要B,所以我们需要判断A和B是否都需要是免费的。然而,如果我们计划修改A,使其不使用B,只有A需要自由;B与那个计划无关。

自由软件可以商业化

“自由软件”并不意味着“非商业性”相反,免费程序必须可用于商业用途,商业开发和商业分销。此政策是没有这一点,自由软件就不可能实现其目标。

我们希望邀请所有人使用GNU系统,包括企业和他们的工人。这需要允许商业使用。我们希望免费更换项目将取代类似的专有项目程序,但如果禁止企业使用他们。我们希望包含软件的商业产品包括GNU系统,这将构成商业分销价格。自由软件的商业开发不再异常;这样的免费商业软件是非常重要的。支付,对自由软件的专业支持填补了一项重要需求。

因此,不包括商业用途、商业开发或商业分发将阻碍自由软件社区并阻碍其成功之路。我们必须得出这样的结论:限制不符合自由软件的资格。

一个免费程序必须向任何可能成为用户的人提供四种自由获得该软件的副本,该软件迄今已遵守涵盖任何以前版本中的软件的免费许可的条件把一些自由限制在某些人之外用户,或要求用户支付金钱或实物来行使他们,就等于不给予有问题的自由,因此使程序非自由。

明确自由与非自由的界限

在本文的其余部分中,我们将更准确地解释需要在各种问题上扩大各种自由,以便程序是免费的。

自由运行程序

运行程序的自由意味着任何人的自由或组织在任何类型的计算机系统上使用它总体工作和目的,无需沟通与开发商或任何其他特定实体合作。在这种自由中这个用户的重要的目的,而不是开发商的目的;作为用户,您可以自由运行程序,如果你把它分发给其他人,他们就可以自由运行它他们的目的,但你无权将你的目的强加给他们。

自由运行程序意味着你没有禁止或停止运行。这与什么无关程序的功能,无论它在技术上是否能够在任何给定环境中运行,或它是否对任何特定的计算活动。

例如,如果代码任意拒绝某些有意义的输入-甚至无条件地失败-这可能会使程序没那么有用,甚至可能完全没用,但它不是拒绝用户运行程序的自由,因此不会发生冲突自由度为0。如果程序是免费的,用户可以克服因为自由1和自由3允许用户和社区制作和分发修改后的版本,而不需要任意滋扰代码。

“随心所欲”包括(可选)“不在如果这是你想要的。所以没有必要单独的“不运行程序的自由”

研究源代码并进行更改的自由

为了自由1和3(做出改变的自由和发布更改版本的自由)要有意义,您需要访问程序的源代码。因此源代码是自由软件的必要条件。模糊的“源代码”不是真正的源代码,不计算在内作为源代码。

源代码被定义为制作程序的首选形式因此,无论开发人员以何种形式进行开发该程序是该开发人员版本的源代码。

自由1包括使用更改后的版本代替原件。如果程序是在设计用于以下目的的产品中交付的运行其他人的修改版本,但拒绝运行您的-a被称为“反洗钱”或“封锁”的做法或者(用其从业者不恰当的术语)称为“安全”靴子”-自由1变成了一个空洞的借口,而不是实际情况。这些二进制文件不是免费的即使编译它们的源代码是免费的。

修改程序的一个重要方法是将程序合并到可用的免费程序中子程序和模块。如果程序许可证上说你无法在适当许可的现有模块中合并,例如,如果要求您是您添加的任何代码的版权所有者许可证太过严格,不符合免费条件。

更改是否构成改进是一个主观问题。如果您修改程序的权利在实质上受到限制其他人认为这是一种改进,但该程序不是免费的。

自由1的一个特例是删除程序的代码,以便不执行任何操作后返回,或使其调用其他程序。因此,自由1包括“删除程序的自由”

如果你愿意,可以自由再分配:基本要求

分发自由(自由2和3)意味着你可以自由重新分发副本,无论是否修改免费或收取分销费用任何地方的任何人.可以自由执行这些操作事物意味着(除其他外)你不必要求或支付请求允许这样做。

你也应该有修改和使用它们的自由在你自己的工作或娱乐中,甚至没有提到他们存在。如果您确实发布了更改,则不应要求您特别通知任何人,或以任何特殊方式通知任何人。

自由3包括发布修改版本的自由作为自由软件。免费许可还可以允许其他方式释放它们;换句话说,它不一定是靠左复制许可证。然而,a要求修改版本为非免费的许可证不符合条件作为免费许可证。

重新分发副本的自由必须包括二进制或可执行文件修改后的和未修改的版本。(必须以可运行的形式分发程序方便安装的免费操作系统。)如果有就可以了无法为特定程序生成二进制或可执行形式(因为有些语言不支持该功能),但您必须具有如果你找到或发展了一种方法,可以自由地重新分配这些形式制作它们。

版权所有

关于免费分发方式的某些规则软件是可以接受的,只要它们与中心不冲突自由。例如,靠左复制(非常简单地说)是这样一条规则:当重新分配程序时,你不能通过增加限制来剥夺其他人的核心自由。这一规则与中央自由并不冲突;更确切地说是保护他们。

在GNU项目中,我们使用copyleft来保护四个自由对每个人来说都是合法的。我们认为有重要的原因最好使用靠左复制然而,非版权自由软件是合乎道德的也是。请参见免费的类别软件有关“自由软件”的描述“版权软件”和其他类别的软件相互关联。

有关包装和分发详细信息的规则

关于如何打包修改版本的规则是可以接受的,如果他们没有实质性地限制你发布修改后的自由版本,或者您可以自由地私下制作和使用修改后的版本。因此,许可证可以要求您更改修改版本的名称,删除徽标,或标识您的根据您的需要进行修改。只要这些要求不是这样他们实际上阻碍了你释放你的变更是可以接受的;您已经对进行了其他更改这个程序,这样你就不会再有麻烦了。

规则是“如果你以这种方式提供你的版本必须以这种方式提供,“也可以接受,在相同的条件下。这种可接受规则的一个例子是如果您已经分发了修改后的版本,而之前的开发人员要求提供该版本的副本必须发送一个。(请注意,这样的规则仍然让您选择是否分发您的版本。)需要发布的规则向用户提供您投入公共使用的版本的源代码也可以接受。

当许可证要求按以下方式更改名称时,会出现特殊问题该程序将从其他程序调用。那个有效地阻止您发布更改的版本,因此当被其他程序调用时,可以替换原始程序。这个只有在有合适的别名时,才可以接受这种要求允许您将原始程序的名称指定为修改版本的别名。

出口法规

有时政府出口管制条例贸易制裁会限制你分发国际计划。软件开发人员无权消除或推翻这些限制,但他们可以和必须做什么拒绝将其作为使用程序的条件。在这个这样,限制不会影响活动和外部人员这些政府的管辖权。因此,自由软件许可证不得要求遵守任何非普通出口法规行使任何基本自由的条件。

仅提及出口法规的存在,没有它们是许可证本身的一个条件,是可以接受的,因为它确实如此不限制用户。如果出口管制实际上对自由软件,那么要求它作为一个条件是不实际的问题;然而,这是一个潜在的问题,因为出口法可以使这一要求变得不平凡,从而使软件不免费。

为了使这些自由成为现实,它们必须是永久的,并且只要你没有做错,就不可撤销;如果开发人员软件有权撤销许可证,或追溯添加对其条款的限制,而不是你做错事因为,这个软件不是免费的。

免费许可证可能不要求遵守非自由程序。因此,例如,如果许可证要求您遵守“您使用的所有程序”中的许可如果用户运行非免费程序,则需要遵守这些非免费项目的许可;这使得许可证不免费。

自由许可可以指定哪个司法管辖区法律适用,或必须进行诉讼,或两者兼而有之。

基于合同的许可

大多数自由软件许可都是基于版权的,并且有限制通过版权可以施加什么样的要求。如果基于版权的许可以上述方式尊重自由不太可能出现我们从未预料到的其他问题(尽管这种情况偶尔会发生)。然而,一些免费软件许可证是基于合同的,合同可以施加更大的可能的限制范围。这意味着有很多可能的方法这样的许可可能具有无法接受的限制性和非免费性。

我们不可能列出所有可能发生的情况。如果基于合同的许可以一种不寻常的方式限制用户基于版权的许可证不能,此处未提及合法的,我们必须考虑一下,我们可能会得出结论这是不免费的。

实践中的自由软件定义

我们如何解释这些标准

请注意,诸如本自由软件中所述的标准定义需要仔细考虑其解释。决定特定软件许可证是否符合自由软件许可证的资格,我们根据这些标准来判断它是否适合他们精神和精确的词语。如果许可证包含不合理限制,我们拒绝它,即使我们没有预料到这个问题有时许可证要求会引发问题这需要广泛思考,包括与律师讨论,然后我们才能决定这个要求是否可以接受。当我们到达对于一个新问题的结论,我们经常更新这些标准更容易理解为什么某些许可证符合或不符合条件。

获取有关免费许可证的帮助

如果您对特定许可证是否符合免费软件许可证,请参阅我们的列表共个许可证。如果您关注的许可证不是在此处列出,您可以向我们发送电子邮件<licensing@gnu.org>.

如果您正在考虑编写新许可证,请联系自由软件基金会首先向该地址写信。这个不同自由软件许可证的激增意味着工作量增加便于用户理解许可证;我们也许能帮你找到满足您需求的现有免费软件许可证。

如果这不可能,如果你真的需要一个新的许可证帮助您确保许可证实际上是一个自由软件许可证并避免各种实际问题。

谈论自由软件时使用正确的词语

当谈论自由软件时,最好避免使用术语比如“赠送”或“免费”,因为这些术语意味着问题在于价格,而不是自由。一些常见术语,如由于“盗版”体现了我们的观点,我们希望您不会赞同。请参见令人困惑的单词和短语值得避免以讨论这些术语。我们也有正确的列表的翻译“免费软件”翻译成各种语言。

另一组使用术语“开源”表示与“自由软件”相近(但不相同)的东西。我们更喜欢“自由软件”这个词,因为一旦你听说了它指的是自由,而不是价格,它呼唤心灵的自由。这个“开放”一词从未指自由。

超越软件

软件手册必须免费,出于同样的原因,软件必须是免费的,并且因为手册实际上是软件的一部分。

同样的论点也适用于其他类型的作品实用性——也就是说,体现有用知识的作品,如教育作品和参考资料作品。维基百科是最著名的例子。

任何类型的工作可以自由,自由软件的定义已扩展到以下定义自由文化作品适用于任何类型的工程。

历史

我们不时修订这个自由软件定义。这是实质性更改的列表,以及确切显示内容的链接已更改。

  • 版本1.169:更清楚地解释为什么四项自由必须适用商业活动。解释为什么四种自由意味着不运行程序的自由和删除程序的自由,因此无需将这些作为单独的要求进行说明。
  • 版本1.165:澄清代码中的任意烦恼否定自由度0,自由度1和3允许用户删除它们。
  • 版本1.153:阐明运行程序的自由意味着没有停止你让它跑了。
  • 版本1.141:明确哪些代码需要免费。
  • 版本1.135:每次说自由度0就是运行程序的自由度如你所愿。
  • 版本1.134:Freedom 0与程序的功能无关。
  • 版本1.131:免费许可证可能不需要遵守非免费许可证另一个程序。
  • 版本1.129:明确指出法律的选择和法院的选择允许使用规范。(这一直是我们的政策。)
  • 版本1.122:如果要求是不平凡的;否则,这只是一个潜在的问题。
  • 版本1.118:澄清:问题是限制您的修改权,不是因为你做了什么修改。修改不受限制到“改进”
  • 版本1.111:澄清1.77追溯的限制是不可接受的。版权持有者总是可以授予额外的许可用于使用通过并行地以另一种方式释放工作来进行工作。
  • 版本1.105:在自由1的简短声明中反映这一点(已经在版本1.80中声明)它包括真正使用您修改的版本。
  • 版本1.92:澄清模糊代码不符合源代码的条件。
  • 版本1.90:澄清自由3意味着分发副本的权利您自己修改或改进的版本,而不是参与的权利在别人的开发项目中。
  • 版本1.89:Freedom 3包括发布修改版本的权利自由软件。
  • 版本1.80:自由1必须是实际的,而不仅仅是理论的;也就是说,没有反语。
  • 版本1.77:澄清对许可证的所有追溯性更改不可接受,即使它没有被描述为完整的更换。
  • 版本1.74:四点澄清不够明确或说明在一些地方,但并没有到处反映出来:
    • “改进”并不意味着许可证可以实质上限制了可以发布的修改版本的种类。Freedom 3包括分发修改版本,而不仅仅是更改。
    • 在现有模块中合并的权利指获得适当许可的人员。
    • 明确陈述关于出口管制的观点的结论。
    • 实施许可证更改构成撤销旧许可证。
  • 版本1.57:添加“超越软件”部分。
  • 版本1.46:明确谁的目的对跑步自由至关重要任何目的的程序。
  • 版本1.41:澄清基于合同的许可的措辞。
  • 版本1.40:说明免费许可证必须允许您使用其他可用的免费软件来创建您的修改。
  • 版本1.39:请注意,许可证可以要求您为您公开的软件版本提供源代码使用。
  • 版本1.31:请注意,许可证可以要求您确定自己是修改的作者。其他未成年人整个文本中的澄清。
  • 版本1.23:解决与基于合同的潜在问题许可证。
  • 版本1.16:解释为什么二进制文件的分发很重要。
  • 版本1.11:请注意,免费许可证可能要求您发送根据要求分发给以前的开发人员的版本。

上面显示的版本号中存在漏洞,因为此页面中不影响定义或其解释。例如,列表中不包括旁白、格式、拼写、标点符号或页面的其他部分。您可以通过查看页面更改的完整列表这个cvsweb公司接口.

脚注

  1. 它们编号为0、1、2和3的原因是历史性的。周围1990年有三项自由,分别是1、2和3。然后我们意识到需要明确提及运行程序的自由。它显然比其他三个更基本,因此应该适当地在他们之前。我们没有给其他人重新编号,而是将其设置为自由0。