開源協議詳解及常用協議

協議介紹

1. None / No License

如果你在使用 GitHub 中, 沒有選擇協議默認是 No License, 這並不是代碼什麼協議也沒有, 它表示: 不允許他人進行復制、分發、使用和修改。但是如果你把它上傳到了 github,那麼默認允許他人查看(view)源碼、分叉(fork)到自己的倉庫,只是不能使用、修改而已。

2. Apache License 2.0

Apache License 2.0 協議來自於著名的 Apache 基金會,其最重要的開源軟件就是 Apache(HTTPD)網站服務器。它允許許任何人進行個人使用、商業使用、複製、分發、修改,作者免責,需要保留作者版權信息,聲明更改的地方, 特點在於對於貢獻者(Contributors)可以提供快速的專利授予。常用於大型開源項目

3. MIT License

MIT License MIT 是和 BSD 一樣寬範的許可協議, 作者只想保留版權, 而無任何其他了限制. 也就是說, 你必須在你的發行版裏包含原許可協議的聲明, 無論你是以二進制發佈的還是以源代碼發佈的. 總結一下只有三段話,允許任何人進行個人使用、商業使用、複製、分發、修改,唯一的限制就是,必須得加上源碼作者的版權信息(CopyRight)是一個相對寬鬆的常用的協議

4. GNU GPLv3

General Public License v3.0 開源正是由於 GPL 而變得越來越強大,GPLv3 在 2007 年發佈,它允許個人使用、商業使用、專利授權,允許複製、分發、修改,並且作者不承擔用戶使用的一切後果。但是它有很多限制:

必須開源
一旦使用了這個協議,如果他人想要進行分發、修改,那麼他們修改後的源代碼也必須開源。這是開源的核心保障,如果沒有這條規定,就沒有人願意持續公開自己的源碼了。

保留協議和版權
保留對協議和版權的敘述。

不允許更換協議
如果有人修改了一些源碼,覺得自己改得還挺多的,想要換一個 MIT 或者什麼協議,這是不允許的。一旦最原始的源碼使用了 GPL,其衍生的所有代碼都必須使用 GPL。這也是開源保障之一

聲明變更
對於代碼的變更需要有文檔進行說明改了哪些地方。

5. BSD 2-Clause “Simplified” License

BSD 2-Clause 允許許任何人進行個人使用、商業使用、複製、分發、修改,除了加上作者的版權信息,還必須保留免責聲明,免去作者的一些責任(比如使用後果) 例如: 你在 GitHub 發佈了一個 AI 換臉的項目, 別人 clone 後玩脫了跟你沒關係.

6. BSD 3-Clause “New” or “Revised” License

BSD 3-Clause 在 BSD 2-Clause 上增加了一個條款

未經特別事先書面許可,著作權人的姓名和其貢獻者的姓名不得用於認可或推銷源自該軟件的產品。

在 BSD 2-Clause 的基礎上, 不能使用作者的信息去做商業宣傳, 應該是有人把開源軟件拿去商用, 宣傳說是 xxx 寫的, 然後造成了不良影響…

7. Eclipse Public License 2.0

Eclipse Public License 2.0 是一種商業友好型協議,允許個人使用、商業使用、專利授權、複製、分發和修改,作者免責,需要保留版權信息、必須開源、不允許更換協議, 特點在於可以對軟件進行商業使用,對專利授權免去版稅

8. GNU Affero General Public License v3.0

GNU Affero General Public License v3.0 允許個人使用、商業使用、專利授權、複製、分發和修改,作者免責,貢獻者可以快速專利授予,需要保留版權信息、必須開源、不允許更換協議、聲明變更。和 GPL 類似,不同點在於,如果你修改了源碼並在放到網上提供服務,那麼你必須公開這個修改版本的完整的源代碼。

9. GNU General Public License v2.0

GNU General Public License v2.0 相比於 GNU GPLv3,不能進行專利授予.

10. Mozilla Public License 2.0

Mozilla Public License 2.0 是 BSD 系協議和 GPL 系協議的折中,允許個人使用、商業使用、專利授權、複製、分發和修改,作者免責,需要保留版權信息、必須開源,不允許更換協議(但允許更換成某些 GNU 協議),不允許使用商標。

11. The Unlicense

The Unlicense 是一個完全免費無約束的協議,也就是你放棄你的所有權利,將勞動成功無私奉獻出來。允許任何人爲了任何目的使用任何手段進行任何操作,不用保留任何信息,當然,作者免責

特性總結

使用推薦

1、普通開發者

如果你是信仰開源大法的普通開發者,使用 MIT License 協議即可,它會保留你的版權信息,又允許他人進行修改。

2、用到了 GNU 的開發者

如果你用到了 GNU 的庫,由於 “傳染性”,不允許更換協議,必須選擇 GNU 相關的協議。

3、開源庫開發者

推薦使用 GNU LGPL 相關協議。

4、無私奉獻的雷鋒

感謝你爲世界作出的貢獻,必選 The Unlicense。

5、不知道該選什麼

選擇默認的 None 即可,保留你的全部權利,後續再去決定要不要更換協議。

“受歡迎、廣泛使用或擁有強大社區” 的許可證

有開源協議的程序纔是真正的開源

CodeIgniter:MIT 協議
XunRuiCMS:MIT 協議
Ueditor:MIT 協議
Layer:MIT 協議
Bootstrap:MIT 協議
jQuery:GPL/MIT 協議
FineCMS:Apache2 協議
ThinkPHP:Apache2 協議
... 不一一列舉

隨着國內互聯網的廣泛應用,知識產權法律越來越完善,當用戶使用的沒有任何開源協議的程序時,都有可能涉及軟件版權糾紛問題。

Apache License

Apache License(Apache 許可證),是 Apache 軟件基金會發布的一個自由軟件許可證。

Apache Licence 是著名的非盈利開源組織 Apache 採用的協議。該協議和 BSD 類似,同樣鼓勵代碼共享和最終原作者的著作權,同樣允許源代碼修改和再發布。但是也需要遵循以下條件:

使用這個協議的好處是:

BSD

BSD 是 "Berkeley Software Distribution" 的縮寫,意思是 "伯克利軟件發行版"。

BSD 開源協議:是一個給於使用者很大自由的協議。可以自由的使用,修改源代碼,也可以將修改後的代碼作爲開源或者專有軟件再發布。當你發佈使用了 BSD 協議的代碼,或則以 BSD 協議代碼爲基礎做二次開發自己的產品時,需要滿足三個條件:

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

GPL

GPL (GNU General Public License) :GNU 通用公共許可協議。

Linux 採用了 GPL。

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

LGPL

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

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

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

MIT

MIT 是和 BSD 一樣寬範的許可協議, 源自麻省理工學院(Massachusetts Institute of Technology, MIT),又稱 X11 協議。作者只想保留版權, 而無任何其他了限制。MIT 與 BSD 類似,但是比 BSD 協議更加寬鬆,是目前最少限制的協議。這個協議唯一的條件就是在修改後的代碼或者發行包包含原作者的許可信息。適用商業軟件。使用 MIT 的軟件項目有:jquery、Node.js。

MIT 與 BSD 類似,但是比 BSD 協議更加寬鬆,是目前最少限制的協議。這個協議唯一的條件就是在修改後的代碼或者發行包包含原作者的許可信息。適用商業軟件。使用 MIT 的軟件項目有:jquery、Node.js。

MPL (Mozilla Public License 1.1)

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

EPL (Eclipse Public License 1.0)

EPL 允許 Recipients 任意使用、複製、分發、傳播、展示、修改以及改後閉源的二次商業發佈。

使用 EPL 協議,需要遵守以下規則:

Creative Commons 知識共享協議

Creative Commons (CC) 許可協議並不能說是真正的開源協議,它們大多是被使用於設計類的工程上。CC 協議種類繁多,每一種都授權特定的權利。一個 CC 許可協議具有四個基本部分,這幾個部分可以單獨起作用,也可以組合起來。下面是這幾部分的簡介:

CC 許可協議的這些條款可以自由組合使用。大多數的比較嚴格的 CC 協議會聲明 "署名權,非商業用途,禁止衍生" 條款,這意味着你可以自由的分享這個作品,但你不能改變它和對其收費,而且必須聲明作品的歸屬。這個許可協議非常的有用,它可以讓你的作品傳播出去,但又可以對作品的使用保留部分或完全的控制。最少限制的 CC 協議類型當屬 "署名" 協議,這意味着只要人們能維護你的名譽,他們對你的作品怎麼使用都行。

CC 許可協議更多的是在設計類工程中使用,而不是開發類,但沒有人或妨礙你將之使用與後者。只是你必須要清楚各部分條款能覆蓋到的和不能覆蓋到的權利。

關注公衆號 soft 張三丰

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/L7zb99TUtSr2L9QiZRoJtQ