我什么时候可以依赖LGPL库发布GPL软件?

时间:2011-01-28 03:47:33

标签: licensing gpl ocaml lgpl

我正在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。

3 个答案:

答案 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流行引起的分裂。