GPL 是 GNU General Public License (GNU 通用公共許可證)的縮寫形式;LGPL 是 GNU Lesser General Public License (GNU 寬通用公共許可證)的縮寫形式,舊稱 GNU Library General Public License (GNU 庫通用公共許可證);GFDL 是 GNU Free Documentation License (GNU 自由文檔許可證)的縮寫形式。它們是自由軟件(Free Software)的通用版權認證協議,由自由軟件基金會(FSF)制定和發佈。繼承
GPL(General Public License)和LGPL( Lesser General Public License)是GNU的兩種License。愈來愈多的自由軟件(Free Software)使用GPL做爲其受權聲明,若是對GPL一點都不瞭解,有可能在使用自由軟件時違反了GPL的受權。若是是我的或不正規的公司倒也無所 謂,但若是是有規模的公司,恐怕會有被起訴的風險。開發
在使用Log4cpp時我想到了受權的事情,因而有了興趣對GPL作一下了解。這是必要的,由於公司也維護了一個驗證過的自由軟件庫,裏面包含的自由軟件除了功能上是可靠的,另外就是必定能夠被私有使用的,不然後果很嚴重(黎叔很生氣!)。文檔
Log4cpp最初的版本使用GPL做爲受權聲明的,在0。2。1版本之後改用更爲寬鬆的 LGPL。LGPL最初是Library GPL的縮寫,後來改稱做Lesser GPL,即爲更寬鬆的GPL。當一個自由軟件使用GPL聲明時,該軟件的使用者有權從新發布、修改該軟件,並獲得該軟件的源代碼;但只要使用者在其程序中 使用了該自由軟件,或者是使用修改後的軟件,那麼使用者的程序也必須公佈其源代碼,同時容許別人發佈、修改。也就是說,使用GPL聲明下的的自由軟件開發 出來的新軟件也必定是自由軟件。產品
LGPL是GPL的變種,也是GNU爲了獲得更多的甚至是商用軟件開發商的支持而提出的。與 GPL的最大不一樣是,能夠私有使用LGPL受權的自由軟件,開發出來的新軟件能夠是私有的而不須要是自由軟件。因此任何公司在使用自由軟件以前應該保證在 LGPL或其它GPL變種的受權下。io
如下是Richard Stallman關於GPL和LGPL的論述軟件
爲何你不該該使用LGPL發佈你的下一個庫程序
GNU計劃在使用庫時有兩個首要的許可證。一個是GNU LGPL(庫GPL);另外一個是普通的GNU GPL。選擇不一樣的許可有很大的不一樣:選擇LGPL容許在私有程序中使用該庫;選擇普通的GPL則只容許在自由軟件中使用它。協議
關於哪種許可證對指定的庫是最好的這一問題其實是一個策略問題,它取決於實際狀況。當前,大多數的GNU庫被採用LGPL,這意味着咱們只使用着其中的一個策略,而忽略了另外一個。 因此如今咱們在尋求更多以普通的GPL許可證形式發佈的庫。項目
私有軟件開發者有金錢上的優點;自由軟件開發者須要相互之間利用各自的優點。對一個庫採用普通的GPL對自由軟件開發者的優點要大於對私有軟件開發者: 他們可使用的庫對於私有軟件開發者是不可利用的。開發者
使用普通的GPL並非對於全部的庫都有好處。在某些狀況下更有理由來使用LGPL。最多見的狀況就是當一個自由庫的特性能夠很容易地被私有軟件以其餘可替代庫來實現。在這種狀況下,庫不能給與自由軟件任何特別的優點,於是最好仍是爲LGPL發佈該庫。
這也就是爲何咱們爲GNU C 庫選擇LGPL。總之,有不少的其餘C庫;咱們使用GPL發佈該庫,將迫使私有軟件開發者不得不使用其它的庫--對他們來講這不成問題,而咱們則有了麻煩。
然而,當一個庫所提供的功能是很是獨特的時候,如GNU Readline, 狀況就大不同了。 Readline庫可實現輸入編輯和記錄交互式程序操做,這在別處一般是不可多得。 在GPL下發布它並限制它只能在自由程序中使用, 這咱們的社團是一個重要的促進。至少今天某個應用程序之因此是自由軟件,只是由於它必須要用到Readline。
若是咱們收集一些強大的、私有軟件中沒有相相似東西的、採用GPL的庫,它們將提供一系列有用 的模塊用於新的自由軟件的構造。 這對於未來的自由軟件開發將是一個顯著的優點, 一些項目將爲了使用這些庫而考慮使軟件自由化。 大學的項目是易於被影響的;並且今天,隨着某些公司開始考慮使軟件自由化, 甚至一些商業項目也會由此受到影響。
私有軟件開發者試圖否定自由競爭的重要性, 他們會拼命說服做者不要將庫使用GPL來發布。 例如,他們會呼籲利己主義,信誓旦旦地說若是咱們讓他們在私有軟件產品中使用代碼,將有「更多的用戶」用到該庫。 流行是一種誘惑,它使一個庫開發者傾向於相信這種觀點:社會首先須要的是促進一種庫的流行。
可是咱們不該該遵從這種誘惑,由於若是咱們聯合起來,咱們能夠作得更好。咱們這些自由軟件開發 者應該相互支持。 經過發佈只能爲自由軟件使用的庫,咱們能夠互相幫助,使彼此的自由軟件包優於其它的私有替代品。 整個自由軟件運動將會有更多的機會,由於自由軟件做爲一個總體將會在競爭中表現更佳。
由於「LGPL(Library GPL)」的稱呼傳達了關於這一問題的錯誤觀點,咱們計劃將稱呼改成「次級GPL(Lesser GPL)」。事實上要更換名稱要花必定的時間,但你沒必要再等--你能夠如今就發佈應用GPL許可證的庫。