越來越多的開發者與設計者希望將自己的產品開源,以便其他人可以在他們的代碼基礎上做更多事,開源社區也因此充滿生機。在我們所能想到的應用領域,都有開源軟件存在(象 WordPress,Drupal 這些開源CMS)。然而很多人對開源許可並不了解,本文介紹開源領域常用的幾種許可協議以及它們之間的區別。
什麼是許可,當你為你的產品簽發許可,你是在出讓自己的權利,不過,你仍然擁有版權和專利(如果申請了的話),許可的目的是,向使用你產品的人提供一定的權限。
不管產品是免費向公眾分發,還是出售,制定一份許可協議非常有用,否則,對於前者,你相當於放棄了自己所有的權利,任何人都沒有義務表明你的原始作者身份,對於後者,你將不得不花費比開發更多的精力用來逐個處理用戶的授權問題。
而開源許可協議使這些事情變得簡單,開發者很容易向一個項目貢獻自己的代碼,它還可以保護你原始作者的身份,使你至少獲得認可,開源許可協議還可以阻止其它人將某個產品據為己有。以下是開源界的 5 大許可協議。
GNU General Public Licence (GPL) 有可能是開源界最常用的許可模式。GPL 保證了所有開發者的權利,同時為使用者提供了足夠的復制,分發,修改的權利:
需要注意的是,分發的時候,需要明確提供源代碼和二進制文件,另外,用於某些程序的某些協議有一些問題和限制,你可以看一下 @PierreJoye 寫的 Practical Guide to GPL Compliance 一文。使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議本身。
GNU 還有另外一種協議,叫做 LGPL (Lesser General Public Licence),它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用於非 GPL 或非開源產品的開源類庫或框架。因為 GPL 要求,使用了 GPL 代碼的產品必須也使用 GPL 協議,開發者不允許將 GPL 代碼用於商業產品。LGPL 繞過了這一限制。
BSD 在軟件分發方面的限制比別的開源協議(如 GNU GPL)要少。該協議有多種版本,最主要的版本有兩個,新 BSD 協議與簡單 BSD 協議,這兩種協議經過修正,都和 GPL 兼容,並為開源組織所認可。
新 BSD 協議(3條款協議)在軟件分發方面,除需要包含一份版權提示和免責聲明之外,沒有任何限制。另外,該協議還禁止拿開發者的名義為衍生產品背書,但簡單 BSD 協議刪除了這一條款。
MIT 協議可能是幾大開源協議中最寬松的一個,核心條款是:
該軟件及其相關文檔對所有人免費,可以任意處置,包括使用,復制,修改,合並,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版權和許可提示。
這意味著:
MIT 協議是所有開源許可中最寬松的一個,除了必須包含許可聲明外,再無任何限制。
Apache 協議 2.0 和別的開源協議相比,除了為用戶提供版權許可之外,還有專利許可,對於那些涉及專利內容的開發者而言,該協議最適合(這裡有一篇文章闡述這個問題)。
Apache 協議還有以下需要說明的地方:
分發代碼方面包含一些要求,主要是,要在聲明中對參與開發的人給予認可並包含一份許可協議原文。
Creative Commons (CC) 並非嚴格意義上的開源許可,它主要用於設計。Creative Commons 有多種協議,每種都提供了相應授權模式,CC 協議主要包含 4 種基本形式:
這些許可形式可以結合起來用,其中最嚴厲的組合是“署名,非商用,不能衍生新作品”,意味著,你可以分享作品,但不能改動或以此盈利,而且必須為原作者署名。在這種許可模式下,原始作者對作品還擁有完全的控制權,而最寬松的組合是“署名”,意味著,只要為原始作者署名了,就可以自由處置。
本文國際來源:Smashing Magazine A Short Guide To Open-Source And Similar Licenses