0

我想使用一些在以下“GNU 通用公共许可证 (GPL)、MIT 许可证”下获得许可的开源代码。我想将此代码包含在我将出售的产品中。

这是特别的代码

我该怎么做才能不被起诉?:)

我不介意分发我修改过的源代码,但我不希望整个应用程序开源。

如果我将开源代码构建到一个库中并开源该库,我可以链接到它而不打开我的其余源代码吗?

编辑:在项目中它具有以下内容

“mda VST 插件是在 MIT 许可或 GPL 下发布的”许可的第 2 版,或(由您选择)任何更高版本“。”

4

6 回答 6

2

您将不得不专门查看各个代码位,以了解每个代码是如何获得许可的。虽然 GPL 和 MIT 许可证是“不兼容的”,但这并不意味着代码不能同时使用这两个许可证。GPL 许可证很可能在那里,以便使用 GPL 的人可以将其包含在他们的项目中,而 MIT 许可证则可以让其他不使用 GPL 的人在项目中使用它。

如果是这种情况,代码是双重许可的,那么您只需选择使用 MIT 许可来获取您希望包含在项目中的代码,而不是 GPL 许可。

如果提到这两个许可证是因为“有些是 GPL,有些是 MIT”(这在 Sourceforge 页面上看了 10 秒并不清楚),那么您必须知道哪个适用于哪个模块。

无论哪种方式,给作者的一个简单说明应该很容易阐明您特别希望使用的代码的状态。

于 2010-03-31T03:30:33.033 回答
1

据我所知,该软件具有 MIT 或 GPL 双重许可。这意味着您可以选择更适合您情况的许可证。

虽然您可以在专有软件中使用 MIT 许可库,但我想说,如果没有别的,让作者知道您打算做什么是礼貌的。

于 2010-03-31T03:28:40.603 回答
1

这一切都取决于 _how_you_link_ 与 GPL 覆盖的代码。如果您要使用的库被 GPL(不是 LGPL)涵盖并且您链接到它,则您的应用程序必须根据 GPL 的条款分发。该许可证将您的应用程序和库视为一个组合工作。

如果您只是将独立链接的 GPL 程序与专有程序一起分发,并且它们都可以一起工作(但从不链接在一起),那么您很好。一个例外是 gcc 的中间输出,但只有在编写 gcc 插件时才会感兴趣。

如果您还没有准备好在同一许可下分发链接到 GPL 代码的代码的任何部分,则不能使用 GPL 代码。请注意,销售与它无关,GPL 关心的只是分发,免费或收费,没关系。

您不能对使用 GPL 代码的程序实施比 GPL 规定更多的限制。同样,出于同样的原因,您不能强制执行更少的限制。

例如,如果我编写了一个命令行程序并且我想赋予它行编辑功能和历史记录,我可能会链接到(并使用)libreadline,它是 GPL。但是,如果我分发依赖于 readline() 的新程序,我必须根据 GPL 许可该程序。这就是为什么 libedit / libeditline 是在 3 条款 BSD 许可下创建的,具有完全兼容的 API。

任何 C 程序都将链接到 glibc,它必须。因为 glibc 是 LGPL,所以我不需要在自己的代码中继承许可证。

您引用的库允许您选择所需的许可证,除非我可以确认版权的唯一所有者,否则我通常不使用双重许可库。如果您可以确认,只需根据 MIT 许可条款使用该库。

于 2010-03-31T03:33:57.633 回答
0

MIT 许可证可能与您的目标兼容,但 GPL 不是。你仍然需要在 GPL 下打开你的源代码。

看起来您引用的包允许您选择所需的许可证。

于 2010-03-31T03:16:03.997 回答
0

这取决于软件是否为您提供许可证选择,或者它是否包含两个不同许可证下的代码。如果是前者,那么您可以根据 MIT 的条款使用它,而后者则需要先删除 GPL 的部分。

如果另一个许可证不是可选的,那么 MIT 许可证承诺的内容并不重要,那么您必须遵守两者的限制。

于 2010-03-31T03:21:05.160 回答
0

您只需将源代码分发给您向其销售应用程序的客户。在这里查看GPL 的实用方法?. 此外,MIT 和 GPL 是不同的许可证,MIT 的限制较少。

于 2010-03-31T03:26:42.840 回答