常用開源許可協議介紹


什麼是許可協議?

  什麼是許可,當你爲你的產品簽發許可,你是在出讓自己的權利,不過,你仍然擁有版權和專利(如果申請了的話),許可的目的是,向使用你產品的人提供一定的權限。

  不管產品是免費向公衆分發,還是出售,制定一份許可協議非常有用,否則,對於前者,你相當於放棄了自己所有的權利,任何人都沒有義務表明你的原始作者身份,對於後者,你將不得不花費比開發更多的精力用來逐個處理用戶的授權問題。

  而開源許可協議使這些事情變得簡單,開發者很容易向一個項目貢獻自己的代碼,它還可以保護你原始作者的身份,使你至少獲得認可,開源許可協議還可以阻止其它人將某個產品據爲己有。越來越多的開發者與設計者希望將自己的產品開源,以便其他人可以在他們的代碼基礎上做更多事,開源社區也因此充滿生機。在我們所能想到的應用領域,都有開 源軟件存在(象 WordPress,Drupal 這些開源CMS)。然而很多人對開源許可並不瞭解,本文介紹開源領域常用的幾種許可協議以及它們之間的區別。

Apache Licence 2.0

  Apache 協議 2.0 和別的開源協議相比,除了爲用戶提供版權許可之外,還有專利許可,對於那些涉及專利內容的開發者而言,該協議最適合(這裏有一篇文章闡述這個問題)。

Apache 協議還有以下需要說明的地方:

  • 永久權利 一旦被授權,永久擁有。
  • 全球範圍的權利 在一個國家獲得授權,適用於所有國家。假如你在美國,許可是從印度授權的,也沒有問題。
  • 授權免費,且無版稅 前期,後期均無任何費用。
  • 授權無排他性 任何人都可以獲得授權
  • 授權不可撤消 一旦獲得授權,沒有任何人可以取消。比如,你基於該產品代碼開發了衍生產品,你不用擔心會在某一天被禁止使用該代碼

  分發代碼方面包含一些要求,主要是,要在聲明中對參與開發的人給予認可幷包含一份許可協議原文。

  Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作爲開源或商業軟件)。需要滿足的條件也和BSD類似:

  1. 需要給代碼的用戶一份Apache Licence
  2. 如果你修改了代碼,需要再被修改的文件中說明。
  3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。
  4. 如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現爲對Apache Licence構成更改。

  Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要並作爲開源或商業產品發佈/銷售。

GNU GPL

  通用性公開許可證(General Public License,簡稱GPL)。GPL同其它的自由軟件許可證一樣,許可社會公衆享有運行、複製軟件的自由;發行傳播軟件的自由;獲得軟件源碼的自由,以及改進軟件並將自己作出的改進版本向社會發行傳播的自由。GPL還規定,只要這種修改文本的整體或者其某個部分來源於遵循GPL的程序,則該修改文本的整體就必須按照GPL流通,不僅該修改文本的源碼必須向社會公開,而且對於這種修改文本的流通不准許附加修改者自己做出的限制。因此,遵循GPL流通的程序不能同非自由的軟件合併。GPL所表達的這種流通規則稱爲copyleft,表示與copyright(版權)的概念“相左”。

  GNU General Public Licence (GPL) 有可能是開源界最常用的許可模式。GPL 保證了所有開發者的權利,同時爲使用者提供了足夠的複製,分發,修改的權利:

  • 可自由複製 你可以將軟件複製到你的電腦,你客戶的電腦,或者任何地方。複製份數沒有任何限制。
  • 可自由分發 在你的網站提供下載,拷貝到U盤送人,或者將源代碼打印出來從窗戶扔出去(環保起見,請別這樣做)。
  • 可以用來盈利 你可以在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟件,以及你收費的理由。
  • 可自由修改 如果你想添加或刪除某個功能,沒問題,如果你想在別的項目中使用部分代碼,也沒問題,唯一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。

  需要注意的是,分發的時候,需要明確提供源代碼和二進制文件,另外,用於某些程序的某些協議有一些問題和限制,你可以看一下 @PierreJoye 寫的 Practical Guide to GPL Compliance 一文。使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議本身。

  我們很熟悉的Linux就是採用了GPL。GPL協議和BSD, Apache Licence等鼓勵代碼重用的許可很不一樣。GPL的出發點是代碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代 碼做爲閉源的商業軟件發佈和銷售。這也就是爲什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商 業軟件公司開發的免費軟件了。

  GPL協議的主要內容是只要在一個軟件中使用(“使用”指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的“傳染性”。GPL協議的產品作爲一個單獨的產品使用沒有任何問題,還可以享受免費的優勢。

  由於GPL嚴格要求使用了GPL類庫的軟件產品必須使用GPL協議,對於使用GPL協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用作爲類庫和二次開發的基礎。

  GPL許可證是自由軟件的應用最廣泛的軟件許可證,人們可以修改程式的一個或幾個副本或程式的任何部分,以此形成基於這些程式的衍生作品。必須在修改過的檔案中附有明顯的說明:您修改了此一檔案及任何修改的日期。 您必須讓您發佈或出版的作品,包括本程式的全部或一部分,或內含本程式的全部或部分所衍生的作品,允許第三方在此許可證條款下使用,並且不得因爲此項授權行爲而收費。 (這個似乎最嚴格,需要公開源代碼)

  其它細節如再發布的時候需要伴隨GPL協議等和BSD/Apache等類似。

GNU LGPL(GNU Lesser General Public License)

  GNU 還有另外一種協議,叫做 LGPL (Lesser General Public Licence),它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用於非 GPL 或非開源產品的開源類庫或框架。因爲 GPL 要求,使用了 GPL 代碼的產品必須也使用 GPL 協議,開發者不允許將 GPL 代碼用於商業產品。LGPL 繞過了這一限制。

  LGPL是GPL的一個爲主要爲類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須採用GPL協議不同。LGPL 允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼。這使得采用LGPL協議的開源代碼可以被商業軟件作爲類庫引用並 發佈和銷售。

  但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須採用LGPL協議。因此LGPL協議的開源 代碼很適合作爲第三方類庫被商業軟件引用,但不適合希望以LGPL協議代碼爲基礎,通過修改和衍生的方式做二次開發的商業軟件採用。

  GPL/LGPL都保障原作者的知識產權,避免有人利用開源代碼複製並開發類似的產品。

BSD

  BSD 在軟件分發方面的限制比別的開源協議(如 GNU GPL)要少。該協議有多種版本,最主要的版本有兩個,新 BSD 協議與簡單 BSD 協議,這兩種協議經過修正,都和 GPL 兼容,併爲開源組織所認可。

  新 BSD 協議(3條款協議)在軟件分發方面,除需要包含一份版權提示和免責聲明之外,沒有任何限制。另外,該協議還禁止拿開發者的名義爲衍生產品背書,但簡單 BSD 協議刪除了這一條款。

  BSD開源協議是一個給於使用者很大自由的協議。基本上使用者可以”爲所欲爲”,可以自由的使用,修改源代碼,也可以將修改後的代碼作爲開源或者專有軟件再發布。

但”爲所欲爲”的前提當你發佈使用了BSD協議的代碼,或則以BSD協議代碼爲基礎做二次開發自己的產品時,需要滿足三個條件:

  1. 如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。
  2. 如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。
  3. 不可以用開源代碼的作者/機構名字和原來產品的名字做市場推廣。

  BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由於允許使用者修改和重新發布代碼,也允許使用或在BSD代碼上開發商業軟件發佈和銷售,因此是對 商業集成很友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因爲可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發。

MIT

MIT 協議可能是幾大開源協議中最寬鬆的一個,除了必須包含許可聲明外,再無任何限制,核心條款是:

  該軟件及其相關文檔對所有人免費,可以任意處置,包括使用,複製,修改,合併,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版權和許可提示。

這意味着:

  • 你可以自由使用,複製,修改,可以用於自己的項目。
  • 可以免費分發或用來盈利。
  • 唯一的限制是必須包含許可聲明。

  MIT是和BSD一樣寬範的許可協議,作者只想保留版權,而無任何其他了限制。也就是說,你必須在你的發行版裏包含原許可協議的聲明,無論你是以二進制發佈的還是以源代碼發佈的。

Mozilla Public License

  MPL License,允許免費重發布、免費修改,但要求修改後的代碼版權歸軟件的發起者。這種授權維護了商業軟件的利益,它要求基於這種軟件得修改無償貢獻版權給該軟件。這樣,圍繞該軟件得所有代碼得版權都集中在發起開發人得手中。但MPL是允許修改,無償使用得。MPL軟件對鏈接沒有要求。 

轉載出處:

http://down.chinaz.com/server/201105/552_1.htm

如有任何問題,請及時聯繫。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章