`
king_tt
  • 浏览: 2110394 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何选择开源许可协议

 
阅读更多

常见的开源许可协议有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。这些协议有什么区别呢?

GPL,全称 GNU General Public License。它的主要内容为:只要在一个软件中使用(“使用”指类库引用或者修改后的代码) GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这个协议就不太适合商用软件,或者准备使用GPL开源组件的商用项目。基于这个协议的项目,极大的提高了开源软件的数量。上面那个微博的案例,如果作者使用了GPL协议,而使用方没有公开源代码就是违反了协议。目前用的多的是GPLV1,GPLV2。这两个什么区别看后面那张树形图。采用这个协议的开源软件有:Linux、 MySQL.

LGPL,最初是Library GPL的缩写,后来改称作Lesser GPL。由于GPL太严格,限制了很多商用软件使用GPL组件才推出了这个LGPL。LGPL允许商业软件通过引用类库的方式使用LGPL组件(不直接使用源代码),这样可以不需要开源商业软件的代码。但是如果要修改原始组件的代码,则涉及修改部分的代码和基于原来代码衍生的代码都必须采用LGPL协议。LGPL不适合以LGPL协议为基础的代码进行二次开发的商业软件,但是商用软件可以采用编译后的类库引用就不需要公开源代码了。采用这个协议的开源软件有: JBoss、 FCKeditor 、 Hibernate。之前extjs就因为从LGPL转换到GPL带来了不少的震动。详情点击

BSD,全称 Berkeley Software Distribution。这个协议相对上面两个协议宽松很多,允许使用者修改和重新发布代码,也允许使用或在BSD代码基础上开发商业软件发布和销售,因此是适用于商业软件的。使用者别太高兴,使用时还必须做到满足三个条件:

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

apache Licence vesion 2.0,这个协议除了为用户提供版权许可之外,还有专利许可。与BSD协议权限类似, 允许代码修改,再发布,适用商业软件。但是也需要满足以下条件:

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

除了这些条件它还有这些好处:

  • 1)永久权利一旦被授权,永久拥有。
  • 2)全球范围的权利在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
  • 3)授权免费无版税, 前期、后期均无任何费用。
  • 4)授权无排他性任何人都可以获得授权
  • 5)授权不可撤消一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码

使用apache Licence vesion 2.0协议的开源软件有:Hadoop 、apache httpserver、Spring Framework、MongoDB 。

MIT,源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称X11协议。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。使用MIT的软件项目有:jquery、Node.js。

列出了常用协议,还有一些比较常用的大家就谷歌了,比如: Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。

有一篇博客的树形图很好阐述了当前主流许可协议的区别。

转自【http://www.lanceyan.com/tech/arch/opensource_permission.html】

分享到:
评论

相关推荐

    常见开源许可协议的核心内容—思维导图.pdf

    以思维导图的方式,描述几种常见的开源许可协议的核心内容。

    开源软件许可协议简介PPT

    免去了研究那些专业的许可条款的麻烦 更方便的对开源项目贡献出自己的代码 能保护你作为作品的原创作者 确保你至少拥有由于贡献参与而带来的署名荣誉 阻止其他人企图声明对你的作品拥有所有权的行为

    常见开源许可协议的核心内容.emmx

    常见开源许可协议的核心内容.emmx

    各操作系统开源授权许可协议.docx

    工作中要用andriod系统,领导问到他的开源风险,所以总结一下常见的开源授权许可协议,GPL,LGPL,APACHE,BSD

    kcores-license:KCORES 开源硬件许可证, KCORES 开源硬件协议

    使用本许可证的开源项目的每个再散布或衍生副本都必须开放源代码和源文件, 且不可更改协议.众人拾柴火焰高, KCORES 许可证为了保护原创作者的劳动成果和提升社区的宣传力量, 因此强制要求将这二者

    开源ACE的设计规范

    所述的面向对象应用框架来源于合理地运用和对ACE C++框架设计和实现的再工程。ACE面向对象框架实现了许多并发通信软件的核心设计模式,ACE提供了一组丰富的可复用C++包装外观(Wrapper Facade)和框架组件,可跨越...

    OSLC-handbook:有关遵守最常见的开源许可证的实用信息的数据存储和手册

    开源许可证合规手册该手册提供了有关如何在一组特定用例...已执行的个人贡献者许可协议(ICLA)的参与者,或与FINOS签署的现有和有效的企业贡献许可协议(CCLA)所涵盖的参与者,才会接受对FINOS信息库的提交和拉取请求

    重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT).pdf

    重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT) 除了大家比较熟悉的GPL协议之外,开源界还有很多许可证,如LGPL许可证、BSD许可证等,下面就来一一介绍。

    thinkphp php开源框架

    ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议...ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你的ThinkPHP应用采用商业闭源发布。

    开源软件成熟度评估及选型指南,完整扫描版

    第三部分着重讲解在开源软件选型中非常重要的环节——开源软件许可,通过问答的方式向大家讲解开源许可相关的知识产权问题对开源软件选型的影响,并对开源许可中最重要的GPL协议进行了分析;第四部分向大家推荐一...

    raft, Raft协议的C 实现,BSD许可协议.zip

    raft, Raft协议的C 实现,BSD许可协议 Raft协议的C 实现,BSD许可协议。有关完整文档,请参阅 raft.h 。请参见 ticketd 了解这里库的实际使用情况。网络已经超出这里项目范围。 实现者将需要完成所有的管道。 库不...

    License:常见的开源协议

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

    docx4j-2.7.1+依赖包

    Docx4j是Java操作office2007+中的Word、Excel、PPT的开源项目,其...这不像开源许可协议。"类GPL许可协议"(有些像GPL),通常情况下用于确保其它类似开发成员再发行已经被发布并修改的代码及其衍生代码的开源和可发布性

    2023年中国软件供应链安全分析报告

    在企业软件开发中的开源软件应用部分新增了对不同行业软件项目开源使用风险的分析,对开源许可协议的风险分析分别统计了超危和高危开源许可协议的使用情况;在典型软件供应链安全风险实例部分,通过多个新的实例再次...

    MQTT开源库mosquitto

    Mosquitto是一个开源(BSD许可证)的消息代理,实现MQTT(消息队列遥测传输)协议版本3.1.1。 MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低...

    开源机器人控制基础1

    ROS (Robot Operating System, 机器人操作系统)是一个适用于机器人学习开发的开源操作系统。它提供了操作系统应有的服务,包括硬件抽象、设备驱动、函数库、...ROS遵循BSD开源许可协议。ros基础知识,学习及gazebo仿真

    基于Python, React开发的行业领先的开源能源管理系统

    MyEMS是行业领先的开源能源管理系统,基于Python, React开发。 用于建筑、工厂、商场、数据中心、园区等能源... MyEMS由资深专业团队开发维护,源代码基于MIT开源软件许可协议发布。 用开源助力实现碳达峰碳中和目标。

    OpenWMS集客科技开发的基于wifidog协议的认证营销平台 采用开源GPL许可证,任何个人和公司都可以免费下载、安装和使用

    采用开源GPL许可证,任何个人和公司都可以免费下载、安装和使用本系统,没有限制,也没有许可费用。 OpenWMS使用PHP语言开发,可以运行在windows和linux系统上,也可以在阿里云等云服务器上部署。 OpenWMS支持与所有...

    ThinkPHP是一个免费开源的

    ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产 品发布/销售。 ThinkPHP v5.0.21 更新日志: 该版本主要做了一些已知问题的修正,以及...

    cla:PrairieLearn的贡献者许可协议

    PrairieLearn的贡献者许可协议。 我们使用来检查和存储签名信息。 可以在此存储库中的文件中找到签名信息。 电子邮件签名 通过电子邮件联系了一些在建立CLA之前做出过贡献的人,并要求他们签署CLA。 他们的签名...

Global site tag (gtag.js) - Google Analytics