开放源代码的定义由Bruce Perens(曾是Debian的创始人之一)定义如下: 自由再散布(Free Distribution):获得源代码的人可自由再将此源代码散布。源代码(Source Code):程
开源标志
式 的可执行档在散布时,必需随附完整源代码或是可让人方便的事后取得源代码。衍生著作(Derived Works):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。原创作者程式源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的 出口)。对程式在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。授权条款不得限制其他软件 (License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授 权。授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。
编辑本段开放源代码与自由软件
许多人将开放源代码与自由软件(freeSoftware)视为相同,但若以定义条件而言,自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。 开源软件定义Version 1.9 开源不仅仅表示开放程序源代码。从发行角度定义的开源软件必须符合如下条件:
linux 开源标志
1.自由再发行
GNU GPL、BSD、X Consortiun和Artistic许可证都是我们认为符合开源软件定义的许可证。MPL也是一样。
编辑本段开源协议
GNU GPL
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利: 可自由复制你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。 可自由分发在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。 可以用来盈利你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。 可自由修改如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用GPL 协议。 需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有 一些问题和限制,你可以看一下PierreJoye 写的Practical Guide to GPL Compliance 一文。使用GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。
GNU LGPL
GNU 还有另外一种协议,叫做LGPL (Lesser General Public Licence),它对产品所保留的权利比GPL 少,总的来说,LGPL 适合那些用于非GPL 或非开源产品的开源类库或框架。因为GPL 要求,使用了GPL 代码的产品必须也使用GPL 协议,开发者不允许将GPL 代码用于商业产品。LGPL 绕过了这一限制。
BSD
BSD 在软件分发方面的限制比别的开源协议(如GNU GPL)要少。该协议有多种版本,最主要的版本有两个,新BSD 协议与简单BSD 协议,这两种协议经过修正,都和GPL 兼容,并为开源组织所认可。 新BSD 协议(3条款协议)在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制。另外,该协议还禁止拿开发者的名义为衍生产品背书,但简单BSD 协议删除了这一条款。
MIT
MIT 协议可能是几大开源协议中最宽松的一个,核心条款是: 该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版权和许可提示。 这意味着: 你可以自由使用,复制,修改,可以用于自己的项目。可以免费分发或用来盈利。唯一的限制是必须包含许可声明。MIT 协议是所有开源许可中最宽松的一个,除了必须包含许可声明外,再无任何限制。