开源而不是自由软件(反之亦然)[关闭]


14

自由软件基金会对“自由软件”的定义:

“免费软件重在自由,而非价格。要理解这个概念,您应该将“自由”视为“言论自由”,而不是“免费啤酒”。

自由软件是用户自由运行,复制,分发,学习,更改和改进软件的问题。更准确地说,这意味着程序的用户拥有四个基本自由:

  • 出于任何目的运行程序的自由度(自由度0)。
  • 自由学习程序的工作原理,并对其进行更改以使其按您的意愿进行操作(自由1)。前提条件是访问源代码。
  • 重新分发副本的自由,以便您可以帮助邻居(自由2)。
  • 将修改版本的副本分发给他人的自由(自由3)。通过这样做,您可以使整个社区都有机会从您的更改中受益。前提条件是访问源代码。

如果用户拥有所有这些自由,则该程序是免费软件。因此,无论有无修改,您都可以自由地将副本重新分发给任何地方的任何人,既可以免费获得,也可以收取发行费用。自由地做这些事情意味着(其中包括)您不必征求这样做的许可或同意。

来自开源计划的“开源软件”的定义:

开源不仅意味着可以访问源代码。开源软件的发行条款必须符合以下条件:

  1. 免费重新分发许可证不得限制任何一方出售或赠送软件,该软件是包含多个不同来源程序的总体软件分发的一部分。许可证不要求此类销售的特许权使用费或其他费用。

  2. 源代码该程序必须包括源代码,并且必须允许以源代码和编译形式进行分发。在某种形式的产品未附带源代码的情况下,必须有一种广为人知的获取源代码的方法,价格最好不超过合理的复制成本,最好是通过Internet免费下载。源代码必须是程序员用来修改程序的首选形式。不允许故意混淆的源代码。不允许使用中间形式,例如预处理器或翻译器的输出。

  3. 衍生作品许可必须允许修改和衍生作品,并且必须允许它们按照与原始软件许可相同的条款进行分发。

  4. 作者源代码完整性仅当许可证允许分发带有源代码的“补丁文件”以便在构建时修改程序时,许可证才可以限制源代码以修改形式分发。该许可证必须明确允许分发由修改后的源代码构建的软件。许可证可能要求衍生作品带有与原始软件不同的名称或版本号。

  5. 不得歧视个人或团体许可证不得歧视任何个人或团体。

  6. 不得歧视任何领域许可证不得限制任何人在特定领域内使用该程序。例如,它可能不会限制该程序在企业中使用或在遗传研究中使用。

  7. 许可证分发程序附带的权利必须适用于向其重新分发了程序的所有人员,而无需那些当事方执行其他许可证。

  8. 许可证不得特定于产品程序附带的权利不得取决于程序是否属于特定软件发行版。如果从该发行版本中提取程序,并在该程序的许可范围内使用或分发该程序,则重新发行该程序的所有各方均应具有与原始软件发行版本一起授予的权利。

  9. 许可证不得限制其他软件许可证不得限制与许可软件一起分发的其他软件。例如,许可证不得坚持要求在同一介质上分发的所有其他程序都必须是开源软件。

  10. 许可证必须是技术中立的。不得以任何单独的技术或界面风格为依据提供许可证。

这些定义尽管来自不同的意识形态,但具有广泛的兼容性,并且大多数自由软件也是开源软件,反之亦然。但是,我相信情况并非如此:软件有可能在没有免费的情况下成为开源,或者有可能在没有开源的情况下成为自由。

问题

  1. 我的信念正确吗?软件是否有可能陷入一个阵营,而不是另一个阵营?
  2. 真的有这样的软件吗?请举例子。

澄清度

我现在已经接受了答案,但是我似乎使很多人感到困惑,所以也许有必要进行澄清。我不是在问copyleft(或“病毒”,尽管我不喜欢该术语)与非copyleft(“许可”)许可证之间的区别。我也没有问过您对“免费”和“开放”的个性化定义。我在问“ FSF定义的自由软件”和“ OSI定义的开源软件”。两者总是一样吗?有可能没有一个就成为一个?

答案似乎是,没有开放就不可能免费,但是没有自由就可能开放。谢谢所有实际回答问题的人。


1
您可能想看看Wikipedia的许可证比较矩阵中的FSF批准OSI批准列。警告:未经审核的许可证也被列为“否”。
netvope 2011年

这个问题正在Meta上讨论
yannis

Answers:


19

根据Wikipedia的说法,根据NASA开源协议许可的任何软件都是开源的,但不是免费的,因此这就是一个例子。


1
任何不包含“ viral”子句的许可证都是开源的,但不强制实施“言论自由”。MIT和BSD许可证是其中的两个。
罗伯特·哈维

13
@Robert Harvey,X11,修改的BSD或WTFPL之类的非copyleft(“病毒”)许可证最肯定免费的(并且是开放的)。衍生作品可能(也可能不是免费)(或开放的)。
TRiG

8
@Robert,我不知道所问问题的答案。这就是为什么我问它。您似乎正在尝试回答另一个问题,我没有问过。
TRiG 2010年

6
他接受了回答问题的唯一答案...
替代

1
@ Robert,@ mathepic,尝试阅读我添加到问题中的澄清说明。
TRiG 2011年

7

根据自由软件基金会的答案是肯定的。参见http://www.gnu.org/philosophy/categories.htmlhttp://www.gnu.org/philosophy/open-source-misses-the-point.html

摘自第一个链接,由我加粗:

某些人使用术语“开源”软件来表示与自由软件大致相同的类别。它不是完全相同的软件类别:它们接受某些我们认为过于严格的许可证,并且有一些他们尚未接受的免费软件许可证。但是,类别扩展的差异很小:几乎所有的免费软件都是开源的,几乎所有的开源软件都是免费的。

抱歉,没有示例。


2
问题是关于是否存在免费但不是开源的许可证,反之亦然。这与每个人的哲学基础无关。
David Thornley

2
第一个链接指向维恩图,该图表明自由软件基金会认为存在。
ctrl-alt-delor

谢谢。我知道有些公开赛不是免费的。我不知道有没有开放的免费版本。我很想知道哪个。
TRiG 2011年

我仍然没有找到任何未打开的自由软件许可证,但是我发现OSI不批准的自由软件许可证:WTFPL。很明显,该许可证是开放源代码许可证,但OSI不建议使用。(FSF将其包括在其自由软件许可列表中。)
TRiG,2011年

尽管两者之间存在哲学上的差异(此答案现已涵盖),但是大多数情况是开源或自由软件都是受人尊敬的礼节的决定。但是随着理念的不同,在某些时候一定存在某些重叠的地方。但是大多数情况下,如果软件是其中一种,那么它也是另一种。
ctrl-alt-delor

4

我迟到了,但是发问者的结论是:

答案似乎是,没有开放就不可能免费,但是没有自由就可能开放。谢谢所有实际回答问题的人。

是不正确的。还有就是CeCILL许可V2,这是免费的(FSF批准的),但没有打开。似乎它在2005年被OSI 拒绝了,因此CeCILL 不是开源的。

只是想我会指出这一点,因为这里没有人提到CeCILL。


1
但是OSI也不赞成WTFPL,即使那绝对是开放源代码许可。我认为OSI维护着“推荐的”或“批准的”开放源代码许可证的列表,这不一定意味着未在该列表中的许可证实际上不是开放的。因此,这意味着CeCILL可能会打开也可能不会打开。我会调查一下。谢谢。
TRiG 2012年

实际上,FSF表示CeCILL与GNU GPL兼容。那是一个开放许可证,因此即使OSI不推荐,CeCILL也是开放的。想必。IANAL:别在这方面引用我。
TRiG 2012年

CeCILL 在2005年拒绝,原因是“不清楚的条款”(未明确说明);然后在2010年再次考虑,但似乎术语仍未弄清楚。可能有一天。不过,尚未正式宣布它为非开放式。WTFPL 在2009年拒绝的原因不是因为它是非公开的,而是因为它“冗余于公平许可证”。
TRiG 2012年

1
列出许可证的OSI应用程序包含(或包含)关于该特定许可证所做的事情的信息,而其他许可证则没有。因此,可能有一些满足开放源代码原则的许可证,这些许可证不是经过OSI认证的开放源代码许可证,因此阐明一个正在使用的定义可能很有用。
David Thornley

2

FSF 自由软件条件参考该软件。OSI 开放软件条件是指此类软件的许可。这是重要的法律区别。

例如,根据美国法律,没有免费软件。出口法律限制您将软件出口到朝鲜和伊朗的自由。但是,由于这些不是许可中的限制(而是法律上的限制),因此这些限制不会影响“打开”状态。

当然,开放源代码的支持者常常忽略了这些细微的区别。FSF巧妙地承认了他们。当他们谈论出口管制时,他们确实将自己限于“自由软件许可证”,而不是“自由软件”。

也可以采用其他方法。例如,如果您居住在允许使用免费软件的国家/地区,则免费软件许可可能会违反“作者源代码的完整性”,因此未公开。那不是所列举的自由之一。


-2

软件可能是“开放源代码”,而不是“自由软件”(从某种意义上来说是免费的)

我认为不可能相反,自由1需要源代码。


谢谢。你有什么例子吗?
TRiG

1
很抱歉,我认为我在一般意义上误解了“开源”,其中一个(不一定是开源倡议)为您提供了源代码。
khalooo

例如,如果我是一个使用第三方芯片的嵌入式系统专家,那么该供应商为我的系统特定调整提供了其设备驱动程序源代码。它是开源的(从一般意义上来说),但并不意味着要重新分发或免费
赠与

我的意思是“ OSI定义的开源”和“ FSF定义的免费”。
TRiG 2010年

-1,代表术语“开源”和“自由软件”(答案和评论)。为了阐明“开放源代码”≠自由1,“开放源代码”的定义占一个页面,并且未在名称中进行汇总。开源是一个抽象名词,而aardvark也是一个抽象名词,如果您不知道它的名字,将无济于事。自由软件≠放弃。自由如自由。
ctrl-alt-delor

-8

好吧,我认为定义都有些混乱,所以我的概念是:开放源代码意味着您可以阅读源代码。这并不意味着您可以复制它。

免费意味着您可以使用它来做自己喜欢的事情。GNU GPL不是免费许可,它在许多方面比典型的商业许可更具限制性。特别是,GPL固有的缺乏自由正是造成巨大的鸿沟,使人们在左右复制之间做出选择。显然,其目的是发动一场战争(它有望胜利!)。

我是开源免费软件的开发商。我使用GPL工具来构建它,但是由于我的软件是真正的免费软件,因此我无法在系统中包含任何GPL软件。表示免费使用。复制,修改,是否发布修改,出售,在商业软件中使用。FFAU许可证很多(我相信MIT / BSD是原始许可证)。

GPL对于推动开源运动的发展确实很重要,但现在正在扼杀它。


5
我对您的定义不是很感兴趣。我对OSI和FSF的定义感兴趣。
TRiG 2011年

5
-1,GPL并没有杀死开源运动。无论如何,还有其他许可证可供选择。另外,如果你想包含的代码是GPL授权,则该特定许可证实际上是帮助产生良好定义的软件,是不是?
Andres F.

6
-1用于多余的批注,并在问题使用标准定义时使用非标准定义。
David Thornley,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.