如何選擇開(kāi)源許可協(xié)議(一):了解協(xié)議
目前國(guó)內(nèi)開(kāi)源項(xiàng)目正在逐漸升溫,中國(guó)也開(kāi)始有不少優(yōu)秀的開(kāi)源項(xiàng)目突顯出來(lái)。在大家摩拳擦掌準(zhǔn)備加入開(kāi)源大軍時(shí),也要知道這個(gè)圈子里的規(guī)則。技術(shù)人員 不能只是研究技術(shù),任何圈子都有規(guī)則,要知道了才能玩得好。前段時(shí)間有件關(guān)于開(kāi)源軟件的事情挺熱鬧的,關(guān)于國(guó)內(nèi)一個(gè)開(kāi)發(fā)者把自己作品開(kāi)源出來(lái)被別的公司的 人拿去包裝成自己的產(chǎn)品高價(jià)賣(mài)出去。大部分做開(kāi)源軟件的開(kāi)發(fā)者都不太怎么關(guān)注版權(quán)這些,具體微博如下:
hoowa_sun:
做開(kāi)源后,發(fā)現(xiàn)大部分都被別人拿去學(xué)習(xí),然后copy,然后自己閉源賣(mài)出去。這里不缺乏大公司,有一家公司拿我的開(kāi)源系統(tǒng)修改后賣(mài)給了一個(gè)國(guó)內(nèi)的運(yùn)營(yíng)商,賣(mài)的還非常貴至少幾十萬(wàn)一套。所以我鄭重的建議大家,做軟件還是要英文版開(kāi)源,中文版封閉不要開(kāi)源。
在國(guó)內(nèi)大家習(xí)慣了使用盜版、破解,看到這種免費(fèi)的軟件也覺(jué)得是理所當(dāng)然的拿來(lái)主義,甚至直接封裝到自己的商業(yè)組件賣(mài)出去。如果你正在這樣做,馬上停 下來(lái)研究一下使用的這些開(kāi)源組件的許可協(xié)議,不然某一天你會(huì)意外收到一封法院的傳票。如果你在開(kāi)發(fā)或者準(zhǔn)備開(kāi)發(fā)開(kāi)源軟件,但尚對(duì)開(kāi)源許可協(xié)議不了解,也看 下這篇文章,選擇一種開(kāi)源許可協(xié)議保護(hù)你的開(kāi)源軟件。
常見(jiàn)的開(kāi)源許可協(xié)議有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。這些協(xié)議有什么區(qū)別呢?
GPL,全稱(chēng) GNU General Public License。它的主要內(nèi)容為:只要在一個(gè)軟件中使用(“使用”指類(lèi)庫(kù)引用或者修改后的代碼) GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開(kāi)源和免費(fèi)。這個(gè)協(xié)議就不太適合商用軟件,或者準(zhǔn)備使用GPL開(kāi)源組件的商用項(xiàng)目?;谶@個(gè)協(xié) 議的項(xiàng)目,極大的提高了開(kāi)源軟件的數(shù)量。上面那個(gè)微博的案例,如果作者使用了GPL協(xié)議,而使用方?jīng)]有公開(kāi)源代碼就是違反了協(xié)議。目前用的多的是 GPLV1,GPLV2。這兩個(gè)什么區(qū)別看后面那張樹(shù)形圖。采用這個(gè)協(xié)議的開(kāi)源軟件有:Linux、 MySQL.
LGPL,最初是Library GPL的縮寫(xiě),后來(lái)改稱(chēng)作Lesser GPL。由于GPL太嚴(yán)格,限制了很多商用軟件使用GPL組件才推出了這個(gè)LGPL。LGPL允許商業(yè)軟件通過(guò)引用類(lèi)庫(kù)的方式使用LGPL組件(不直接使 用源代碼),這樣可以不需要開(kāi)源商業(yè)軟件的代碼。但是如果要修改原始組件的代碼,則涉及修改部分的代碼和基于原來(lái)代碼衍生的代碼都必須采用LGPL協(xié)議。 LGPL不適合以LGPL協(xié)議為基礎(chǔ)的代碼進(jìn)行二次開(kāi)發(fā)的商業(yè)軟件,但是商用軟件可以采用編譯后的類(lèi)庫(kù)引用就不需要公開(kāi)源代碼了。采用這個(gè)協(xié)議的開(kāi)源軟件 有: JBoss、 FCKeditor 、 Hibernate。之前extjs就因?yàn)閺腖GPL轉(zhuǎn)換到GPL帶來(lái)了不少的震動(dòng)。詳情點(diǎn)擊。
BSD, 全稱(chēng) Berkeley Software Distribution。這個(gè)協(xié)議相對(duì)上面兩個(gè)協(xié)議寬松很多,允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼基礎(chǔ)上開(kāi)發(fā)商業(yè)軟件發(fā)布和銷(xiāo)售, 因此是適用于商業(yè)軟件的。使用者別太高興,使用時(shí)還必須做到滿足三個(gè)條件:
- 1)如果再發(fā)布的產(chǎn)品中包含源代碼,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議。
- 2)如果再發(fā)布的只是二進(jìn)制類(lèi)庫(kù)/軟件,則需要在類(lèi)庫(kù)/軟件的文檔和版權(quán)聲明中包含原來(lái)代碼中的BSD協(xié)議。
- 3)不可以用開(kāi)源代碼的作者/機(jī)構(gòu)名字和原來(lái)產(chǎn)品的名字做市場(chǎng)推廣。適用BSD協(xié)議的開(kāi)源軟件有: nginx、CruiseControl、Redis。
apache Licence vesion 2.0,這個(gè)協(xié)議除了為用戶提供版權(quán)許可之外,還有專(zhuān)利許可。與BSD協(xié)議權(quán)限類(lèi)似, 允許代碼修改,再發(fā)布,適用商業(yè)軟件。但是也需要滿足以下條件:
- 1)需要給代碼的用戶一份Apache Licence。
- 2)如果你修改了代碼,需要再被修改的文件中說(shuō)明。
- 3)在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來(lái)代碼中的協(xié)議,商標(biāo),專(zhuān)利聲明和其他原來(lái)作者規(guī)定需要包含的說(shuō)明。
- 4)如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對(duì)Apache Licence構(gòu)成更改。
除了這些條件它還有這些好處:
- 1)永久權(quán)利 一旦被授權(quán),永久擁有。
- 2)全球范圍的權(quán)利 在一個(gè)國(guó)家獲得授權(quán),適用于所有國(guó)家。假如你在美國(guó),許可是從印度授權(quán)的,也沒(méi)有問(wèn)題。
- 3)授權(quán)免費(fèi) 無(wú)版稅, 前期、后期均無(wú)任何費(fèi)用。
- 4)授權(quán)無(wú)排他性 任何人都可以獲得授權(quán)
- 5)授權(quán)不可撤消 一旦獲得授權(quán),沒(méi)有任何人可以取消。比如,你基于該產(chǎn)品代碼開(kāi)發(fā)了衍生產(chǎn)品,你不用擔(dān)心會(huì)在某一天被禁止使用該代碼
使用apache Licence vesion 2.0協(xié)議的開(kāi)源軟件有:Hadoop 、apache httpserver、Spring Framework、MongoDB 。
MIT,源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT),又稱(chēng)X11協(xié)議。MIT與BSD類(lèi)似,但是比BSD協(xié)議更加寬松,是目前最少限制的協(xié)議。這個(gè)協(xié)議唯一的條件就是在修改后的代碼或者發(fā)行包包含 原作者的許可信息。適用商業(yè)軟件。使用MIT的軟件項(xiàng)目有:jquery、Node.js。
列出了常用協(xié)議,還有一些比較常用的大家就谷歌了,比如: Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。
有一篇博客的樹(shù)形圖很好闡述了當(dāng)前主流許可協(xié)議的區(qū)別。
另附一張目前GitHub上項(xiàng)目采用的許可協(xié)議比例圖:
參考:
http://www.aqee.net/a-short-guide-to-open-source-and-similar-licenses/
http://www.iteye.com/news/27616
原文鏈接:http://www.lanceyan.com/tech/arch/opensource_permission.html