概括地说,开放源码是一种协作。更具体地说,它是软件项目上的公共协作。IBM 在开放源码方面作出了巨大贡献,奉献了 120 多个项目,其中包括耗资超过 10 亿的 Linux® 开发。根据开放源码促进会(Open Source Initiative,OSI)的定义,可将开放源码定义为:“开放源码通过支持源代码的独立同业互查(independent peer review)和快速发展演变提高了软件的可靠性和质量。要通过 OSI 认证,软件必须在获得许可证的情况下发布,该许可证可保证免费读取、重新发布、修改和使用该软件的权利。”
开放源码还经常应用于个人、组织和公司的民众运动,寻求将这类软件融入主流应用的方法。根据 开放源码促进会 的定义,开放源码由 10 点组成,下面对这 10 点进行了复述。开放源码并不只意味着访问源代码。开放源码软件的发布(distribution)条款必须遵从以下标准:
1. 免费重新发布
当软件是几个不同来源的程序集成后的软件发行版本中的其中一个组件时,许可证不能限制任何团体销售或分发该软件,并且不能向这样的销售或分发收取许可费和其他费用。
2. 源代码
程序必须包含源代码,并且必须允许以源代码或已编译的形式发布。如程序在发布时未带源代码,则必须以一种非常公开的方式,在不超过合理重造成本的情况下, 让人们获得源代码,例如可以在不收取费用的情况下,放在网络上供人们下载。源代码无疑是编程人员最容易修改程序的形式。不允许故意混乱源代码。也不允许使 用中间形式,比如预处理器或转换器的输出。
3. 衍生产品
许可证必须允许修改原产品和衍生产品,并且必须允许在与原始软件相同的授权情况下发布修改过的产品。
4. 作者的源代码的完整性
许可证可以禁止他人以修改过的形式发布源代码,只在该许可证基于修改程序的目的时,才允许随源代码发布 “补丁文件”。该许可证必须明确允许发布根据修改过的源代码构建的软件。许可证可能要求衍生产品必须附加不同于原始软件的名称或版本号。
5. 不得歧视任何人或团体
许可证不得歧视任何人或任何团体。
6. 不得歧视程序在任何领域内的使用
许可证不得禁止任何人在特定领域内使用某一程序。例如,不得禁止程序在商业上的应用,或者在基因研究上的使用。
7. 许可证的发布
附加在程序上的权利必须应用于那些使用重新发布的程序的人,无需通过其他人额外加以授权使用。
8. 许可证不得专属于特定产品
附属于程序的权利不得仅限于作为特定软件发行版一部分的程序。如果程序衍生自该发行版并以获得该程序的授权的名义被使用或发布,则使用重新发布的该程序的其他所有人应该享有原始软件发行版本中所授予的那些权利。
9. 许可证不得对其他软件加以限制
许可证不得对其他随已许可的软件一起发布的软件附加任何限制。例如,不得规定在相同媒体上发布的其他所有程序接受该许可证的限制。
10. 许可证必须是技术中立的
任何许可证规定都不可以基于任何单独某项技术或界面风格。
请参阅 developerWorks 文章 “开放源码许可,第 1 部分: 意图” 和 “开放源码许可,第 2 部分: 学术许可与互惠许可”,以获得额外的信息。 |