GPL协议,LGPL协议,MPL协议

GPL协议,LGPL协议,MPL协议GPL 协议 LGPL 协议 MPL 协议 GPL 协议 LGPLMPLGPL 协议强开源约束授权 1GPL GNUGeneralPu 我们很熟悉的 Linux 就是采用了 GPL GPL 协议和 BSD ApacheLicenc 等鼓励代码重用的许可很不一样 GPL 的出发点是代码的开源 免费使用和引用 修改 衍生代码的开源 免费使用 但不允许修改后和衍生的代码做为闭源的商业软件发

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是允许修改,无偿使用的。

参考链接

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

协议疑问

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

也就是说

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

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)制定和发布。

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

如何选择协议?

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206949.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:08
下一篇 2026年3月19日 下午3:08


相关推荐

  • 分布式事务TCC(Hmily)

    分布式事务TCC(Hmily)1什么是TCC事务?TCC是Try、Confirm、Cancel三个词语,TCC分布式事务的三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作业务检查以及资源预留,Confirm做业务确认操作,Cancel实现一个月try相反的操作即为回滚操作。Try操作全部成功,TM将会发起所有分支事务的Confirm操作,如Confirm/Cancel操作失败,TM进行重试。分支事务失败的情况:TCC分了三个阶段:(1)Try阶段是做业务检查以及资源预留,此阶段仅是一个初步操作,它和

    2022年5月21日
    40
  • 劝退:n8n等 AI工作流不要学了,已经过时了

    劝退:n8n等 AI工作流不要学了,已经过时了

    2026年3月15日
    2
  • 一代、二代、三代测序技术原理与比较「建议收藏」

    一代、二代、三代测序技术原理与比较「建议收藏」从1977年第一代DNA测序技术(Sanger法)1,发展至今三十多年时间,测序技术已取得了相当大的发展,从第一代到第三代乃至第四代,测序读长从长到短,再从短到长。虽然就当前形势看来第二代短读长测序技术在全球测序市场上仍然占有着绝对的优势位置,但第三和第四代测序技术也已在这一两年的时间中快速发展着。测序技术的每一次变革,也都对基因组研究,疾病医疗研究,药物研发,育种等领域产生巨大的推动作用。在这里我主要对当前的测序技术以及它们的测序原理做一个简单的小结。

    2022年5月17日
    95
  • WebViewJavascriptBridge使用

    WebViewJavascriptBridge使用由于项目中使用到原生和 H5 交互的技术 其实这个也有很多的解决方法 最后选择使用一个叫 WebViewJavas 的进行操作 在项目使用中遇到很多问题 在这把配置和使用问题一一罗列出来步骤 1 import WebViewJavas h 2 interfaceHom UIWebViewDel property str

    2025年12月10日
    5
  • C语言截取字符串_c语言截取字符串后2位

    C语言截取字符串_c语言截取字符串后2位GitHub-frankRenlf/c_dailyWork只需加入’\0’再输出字符串即可#include<stdio.h>voidtest4(){chararr[100];intk=0;while(scanf(“%s”,arr)!=EOF){scanf(“%d”,&k);arr[k]=’\0′;printf(“%s\n”,arr);}…

    2025年6月15日
    8
  • Pycharm 2021.7 EAP的激活码[免费获取]

    (Pycharm 2021.7 EAP的激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    116

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号