Github倉庫如何選擇開源許可證


Github倉庫如何選擇開源許可證

當我們點了Github個人主頁右上角的那個那個加號之后,如上所示可以看到創建新倉庫的選項, 點擊 `New repository` , 就會進入到創建新倉庫的頁面,進入到這個頁面之后可以看到右下角的下拉框可以為自己的項目選擇開源許可證:

截至到2020/06/13日,Github在創建倉庫允許選擇的開源許可證如下所示:

如上圖所示可以Github支持的開源許可證還是很多的 Apache, MIT, BSD, CC0, EPL, AGPL, GPL, LGPL, MPL都支持,
這樣一來大大方便了我們的選擇,但是有時候選擇多了未必是好事情,面對開源許可證,每個人可能心中都存在過這樣的疑問:

  1. 為什么要使用開源許可證? 我完全不用開源許可證好像也沒啥問題啊
  2. 就算我打算用開源許可證,Github上面這么多,完全不知道選擇那個呀? 根本不知道他們之間有啥區別?
  3. Github上面的開源許可證都不是我想要的,我有了解到一個非常棒的證書,但是Github創建倉庫的時候還沒得選怎么辦?

為什么需要開源許可證?

要弄懂為什么要使用開源許可證,我覺得應該首先弄懂不使用開源許可證會怎樣?

不使用開源許可證對於開發者有何影響?

首先在沒有開源許可證的情況下你對你的項目是獨占版權的,這樣就會造成一個問題就是別人使用你的項目比較困難, 然后就會導致沒人願意去使用你的項目,還有個問題就是 如果多人參與你的項目的開發,因為每個人都成為了這個項目的版權持有者, 你自己在沒有得到團隊中所有成員授權的情況下,
對項目的隨意使用其實也是違法的,如果你想要很好的維護項目的其他貢獻者的版權許可,那你不得不去和你的項目貢獻者之間簽訂一個貢獻者協議,
想想都是一個很頭疼的事情.

其次還有個問題,就是當你把你的代碼發布到Github的公共倉庫的時候, 也就意味着你接受了Github公共倉庫的一些服務條款,由於這些條款的存在
很多人可以去查看和復制你的項目倉庫, 在一些特殊的情況下,部分人對於你的項目的使用可能不需要你的許可和授權.

不使用開源許可證對於項目的使用者有何影響?

如果你發現了一個軟件,而這個軟件沒有開源許可證,那么也就意味着你沒有得到作者的授權,盡管在Github上面你能夠查看和復制代碼,但是嚴格意義上你不能出於任何目的去使用,修改,和分享這個軟件, 你說蛋疼不蛋疼.

此時作為一個項目的使用者你所能做的就是:

  1. 和項目的開發者溝通去加上開源許可證
  2. 不去使用這個沒有開源許可證的項目,即使你覺得這個項目不錯
  3. 和開發者進行私人協商,獲取開發者的授權

總結: 為什么要使用開源許可證, 因為不用的話,會給開發者和使用者帶來很多的麻煩事情,
用開源許可證是為了避免日后在項目的使用過程中一些不必要的麻煩

Github的開源許可證如何選擇,他們之間有何區別?

這個世界上有太多的開源許可證,甚至Github的開源許可證就有很多,我相信大多數人都沒有時間和精力去認證的去了解每一個開源許可證,那怎么辦呢?
所以我這里把最主要的幾個開源許可證的地址和允許的權力列了出來,大家首先做個粗判斷, 簡單判斷一下自己可能會用到那個開源許可證,然后再去認真的研究,
如果真的對開源許可證非常感興趣, 也可以先全研究幾個被廣為使用的開源許可證(比如 GPLv3和MIT許可證), 跟着潮流走總不會有啥大問題.

常見的軟件開源許可證(開放程度由高到低)

GNU AGPLv3

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
Disclose source
License and copyright notice
Network use is distribution
Same license
State changes
Liability
Warranty

GNU GPLv3

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
Disclose source
License and copyright notice
Same license
State changes
Liability
Warranty

GNU LGPLv3

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
Disclose source
License and copyright notice
Same license
State changes
Liability
Warranty

Mozilla Public License 2.0

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
Disclose source
License and copyright notice
Same license (file)
Liability
Trademark use
Warranty

Apache License 2.0

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
License and copyright notice
State changes
Liability
Trademark use
Warranty

MIT License

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
License and copyright notice
Liability
Warranty

Boost Software License 1.0

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
License and copyright notice
Liability
Warranty

The Unlicense

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Patent use
Private use
Liability
Warranty

常見的非軟件開源許可證

CC0-1.0

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Private use
Liability
Patent use
Trademark use
Warranty

CC-BY-4.0

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Private use
License and copyright notice
State changes
Liability
Patent use
Trademark use
Warranty

CC-BY-SA-4.0

Permissions Conditions Limitations
Commercial use
Distribution
Modification
Private use
License and copyright notice
State changes
Same license
Liability
Patent use
Trademark use
Warranty

如何看懂上面的圖表

Permissions :就是開源許可證允許做的事情
Condition: 就是要在特定的情況下才允許做的事情
Limitations: 就是開源許可證不允許去做的事情

軟件開源許可證如何選擇?

我們需要一張烏克蘭老鐵(Paul Bagwell)畫的圖來幫助我們進行理解和選擇 :

由上圖可以看到目前主流的開源證書主要分為兩派:

GPL系列 和 MPL 站一派 (我簡稱他們A派)
BSD系列, MIT 和 Apache 站一派 (我簡稱他們B派)

兩派之間的主要區別就是你在原有的開源軟件上做了更改之后是否允許其所使用開源證書發生變化:

A派的觀點就是你更改開源項目之后所使用的開源證書必須和原有開源項目保持一致或者相兼容, 其實就是一個始於開源 忠於開源的思想,讓大家一直開源

B派的觀點就是原有的開源項目,如果你更改了部分代碼的話那你也可以更改開源證書,這樣以來對於開源項目而言,就更加的容易被商業化,

而GPLv3和MIT 這兩個開源證書簡直就是A派和B派的兩個極端, 也是目前最受歡迎的兩個證書,具體怎么選擇大家可以看圖行事,
當然更加詳細的協議內容還是建議大家根據我發的協議鏈接找到協議原文,去仔細閱讀協議原文進行了解

非軟件開源許可證如何選擇?

數據集 視頻 所使用的開源許可證

CC0-1.0, CC-BY-4.0, 和 CC-BY-SA-4.0 這三種開源許可證就經常被用在數據集和視頻 等非軟件的項目上面,
有一點需要注意的就是 CC-BY-4.0 和 CC-BY-SA-4.0 這兩種許可證是不建議給軟件項目用的

CC-BY-4.0 和 CC-BY-SA-4.0非常的相似,后者比前者有一項要求就是,如果你對開源項目進行了更改,
那么更改后的版本所使用的開源協議必須和原有協議相同或者想兼容,
這里和軟件開源證書的兩派的思想是相同的

文檔所使用的開源許可證

一般情況下開源軟件中所附帶的開源的文檔和 開源軟件本身持有相同的開源許可證,
當然你也可以針對開源軟件和其對應的開源文檔使用兩套不同的開源許可證,
但是你一定要指出文檔中的 源代碼示例 所使用的許可證是什么類型的

字體使用的開源許可證

針對開源字體常用的許可證就是 SIL Open Font License 1.1 ,
這個許可證可以允許別人自由的去使用它,同時保留自己的版權

混合工程使用的許可證

如果你的 項目是個非常大的混合工程,包含 軟件, 文檔, 數據集,視頻,字體等內容, 那你就需要為自己的項目准備多個許可證,
但是你需要做一個說明,用來說明你的工程的各個部分分別使用怎樣的許可證 .

如果Github上面的所有許可證都不能滿足我的要求怎么辦?

開源許可證本質上就是一個名字為LICENSE或者LICENSE.txt的文本文件
如果你將要使用的開源許可證不可以在Github上建立倉庫的時候進行選擇,那么你可以這么做:

  1. 在選擇開源許可證的時候隨便選擇一個,然后把自動生成的LICENSE中的文件更改為你所需要的內容
  2. 直接不選擇開源許可證,在自己的項目文件夾中自己去創建 LICENSE/LICENSE.txt文件 然后把自己所使用的開源許可證的協議內容粘貼進去

都讀到這里了微信的朋友點個在看,其他平台的朋友可以關注微信公眾號 早睡蟒 更多優質原創無廣告內容等你來看.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM