1. 程式人生 > >開源許可證的簡單介紹

開源許可證的簡單介紹

引子

開源成為了程式設計師圈子的一股潮流,但是很多嗯都不是很清楚各種開源協議的內容,以及各個開源協議的區別,所以這篇文章對開源協議做一些簡單的介紹,幫助大家瞭解一些常見的開源協議的條款和適用範圍。

Apache v2 Licence

  • 需要給程式碼的使用者一份Apache Licence
  • 如果修改了程式碼,需要在修改的檔案彙總說明
  • 在衍生的程式碼中需要帶有原來程式碼中的協議、商標。專利宣告和其他原來作者規定需要包含的說明
  • 如果在釋出的產品中新增Notice,則Notice檔案中需要帶有Apache Licence,可以增加自己的許可,但不可以對Apache Licence構成更改

MIT Licence

MIT與BSD許可證相近,但是賦予被授予人更大的權力與更小的限制

  • 被授權人有權使用、複製、修改、合併、出版發行、散步、在授權、以及販售軟體的副本
  • 被授權人可以根據程式修改授權條款內容
  • 該授權可以在自由、開源或非自由軟體使用
  • 可以與其他授權條款並存

GPL v2

GNU通用公共許可協議設計用於確保你享有分發自由軟體的自由(你可以為此服務收費),確保你可以在需要的時候獲得這些軟體的原始碼,確保你可以修改這些軟體或者在新的自由軟體中複用其中某些片段,並且確保你在這方面享有知情權。

自由權利包括複製、分發和修改。原始碼是指所有修改作品及生成、安裝、執行(對可執行作品而言)目標碼所需的原始碼,包括控制上述行為的指令碼,但其中不包括系統庫、通用工具。

GPL v3

與v2類似,區別在於不僅要求使用者公佈修改的原始碼,還阻止了其他一些私有化方式,不得以任何新式阻止使用者修改產品內的以GPL許可協議釋出的軟體。

Affero GPL

相比GPL v3,加入額外條款,其目的是為了Copyleft條款應用於在網路上執行的應用程式(如Web應用),從而避免有人以應用服務提供商方式逃避GNU通用公眾特許條款。

LGPL v2.1

LGPL是GPL的一個為主要為類庫使用者設計的開源協議,允許商業軟體通過類庫引用的方式使用LGPL類庫而不用開源商業軟體程式碼。

如果修改LGPL的程式碼,則所有設計修改部分的額外程式碼都必須採用LGPL協議,所以LGPL適合作為第三方類庫被商業採用,不適合以此為基礎做二次商業開發。

LGPL v3

與GPLv3類似,阻止了其他一些私有化方式,例如“鎖定”,“安全啟動”,不得以任何形式阻止使用者修改產品內的以GPL許可證協議釋出的軟體。

Artistic Licence 2.0

通常指最初的藝術許可協議,是一個自由軟體授權條款,一般用在官方釋出的Perl直譯器和大部分CPAN模組的授權。

BSD 2-Clause Licence

允許用改制修改和重新發布程式碼,允許商業釋出和銷售。

  • 再發布產品中包含原始碼,則原始碼中必須帶有原來程式碼中的BSD協議

BSD 3-Clause Licence

相比二加入了一條

  • 不可以用開原始碼的“作者/機構的名字”或“原來產品的名字”做市場推廣

MPL

MPL與GPL,BSD類似,但是有如下幾個不同:

  • MPL可以通過在自己原始碼庫上加一個介面,除了介面程式的原始碼以MPL許可證的形式對外許可,原始碼庫中的原始碼就可以不用強制對外
  • MPL允許被許可人將獲得的原始碼與自己的程式碼混合得到自己的軟體程式
  • MPL不反對軟體專利,但是要求原始碼作者不能提供已經受到專利保護的程式碼(除非本人是專利人,且書面向公眾授權),也不能將這些原始碼開源許可後再去申請相關專利。
  • 所有再發布者必須有一個專門的檔案丟原始碼修改的時間和修改方式有描述

Public Domain

人類的一部分作品和一部分知識的彙總,屬於全人類公共文化遺產,任何人或組織不具有所有權益,任何人可以不受限制的使用和加工他們。創立版權制度的初衷是藉由給予創作者一段時期的專有權利作為(經濟)刺激以鼓勵作者從事創作。當專有權利期間屆止,作品便進入公有領域。公有領域的作品由於沒有專屬權利人,因此公眾有權自由使用它們。