2

我正在用 OCaml 编写一个系统,我想用 GPL 许可证发布开源。但是,我从我的代码中调用Batteries,即 LGPL。这是否会使用 LGPL 许可证污染我的代码?起初,我会说不,但我很难区分:(1)我的 GPL“独立”程序需要一个 LGPL 库,如果你想使用它,你需要在你的机器上安装它和(2)我的程序实际上“包含”了另一个 LGPL 程序,因此只能使用 LGPL 许可证发布。

但是,如果是 (2),那么例如GTK+也是 LGPL,这意味着任何带有 GUI(GTK+ 的)的程序都不允许是 GPL,这并不正确。

(1) 和 (2) 之间的区别是否在于我的程序所依赖的 LGPL 库是否实际上与我的程序一起分发?这是否取决于我是否使用指向 LGPL 库的静态链接?

感谢您的澄清,Surikator。

4

3 回答 3

3

来自维基百科:

LGPL 的一个特点是可以将任何 LGPL 软件转换为 GPL 软件(许可证的第 3 节)。此功能对于在 GPL 库和应用程序中直接重用 LGPL 代码很有用,或者如果想要创建不能在专有软件产品中使用的代码版本。

于 2011-01-28T03:53:14.310 回答
3

http://en.wikipedia.org/wiki/GNU_General_Public_License#Compatibility_and_multi-licensing

...根据其他几个许可证许可的代码可以与 GPL 下的程序组合而不会发生冲突,只要该组合将 GPL 应用于整体。[...] 许多最常见的自由软件许可证,例如原始的 MIT/X 许可证、BSD 许可证(目前的 3 条款形式)和 LGPL,都是“GPL 兼容的”

我希望这意味着将 LGPL 库链接到 GPL1 或 GPL2 程序是可以的。

于 2011-01-28T04:04:05.240 回答
3

你确定电池是 LGPL 吗?我不应该这么认为,因为它旨在替代 Ocaml 标准库,而后者也不是 LGPL。不,Ocaml 库是 LGPLX,即带有链接异常的 LGPL 。这是一个特殊条款,允许您使用任何许可证静态链接到代码中,它被添加到 LGPL 因为没有它 Ocaml 将毫无用处,因为它的主要操作模式是静态链接,很多人永远不会接受社交由 GPL 流行引起的分裂。

于 2011-01-30T01:02:05.737 回答