问题描述

所以我全力以赴,试图找到某种规则,或至少有一些关于这个问题的 common-courtesy 指南,找不到任何东西。

本质上,我想知道当我找到一个 WordPress 插件 (免费,列在 wordpress.org/plugins/中,并且包括 GNU GP 许可证),我认为可以通过添加一定量的功能来严重受益。

更改代码并包含新功能后,请执行以下操作:

1) 将其提交给当前插件的作者,并希望他/她添加它

2) 将”new” 插件提交到我自己的 WordPress 插件列表中?

3) 避免这些选项之一。只需更改插件,只能自己使用。

4) 做其他不在这里列出的东西? (暗示在评论部分提出建议。)

从许可的角度来看,我看不到任何禁止做出这些选择的禁令。我不知道采用代码,修改代码,然后将其作为高级插件销售是多么的道德,但 GP 许可证似乎也不被禁止。

这种情况最好的做法是什么?显然我不想冒犯这个插件的原创作者,或者做一些让我在 WordPress 编码社区看起来不好的事情。不过,在这种情况下,我反对,我认为该插件会从这个附加的功能中受益匪浅。

你说什么

最佳解决方案

在开始编写代码之前询问开发人员。

  • 您需要的功能可能已经实现,只是没有发布。

  • 或者插件 API 在下一个版本中更改,您的代码将不再工作。

  • 也许作者可以添加一个钩子,所以你可以把你的代码作为单独的插件,而不用改变主插件。

开源的核心思想之一就是协作。总是尽量一起改善避免发布与现有插件重复的 90%的东西。您只需更难为用户选择。

但是,如果您必须编写该改进,并且原始插件的开发人员拒绝与您合作,请将您的代码公开为其他用户的利益。

在 wordpress.org 上托管的插件的许可证将始终允许这样的更改或插件。

次佳解决方案

1 和 3 是你最好的选择 (有一些缺点) 。

1 当然是最好的。你可能会得到回应,你可能不会。这取决于开发人员的活动级别。如果他们正在积极发展 (即他们最近公布了更新),那么你很有可能得到回应。

3 的缺点是,当作者更新插件时,您需要合并。但是,有一些机制来处理 – 例如 Git 补丁。

第 2 号是一个粘性门。 GPL 允许您进行修改并开发衍生作品?是的 – 但有一些经常被遗忘,被忽视或被忽视的注意事项。

人们倾向于在公有领域错误地考虑开源软件; 但是”open source” 和”public domain” 有很大的区别 – 这些是不可互换的术语。大多数人只读 GPLv2 第 2 部分的第一部分:

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work…

他们倾向于忽略该部分的其余部分,其中指出:

…provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

所以,你不能只是对某些东西进行一些修改,并将其声称为自己的。要遵守 GPL,您必须将原始作者归属,并指明您的更改。

例如,如果您的新代码是插件的 10%,并且您只需将其作为新插件进行打包,那么在技术上可能不符合 GPL 许可,除非正确归属于原始作者。但是,如果您将原作者归因于您,并指出您所做的更改,那么更有可能符合许可。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。