博舍

GPL协议,LGPL协议,MPL协议 GPLv2开源协议

GPL协议,LGPL协议,MPL协议

GPL协议,LGPL协议,MPL协议GPL协议LGPLMPL参考链接协议疑问如何选择协议?GPL协议

强开源约束授权GPL(GNUGeneralPublicLicense)1

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

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

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

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

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

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

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

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

LGPL

LGPL(GNULesserGeneralPublicLicense)1

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

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

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

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

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

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

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

MPL

弱开源约束授权MPLLicense(MozillaPublicLicense)1

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

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

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

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

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

参考链接

各种开源协议:https://wenku.baidu.com/view/70df4f7402768e9951e738dc.htmlhttps://my.oschina.net/wxf/blog/63339http://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),而不能是某个商业许可证。这里有一个兼容列表ListofFSFapprovedsoftwarelicenses。正因如此,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是GNUGeneralPublicLicense(GNU通用公共许可证)的缩写形式;LGPL是GNULesserGeneralPublicLicense(GNU宽通用公共许可证)的缩写形式,旧称GNULibraryGeneralPublicLicense(GNU库通用公共许可证);GFDL是GNUFreeDocumentationLicense(GNU自由文档许可证)的缩写形式。它们是自由软件(FreeSoftware)的通用版权认证协议,由自由软件基金会(FSF)制定和发布。

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

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

如何选择协议?

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇