最早的开源软件是什么?
1.自由再分配
如果发布的软件由不同来源的程序组成,许可证不得限制任何一方或多方将开源软件作为发布软件的组成部分之一出售或赠送。
该许可证不得从此次销售中索取版税或任何其他费用。(原因)
2.源代码
程序必须包含源代码,必须允许以源代码的形式发布,也必须允许以编译后的形式发布。如果产品的某一部分没有随源代码一起发布,那么就需要提供一种通用的手段来获取源代码,而不需要支付任何超出合理范围的费用——从网络上免费下载是一种可取的方式。源代码必须是程序员修改它的最佳形式。不允许故意模糊源代码。也不允许给出预处理程序或翻译程序处理的中间结果。(原因)
3.衍生作品
许可证必须允许修改软件和衍生软件,并且必须允许根据原始软件的许可证条款分发它们。(原因)
4.作者源代码的完整性
只有当许可证允许“补丁文件”与源代码一起发布时(“补丁文件”旨在在程序创建时对其进行修改),许可证才能限制修改后的源代码的发布。许可证必须明确允许分发由修改后的源代码生成的程序。许可证可能要求衍生作品采用不同的名称或不同的版本号,以区别于原始软件。(原因)
5.不要歧视任何个人或团体。
许可证不得歧视任何个人或由多人组成的团体。(原因)
6.不要歧视任何领域的努力。
许可证不应限制任何人将程序应用于任何领域。例如,不得规定该程序不能应用于商业或基因研究领域。(原因)
7.许可证的发放
与程序相关的权利必须适用于程序的任何用户,程序的用户使用程序不需要获得其他许可。(原因)
8.许可证不能特定于某个产品。
与程序相关的权利不能由程序是否是软件产品的一部分来确定。如果程序是从该发行版中提取的,并根据程序的许可条款使用和发行,获得程序的一方或组织将获得与获得原始程序的用户相同的权利。(原因)
9.许可证不会影响其他软件。
许可证不得对与使用它的软件一起分发的其他软件施加任何限制。例如,许可证不能坚持在同一媒体上发布的所有其他程序都是开源软件。(原因)
顺应
(本节不是开源定义的一部分。)
我们认为这个开源的定义涵盖了大多数软件组织使用的术语“开源”的原始含义和当前含义。然而,该术语被广泛使用,其含义变得不准确。OSI认证标志是软件分发许可证是否符合开放源代码定义的OST认证方法。通用术语“开源”不提供这种保证,但我们仍然鼓励使用“开源”这个术语,以表明它符合“开源”的定义。有关OSI认证标志和已通过OSI认证并符合“开源定义”的许可证的信息,请参考OSI认证标志和大纲。
开源定义的原则
给出开源代码定义的目的是把我们深信不疑的、被软件开发社区认可的“开源代码”的含义写下来,作为一套具体的准则——这个准则保证了在开源许可下发布的软件可以像其他软件一样得到认真的评估,使软件得到不断的改进和选择,从而提供非开放软件所不能提供的可靠性和能力。
为了使这项工作继续发展,我们必须抵制人们为了短期利益而停止对软件开发的贡献。这意味着许可证的条款必须防止人们锁定源代码,以便只有少数人可以阅读和修改它。
当软件开发人员根据OSI认证的许可证分发其软件时,他们可以在软件中使用“OSI认证”标志。这个认证标志告知用户,软件使用的许可证符合开放源代码的定义。有关我们认证标志及其轮廓的更多信息,请参考OSI认证标志和轮廓。
1.自由再分配
通过强制许可自由再分配,我们抵制了任何为了获得少量短期销售而放弃长期利益的诱惑。如果我们不这样做,就会有很大的压力迫使我们的合作伙伴放弃承诺。
2.源代码
由于软件只能通过修改来改进,所以我们需要易于理解的源代码。因为我们的目标是让软件易于改进,所以我们也希望软件易于修改。
3.衍生作品
仅仅提供可读的源代码不足以对软件进行认真的审核和快速的改进和选择。为了加速软件的改进,人们需要能够试验和重新发布变化。
4.作者源代码的完整性
鼓励各种软件改进是好事,但用户有权知道谁对自己使用的软件负责。软件的作者和维护者有权知道什么软件需要他们的支持以维护他们的声誉。
因此,开放软件许可证必须保证源代码可以容易地获得,但可以要求源代码以原始源代码和一组补丁文件的形式发布。通过这种方式,您可以获得“非正式的”修改,同时很容易将它们与原始源代码区分开来。
5.不要歧视任何个人或团体。
为了从这个过程中获得最大的利益,应该给予尽可能多的个人和团体同等的资格来为开源软件做出贡献。出于这个原因,我们禁止开源许可证将任何人排除在这个过程之外。
6.不要歧视任何领域的努力。
该条款的主要目的是禁止许可证包含使开源软件不能用于商业目的的条款。我们需要业务用户参与到我们的工作中,而不会让他们感到被排斥。
7.许可证的发放
该条款的目的是禁止以间接方式公开软件,如需要签署非公开协议。
8.许可证不能特定于某个产品。
此条款用于防止其他许可证陷阱。
9.许可证不会影响其他软件。
开源软件的发布者有权为自己的软件做出选择。
是的,GPL符合这个要求。GPL发布的一个库只在运行时影响与之连接的软件,与随其发布的软件无关。
OSI认证标志和大纲
开源的定义给出了开源软件的基本属性。不幸的是,“开源”这个术语被滥用了,由于其描述性,不能作为商标保护(这是我们的首选)。因为社区需要一个可靠的方法来确定一个软件是否真的是开源软件。为此,OSI注册了一个认证标志,OSI Certified。如果你在一个软件上看到这个标志,那么这个软件必须在符合开源定义的许可下发布。否则,发布者就是滥用标识,违法。
OSI认证标志用于软件而不是许可证:人们需要知道的是,组成软件的包和它们的许可证是开放源代码。此外,单独的许可证可能不是“商品”,而是由美国专利商标局注册的认证标志。但是,很明显,软件的作者必须能够在适当的时候确认他们的软件是以OSI认证的开源模式发布的,而无需询问我们(自我认证)。因此,认证分两步完成:
* OSI提供了符合开源软件定义的开源许可证表。这些许可证已经过公众的仔细审查,并得到我们的批准。如果您有想要加入列表的许可证,请联系license-approval@opensource.org,该公司已开始获取许可证批准的过程。
*如果您想在您的软件上设置OSI认证标志,您可以从列表中选择一个批准的许可证并根据它分发软件,并对软件进行适当的标记。
以上只是总结。以下是申请批准许可和将OSI认证标志应用于您的软件的详细说明。
获得许可证的批准
1.通过电子邮件将许可证发送到license-approval@opensource.org。在电子邮件中声明您是否愿意以签名或匿名方式将许可证发送到许可证讨论列表。(我们愿意考虑那些我们根本不希望发送的许可证,但是因为社区的评估是批准的重要组成部分,我们将不得不私下将许可证发送给审查者:因此,未发送到许可证讨论列表的许可证的批准需要更长的时间,通常需要与您进行更多的沟通。)
如果我们发现您的许可证不符合开源的定义,我们将与您合作解决这个问题。
3.同时,我们将关注许可证论坛的列表,并与您合作解决任何未包含的问题。
作为这一过程的一部分,我们还将就许可证问题向外界寻求法律建议。
5.一旦许可证符合开源的定义,并且在许可证论坛中得到了充分的讨论,或者其他审查者没有提出我们认为重要的问题,我们将通知您许可证已被批准,并且它已被复制到我们的网站并添加到下面的许可证列表中。
使用这个标志
你可以在这两种软件的发行上使用OSI认证标志。软件的发布包括并满足批准的许可证列表中的许可证的要求,或者软件的源代码已明确放在公开位置。
为了表明您的软件是根据OSI认证发布的,您必须将以下两者之一添加到您的软件中,不做任何修改,如下所示。完整的陈述是:
该软件是OSI认证的开源软件。
OSI Certified是开源计划的认证标志。
更简短的陈述是:
OSI认证开源软件
您的软件的每种分发形式都有自己的要求:
*如果软件是以电子形式发布的(而不是有形的),您必须将完整的声明放在自述文件或类似文件中,用户将首先阅读这些文件。
*如果软件以物理形式发布,您必须完成以下所有可行的任务:
*如果软件版本包括印刷品,您必须在印刷品中添加完整的声明。
*如果软件发布在可擦写介质(如软盘)、光盘、磁带等介质上,他们可以在不影响功能的情况下,添加肉眼可以阅读的简短语句。您必须在媒体上标记完整的陈述或简短的陈述。
*如果软件以新的软件包发布,因此无法阅读其中的声明。你必须在袋子外面贴上一份完整的声明。
如果您不能使用上述任何条款进行发布,请联系我们,我们会将您选择的位置添加到此列表中。
获得批准的许可证
以下许可证符合开源的定义,并已被批准用于OSI认证的开源软件。没有批准日期的许可证是在1999 1之前批准的。
GNU通用公共许可证(GPL);
GNU库(宽松)通用公共许可证(LGPL);
BSD许可证;
* X财团许可证;
*艺术许可证;
Mozilla公共许可证(MPL);
* QPL;
其他符合定义的许可证包括:libpng许可证、zlib许可证、IJG JPEG许可证和OPL(开放LDAP公共许可证)许可证。