我想使用一些根据以下“GNU通用公共许可证(GPL),MIT许可证”获得许可的开源代码。我想将此代码包含在我将要销售的产品中。
Here is the code in particular
如果不被起诉,我该怎么办? :)
我不介意分发我修改过的源代码,但我不希望整个应用程序开源。
如果我将开源代码构建到库中并且开源,那么库可以链接到它而不打开我的其余源代码吗?
编辑:在项目中它有以下
“mda VST插件是在MIT许可下或GPL下发布的 “许可证的第2版,或(根据您的选择)任何更高版本”。“
答案 0 :(得分:2)
您必须专门查看代码的各个部分,以了解每个代码的许可方式。虽然GPL和MIT许可证“不兼容”,但并不意味着代码无法使用这两个许可证进行许可。 GPL许可证可能就在那里,以便使用GPL的人可以将其包含在他们的项目中,而MIT许可证允许其他人(不使用GPL)在项目中使用它。
如果是这种情况,代码是双重许可的,那么您只需选择将MIT许可证用于您希望包含在项目中的代码,而不是GPL许可证。
如果提到两个许可证是因为“有些是GPL而有些是麻省理工”(在Sourceforge页面看了10秒就不清楚了),那么你必须知道哪个适用于哪个模块。
无论哪种方式,对作者的简单说明应该很容易澄清您特别希望使用的代码的状态。
答案 1 :(得分:1)
据我所知,该软件是双重许可的MIT或GPL。这意味着您可以选择更适合您情况的许可证。
虽然您可以在专有软件中使用MIT许可库,但我会说,如果没有别的话,让作者知道您打算做什么是有礼貌的。
答案 2 :(得分:1)
这一切都取决于_how_you_link_与GPL涵盖的代码。如果您要使用的库由GPL(而不是LGPL)涵盖并且您链接它,则您的应用程序必须根据GPL的条款分发。许可证将您的应用程序和库一起视为组合工作。
如果您只是将独立链接的GPL程序与专有程序一起分发并且它们一起工作(但从不链接在一起),那么您很好。唯一的例外是gcc的中间输出,但是如果您正在编写gcc插件,这只会很有趣。
如果您尚未准备好在同一许可下分发链接GPL代码的代码的任何部分,则不能使用GPL代码。请注意,销售与此无关,所有GPL关心的是分发,免费或收费,无所谓。
您不能强制执行比使用GPL代码的GPL指令更多的限制。同样,出于同样的原因,您不能强制执行更少的限制。
例如,如果我编写命令行程序并且我想给它行编辑功能和历史记录,我可能会链接(并使用)libreadline,这是GPL。但是,如果我分发我的新程序依赖于readline(),我必须根据GPL许可该程序。这就是为什么libedit / libeditline是在具有完全兼容API的3条BSD许可下创建的。
任何C程序都会链接到glibc,它必须。因为glibc是LGPL,所以我不需要在我自己的代码中继承许可证。
您引用的库允许您选择所需的许可证,我通常不使用双重许可的库,除非我可以确认版权的唯一所有者。如果您可以确认,只需根据MIT许可条款使用该库。
答案 3 :(得分:0)
MIT许可证可能与您的目标兼容,但GPL许可证不符合您的目标。您仍然需要在GPL下打开源代码。
看起来您引用的软件包允许您选择所需的许可证。
答案 4 :(得分:0)
这取决于软件是否为您提供许可证选择,还是包含两个不同许可证下的代码。如果是前者,那么你可以在麻省理工学院的条款下使用它,后者你需要先删除GPL的部分。
如果其他许可证不是可选的,那么麻省理工学院许可证所承诺的并不重要,那么您必须遵守两者的限制。
答案 5 :(得分:0)
您只需将源代码分发给您销售应用程序的客户端。见Practical ways around the GPL?。此外,麻省理工学院和GPL是不同的许可证,麻省理工学院的限制较少。