常用开源协议BSD/APACHE/GPL/LGPL/CPL/MIT概述

标签: 开源协议 bsd apache | 发表时间:2014-04-16 21:10 | 作者:airk000
出处:http://blog.csdn.net

常见开源协议概述

现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种 http://www.opensource.org/licenses/alphabetical。 我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。

BSD协议

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

  1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
  2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
  3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache Licence 2.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

  1. 需要给此开源项目的用户一份Apache Licence。
  2. 如果你修改了代码,需要再被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个NOTICE文件,则在NOTICE文件中需要带有Apache Licence。你可以在NOTICE中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但 不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

MIT

MIT是和BSD一样宽范的许可协议,作者只想保留版权而无任何其他了限制。也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

CPL version 1.0

CPL是IBM提出的并通过了OSI(Open Source Initiative)批准的开源协议。主要用于一些IBM或跟IBM相关的开源软件/项目中。如很著名的Java开发环境 Eclipse、RIA开发平台Open Laszlo等。

CPL也是一项对商业应用友好的协议。它允许Recipients对源码进行任意的使用、复制、分发、传播、展示、修改以及改后做闭源的二次商业发布,这点跟 BSD 很类似,也属于自由度比较高的开源协议。但是需要遵循:

  1. 当一个Contributors将源码的整体或部分再次开源发布的时候,必须继续遵循CPL开源协议来发布而不能改用其他协议发布。除非你得到了原“源码”Owner 的授权。
  2. CPL协议下你可以将源码不做任何修改来商业发布,但如果你要将修改后的源码其开源,而且当你再发布的是Object Code的时候必须声明它的Source Code是可以获取的,而且要告知获取方法。
  3. 当你需要将CPL下的源码作为一部分跟其他私有的源码混和着成为一个Projec 发布的时候,你可以将整个Project/Product以私人的协议发布,但要声明哪一部分代码/模块是CPL下的,而且声明那部分代码继续遵循CPL。
  4. 独立的模块(Separate Module)不需要开源。
作者:airk000 发表于2014-4-16 21:10:33 原文链接
阅读:119 评论:0 查看评论

相关 [开源协议 bsd apache] 推荐:

常用开源协议BSD/APACHE/GPL/LGPL/CPL/MIT概述

- - CSDN博客互联网推荐文章
现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种 http://www.opensource.org/licenses/alphabetical.  我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议. 如果要开源自己的代码,最好也是选择这些被批准的开源协议.

了解 GNU GPL/GNU LGPL/BSD/MIT/Apache协议

- aoao - IFLONELY
越来越多的开发者与设计者希望将自己的产品开源,以便其他人可以在他们的代码基础上做更多事,开源社区也因此充满生机. 在我们所能想到的应用领域,都有开源软件存在(象 WordPress,Drupal 这些开源CMS). 然而很多人对开源许可并不了解,本文介绍开源领域常用的几种许可协议以及它们之间的区别.

常见开源协议!【科普】

- So - 博客园-首页原创精华区
BSD开源协议是一个给于使用者很大自由的协议. 基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议.

Linux 3D游戏在PC-BSD上运行速度更快

- tinda - Solidot
FreeBSD提供了一个Linux二进制兼容层,允许在BSD系统上原生执行32位Linux二进制文件. Phoronix在桌面版FreeBSD分支PC-BSD 8.2和Ubuntu Linux 11.04上分别测试了Linux 3D游戏的性能. 结果显示,在大多数测试项目上,FreeBSD上的模拟Linux游戏性能要快于Ubuntu上的原生执行.

Apache Shiro 介绍

- - CSDN博客推荐文章
什么是Apache Shiro?. Apache shiro 是一个强大而灵活的开源安全框架,可清晰地处理身份认证、授权、会话(session)和加密. Apache Shiro最主要的初衷是为了易用和易理解,处理安全问题可能非常复杂甚至非常痛苦,但并非一定要如此. 一个框架应该尽可能地将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码.

常用开源协议许可证浅析

- - ITeye博客
如今开源的软件已经越来越被广泛使用,各种专利纠纷也越来越多. 工作上要求对开源协议的理解也很迫切,做技术架构是每一个技术人员最渴望的职责,但要做好初级的技术架构工作首先要对各种各样的开源协议有深入了解,知道什么开源软件是工作在什么协议之下,对自己的产品有什么影响. 这篇博文将讲解开源协议的相关知识(将不定期更新) 首先要弄懂一些基本概念: 1 什么是许可协议.

[原]常见开源协议大白话说明

- - Dev in Nightmare
GPL:只要你用了任何该协议的库、甚至是一段代码,那么你的整个程序,不管以何种方式链接,都必须全部使用GPL协议、并遵循该协议开源. 商业软件公司一般禁用GPL代码,但可以使用GPL的可执行文件和应用程序. AGPL:即Affero GPL,是GPL的更严格版本. 只要你用了任何该协议的库、甚至是一段代码,那么运行时和它相关的所有软件、包括通过网络联系的所有软件,必须全部遵循该协议开源.

Apache防止攻击

- - 小彰
为了防止恶意用户对Apache进行攻击,我们需要安装mod_security这个安全模块. mod_security 1.9.x模块的下载与安装. 下载地址: http://www.modsecurity.org/download/index.html. 建议使用1.9.x,因为2.x的配置指令与1.x完全不同,解压后进入解压目录,执行:.

Apache OpenOffice 3.4发布

- - Solidot
Apache OpenOffice的第一个版本v3.4正式发布. 主要新特性包括:改进ODF支持,包括ODF 1.2加密选项和新电子表格功能;改进Calc组件的数据透视表(Pivot Table)支持;原生支持SVG,增强图形如线帽和剪切变形;简体和繁体中文等原生语言支持;改进性能等. 在甲骨文将OpenOffice.org捐给Apache软件基金会后,OOo的命运曾存在许多争议.

Apache PDFBox 1.8.0 发布

- - 开源中国社区最新新闻
Apache PDFBox 1.8.0 发布了,该版本除了修复大量 bug 之外,还包含如下新特性:. PDFBox是Java实现的PDF文档协作类库,提供PDF文档的创建、处理以及文档内容提取功能,也包含了一些命令行实用工具. PDF 文档加密与解密. 与 Lucene搜索引擎的集成. 填充PDF/XFDF表单数据.