問題描述

所以我全力以赴,試圖找到某種規則,或至少有一些關於這個問題的 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。