開源協議就是將代碼(項目)轉化為開源軟件的東西;開源協議規定了你在使用開源軟件時的權利和責任,也就是規定了你可以做什么,不可以做什么。開源協議雖然不一定具備法律效力,但是當涉及軟件版權糾紛時,開源協議也是非常重要的證據之一。開源協議往往會制定一些特定的條款,只有在滿足這些條款的前提下,該軟件才能用于商業分發。
本教程操作環境:linux7.3系統、Dell G3電腦。
開源軟件在追求“自由”的同時,不能犧牲程序員的利益,否則將會影響程序員的創造激情,因此世界上現在有 60 多種被開源促進組織(Open Source Initiative)認可的開源許可協議來保證開源工作者的權益。
開源協議是什么
開源協議規定了你在使用開源軟件時的權利和責任,也就是規定了你可以做什么,不可以做什么。開源協議雖然不一定具備法律效力,但是當涉及軟件版權糾紛時,開源協議也是非常重要的證據之一。
簡單的來說,開源協議就是將代碼(項目)轉化為開源軟件的東西。開源許可基本上可以看作是開源依賴項的作者和使用服務的客戶之間合法的綁定契約,約束的內容就是開源代碼。開源協議往往會制定一些特定的條款,只有在滿足這些條款的前提下,該軟件才能用于商業分發。
對于準備編寫一款開源軟件的開發人員,也非常建議先了解一下當前最熱門的開源許可協議,選擇一個合適的開源許可協議來最大限度保護自己的軟件權益。
常見的開源協議
Apache License
Apache License是什么
Apache License(Apache許可證),是 Apache 軟件基金會發布的一個自由軟件許可證,Apache Licence 是著名的非盈利開源組織 Apache 采用的協議。
該協議和 BSD 類似,同樣鼓勵代碼共享和最終原作者的著作權,同樣允許源代碼修改和再發布。
Apache License遵循條件
需要給代碼的用戶一份 Apache Licence,如果修改了代碼,需要再被修改的文件中說明。在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
如果在發布的產品中包含一個 Notice 文件,則在 Notice 文件中需要帶有 Apache Licence。你可以在Notice中增加自己的許可,但是不可以表現為對 Apache Licence 構成更改。
Apache Licence 也是對商業應用又好的許可。使用者也可以再需要的時候修改代碼來滿足并作為開源或商業產品發布/銷售。
Apache License好處
好處 | 描述 |
---|---|
永久權利 | 一旦被授權,永久擁有。 |
全球范圍的權利 | 在一個國家獲得授權,適用于所有國家。假如你在美國,許可是從印度授權的,也沒有問題。 |
授權免費 | 無版稅, 前期、后期均無任何費用。 |
授權無排他性 | 任何人都可以獲得授權。 |
授權不可撤消 | 一旦獲得授權,沒有任何人可以取消。比如,你基于該產品代碼開發了衍生產品,你不用擔心會在某一天被禁止使用該代碼。 |
BSD
BSD是什么
BSD 是 “Berkeley Software Distribution” 的縮寫,意思是 “伯克利軟件發行版”。
BSD開源協議
BSD 開源協議是一個給于使用者很大自由的協議。可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發布。
當你發布使用了 BSD 協議的代碼,或則以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足三個條件:
-
如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的 BSD 協議。
-
如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。
-
不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。
BSD權利
BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。
BSD 由于允許使用者修改和重新發布代碼,也允許使用或在 BSD 代碼上開發商業軟件發布和銷售,因此是對商業集成很友好的協議。
很多的公司企業在選用開源產品的時候都首選 BSD 協議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。
GPL
GPL是什么
GPL 全稱是 GNU General Public License,即 GNU 通用公共許可協議。
GPL協議
Linux 采用了 GPL 協議。GPL 協議和 BSD, Apache Licence 等鼓勵代碼重用的許可很不一樣。
GPL 的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改后和衍生的代碼做為閉源的商業軟件發布和銷售。
這也就是為什么我們能用免費的各種 Linux,包括商業公司的 Linux 和 Linux 上各種各樣的由個人,組織,以及商業軟件公司開發的免費軟件了。
MIT
MIT是什么
MIT 是和 BSD 一樣寬范的許可協議。MIT 源自麻省理工學院(Massachusetts Institute of Technology, MIT),又稱 X11 協議。
MIT協議
MIT 與 BSD 類似,但是比 BSD 協議更加寬松,是目前最少限制的協議。這個協議唯一的條件就是在修改后的代碼或者發行包包含原作者的許可信息,適用商業軟件。
使用 MIT 的軟件項目有:jquery、Node.js。
如何選擇開源協議
世界上的開源協議有上百種,很少有人能徹底搞清它們之間的區別,即使在最流行的六種開源協議——GPL、BSD、MIT、Mozilla、Apache 和 LGPL——之中做選擇,也很復雜。
烏克蘭程序員 Paul Bagwell 畫了一張分析圖,說明應該怎么選擇開源協議,大家看了一目了然,真是清爽。
【