GPL协议,LGPL协议,MPL协议

GPL协议

强开源约束授权
GPL(GNU General Public License)1

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。

GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售

这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费

这就是所谓的”传染性”。

GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

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

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

LGPL

LGPL(GNU Lesser General Public License)1

LGPL是GPL的一个为主要为类库使用设计的开源协议。

和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同

LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。

这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议

因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

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

MPL

弱开源约束授权
MPL License(Mozilla Public License)1

允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。

这种授权维护了商业软件的利益,,它要求基于这种软件的修改无偿贡献版权给该软件。

这样,围绕该软件的所有代码得版权都集中在发起开发人得手中。

但MPL是允许修改,无偿使用的。

MPL软件对链接没有要求。(要求假如你修改了一个基于MPL协议的源代码,则必须列入或公开你所做的修改,假如其他源代码不是基于MPL则不需要公开其源代码)
在这里插入图片描述

参考链接

各种开源协议:https://wenku.baidu.com/view/70df4f7402768e9951e738dc.html
https://my.oschina.net/wxf/blog/63339
http://www.gnu.org/licenses/
http://www.thebigfly.com/gnu/gpl/
https://www.cnblogs.com/pengdai/p/9227404.html

如果使用Qt来开发商业软件,是否需要付费?:https://blog.csdn.net/zheng_zhiwei/article/details/23394061

GPL 与 LGPL 扫盲:
http://www.cnblogs.com/findumars/p/3496807.html

下载各种开源协议:https://www.gnu.org/licenses/gpl-3.0.txt
如何选择协议:https://www.jianshu.com/p/fabcf532ecd6

协议疑问

关于这个问题,先要对开源协议有个基本了解
QT开源版有GPL与LGPL协议
如果使用QT的开源版,就要遵守开源协议
关于LGPL与GPL想了解更多的话,看下面的连接。下面我会将其中重点写出来。
http://www.cnblogs.com/findumars/p/3496807.html

其中,GPL协议是严格的
简单说,GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)的时候,整个项目也必须是GPL的,即主程 序和静态链接的库(Linux的.a和Windows的.lib)必须是GPL的,动态链接库(Linux的.so,Windows的.dll)必须是比 GPL兼容的。所谓GPL兼容,也就是GPL软件中可以使用的库,这些许可证必须比GPL弱(如LGPL,BSD),而不能是某个商业许可证。这里有一个 兼容列表 List of FSF approved software licenses。正因如此,GPL是带有很强的传染性,只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧,并且你的项目中也不能有任何和GPL不兼容的库。

只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧。
梳理一下:
如果你遵守QT的GPL开源协议,使用了开源的QT库,那么你的软件也应该开源。没法商用。

如果你想用QT的开源版库,还想让使用了QT开源版库的软件闭源,商用。
那么你需要了解一下QT的LGPL。
想了解更多的话,下面这个博客。
http://www.cnblogs.com/findumars/p/5553490.html

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

使用 LGPL 协议开发闭源程序,如果你使用动态链接的形式,那么,你可以以任何形式发布你的应用程序,商业的、非商业的、开源的、非开源的,随你。

也就是说

闭源商业软件可以免费使用LGPL的开源版Qt。

关于发布:
http://bbs.csdn.net/topics/350224093 ←看这个帖子的42L-45L

GPL 是 GNU General Public License (GNU 通用公共许可证)的缩写形式;LGPL 是 GNU Lesser General Public License (GNU 宽通用公共许可证)的缩写形式,旧称 GNU Library General Public License (GNU 库通用公共许可证);GFDL 是 GNU Free Documentation License (GNU 自由文档许可证)的缩写形式。它们是自由软件(Free Software)的通用版权认证协议,由自由软件基金会(FSF)制定和发布。

基于 GPL 的软件允许商业化销售,但不允许封闭源代码。
如果您对遵循 GPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 GPL 协议,不允许封闭源代码。
基于 LGPL 的软件也允许商业化销售,但不允许封闭源代码。
如果您对遵循 LGPL 的软件进行任何改动和/或再次开发并予以发布,则您的产品必须继承 LGPL 协议,不允许封闭源代码。但是如果您的程序对遵循 LGPL 的软件进行任何连接、调用而不是包含,则允许封闭源代码。
参考链接:https://www.oschina.net/question/12_2663

大概就是这样了,根据我查的各种资料来看,应该就是以上结论

如何选择协议?

例如Qt的QNetworkRequest类头文件遵循三种协议,如果你依赖的软件包来自不同的协议你可以在头文件中都标注出来:
在这里插入图片描述

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖恭伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值