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