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