我正在OCaml中编写一个系统,我想用GPL许可证发布开源代码。但是,我正在我的代码中调用Batteries,即LGPL。这是否会使用LGPL许可证污染我的代码?起初,我会说不,但我很难区分:(1)我的GPL“独立”程序需要一个LGPL库,如果你想使用它需要在你的机器上安装,(2)我的程序实际上“包含”另一个程序,即LGPL,因此只能使用LGPL许可证发布。
但是,如果它是(2),那么GTK+例如也是LGPL,这意味着任何带有GUI(GTK + 1)的程序都不会被允许是GPL,这不是' t ring true。
(1)和(2)之间的区别在于我的程序所依赖的LGPL库是否实际上与我的程序一起分发?这取决于我是否使用到LGPL库的静态链接?
感谢您的任何澄清, Surikator。
答案 0 :(得分:2)
来自维基百科:
LGPL的一个特点是一个 可以转换任何LGPLed的一块 软件变成了GPL的一块 软件(许可证的第3部分)。 此功能对直接有用 在GPLed中重用LGPLed代码 库和应用程序,或者如果一个 想要创建一个代码版本 不能用于专有 软件产品。
答案 1 :(得分:2)
http://en.wikipedia.org/wiki/GNU_General_Public_License#Compatibility_and_multi-licensing
...根据其他几个许可证许可的代码可以与GPL下的程序结合而不会发生冲突,只要该组合将GPL应用于整体。 [...] 许多最常见的免费软件许可证,例如原始的MIT / X许可证,BSD许可证(目前的3条款形式)和LGPL,都是“GPL兼容的”
我希望这意味着将LGPL lib链接到GPL1或GPL2程序是可以的。
答案 2 :(得分:2)
你确定电池是LGPL吗?我不应该这么想,因为它被设计为Ocaml标准库的替代品,它也不是LGPL。不,Ocaml库是LGPLX,即LGPL,链接异常。这是一个特殊的条款,允许你静态链接到任何许可证的代码,它被添加到LGPL,因为没有它Ocaml将是无用的,因为它的主要操作模式是静态链接,很多人永远不会接受社交由GPL流行引起的分裂。