2020年11月8日 星期日

常見的開源協議(BSD, GPL, LGPL,MIT,APACHE,Mozilla)

 

開源協議之前基本名詞概況:

1. Contributors 和 Recipients

  Contributors 指的是對某個開源軟體或專案提供了程式碼(包括最初的或者修改過的)釋出的人或者實體(團隊、公司、組織等),Contributors 按照參與某個軟體開源的時間先後,可以分為 an initial Contributor 和 subsequent Contributors .

  Recipients指的是開源軟體或專案的獲取者,顯然,subsequent Contributors 也屬於 Recipients之列.


2. Source Code 和 Object Code

  Source Code 指的是各種語言寫成的原始碼,通過Source Code,結合文件, 可以瞭解到整個軟體的體系結構及具體到某個功能函式的實現方法等.

  Object Code 指的是Source Code 經過編譯之後,生成的類似於“類庫”一樣的,提供各種介面供他人使用的目標碼,按我的理解,它就是像常見的DLL、ActiveX、OCX控制元件性質的東西.(不知道這樣理解對不對)

  分清楚這兩個概念的目的在於,有些開源,只發布Object Code ,當然,大多數釋出的是Source Code.很多協議也對 “你釋出的是哪種Code的時候應該怎樣”,有著明確的約束.


3. Derivative Module 和 Separate Module

  Derivative Module 指的是,依託或包含“最初的”或者“從別人處獲取的”開原始碼而產生的程式碼,是原“原始碼”的增強(不等於增加)、改善和延續的模組,意為“衍生模組”.

  Separate Module 指的是,參考或藉助原“原始碼”,開發出的獨立的,不包含、不依賴於原“原始碼模組”,意為“獨立的模組”.理解這兩個概念的目的在於,很多協議對涉及到商業釋出的時候,會有哪些是衍生的,哪些是獨立的,有著明確的商業釋出規定.

  現今存在的開源協議很多,而經過Open Source Initiative組織通過批准的開源協議目前有58種.我們在常見的開源協議如BSD, GPL, LGPL,MIT等都是OSI批准的協議.如果要開源自己的程式碼,最好也是選擇這些被批准的開源協議.


一般開源許可證中會說明以下權限、使用條件和責任限制:

商業使用(Commercial use):該軟體及其衍生產品可用於商業目的。

分發(Distribution):該軟體可以被分發。

修改(Modification):該軟體可能會被修改。

專利使用(Patent use):該許可證提供了明確的專利權授予。/該許可明確聲明它不授予貢獻者專利的任何權利。

私人使用(Private use):該軟體可以私下使用和修改。

開源(Disclose source):分發軟體時必須開源。

許可及版權聲明(License and copyright notice):該軟體必須隨附許可證和版權聲明的副本。

分布式網絡使用(Network use is distribution):通過網絡與軟體進行交互的用戶被授予接收原始碼副本的權利。

相同許可證(Same license):分發軟體時,必須以相同的許可證發布修改。在某些情況下,可以使用類似或相關的許可證

狀態變更(State changes):對代碼所做的更改必須記錄。

責任限制(Liability):該許可包括責任限制。

商標使用(Trademark use):該許可證明確聲明它不授予商標權,即使沒有此類聲明的許可證可能不授予任何隱含的商標權。

保證(Warranty):許可證明確聲明不提供任何保證。


Reference:

一文讀懂常見的開源協議(BSD, GPL, LGPL,MIT,APACHE,Mozilla)

許可協議BSD GPL MPL LGPL APL

Choose License

利用 APACHE-2.0 程式所應遵守的義務規定

Apache授權條款

中研院更新中文斷詞工具的開源授權條款,正式採用GPL 3.0釋出





沒有留言:

張貼留言