我想在基于 C 的专有应用程序中使用 Bluez 蓝牙 (GPL) 库。我想要 GPL 解决方法来使用它。
我的计划是:
编写一个链接到 Bluez 库 (GPL) 的 LGPL 包装器库,还包括 Bluez 库头文件(也是 GPL)。因此包装器变成了 LGPL(对吗?)。
将 LGPL 包装库链接到我的专有应用程序中。
有了这个,我的专有应用程序就可以免受 GPL 污染了吗?
如果没有,这里正确的解决方法是什么?
提前致谢
不,这是不可能的。GPL 要求整个应用程序在 GPL 下分发。没有规定让包装器来解决它,当然也没有规定 GPL “衰减”为 LGPL。(也许您正在考虑另一个方向 - LGPL 允许您重新许可为 GPL。)您想要做的是对 GPL 应用程序的经典侵权,并且几乎肯定会被追究(假设您被抓住了) .
正确的解决方法是编写您自己的蓝牙实现或在 GPL 下分发您的应用程序。
最后,标准免责声明适用:我不是律师。如果您无法自己阅读 GPL 并确定我刚刚告诉您的内容,那么您确实需要在接触任何 GPL 代码之前聘请律师为您解释。
这并不容易 :-) 你无法摆脱 GPL 的限制。
我公司也有类似的案例。我们选择的解决方案是将需要使用基于 GPL 的库(在我的情况下是 libiw)的功能分开,并编写一个同样基于 GPL 的独立应用程序(因此我们打开尽可能少的代码)。然后从我们的主应用程序启动“小程序”(例如通过 fork/execl 函数)并通过信号、管道或诸如 RPC 之类的东西与它通信。我不知道它是否适用于您的情况,因为我不知道您的应用程序要做什么,但这是我们选择的一种解决方法。
任何这样的变通办法都违背了 GPL 的精神,如果 FSF 点缀他们的 Is 并越过它 Ts,就不应该有任何这些。
您唯一的合法选择是 (IANAL):
请联系律师寻求专业建议。