轉:實戰如何選擇開源許可協議

http://www.admin10000.com/document/2490.htmlhtml

常見的開源許可協議有:GPL、LGPL、BSD、Apache Licence vesion 2.0、MIT。這些協議有什麼區別呢?jquery

  GPL

  全稱 GNU General Public License。它的主要內容爲:只要在一個軟件中使用(「使用」指類庫引用或者修改後的代碼) GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這個協議就不太適合商用軟件,或者準備使用GPL開源組件的商用項目。基於這個協議的項目,極大的提升了開源軟件的數量。上面那個微博的案例,若是做者使用了GPL協議,而使用方沒有公開源代碼就是違反了協議。目前用的多的是GPLV1,GPLV2。這兩個什麼區別看後面那張樹形圖。採用這個協議的開源軟件有:Linux、 MySQL 。nginx

  LGPL

  最初是Library GPL的縮寫,後來改稱做Lesser GPL。因爲GPL太嚴格,限制了不少商用軟件使用GPL組件才推出了這個LGPL。LGPL容許商業軟件經過引用類庫的方式使用LGPL組件(不直接使用源代碼),這樣能夠不須要開源商業軟件的代碼。可是若是要修改原始組件的代碼,則涉及修改部分的代碼和基於原來代碼衍生的代碼都必須採用LGPL協議。LGPL不適合以LGPL協議爲基礎的代碼進行二次開發的商業軟件,可是商用軟件能夠採用編譯後的類庫引用就不須要公開源代碼了。採用這個協議的開源軟件有: JBoss、 FCKeditor 、 Hibernate。以前extjs就由於從LGPL轉換到GPL帶來了很多的震動。apache

  BSD

  全稱 Berkeley Software Distribution。這個協議相對上面兩個協議寬鬆不少,容許使用者修改和從新發布代碼,也容許使用或在BSD代碼基礎上開發商業軟件發佈和銷售,所以是適用於商業軟件的。oop

  使用者別過高興,使用時還必須作到知足三個條件:ui

  1)若是再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。spa

  2)若是再發布的只是二進制類庫/軟件,則須要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。server

  3)不能夠用開源代碼的做者/機構名字和原來產品的名字作市場推廣。適用BSD協議的開源軟件有: nginx、CruiseControl、Redis。htm

  apache Licence vesion 2.0

  這個協議除了爲用戶提供版權許可以外,還有專利許可。與BSD協議權限相似, 容許代碼修改,再發布,適用商業軟件ip

  可是也須要知足如下條件:

  1)須要給代碼的用戶一份Apache Licence。

  2)若是你修改了代碼,須要再被修改的文件中說明。

  3)在延伸的代碼中(修改和有源代碼衍生的代碼中)須要帶有原來代碼中的協議,商標,專利聲明和其餘原來做者規定須要包含的說明。

  4)若是再發布的產品中包含一個Notice文件,則在Notice文件中須要帶有Apache Licence。你能夠在Notice中增長本身的許可,但不能夠表現爲對Apache Licence構成更改。

  除了這些條件它還有這些好處:

  1)永久權利 一旦被受權,永久擁有。

  2)全球範圍的權利 在一個國家得到受權,適用於全部國家。假如你在美國,許但是從印度受權的,也沒有問題。

  3)受權免費 無版稅, 前期、後期均無任何費用。

  4)受權無排他性 任何人均可以得到受權

  5)受權不可撤消 一旦得到受權,沒有任何人能夠取消。好比,你基於該產品代碼開發了衍生產品,你不用擔憂會在某一天被禁止使用該代碼

  使用apache Licence vesion 2.0協議的開源軟件有:Hadoop 、apache httpserver、Spring Framework、MongoDB 。

  MIT

  源自麻省理工學院(Massachusetts Institute of Technology, MIT),又稱X11協議。MIT與BSD相似,可是比BSD協議更加寬鬆,是目前最少限制的協議。這個協議惟一的條件就是在修改後的代碼或者發行包包含原做者的許可信息。適用商業軟件。使用MIT的軟件項目有:jquery、Node.js。

  列出了經常使用協議,還有一些比較經常使用的你們就谷歌了,好比: Mozilla Public License、Creative Commons、Eclipse Public License 1.0等。

相關文章
相關標籤/搜索