来自当知百科
跳转到: 导航搜索

目录

简介

  开放源代码的定义由Bruce Perens(曾是Debian的创始人之一)定义如下:

  自由再散布(Free Distribution):获得源代码的人可自由再将此源代码散布。源代码(SourceCode):程式的可执行档在散布时,必需随附完整源代码或是可让人方便的事后取得源代码。衍生著作(DerivedWorks):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。原创作者程式源代码的完整性(Integrity of TheAuthor’s SourceCode):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。不得对任何人或团体有差别待遇(NoDiscrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。对程式在任何领域内的利用不得有差别待遇(NoDiscrimination Against Fields ofEndeavor):意即不得限制商业使用。散布授权条款(Distribution ofLicense):若软件再散布,必需以同一条款散布之。授权条款不得专属于特定产品(License Must Not BeSpecific to aProduct):若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。授权条款不得限制其他软件(LicenseMust Not Restrict OtherSoftware):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。授权条款必须技术中立(LicenseMust Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。

开放源代码与自由软件

  许多人将开放源代码与自由软件飞鸽传书(freeSoftware)视为相同,但若以定义条件而言,自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。

  开源软件定义Version 1.9

  开源不仅仅表示开放程序源代码。从发行角度定义的开源软件必须符合如下条件:

1、自由再发行

  许可证不能限制任何团体销售或赠送软件,软件可以是几个不同来源的程序集成后的软件发行版中的其中一个原件。许可证不能要求对这样的销售收取许可证费或其他费用。

2、程序源代码

  程序必须包含源代码。必须允许发行版在包含编译形式的同时也包含程序源代码。当产品以某种形式发行时没有包含源代码,必须非常醒目的告知用户,如何通过Internet免费的下载源代码。源代码必须是以当程序员修改程序时优先选用的形式提供。故意地扰乱源代码是不允许的。以预处理程序或翻译器这样的中间形式作为源代码也是不允许的。

3、派生程序

  许可证必须允许更改或派生程序。必须允许这些程序按与初始软件相同的许可证发行。

4、作者源代码的完整性

  只有当许可证允许在程序开发阶段,为了调整程序的目的将“修补文件”的发行版与源代码一起发行时,许可证才能限制源代码以更改后的形式发行。许可证必须明确地允许按更改后的源代码所建立的程序发行。许可证可以要求派生的程序使用与初始软件不同的名称或版本号。

5、无个人或团体歧视

  许可证不能都有针对任何个人或团体制在专门奋斗领域内的任何人使用该程序。例如不能限制程序应用于商业领域,或者应用于遗传研究。

7、许可证发行

  伴随程序所具有权力必须适用于所有的程序分销商,而不需要这些团体之间再附加许可证签字盖章。

8、许可证不能特制某个产品

  如果程序是某个特殊的软件发行版中的一部分,伴随该程序所具有的权力不能只以来于这一发行版。如果程序是从那一发行版中摘录出来的,使用或发行时用的都是那个程序的许可证,分销程序的所有团体都应拥有与初始软件版所允许的所有权力。

9、许可证不能排斥其他软件

  许可证不能限制随该许可证软件一起发行的其他软件。例如,许可证不能要求所有与之一起发行的其他软件都是开源软件。

10、许可证实例

  GNU GPL、BSD、X Consortiun和Artistic许可证都是我们认为符合开源软件定义的许可证。MPL也是一样。

1.9版的英文原文:

  The Open Source DefinitionVersion 1.9

  The indented, italicized sections below appear as annotationsto the Open Source Definition (OSD) and are nota part of theOSD.

  Introduction

  Open source doesn't just mean access to the source code. Thedistribution terms of open-source software must comply with thefollowing criteria:

  The license shall not restrict any party from selling or givingaway the software as a component of an aggregate softwaredistribution containing programs from several different sources.The license shall not require a royalty or other fee for such sale.

1. Free Redistribution

  Rationale:By constraining the license to require freeredistribution, we eliminate the temptation to throw away manylong-term gains in order to make a few short-term sales dollars. Ifwe didn't do this, there would be lots of pressure for cooperatorsto defect.

2. Source Code

  The program must include source code, and must allow distributionin source code as well as compiled form. Where some form of aproduct is not distributed with source code, there must be awell-publicized means of obtaining the source code for no more thana reasonable reproduction cost–preferably, downloading via theInternet without charge. The source code must be the preferred formin which a programmer would modify the program. Deliberatelyobfuscated source code is not allowed. Intermediate forms such asthe output of a preprocessor or translator are not allowed.

  Rationale:We require access to un-obfuscated sourcecode because you can't evolve programs without modifying them.Since our purpose is to make evolution easy, we require thatmodification be made easy.

3. Derived Works

  The license must allow modifications and derived works, and mustallow them to be distributed under the same terms as the license ofthe original software.

  Rationale:The mere ability to read source isn't enoughto support independent peer review and rapid evolutionaryselection. For rapid evolution to happen, people need to be able toexperiment with and redistribute modifications.

4. Integrity of The Author's Source Code

  The license may restrict source-code from being distributed inmodified form only if the license allows the distribution of"patch files" with the source code for the purpose of modifying theprogram at build time. The license must explicitly permitdistribution of software built from modified source code. Thelicense may require derived works to carry a different name orversion number from the original software.

  Rationale:Encouraging lots of improvement is a goodthing, but users have a right to know who is responsible for thesoftware they are using. Authors and maintainers have reciprocalright to know what they're being asked to support and protect theirreputations.

  Accordingly, an open-source license mustguarantee thatsource be readily available, but mayrequire that it bedistributed as pristine base sources plus patches. In this way,"unofficial" changes can be made available but readilydistinguished from the base source.

  5. No Discrimination Against Persons or GroupsThe license mustnot discriminate against any person or group of persons.

  Rationale:In order to get the maximum benefit from theprocess, the maximum diversity of persons and groups should beequally eligible to contribute to open sources. Therefore we forbidany open-source license from locking anybody out of theprocess.

  Some countries, including the United States, have exportrestrictions for certain types of software. An OSD-conformantlicense may warn licensees of applicable restrictions and remindthem that they are obliged to obey the law; however, it may notincorporate such restrictions itself.

  6. No Discrimination Against Fields of EndeavorThe license mustnot restrict anyone from making use of the program in a specificfield of endeavor. For example, it may not restrict the programfrom being used in a business, or from being used for geneticresearch.

  Rationale:The major intention of this clause is toprohibit license traps that prevent open source from being usedcommercially. We want commercial users to join our community, notfeel excluded from it.

7. Distribution of License

  The rights attached to the program must apply to all to whom theprogram is redistributed without the need for execution of anadditional license by those parties.

  Rationale:This clause is intended to forbid closing upsoftware by indirect means such as requiring a non-disclosureagreement.

  8. License Must Not Be Specific to a ProductThe rights attachedto the program must not depend on the program's being part of aparticular software distribution. If the program is extracted fromthat distribution and used or distributed within the terms of theprogram's license, all parties to whom the program is redistributedshould have the same rights as those that are granted inconjunction with the original software distribution.

  Rationale:This clause forecloses yet another class oflicense traps.

  9. License Must Not Restrict Other SoftwareThe license must notplace restrictions on other software that is distributed along withthe licensed software. For example, the license must not insistthat all other programs distributed on the same medium must beopen-source software.

  Rationale:Distributors of open-source software have theright to make their own choices about their own software.

  Yes, the GPL is conformant with this requirement. Softwarelinked with GPLed libraries only inherits the GPL if it forms asingle work, not any software with which they are merelydistributed.

  10. License Must Be Technology-NeutralNo provision of the licensemay be predicated on any individual technology or style ofinterface.

  Rationale:This provision is aimed specifically aimed atlicenses which require an explicit gesture of assent in order toestablish a contract between licensor and licensee. Provisionsmandating so-called "click-wrap" may conflict with importantmethods of software distribution such as FTP download, CD-ROManthologies, and web mirroring; such provisions may also hindercode re-use. Conformant licenses must allow for the possibilitythat (a) redistribution of the software will take place overnon-Web channels that do not support click-wrapping of thedownload, and that (b) the covered code (or re-used portions ofcovered code) may run in a non-GUI environment that cannot supportpopup dialogues.

关于开放源代码的定义(1.7版)

  开放源代码并不仅仅意味着对源代码的访问权。开放源代码软件的发布条款必须满足以下条件:

  1. 自由地再发布

  如果被发布的软件是由不同来源的程序组成的,许可证不得限制任何当事人或组织(party)销售或赠送作为被发布软件成分之一的开放源码软件。

  许可证不得从此项销售中索取使用费或其它任何费用。(理由)

  2. 源代码

  程序必须包括源代码,必须允许以源代码方式发布、还必须允许以编译后的形式发布。如果产品的某个部分没有与源代码一同发布,那么必须提供通行的、不需要支付合理范围之外的任何费用的手段以获得源代码---从网络上免费下载是一种可取的方式。源代码必须是程序员对其进行修改的最佳形式。故意地使源代码变得含混晦涩是不允许的。也不允许给出预处理器或翻译器处理的中间结果。(理由)

  3. 派生作品

  许可证必须允许修改软件和派生软件,并且必须允许它们按照原软件的许可证的条款进行发布。(理由)

  4. 作者的源代码的完整性

  只有在许可证允许与源代码一同发布"补丁文件"(该"补丁文件"以在创建时对程序进行修改为目的)时,许可证才能限制对修改形式的源代码的发布。许可证必须明确地允许发布由修改后的源代码生成的程序。许可证可以要求派生的作品采用不同的名称或不同的版本号以区别于原来的软件。(理由)

  5. 不得歧视任何个人或团体

  许可证不得歧视任何个人或者由多人组成的团体。(理由)

  6. 不得歧视任何应用领域(fields of endeavor)

  许可证不得限制任何人把程序应用于任何领域。例如,不得规定程序不能应用于商业领域或基因研究领域。(理由)

  7. 许可证的发布

  与程序有关的权利必须适用于该程序的任何使用者,并且程序的使用者也不需要为了使用该程序而获得其它许可证的许可。(理由)

  8. 许可证不能针对于一个产品

  与程序有关的权利不能由该程序是否作为某个软件产品的一部分来决定。如果程序从那个发布中被抽出来,并且按照程序的许可证的条款进行使用和发布,那么得到该程序的当事人或组织将获得与得到原程序的使用者相同的权利。(理由)

  9. 许可证不能影响其它软件

  许可证不得向与采用它的软件一同发布的其它软件提出任何限制。例如,许可证不能坚持要求在同一媒体上发布的其它程序都是开放源代码软件。(理由)

  Conformance

  (本节不是开放源代码定义的一个部分)

  我们认为本开放源代码定义涵盖了由绝大多数软件团体使用的术语"开放源代码"的最初含义和当前含义。然而,该术语被广泛地应用,并且它的含义变得不精确了。OSICertified标志是某个软件发布许可证是否服从开放源代码定义的OST认证方式。一般的术语"开放源代码"并不提供这种担保,但我们仍然鼓励使用"开放源代码"这一术语以表明它符合"开放源代码定义"。关于OSI Certified标志的信息,以及已经通过了OSICertified、符合"开放源代码定义"的许可证,请参见OSI Certified标志与纲要。

  开放源代码定义之原理

  给出开放源代码的定义的目的是:把我们所确信的、由软件开发团体所公认的"开放源代码"的含义作为一组具体的准则写下来---该准则确保按照开放源代码许可证发布的软件可以得到与其它软件同样认真的评审、使软件可以不断地得到改良和遴选,从而提供非开放软件所难以提供的可靠性与能力。

  为了使此项工作持续发展,我们必须抵制人们为了短期利益而中止为软件开发做出贡献。这意味着,许可证的条款必须防止人们藏匿(lockup)源代码从而导致只有很少的人才能够阅读和修改它。

  当软件的开发者按照由OSI认证的许可证发布他们的软件时,他们可以在软件中使用"OSICertified"标志。这种认证标志告知用户,该软件所采用的许可证符合开放源代码定义。关于我们的认证标志的更多信息及其纲要,请参见OSICertified标志与纲要。

  1. 自由地再发布

  通过强制要求许可证允许自由地再发布,我们抵制了任何为了获得少量短期销售金额而放弃长期效益的诱惑。如果我们不这样做,就会有很多压力迫使合作者放弃承诺。

  2. 源代码

  由于软件只有通过修改才能够得到改进,因此我们要求获得易于理解的源代码。因为我们的目的是使软件易于改进,我们也就希望软件易于修改。

  3. 派生作品

  仅仅提供可以阅读的源代码,对于实施认真的评审、对于软件的快速改良与遴选来说都是不够的。为了加快改进软件的速度,人们需要能够进行试验和对修改进行重新发布。

  4. 作者的源代码的完整性

  鼓励对软件进行各种改进是一件好事,但使用者有权知道谁应该对他们所使用的软件负责。软件的作者和维护者都有权知道需要他们提供支持的软件是什么,以维护他们的名誉。

  因此,开放软件许可证必须保证可以容易地得到源代码,但可以要求源代码以原始源代码和一组补丁文件的形式发布。按照这种方式,就可以获得"非正式的"的修改而同时又可以轻易地把它们从原始源代码中区分出来。

  5. 不得歧视任何个人或团体

  为了从该进程中获得最大的收益,应该给尽可能多的个人和团体以同等资格对开放源代码软件做出贡献。为此我们禁止开放源代码许可证把任何人排除在这个进程之外。

  6. 不得歧视任何应用领域(fields of endeavor)

  该条款的主要目的是禁止许可证中含有使开放源代码软件无法在商业上使用的规定。我们需要商业用户参与我们的工作,而不让他们感到被排除在外。

  7. 许可证的发布

  本条款的目的是禁止通过非直接的手段,例如需要签署非公开的协定,使软件无法公开。

  8. 许可证不能针对于一个产品

  本条款用于预防其它许可证陷阱。

  9. 许可证不能影响其它软件

  开放源代码软件的发布者有权为他们自己的软件做出选择。

  是的,GPL满足这条要求。按GPL发布的库只影响(contaminate)在运行时与之连接的软件,于仅仅和它一同发布的软件无关。

  OSI Certified标志与纲要

其他信息

  开放源代码定义给出了开放源代码软件的基本性质。不幸的是,术语"开放源代码"遭到了滥用,并且由于它的描述性,它不能作为一个商标(这是我们的首选)被保护。由于社团需要一种可靠的方式以确定一份软件是否真正是开放源代码软件。OSI为此目的而注册了一个认证标志,OSICertified。如果你在一份软件上看到了该标志,那么该软件就是必定是按照遵从开放源代码定义的许可证发布的,否则,该发行人就是在滥用该标志而且违反了法律。

  OSICertified标志被用于软件而不是许可证:人们需要知道的是组成软件的包和它们的许可证是开放的源代码。此外,单独的许可证可能不是"货物",它由美国专利和商标局注册认证标志。但是软件的作者显然必须能够在不询问我们的情况下(自我认证)、在适当的时刻确认他们的软件是按照OSICertified的开放源代码方式发布的。所以认证按照两步进行:

  *OSI提供一个满足开放软件源代码定义的开放源代码许可证表。这些许可证经过公众的详细审查并且被我们所批准。如果你有一个希望加入该列表的许可证,请与license-approval_opensource_org联系,它启动了获得许可证批准的程序。

  * 如果你希望在你的软件上设置OSICertified标志,你可以从列表中选择一个获得批准的许可证并根据它发布软件,并且适当地为软件做标志。

  上面仅仅是一个概括。下面给出申请批准许可证和把OSI Certified标志应用在你的软件上的详细说明。

  获得许可证的批准

  1.通过电子邮件把许可证发送给license-approval_opensource_org。在电子邮件中说明你是否愿意以你的签名或者匿名地把许可证发送到许可证讨论列表中。(我们愿意考虑那些根本不希望被发送的许可证,但由于社团的评审是批准的一个重要组成部分,我们将不得不把该许可证私下地发送给评审者:因此,对没有被发送到许可证讨论列表中的许可证的批准,要花费更长的时间,并且通常要更多地与你交流。)

  2. 如果我们发现你的许可证不符合开放源代码的定义,我们将与你一同解决这个问题。

  3. 同时,我们将关注许可证论坛列表,并且与你一同工作以解决大家提出的任何未包含的问题。

  4. 作为该过程的一部分,我们还将就许可证问题向外界寻求法律上的建议。

  5.一旦许可证符合了开放源代码定义,并且在许可证论坛上经过了充分的讨论或者其它的评审者没有提出我们认为重要的问题,我们将通知你,许可证已经被批准了,同时它被复制到我们的网站上,并且被加入以下的许可证列表。

  使用该标志

  你可以在这两种软件的发行上使用OSICertified标志。该软件的发布包括并且达到了被批准的许可证列表中某个许可证的要求,或者该软件的源代码已经被明确地放到公众可以得到的位置。

  为了表明你的软件是按照OSICertified发布的,你必须不加任何修改地把下面两者之一,按照下述方式加入你的软件。完整的声明是:

  This software is OSI Certified Open Source Software.

  OSI Certified is a certification mark of the Open SourceInitiative.

  较简短的声明是:

  OSI Certified Open Source Software

  你的软件的每种发布形式都有自身的要求:

  *如果软件以电子的形式发布(而不是实物(tangible)的形式),你必须把完整的声明放在README文件或者类似的、人类用户将首先阅读的文件中。

  * 如果软件以实物形式发布,你必须完成以下所有可行的任务:

  * 如果软件的发布包括印刷品,你必须把完整的声明加入该印刷品。

  *如果软件发布在可擦写的媒体(例如软磁盘)、CD-ROM、磁带等媒体上,它们在物理上可以添加能够被人的裸眼所阅读的简短声明,而不影响它们的功能,你必须把完整的声明或简短的声明标注在该媒体上。

  * 如果软件的发布是一个的包,从而使其中的声明不能被阅读。你必须在包的外面放置完整的声明。

  如果不能把以上任何条款用于发布,请与我们联系,我们将把你选择的位置加入本列表。

  获得批准的许可证

  以下许可证满足开放源代码的定义,并且已经被批准用于OSICertified的开放源代码软件。没有给出批准日期的许可证是在1999年1月1日以前批准的。

  * The GNU General Public License(GPL);

  * The GNU Library(Lesser) General Public License(LGPL);

  * The BSD License;

  * The X Consortium License;

  * The Artistic License;

  * The Mozilla Public License(MPL);

  * The QPL;

  其它符合定义的许可证包括:libpng许可证、zlib许可证、IJG JPEG许可证和OPL(Open LDAP PublicLicense)许可证。

个人工具
名字空间

变换
查看
操作
导航
工具箱