一、开源协议

开源协议(Open Source License)是开放源代码项目所遵循的法律许可协议,它规定了软件的版权持有者允许用户以何种方式使用、修改、分发源代码及其衍生作品。下面介绍几种常见的开源协议:

MIT协议

  • 定义:MIT协议是自由软件基金会发布的协议之一,全称是MIT License。
  • 特点:非常宽松自由,鼓励开发者在遵循协议的前提下自由使用、修改和分发代码,对分发软件的修改者没有强制的约束力。
  • 应用场景:适合小型项目和个人开发者,尤其是那些希望在保持代码开放的同时保持灵活性的项目。

GPL协议

  • 定义:GPL协议是GNU通用公共许可证(GNU General Public License)的简称。
  • 特点:具有“Copyleft”特性,即要求派生作品也必须以GPL许可证发布。这意味着如果使用了GPL许可的软件,并进行了修改或分发,那么作品也必须开源。
  • 应用场景:适合那些希望其代码能够被自由修改和分发的项目,特别是希望确保整个软件生态都保持开源状态的项目。

LGPL协议

  • 定义:LGPL协议是GNU宽通用公共许可证(Lesser General Public License)的简称,是GPL协议的一个变种。
  • 特点:专为库设计,允许开发人员将开源库与非GPL的软件一起使用。LGPL通过允许对库的修改和链接来达到这个目的,但与GPL不同,它不会要求衍生品也使用LGPL。
  • 应用场景:适用于库文件等可以被其他软件调用的组件。

BSD协议

  • 定义:BSD协议是一种简单而宽松的许可证,源自加州大学伯克利分校发布的BSD Unix。
  • 特点:赋予使用者很大的自由度来使用、修改和分发代码。要求在使用者对代码进行修改后必须将修改后的代码进行回馈,但并没有强制要求将修改后的代码再次发布为开源软件。
  • 应用场景:适合那些希望保持代码灵活性和开放性的大型公司或项目。

MPL协议

  • 定义:MPL是The Mozilla Public License的简写,是Netscape的Mozilla小组为其开源软件项目设计的软件许可证。
  • 特点:对“发布”的定义较为特殊,允许一个企业在自己已有的源代码库上加一个接口,除了接口程序的源代码以MPL许可证的形式对外许可外,源代码库中的源代码可以不用MPL许可证的方式强制对外许可。MPL不像GPL那样明确表示反对软件专利,但却明确要求源代码的提供者不能提供已经受专利保护的源代码(除非他本人是专利权人,并书面向公众免费许可这些源代码),也不能在将这些源代码以开放源代码许可证形式许可后再去申请与这些源代码有关的专利。
  • 应用场景:适用于需要平衡开发者对源代码的需求和他们利用源代码获得的利益的项目。

其他开源协议

除了上述几种常见的开源协议外,还有QPL(The Qt Public License,Qt公共许可证)、QNCL(Qt Non Commercial License,Qt非商业许可证)、Jabber Open Source License(Jabber开源许可证)等多种开源协议。这些协议在源代码的使用、修改、分发等方面也有各自的特点和规定。

二、Qt5.15.2协议

从Qt5.15.2源码的文件来看,此版本需要遵循GPL3,GPLv2,GPLv3,LGPLv3,LGPLv21等开源协议,以下有协议对应的文件目录,使用需要同时遵循所有协议,通过了解,LGPLv3协议对于嵌入式开发有一定的限制,大致如下:

  • LGPLv3明确禁止在封闭性嵌入式设备上分发基于LGPLv3授权的软件。封闭性嵌入式设备通常指的是那些不允许用户访问、修改或替换其内部软件的系统。由于LGPLv3旨在保护用户的自由权利,确保他们能够修改和重新分发软件,因此它不适用于那些锁定用户无法修改软件的设备。

Qt5.15.2开源协议文件目录图

三、Qt商业化是否需要花钱?

免费商业化方式
Qt如果使用含LGPL协议的模块,不修改源码而是用Qt提供的动态库链接模块,并且这些动态库能够被用户访问到的话,做以下两步,然后怎么用都行,免费的。
a. 在软件的 关于 或 about 之类的地方声明你用了Qt还有其的版本
b. 在程序的地方放一个LICENSE的文件夹,里面放上从Qt源码里获取过来的LGPL协议,改名为qt_license

将用到Qt库的作隔离,众所周知GPL协议的强传染性,无论你是插件、动态库和静态库,只要用到了,你整个应用程序都必须开源。因此可以将用到Qt的单独做成一个应用程序,然后将重点应用逻辑放到另外一个应用程序上处理,再使用多进程通讯去控制Qt应用程序。这样就只需要开源用到Qt的应用程序,自己的商业重点逻辑就可以隐藏了。
a. 在GitHub上或者Gitee上,放上你的所有被感染的开源程序代码
b. 在程序源码的地方放一个LICENSE的文件夹,里面放上从Qt源码里获取过来的GPL协议,改名为你开源应用程序名_qt_license
c. 在你的商业应用程序里或者官网上留个地方注明你程序开源代码地址

注:

在每个模块的源码里,可以看到这个模块是什么协议的,会在模块根目录或者LICENSES文件夹里存放可使用的协议;
以上方式1仅限于桌面端,即Windows,Linux,MAC等,移动设备与嵌入式设备必须要购买商业许可或者使用方式2GPL协议共享代码。
商业化方式
官方花钱购买商业许可证给自己的开发者,然后你在这个许可证期限内发布的应用程序可以到处派发,但如果是嵌入式设备或者设备那种“封闭式”的,则需要另外购买独立的Qt DC 分发许可证

应用程序专业版(Qt for Application Development Enterprise, ADP),允许安装分发桌面端或者移动设备(手机,平板等用户可以访问文件系统的),具有所有社区版的功能,截至2025/01/24,价格为4200美元/年;
应用程序企业版(Qt for Application Development Professional, ADE),允许安装分发桌面端或者移动设备(手机,平板等用户可以访问文件系统的),具有所有Qt的功能,包括但不限于GPL协议的功能,截至2025/01/24,价格为4520美元/年;
设备创建专业版(Qt for Device Creation Professional, DCP,即嵌入式设备),允许让你创建ADE的应用程序权限以及嵌入式设备的应用程序,包含ADE相同的所有功能,且额外增加嵌入式支持的功能模块,价格需要自行上官网请求报价;
设备创建企业版(Qt for Device Creation Enterprise, DCE,即嵌入式设备),含DCP所有功能,并且额外增加更多的嵌入式功能模块,符合汽车和医疗行业标准,价格需要自行上官网请求报价;
设备创建、分发许可证(Qt for Device Creation, Distribution, DC-DIST),每台设备均有永久许可证,每一台设备买了就是永久,价格取决于设备功能和容量,必须在发货前购买,可与 Qt DCP 和 Qt DCE 一起使用,价格需要自行上官网请求报价;
应用程序开发企业版-小型企业(Qt for Application Development Enterprise - Small Business, ADE-SB),与完整商业版Qt ADE具有相同的功能,每家公司最多3个小型企业许可证(用以开发者),数量限制为最多5张票的标准支持(用以让Qt公司提供技术支持的),购买条件为企业年收入100万美元/欧元以内,截至2025/01/24,价格为600美元/年;
设备创建专业版-小型企业(Qt for Device Creation Professional - Small Business, DCP-SB),包含Qt ADE相同的功能,以及与完整商业版Qt DCP相同的所有功能,无需购买Qt 分发许可证,每家公司最多3个小型企业许可证(用以开发者),数量限制为最多5张票的标准支持(用以让Qt公司提供技术支持),购买条件为企业年收入100万美元/欧元以内,截至2025/01/24,价格为1060美元/年。
注:

以上均支持承认并完全保留购买公司的知识产权;
不允许商业许可证混用,比如说同个公司,有个用ADE-SB,有个用ADP的,这是Qt公司不允许的。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐