1 什么是開源許可協(xié)議
開源許可協(xié)議(Open Source License)是指開源社區(qū)為了維護(hù)作者和貢獻(xiàn)者的合法權(quán)利钧汹,保證軟件不被一些商業(yè)機(jī)構(gòu)或個(gè)人竊取廊驼,影響軟件的發(fā)展而開發(fā)的協(xié)議涕烧。
開源許可軟件大多是免費(fèi)提供的,但并非必須如此妙黍,比如只允許非商業(yè)性的許可證僅為個(gè)人使用衰伯,而重新分發(fā)或修改源代碼通常不被視為開源許可箱叁;同時(shí)開源許可證可能有一些限制,特別是關(guān)于軟件來(lái)源的表達(dá)惕医,例如要求保留作者姓名和代碼中的版權(quán)聲明耕漱,或者要求重新分發(fā)許可軟件僅在相同的許可下罐柳。
2 常見的開源許可協(xié)議
2.1 BSD
BSD 是 Berkeley Software Distribution
的縮寫蛀柴,意思是 「伯克利軟件發(fā)行版」当编。
BSD 開源協(xié)議是一個(gè)給于使用者很大自由的協(xié)議挖函。可以自由的使用考婴,修改源代碼宰衙,也可以將修改后的代碼作為開源或者專有軟件再發(fā)布幅狮。 當(dāng)你發(fā)布使用了 BSD 協(xié)議的代碼能岩,或則以 BSD 協(xié)議代碼為基礎(chǔ)做二次開發(fā)自己的產(chǎn)品時(shí)寞宫,需要滿足三個(gè)條件:
- 如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的 BSD 協(xié)議
- 如果再發(fā)布的只是二進(jìn)制類庫(kù)/軟件拉鹃,則需要在類庫(kù)/軟件的文檔和版權(quán)聲明中包含原來(lái)代碼中的 BSD 協(xié)議
- 不可以用開源代碼的作者/機(jī)構(gòu)名字和原來(lái)產(chǎn)品的名字做市場(chǎng)推廣
BSD 協(xié)議鼓勵(lì)代碼共享辈赋,但需要尊重代碼作者的著作權(quán)。BSD 由于允許使用者修改和重新發(fā)布代碼膏燕,也允許使用或在 BSD 代碼上開發(fā)商業(yè)軟件發(fā)布和銷售钥屈,因此是對(duì)商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產(chǎn)品的時(shí)候都首選 BSD 協(xié)議煌寇,因?yàn)榭梢酝耆刂七@些第三方的代碼焕蹄,在必要的時(shí)候可以修改或者二次開發(fā)。
2.2 MIT
MIT 是和 BSD 一樣寬范的許可協(xié)議,源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT)阀溶,又稱 X11 協(xié)議。作者只想保留版權(quán),而無(wú)任何其他了限制鸦泳。MIT 與 BSD 類似银锻,但是比 BSD 協(xié)議更加寬松,是目前最少限制的協(xié)議做鹰。這個(gè)協(xié)議唯一的條件就是在修改后的代碼或者發(fā)行包包含原作者的許可信息击纬。適用商業(yè)軟件。使用 MIT 的軟件項(xiàng)目有:jquery钾麸、Node.js更振。
2.3 APACHE
Apache License(Apache許可證),是 Apache 軟件基金會(huì)發(fā)布的一個(gè)自由軟件許可證饭尝。
Apache Licence 是著名的非盈利開源組織 Apache 采用的協(xié)議肯腕。該協(xié)議和 BSD 類似,同樣鼓勵(lì)代碼共享和最終原作者的著作權(quán)钥平,同樣允許源代碼修改和再發(fā)布实撒。但是也需要遵循以下條件:
- 需要給代碼的用戶一份 Apache Licence
- 如果修改了代碼,需要再被修改的文件中說(shuō)明。
- 在衍生的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來(lái)代碼中的協(xié)議知态,商標(biāo)捷兰,專利聲明和其他原來(lái)作者規(guī)定需要包含的說(shuō)明
- 如果再發(fā)布的產(chǎn)品中包含一個(gè) Notice 文件,則在 Notice 文件中需要帶有Apache Licence
Apache Licence 也是對(duì)商業(yè)應(yīng)用友好的許可,使用者也可以再需要的時(shí)候修改代碼來(lái)滿足并作為開源或商業(yè)產(chǎn)品發(fā)布/銷售负敏。
使用這個(gè)協(xié)議的好處是:永久權(quán)利 一旦被授權(quán)贡茅,永久擁有;全球范圍的權(quán)利 在一個(gè)國(guó)家獲得授權(quán)其做,適用于所有國(guó)家顶考。假如你在美國(guó),許可是從印度授權(quán)的庶柿,也沒有問(wèn)題村怪。
2.4 GPL
GPL (GNU General Public License) :GNU 通用公共許可協(xié)議。
GPL 協(xié)議和 BSD浮庐,Apache Licence 等鼓勵(lì)代碼重用的許可很不一樣甚负。GPL 的出發(fā)點(diǎn)是代碼的開源/免費(fèi)使用和引用/修改/衍生代碼的開源/免費(fèi)使用,但不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷售审残;這也就是為什么我們能用免費(fèi)的各種 linux梭域,包括商業(yè)公司的 linux 和 linux上 各種各樣的由個(gè)人,組織搅轿,以及商業(yè)軟件公司開發(fā)的免費(fèi)軟件了病涨。
2.5 LGPL
LGPL 是 GPL 的一個(gè)為主要為類庫(kù)使用設(shè)計(jì)的開源協(xié)議。和 GPL要 求任何使用/修改/衍生之GPL類庫(kù)的的軟件必須采用GPL協(xié)議不同璧坟,LGPL允許商業(yè)軟件通過(guò)類庫(kù)引用(link)方式使用LGPL類庫(kù)而不需要開源商業(yè)軟件的代碼既穆。這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫(kù)引用并發(fā)布和銷售。
但是如果修改LGPL協(xié)議的代碼或者衍生雀鹃,則所有修改的代碼幻工,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫(kù)被商業(yè)軟件引用黎茎,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ)囊颅,通過(guò)修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。
GPL/LGPL都保障原作者的知識(shí)產(chǎn)權(quán)傅瞻,避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品踢代。
2.6 ISC
ISC是(Internet Systems Consortium)所設(shè)計(jì),在功能上與兩句版的 BSD 許可證相同嗅骄。授予以任何目的使用胳挎、復(fù)制、修改或分發(fā)此軟件的許可掸读,無(wú)論是否收費(fèi)串远,只要上述版權(quán)聲明和許可聲明出現(xiàn)在許可中即可宏多。
3 如何選擇開源協(xié)議
世界上的開源許可證大概有上百種,每一種都一一了解不太現(xiàn)實(shí)澡罚;開源協(xié)議雖然不一定具備法律效力伸但,但是當(dāng)涉及軟件版權(quán)糾紛時(shí),開源協(xié)議也是非常重要的證據(jù)留搔;對(duì)于準(zhǔn)備編寫一款開源軟件的開發(fā)人員更胖,也非常建議先了解一下當(dāng)前最熱門的開源許可協(xié)議,選擇一個(gè)合適的開源許可協(xié)議來(lái)最大限度保護(hù)自己的軟件權(quán)益隔显。
如果看完后不太清楚却妨,可以看簡(jiǎn)化版本。