LGPL

LGPL = Lesser General Public Library(宽通用公共许可证)
核心:库可以闭源使用,但修改库本身必须开源

 

不同协议许可证的对比

许可证链接使用链接使用商业产品
GPL必须开源整个项目必须开源❌ 强制开源
LGPL v2可以闭源修改部分必须开源✅ 可商用
LGPL v3可以闭源修改部分必须开源✅ 可商用,但有额外限制
MIT/BSD完全自由完全自由✅ 无限制

LGPLv2和LGPLv3的最大区别是Tivoization的处理
Tivo是美国机顶盒公司,硬件上运行LGPL库,由于硬件有签名认证,所以用户无法替换这个库。结果是,虽然开源的代码库,但用户无法运行修改版代码。

LGPL v3要求,如果产品使用了LGPL v3的库

  • 必须允许用户替换该库,可安装修改版

  • 不能用硬件签名或加密手段阻止用户替换

  • 必须提供安装说明

LGPL v2则没有这个要求。

Qt版权

Qt 2 后源码授权许可证开始使用GPL,Qt 4.0 发布时它拥抱了 GPLv2,2009年收购 Trolltech 诺基亚为 Qt 加入了 LGPLv2.1,LGPLv2.1 存在漏洞,没有澄清使用修改库的问题,这个漏洞被企业广泛利用开发锁定的设备,开发者认为,使用 LGPLv2.1 授权的修改版 Qt 去创建锁定设备伤害了 Qt 的生态系统。
因为设备不对第三方公开,对生态系统没有任何贡献。LGPLv2.1 没有保护用户的自由,自由软件基金会的 LGPLv3 解决了这个问题。LGPLv3 开源许可证将能在用户使用开源版的 Qt 时确保用户自由,LGPLv3 明确禁止封闭嵌入式设备分发 LGPLv3 授权的软件。
从 5.4 开始 Qt 将采用 LGPL v2.1、LGPL v3 和商业许可证授权,而新的附加模组将只在 LGPL v3 和商业许可证发布。在 Qt 4.0 到 Qt 5.3 的版本使用 LGPLv2.1,并且随着版本的更新越来越多的模块不再使用 LGPLv2.1。

最新的LGPLv3, 意思是嵌入式设备,包括手机开发,使用LGPLV3 Qt5.4以后的版本,无论动态库,静态库都是不允许的。

Qt大多数组件库在LGPL 下可以用 包括2.1和3.0
LGPL不修改源码+动态链接库下是非开源商用友好的。
LGPLV3已经不适用封闭嵌入式设备。

 

Qt 5 许可证演变

版本发布时间许可证
Qt 5.0 ~ 5.32012~2014LGPLv2.1
Qt 5.42014.12LGPLv2.1 + LGPLv3 双选
Qt 5.52015.07LGPLv2.1 + LGPLv3
Qt 5.62016.03LGPLv3 为主,部分模块仅 LGPLv3
Qt 5.72016.06部分模块 仅 GPLv3/商业
Qt 5.8 ~ 5.152017~2020核心 LGPLv3,部分模块 GPLv3/商业

推荐使用Qt5.5版本。

作者:SteveChen  创建时间:2025-01-31 10:13
最后编辑:SteveChen  更新时间:2026-06-12 17:52
上一篇:
下一篇: