嵌入式Linux中文站

Linux系统基础知识(十三)关于开放源代码的定义


关于开放源代码的定义


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

  1. 自由地再发布
  如果被发布的软件是由不同来源的程序组成的,许可证不得限制任何当事人或组织(party)销售或赠送作为被发布软件成分之一的开放源码软件。
许可证不得从此项销售中索取使用费或其它任何费用。(理由)
  2. 源代码
程序必须包括源代码,必须允许以源代码方式发布、还必须允许以编译后的形式发布。如果产品的某个部分没有与源代码一同发布,那么必须提供通行的、不需要支付合理范围之外的任何费用的手段以获得源代码---从网络上免费下载是一种可取的方式。源代码必须是程序员对其进行修改的最佳形式。故意地使源代码变得含混晦涩是不允许的。也不允许给出预处理器或翻译器处理的中间结果。(理由)
  3. 派生作品
  许可证必须允许修改软件和派生软件,并且必须允许它们按照原软件的许可证的条款进行发布。(理由)
  4. 作者的源代码的完整性
  只有在许可证允许与源代码一同发布\"补丁文件\"(该\"补丁文件\"以在创建时对程序进行修改为目的)时,许可证才能限制对修改形式的源代码的发布。许可证必须明确地允许发布由修改后的源代码生成的程序。许可证可以要求派生的作品采用不同的名称或不同的版本号以区别于原来的软件。(理由)
  5. 不得歧视任何个人或团体
许可证不得歧视任何个人或者由多人组成的团体。(理由)
  6. 不得歧视任何应用领域(fields of endeavor)
许可证不得限制任何人把程序应用于任何领域。例如,不得规定程序不能应用于商业领域或基因研究领域。(理由)
  7. 许可证的发布
与程序有关的权利必须适用于该程序的任何使用者,并且程序的使用者也不需要为了使用该程序而获得其它许可证的许可。(理由)
  8. 许可证不能针对于一个产品
与程序有关的权利不能由该程序是否作为某个软件产品的一部分来决定。如果程序从那个发布中被抽出来,并且按照程序的许可证的条款进行使用和发布,那么得到该程序的当事人或组织将获得与得到原程序的使用者相同的权利。(理由)
  9. 许可证不能影响其它软件
  许可证不得向与采用它的软件一同发布的其它软件提出任何限制。例如,许可证不能坚持要求在同一媒体上发布的其它程序都是开放源代码软件。(理由)
Conformance
  (本节不是开放源代码定义的一个部分)
  我们认为本开放源代码定义涵盖了由绝大多数软件团体使用的术语\"开放源代码\"的最初含义和当前含义。然而,该术语被广泛地应用,并且它的含义变得不精确了。OSI
Certified标志是某个软件发布许可证是否服从开放源代码定义的OST认证方式。一般的术语\"开放源代码\"并不提供这种担保,但我们仍然鼓励使用\"开放源代码\"这一术语以表明它符合\"开放源代码定义\"。关于OSI
Certified标志的信息,以及已经通过了OSI Certified、符合\"开放源代码定义\"的许可证,请参见OSI
Certified标志与纲要。
  开放源代码定义之原理
  给出开放源代码的定义的目的是:把我们所确信的、由软件开发团体所公认的\"开放源代码\"的含义作为一组具体的准则写下来---该准则确保按照开放源代码许可证发布的软件可以得到与其它软件同样认真的评审、使软件可以不断地得到改良和遴选,从而提供非开放软件所难以提供的可靠性与能力。

  为了使此项工作持续发展,我们必须抵制人们为了短期利益而中止为软件开发做出贡献。这意味着,许可证的条款必须防止人们藏匿(lock
up)源代码从而导致只有很少的人才能够阅读和修改它。
当软件的开发者按照由OSI认证的许可证发布他们的软件时,他们可以在软件中使用\"OSI Certified\"标志。这种认证标志告知用户,该软件所采用的许可证符合开放源代码定义。关于我们的认证标志的更多信息及其纲要,请参见OSI
Certified标志与纲要。
  1. 自由地再发布
  通过强制要求许可证允许自由地再发布,我们抵制了任何为了获得少量短期销售金额而放弃长期效益的诱惑。如果我们不这样做,就会有很多压力迫使合作者放弃承诺。
  2. 源代码
由于软件只有通过修改才能够得到改进,因此我们要求获得易于理解的源代码。因为我们的目的是使软件易于改进,我们也就希望软件易于修改。
  3. 派生作品
仅仅提供可以阅读的源代码,对于实施认真的评审、对于软件的快速改良与遴选来说都是不够的。为了加快改进软件的速度,人们需要能够进行试验和对修改进行重新发布。
  4. 作者的源代码的完整性
鼓励对软件进行各种改进是一件好事,但使用者有权知道谁应该对他们所使用的软件负责。软件的作者和维护者都有权知道需要他们提供支持的软件是什么,以维护他们的名誉。
因此,开放软件许可证必须保证可以容易地得到源代码,但可以要求源代码以原始源代码和一组补丁文件的形式发布。按照这种方式,就可以获得\"非正式的\"的修改而同时又可以轻易地把它们从原始源代码中区分出来。
  5. 不得歧视任何个人或团体
为了从该进程中获得最大的收益,应该给尽可能多的个人和团体以同等资格对开放源代码软件做出贡献。为此我们禁止开放源代码许可证把任何人排除在这个进程之外。
  6. 不得歧视任何应用领域(fields of endeavor)
该条款的主要目的是禁止许可证中含有使开放源代码软件无法在商业上使用的规定。我们需要商业用户参与我们的工作,而不让他们感到被排除在外。
  7. 许可证的发布
本条款的目的是禁止通过非直接的手段,例如需要签署非公开的协定,使软件无法公开。
  8. 许可证不能针对于一个产品
  本条款用于预防其它许可证陷阱。
  9. 许可证不能影响其它软件
  开放源代码软件的发布者有权为他们自己的软件做出选择。
是的,GPL满足这条要求。按GPL发布的库只影响(contaminate)在运行时
与之连接的软件,于仅仅和它一同发布的软件无关。
OSI Certified标志与纲要

本文永久更新链接:http://embeddedlinux.org.cn/emb-linux/entry-level/200809/27-126.html



分享:

评论