主流开源协议简述

  开源 ≠ 免费  开源 ≠ 免费  开源 ≠ 免费,重要的事情说三遍。

一、为何要了解开源协议

  Java的强大与崛起,应当说强大的开源生态起了不小的作用。在编程的过程中也或多或少能接触到不少优秀的开源软件、框架,

况且我们又乐于找轮子,因此,了解经常见到的开源协议就有必要了。再者,不了解开源协议,随意使用一个带有限制的协议的开源软件甚至

使用没有任何协议的软件,这就像一颗定时炸弹,随时可能会要了你的命!

二、主流开源协议简介

  1.Apache License, 2.0 (Apache-2.0 )

1.需要给代码的用户一份Apache Lience;

2.如果你修改了代码,需要在被修改的文件中说明;

3.在延伸的代码中(修改或衍生的代码)需要带有原来代码中的协议、商标、专利声明和其他原来作者规定需要包含的说明。

4.如果再发布的产品中包含了Notice文件,则需要在Notice文件中带有Apache Lience。你可以在Notice中增加自己的许可,但不可以表现为对Apache Lience构成更改。

  2.BSD开源协议(Berkerley Software Distribution)( BSD 3-Clause , BSD 2-Clause )

1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议;

2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档那个和版权声明中包含原来代码中的BSD协议;

3.不可以用开源代码的“作者/机构的名字”或“原来产品的名字”做市场推广。

  3.GPL ( GNU General Public License )

1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。

2、GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。

3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。

4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

  4.MIT ( MIT license )

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

  5.LGPL ( GNU Library or "Lesser" General Public License )

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

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

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

  6.GPL V2 && GPL V3

  

单从开源行业的GPL协议上来看,似乎开源linux产品上的一切是可以无条件的开放和共享的,但是从实际的操作来看,在GPL相对的许可授权之下,又有其相对封闭的一面,就这次的GPL v2到GPL v3的修订改版来说,正是GPL协议“封闭”一面的具体体现。

根据GPL v2的相关规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社 会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。而在GPL v3的修订草案中,不仅要求用户公布修改的源代码,还要求公布相关硬件,恰恰是这一条,由于触及和其他相关数字版权管理(DRM)及其产品的关系,并且也 由于有和开源精神相违的地方,所以备受争议,甚至因此也遭到了有着“LINUX之父”之称的托瓦尔兹的反对。

从表面上看,GPL v2到GPL v3的升级之困只不过是对协议修订过程中某一条款的分歧,而更为严重的是在两种协议都合法存在的前提下,具体的开源软件或者开源产品的所有者有权选择是遵 循GPL v2协议还是恪守GPL v3协议,因此冲突也就来了,这种冲突正如中科红旗的CTO郑忠源描述的那样:“世界有如此多软件都在GPL v2的约束之下,而自由软件是集合全世界程序员劳动,即使是贡献一行代码,如果该程序员只同意这一代码只遵循GPL v2之下,就不能随便去修改协议。如果计划将软件转移到GPL v3之下,理论上讲,必须征得所有代码人的同意。但是目前还很难确定有多少开发人员愿意转移到新版本之下,如果有的人愿意转,有的人不愿意转,这其中就有 很多的麻烦;而如果多数人都不愿意改变,那这一事情也许就无声无息……”

通过业内人士的精辟描述,相信大家一定对开源行业和开源软件产品有了一个全新的认识吧,就那熟悉的LINUX系统来说,虽然表面上看起来大家有权按 照自己的需要和目的进行任意的改写重组,但是在诸多的独立程序面前,别人是只能共享使用,而无权修改的,当然获得授权就另当别论了。而就GPL v2到GPL v3的协议升级来说,这种协议的选择上的分歧实际上也是开源行业里一种观念认知上的相左,到底谁的选择是正确的?绝对不是一两句话能说得清的,尤其是在各 种利益交织之下。

情势之下,开源社区的GPL v2与GPL v3选择之困很现实的会在相当一段时间内给这个行业及其产品造成“兼容问题”,说白了就是两种协议以及两种协议之下的矛盾,不管是人的还是产品的都将会持 续下去,而这种僵持对整个开源行业来说未必是一件好事,最起码从“精神”方面来说这个行业已经在开始分道扬镳。

三、图解区别与选择

  图1

  

  图2

时间: 2024-10-22 20:35:00

主流开源协议简述的相关文章

各种主流开源协议的选择和比较

快要步入工作岗位了,学校里养成的很多不好的习惯也是时候都得改改了. 之前在一家外企实习的时候,单位里对工作中使用盗版软件查的很严,集团里貌似专门有一个部门(or团队)定期会在线监测个人机器是否安装了盗版软件. 联想到以前用别人开源的代码从来不看里面的License.最近学习PHP,很多开源PHP框架都有相关协议说明,这里正好做个给自己做个笔记. 好了,我们开始吧. 图片来源于阮一峰的博客. 这幅图已经说了很清楚了,我就不废话了.

主流开源协议树——区分各种开源许可证

乌克兰程序员Paul Bagwell,画了一张分析图,介绍最流行的六种开源许可证----GPL.BSD.MIT.Mozilla.Apache和LGPL.

【Git】认识各种开源协议及其关系

开源许可协议 License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的. 开源协议的种类 现今存在的开源协议很多,而经过Open Source Initiative 组织通过批准的开源协议目前有60多种http://www.opensource.org/licenses/alphabetical.我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议. Apache License, 2.0(Apache-

GPL、LGPL、MIT、BSD、Apache,这些开源协议,你都注意过吗?

本人在开发iOS应用的过程中,经常会使用到别人撰写的类库,不仅因为能够节省下大量的开发和调试的时间,还因此获得了更多完善且强大的功能和效果.在使用别人撰写的类库的时候,必须当心该类库所涉及的授权问题,如果使用不慎,很可能引发不必要的麻烦,甚至可能导致法律纠纷.同样使用过外部类库的开发者们,你们是否注意过呢? 1.GPL.LGPL和GFDL GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式:LGPL 是 GNU Lesser General P

开源协议(转载)

  (1)Contributors 和 Recipients Contributors 指的是对某个开源软件或项目提供了代码(包括最初的或者修改过的)发布的人或者实体(团队.公司.组织等),Contributors 按照参与某个软件开源的时间先后,可以分为an initial Contributor 和 subsequent Contributors . Recipients指的是开源软件或项目的获取者,显然,subsequent Contributors 也属于 Recipients之列. (

各类开源协议总结

各种开源协议的核心内容,主要有4点: (1)使用该软件用于何目的的权利: (2)对软件工作原理的知情权(即是否能查看软件源代码): (3)重新发布软件副本的权利: (4)改进软件并将其发布的权利. 常见的开源协议: FPL(自由公共许可证): 代表软件:mysql (1)使用权利:允许内部自由使用,但不提供技术支持:商业使用必须申请商业许可证: (2)源代码:开放: (3)分发权利:允许免费分发,但必须遵守FPL其他条款,如要求分发mysql和其派生产品的全部源代码:并与Mysql分本FPL本身

GPL、BSD、MIT、Mozilla、Apache、LGPL开源协议介绍

BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件: 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议. 不可以用开源代码的作者/机构名字

四大开源协议比较:BSD、Apache、GPL、LGPL

http://www.cnblogs.com/top5/archive/2010/07/31/1789657.html 本文参考文献:http://www.fsf.org/licensing/licenses/ 现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种.我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议.如果要开源自己的代码,最好也是选择这些被批准的开源协议. 这里我们来看四种最常用的开源协议及它

了解常见的开源协议(BSD, GPL, LGPL,MIT)

一直对各种开源协议比较模糊, 特意在网上搜索了一下资料, 整理总结,以作记录 如果不喜欢长篇大论的话, 看下图就可以了 基本概念了解: 1. Contributors 和 Recipients Contributors 指的是对某个开源软件或项目提供了代码(包括最初的或者修改过的)发布的人或者实体(团队.公司.组织等),Contributors 按照参与某个软件开源的时间先后,可以分为 an initial Contributor 和 subsequent Contributors . Reci