1. 程式人生 > >五種開源協議(GPL,LGPL,BSD,MIT,Apache)

五種開源協議(GPL,LGPL,BSD,MIT,Apache)

什麼是許可協議?

什麼是許可,當你為你的產品簽發許可,你是在出讓自己的權利,不過,你仍然擁有版權和專利(如果申請了的話),許可的目的是,向使用你產品的人提供 一定的許可權。

不管產品是免費向公眾分發,還是出售,制定一份許可協議非常有用,否則,對於前者,你相當於放棄了自己所有的權利,任何人都沒有義務表明你的原始作 者身份,對於後者,你將不得不花費比開發更多的精力用來逐個處理使用者的授權問題。

開源許可協議使這些事情變得簡單,開發者很容易向一個專案貢獻自己的程式碼,它還可以保護你原始作者的身份,使你 至少獲得認可,開源許可協議還可以阻止其它人將某個產品據為己有。以下是開源界的 5 大許可協議。

GNU GPL

GNU General Public Licence (GPL) 有可能是開源界最常用的許可模式。GPL 保證了所有開發者的權利,同時為使用者提供了足夠的複製,分發,修改的權利:

  • 可自由複製
    你可以將軟體複製到你的電腦,你客戶的電腦,或者任何地方。複製份數沒有任何限制。
  • 可自由分發
    在你的網站提供下載,拷貝到U盤送人,或者將原始碼打印出來從窗戶扔出去(環保起見,請別這樣做)。
  • 可以用來盈利
    你可以在分發軟體的時候收費,但你必須在收費前向你的客戶提供該軟體的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟體,以及你收費的理由。
  • 可自由修改
    如果你想新增或刪除某個功能,沒問題,如果你想在別的專案中使用部分程式碼,也沒問題,唯一的要求是,使用了這段程式碼的專案也必須使用 GPL 協議。

需要注意的是,分發的時候,需要明確提供原始碼和二進位制檔案,另外,用於某些程式的某些協議有一些問題和限制,你可以看一下 @PierreJoye 寫的 Practical Guide to GPL Compliance 一文。使用 GPL 協議,你必須在原始碼程式碼中包含相應資訊,以及協議本身。

GNU LGPL

GNU 還有另外一種協議,叫做 LGPL (Lesser General Public Licence),它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用於非 GPL 或非開源產品的開源類庫或框架。因為 GPL 要求,使用了 GPL 程式碼的產品必須也使用 GPL 協議,開發者不允許將 GPL 程式碼用於商業產品。LGPL 繞過了這一限制。

BSD

BSD 在軟體分發方面的限制比別的開源協議(如 GNU GPL)要少。該協議有多種版本,最主要的版本有兩個,新 BSD 協議與簡單 BSD 協議,這兩種協議經過修正,都和 GPL 相容,併為開源組織所認可。

新 BSD 協議(3條款協議)在軟體分發方面,除需要包含一份版權提示和免責宣告之外,沒有任何限制。另外,該協議還禁止拿開發者的名義為衍生產品背書,但簡單 BSD 協議刪除了這一條款。

MIT

MIT 協議可能是幾大開源協議中最寬鬆的一個,核心條款是:

該軟體及其相關文件對所有人免費,可以任意處置,包括使用,複製,修改,合併,發表,分發,再授權,或者銷售。唯一的限制是,軟體中必須包含上述版 權和許可提示。

這意味著:

  • 你可以自由使用,複製,修改,可以用於自己的專案。
  • 可以免費分發或用來盈利。
  • 唯一的限制是必須包含許可宣告。

MIT 協議是所有開源許可中最寬鬆的一個,除了必須包含許可宣告外,再無任何限制。

Apache

Apache 協議 2.0 和別的開源協議相比,除了為使用者提供版權許可之外,還有專利許可,對於那些涉及專利內容的開發者而言,該協議最適合(這裡有 一篇文章闡述這個問題)。

Apache 協議還有以下需要說明的地方:

  • 永久權利
    一旦被授權,永久擁有。
  • 全球範圍的權利
    在一個國家獲得授權,適用於所有國家。假如你在美國,許可是從印度授權的,也沒有問題。
  • 授權免費,且無版稅
    前期,後期均無任何費用。
  • 授權無排他性
    任何人都可以獲得授權
  • 授權不可撤消
    一旦獲得授權,沒有任何人可以取消。比如,你基於該產品程式碼開發了衍生產品,你不用擔心會在某一天被禁止使用該程式碼。

分發程式碼方面包含一些要求,主要是,要在宣告中對參與開發的人給予認可幷包含一份許可協議原文。

Creative Commons

Creative Commons (CC) 並非嚴格意義上的開源許可,它主要用於設計。Creative Commons 有多種協議,每種都提供了相應授權模式,CC 協議主要包含 4 種基本形式:

  • 署名權
    必須為原始作者署名,然後才可以修改,分發,複製。
  • 保持一致
    作品同樣可以在 CC 協議基礎上修改,分發,複製。
  • 非商業
    作品可以被修改,分發,複製,但不能用於商業用途。但商業的定義有些模糊,比如,有的人認為非商業用途指的是不能銷售,有的認為是甚至不能放在有廣告的網 站,也有人認為非商業的意思是非盈利。
  • 不能衍生新作品
    你可以複製,分發,但不能修改,也不能以此為基礎創作自己的作品。

這些許可形式可以結合起來用,其中最嚴厲的組合是“署名,非商用,不能衍生新作品”,意味著,你可以分享作品,但不能改動或以此盈利,而且必須為原 作者署名。在這種許可模式下,原始作者對作品還擁有完全的控制權,而最寬鬆的組合是“署名”,意味著,只要為原始作者署名了,就可以自由處置。