【科普 | 常见开源许可协议大盘点】

简介: 【科普 | 常见开源许可协议大盘点】

1.什么是开源许可协议


    现在,随便在github上搜索一个开源项目源代码都会在README.md文件中发现有关项目的开源许可证说明。就像下面这样:

5.png

4.png

     

     软件开源许可协议是开源社区为了维护作者和贡献者的合法权利,保证软件不会被一些商业机构和个人窃取利益,从而影响软件的发展而建立的许可协议。它规定了其他团体和个人在使用开源代码时所必须遵守的规定。


       世界上的开源许可协议大概有上百种,本文主要介绍几种常见的开源协议。主要涉及GPL、BSD、MIT、Mozilla、Apache、LGPL等。

2.png


2.Apache License


    Apache License许可协议,是Apache软件基金会发布的一个自由软件许可证。Apache License是著名的非盈利开源组织Apache采用的协议,它鼓励代码共享和最终原始作者的著作权,允许源代码修改和再发布,但也需要遵守如下条件


     (1).需要给使用代码的用户一份Apache License;

      (2).如果修改了源代码,需要在被修改的文件中进行说明;

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

     (4).如果再发布的产品中包含了一个notice文件,则在notice文件中需要带有Apache License。你可以在notice文件中增加自己的许可,但不可以表现对Apache License进行更改;

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


2.BSD许可协议


     BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用、修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。


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


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

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

            (3).不可用开源代码的作者/机构名字和原来产品的名字做市场推广。


3.GPL许可协议


      GPL(GNU General Public License)即GNU通用公共许可协议,linux采用GPL许可协议它和BSD, Apache Licence等鼓励代码重用的许可协议很不一样。GPL的出发点是代码的开源、免费使用和引用、修改、衍生代码的开源与免费使用,但不允许修改和衍生后的代码作闭源的商业软件发布和销售。正是这个原因,我们能用免费的各种linux。包括商业公司的linux和linux上各种各样的由个人、组织以及商业软件公司开发的免费软件了。


4.LGPL许可协议


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


      但是,如果修改了遵循LGPL协议的代码,则所有修改的代码(修改部分的额外代码和衍生的代码)都必须遵循LGPL协议。因此,LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

5.MIT许可协议


      MIT是和BSD一样自由、宽范的许可协议,源自麻省理工学院(Massachusetts Institute of Technology, MIT),也称X11协议。作者只想保留版权,而无任何其他了限制MIT与BSD类似,但比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包中包含原作者的许可信息,适用商业软件。目前,使用MIT的软件项目例如有:jquery、Node.js等。  

 

6.MPL许可协议


     MPL许可协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者 。这种授权维护了商业软件的利益,它要求基于这种软件的修改无偿贡献版权给该软件。因此,围绕该软件的所有代码的版权都集中在发起开发人的手中。但是,MPL是允许修改,无偿使用的,MPL软件对链接没有要求。 


7.EPL许可协议


    EPL许可协议允许任意使用、复制、分发、传播、展示、修改以及修改后闭源的二次商业发布。但使用EPL协议时,需遵守以下条件:


        (1).当一个开源贡献者将源码的整体或部分再次开源对外发布时,必须继续遵循EPL开源协议,不能改用其他协议发布。除非你得到了"源码"原作者的授权;

        (2).你可以将源码不做任何修改来商业发布。但是,如果你要发布修改后的源码或者当你再发布的是目标代码时,你必须声明它的源代码是可以获取的并要告知获取方法;

         (3).当你需要将符合EPL许可协议的源码作为一部分跟其他私有的源码组合成为一个项目发布时,你可以将整个项目/产品以私人的协议发布,但要声明哪一部分代码是EPL许可协议下的,而且声明那部分代码继续遵循EPL许可协议;

相关文章
|
23天前
|
物联网 测试技术 开发工具
开发 Bluegiga APX4 协议产品需要哪些技术知识
开发Bluegiga APX4协议产品需掌握蓝牙技术、嵌入式系统开发、C语言编程、硬件设计及调试技能,熟悉Bluegiga API和相关开发工具。
|
Java 数据库连接 数据安全/隐私保护
利用开源工具实现轻量级上网行为审计(来源ispublic.com)
来源ispublic.com Google上貌似找不到利用开源软件实现上网行为审计的文章——这也难怪,开源在国内并不流行,而上网行为审计在国外也不流行。
1475 0
|
15天前
|
机器学习/深度学习 自然语言处理 算法
3大核心技术,免费开源的智能合同审查分析软件的技术介绍
智能法律文档分析系统基于BERT、GPT等模型,实现高精度的实体识别和关系抽取,准确率分别达95%和90%以上。系统支持跨文档关联分析和实时处理,响应时间小于1秒,显著提升文档处理效率。核心算法包括深度学习模型、关系抽取技术和多层次数据处理能力,适用于复杂的法律文书分析。
3大核心技术,免费开源的智能合同审查分析软件的技术介绍
|
17天前
|
自然语言处理 并行计算 数据可视化
免费开源法律文档比对工具:技术解析与应用
这款免费开源的法律文档比对工具,利用先进的文本分析和自然语言处理技术,实现高效、精准的文档比对。核心功能包括文本差异检测、多格式支持、语义分析、批量处理及用户友好的可视化界面,广泛适用于法律行业的各类场景。
|
Java Unix Linux
开源项目推荐:IM开源即时通讯软件收集,请重点关注Telegram/野火/flamingo
开源项目推荐:IM开源即时通讯软件收集,请重点关注Telegram/野火/flamingo
3982 0
|
Unix Java 程序员
总结了一下程序员们都应该知道的各类开源许可证及合规相关的知识
总结了一下程序员们都应该知道的各类开源许可证及合规相关的知识
总结了一下程序员们都应该知道的各类开源许可证及合规相关的知识
|
存储 物联网 API
Apache PLC4X 作者 “喊话”:将停止提供任何免费支持 | 呼吁企业用户为开源付费
Apache PLC4X 作者 “喊话”:将停止提供任何免费支持 | 呼吁企业用户为开源付费
248 0
Apache PLC4X 作者 “喊话”:将停止提供任何免费支持 | 呼吁企业用户为开源付费
|
网络协议 测试技术 开发工具
游戏协议测试二:协议工具开发技术介绍
游戏客户端通常是与服务器直接进行通信,如何通过工具来进行协议的修改和创建呢?第一种就是直接在客户端代码里面增加一些类似GM指令的测试接口,来达到对每个接口的测试目的。第二种就是从外部对双方的通讯网络下手,通过第三方将协议截获修改后再发送给对方,从而达到协议测试的目的如图1,本篇文章就是针对第二种方式来做介绍。
1216 0
游戏协议测试二:协议工具开发技术介绍
|
Web App开发 安全 架构师
网易云信开源会议和低延时直播两大项目:对开发者完全开放、支持修改后商用
“我始终相信开源会产生裂变。当越来越多的开发者参与到开源项目中,这套代码、组件就不仅仅只是一套代码,它会变成我们未来的生产力和竞争力。”网易智企低延时直播开源负责人、网易云信流媒体首席架构师吴桐说道。
236 0
网易云信开源会议和低延时直播两大项目:对开发者完全开放、支持修改后商用
|
Web App开发 Kubernetes Unix
开源许可证的变迁:从 Elastic 两次变更开源协议说开去
开源从开始到现在已经有几十年历史,开源许可证在开源运动的发展中起到了基石作用,不管是从文化还是法律的角度,都较好地推动了开源的发展。
1129 0
开源许可证的变迁:从 Elastic 两次变更开源协议说开去
下一篇
无影云桌面