在 LGPL 下的商业产品中使用 Qt 时如何允许私有修改

How to allow private modifications when using Qt in a commercial product under the LGPL

我正在考虑构建一个动态链接到 Qt 库的闭源应用程序。目标平台将是 Linux 和 Windows。为了履行LGPL的义务:

"The user of your application has to be able to re-link your application against a different or modified version of the Qt library" (Qt faq).

我正在努力理解技术上 需要什么才能使这成为可能。尤其是在不发布源代码的情况下。

  1. 在什么情况下,用户可以只用自己的修改版本替换应用程序附带的 .so/.dll 文件?

  2. 这可能吗?因为在同一件事上 libstdc++ faq 指出:

    The LGPL requires that users be able to replace the LGPL code with a modified version; this is trivial if the library in question is a C shared library. But there's no way to make that work with C++, where much of the library consists of inline functions and templates, which are expanded inside the code that uses the library. So to allow people to replace the library code, someone using the library would have to distribute their own source, rendering the LGPL equivalent to the GPL.

谢谢!

编辑:第二个问题由LGPL version 3, section 3. Useful reference: an old version of the Eigen FAQ discussing this issue and their correspondence with the FSF澄清。

实际上,人们通常链接到共享库 Qt;所以稍微升级 Qt - 只要一些常见的 API 仍然存在,是可能的。高级用户原则上可以调整 Qt 库(从您正在使用的版本的源代码开始)以满足他的需要(例如,更正顽皮的错误,特别是在不触及任何 Qt 头文件的情况下)。当然,请提供所有详细信息以帮助他(至少,准确提及您要链接的 Qt 版本)。

原则上,正如您所注意到的,这可能还不够。只有审判和法官才能真正做出决定,所以请教你的律师

当然我不是律师

顺便说一句,您是否考虑过让您的经理或客户(或法律责任人)以 free software and publish it (e.g. under GPLv3+ on github 的身份发布您的代码?以我的偏见,这将是最好的解决方案!