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