it-swarm.cn

GPL和插件

插件开发人员中心说“你的插件必须兼容GPLv2”。但我发现Topsy插件属于GPLv3。 http://www.gnu.org/licenses/rms-why-gplv3.html 表明GPLv2和GPLv3不兼容。那么这应该被允许吗?我想使用Topsy插件中的一些代码。那么,我应该在GPLv2或GPLv3下发布我的插件吗?

3
User

如果您遵循规则(您永远不想从开始它们开始),那么您编写并提交到存储库的任何WordPress插件必须获得GPLv2许可。去年有一个巨大的讨论风暴,因为示例自述文件错误地说“GPL,版本2或任何更高版本”......这就是为什么一些插件进入GPLv3路线的原因。

一旦指出插件使用版本2获得许可以符合WordPress核心的许可证,许多插件重新许可到版本2和拒绝的几个已从存储库中删除。不幸的是,有不少人在雷达下飞行并错过了更新。

我的建议是:

  1. 联系Topsy的开发人员并要求他们重新授权插件或明确许可使用他们的一些代码并在GPLv2下许可您的版本
  2. 等到在您使用自己系统中的任何代码之前获得Topsy的肯定。

从技术上讲,Topsy违反了WordPress的核心许可,而WordPress基金会有责任追求(不是你的)。但是,为了确保您保持自己的代码符合规定并避免任何法律后果,如果他们针对Topsy采取行动,您应该获得以适当方式使用代码的许可或找到其他可以使用的东西。

更新

通过电子邮件,论坛,IRC和Trac进行了大量讨论后,核心团队澄清了WP存储库中托管的任何插件必须获得许可,因为与GPLv2兼容。这意味着,在大多数情况下,您的插件应该是明确的GPLv2或GPLv2 +(“或任何更高版本”)。

这是为了防止意外将插件代码滚动到核心中。 Core明确许可为GPLv2 +,因此卷入项目的任何代码都必须能够以相同的方式获得许可。

但是,您仍然可以将私有托管插件许可为GPLv3。这仍然与核心的“或任何更新版本”规定兼容,同时保持独立(因为它不在同一位置托管)。

4
EAMann

这里已经澄清: http://core.trac.wordpress.org/browser/trunk/license.txt WordPress Core是GPLv2 +

回购要求“您的插件必须兼容GPLv2”是任意的,不基于任何许可后果。此外,它仅适用于在wordpress.org repos上托管插件,而不适用于插件是否合法。 GPLv3插件没有“错误”或违反任何许可。 (所以问题的第一部分已经回答了。)

(GPL本身有一个特定的条款,如果您没有明确地将条款限制为特定版本,那么它是隐式“可升级的”。链接许可的版本不是特定或明确的限制在这方面。)

如果您同时使用GPLv2 +(不仅仅是“GPLv2”)和GPLv3代码,则必须释放代码GPLv3(如果您将其发布)。

至于你的问题:如果你使用Topsy的一部分,你的代码必须释放GPLv3(以及后面的选项),如果你发布它。

更新:WordPress.org确实让你现在在他们的回购中托管GPLv3插件(自2012年5月起至少)。

https://make.wordpress.org/plugins/2012/05/11/cross-posted-from-the-main-development-blog-the/

3
WraithKenny

好问题。从技术上讲,GPLv3与GPv2不兼容。如果你采取Matt Mullenweg采取的立场,那么Topsy插件就错了。我的猜测是,如果Matt知道他会从存储库中取出Topsy的插件,直到他们通过GPLv2重新许可它们。

但是,你不能强迫Topsy重新授权(虽然你可以要求它们;这可能是最好的选择。)至于“是否应该允许? “问题是”谁会拒绝?“唯一可以拒绝的人就是有人起诉Topsy来改变它。当然,Matt可以通过从插件库中提取它来应用营销压力。但除非和/或直到其中一件事发生......

所以你处在一个顽固的地方。你不能真正使用Topsy代码而不用授权它GPLv3,如果你这样做,你就无法真正创建一个WordPress插件,因为它与GPLv2不兼容(根据Matt对GPLv2的解释。)

OTOH,和这不是建议只有我的教诲,你可能只是忽略GPLv3的问题,使用Topsy的代码,并让芯片落在他们可能的地方。你不可能被起诉,甚至有人抱怨你这样做,除非你的插件有很多钱,我的猜测不是这样吗?如果你确实得到了Topsy的停止和停止,那么Matt肯定会成为你的盟友并给Topsy带来市场压力。至少那是我的猜测。 :)

2
MikeSchinkel

GPL声明如果您的代码需要运行原始核心,那么它必须遵循相同的许可证。

但是,如果将代码分为两部分,一部分执行核心功能(理想情况下可以与任何框架一起使用,有点像库)),第二个与wordpress和你的库交互,你可以使用你喜欢的任何你的库许可证。只有带有wordpress的部分必须遵循相同的许可证。

一个很好的例子是Google Reader使用feed(它是一个API),但由于它是一个单独的二进制文件,它可以使用任何许可证。

2
Sudhanshu