常用開源許可協議科普

常用開源許可協議科普

一、開源許可協議由來


根據 開源許可協議 在百度百科的定義:

自由軟件/開源軟件是自由的,免費的,源代碼開放的,我們可自由下載安裝和使用。同時,為了維護作者和貢獻者的合法權利,保證這些軟件不被一些商業機構或個人竊取,影響軟件的發展,開源社區開發出了各種的開源許可協議。

二、開源許可協議的定義


一個開源許可是一種類型的許可證為計算機軟件和其它產品,其允許源代碼,藍圖或設計使用,修改和/或在確定的條款和條件共享。允許最終用戶和商業公司審查和修改源代碼,藍圖或設計,以滿足他們自己的定製,好奇心或故障排除需求。開源許可軟件大多是免費提供的,但並非必須如此。只允許非商業性的許可證僅為個人使用而重新分發或修改源代碼通常不被視為開源許可。但是,開源許可證可能有一些限制,特別是關於軟件來源的表達,例如要求保留作者姓名和代碼中的版權聲明,或者要求重新分發許可軟件僅在相同的許可下(如在Copyleft許可中)。一組流行的開源軟件許可證是開源計劃(OSI)基於其開源定義(OSD)批准的許可證。

三、常用開源許可協議


  • GPL許可協議
  • LGPL許可協議
  • MPL許可協議
  • Apache許可協議
  • BSD許可協議
  • MIT許可協議

1、GPL許可協議


GPL,是GNU General Public License的縮寫,是GNU通用公共授權非正式的中文翻譯。它並非由自由軟件基金會所發表,亦非使用GNU通用公共授權的軟件的法定發佈條款─只有GNU通用公共授權英文原文的版本始具有此等效力。

GPL的出發點是代碼的開源、免費使用和引用、修改以及衍生代碼的開源和免費使用,但不允許修改後和衍生的代碼作為閉源的商業軟件發佈和銷售,因此這個協議並不適合商用軟件。

特點:

  • 複製自由

允許把軟件複製到任何人的電腦中,並且不限制複製的數量

  • 傳播自由

允許軟件以各種形式傳播

  • 修改自由

允許對軟件進行增刪改功能,甚至是在其他項目中使用該軟件部分代碼也是沒問題的,唯一要求就是使用了該協議中的部分代碼的項目也必須使用GPL協議

  • 盈利自由

可以在傳播該軟件的時候進行收費,但收費前必須向您的客戶提供該軟件的GPL許可協議,以便他們知道可以從其他渠道免費獲取到該軟件以及說明您收費的理由

2、LGPL許可協議


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

3、MPL許可協議


MPL,是Mozilla Public License的縮寫,該協議出現的原因是為了

平衡開發者對源代碼的需求和他們利用源代碼獲得的利益。該協議允許開發者免費重新發布、免費修改,但要求修改後的代碼版權歸軟件的發起者 。這種授權維護了商業軟件的利益,它要求基於這種軟件的修改無償貢獻版權給該軟件。

4、Apache許可協議


Apache Licence是著名的非盈利開源組織Apache採用的協議。在為開發人員提供版權及專利許可的同時,允許用戶修改代碼及再發布為開源軟件或者商業軟件,程序開發人員在開發遵循該協議的軟件時,必須要滿足以下的四個條件:

  • 該軟件及其衍生品必須繼續使用Apache許可協議
  • 若修改了程序源代碼,必須在文檔中進行聲明
  • 若軟件是基於別人代碼編寫而成的,則需要保留原始代碼的協議、商標、專利聲明及其他原作者聲明的內容
  • 若再發布的軟件中有聲明文件,則需要在文件中標註Apache許可協議以及其他許可協議

5、BSD許可協議


BSD,是Berkeley Software Distribution的縮寫,允許使用者修改和重新發布代碼,也允許在其基礎上開發商業軟件進行發佈和銷售,但必須要滿足三個條件:

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

6、MIT許可協議


MIT,是Massachusetts Institute of Technology的縮寫,該協議是幾大開源協議中最寬鬆的一個,其軟件及相關文檔對所有人免費,允許使用者修改、複製、合併、發表、授權甚至是銷售等,唯一限制就是軟件中必須包含上述版權和許可聲明。

四、全文總結


相信手機屏幕前的你,在看了上述介紹之後,都對幾大開源協議有了基本的瞭解,上面幾大協議按照嚴格程度排序可分為:

GPL > LGPL > MPL > Apache > BSD > MIT

下面來做個簡單的回顧:

一、GPL協議

此協議是應用最為廣泛的開源協議,擁有較強的版權自由( copyleft )要求。衍生代碼的分發需開源並且也要遵守此協議。此協議有許多變種,不同變種的要求略有不同。

要求:

1.常見的分2.0和3.0版本。2.0如果自用不發佈,允許改源碼後不開源;3.0如果改了源碼,就算自用也必須開源

允許:

1.商用

2.私用

3.修改

4.分發

二、LGPL協議

此協議主要用於一些代碼庫。衍生代碼可以以此協議發佈(言下之意你可以用其他協議),但與此協議相關的代碼必需遵循此協議。

要求:

1.公開源代碼

2.庫引用

允許:

1.商用

2.私用

3.修改

4.分發

6.附加協議

三、MPL協議

Mozilla Public License(MPL 2.0)是由Mozilla基金創建維護的。此協議旨在較為寬鬆的BSD協議和更加互惠的GPL協議中尋找一個折衷點。

要求:

1.公開源代碼

允許:

1.商用

2.私用

3.修改

4.分發

6.附加協議

四、Apache協議

該協議是一個較寬鬆且簡明地指出了專利授權的協議。

要求:

允許:

1.商用

2.私用

3.修改

4.分發

6.附加協議

五、BSD協議

該協議是一個較為寬鬆的協議,包含兩個變種BSD 2-Clause 和BSD 3-Clause,兩者都與MIT協議只存在細微差異。

要求:

允許:

1.商用

2.私用

3.修改

4.分發

5.附加協議

六、MIT協議

該協議是寬鬆簡單且精要的一個協議。在適當標明來源及免責的情況下,它允許你對代碼進行任何形式的使用。

要求:

允許:

1.商用

2.私用

3.修改

4.分發

5.附加協議

本文完,如需瞭解更多關於編程技術方面的知識,歡迎關注本號,將持續更新,謝謝大家!


分享到:


相關文章: