對于軟件產(chǎn)品士修,無論是免費發(fā)布還是出售枷遂,制定一份許可協(xié)議都非常有用。否則李命,對于前者登淘,你相當(dāng)于放棄了自己所有的權(quán)利,任何人都沒有義務(wù)表明你的原始作者身份封字,對于后者黔州,你將不得不花費比開發(fā)更多的精力用來逐個處理授權(quán)問題。許可阔籽,就是提供給使用你產(chǎn)品的人有一定的權(quán)限流妻,不過你仍然擁有版權(quán)和專利(如果申請了的話)。開源許可證使得我們發(fā)布開源軟件產(chǎn)品變得簡單笆制。
現(xiàn)今存在的開源許可證很多绅这,多數(shù)人搞不清楚他們之間的區(qū)別。很多程序員在開源代碼的時候不知如何選擇開源許可證在辆,或者使用別人的開源代碼時未遵循其原始許可證证薇。如何選擇開源許可證,這是一個問題匆篓。
通過OSI(Open Source Initiative)組織批準(zhǔn)的許可證目前有78種浑度。當(dāng)前流行的6種GPL,LGPL鸦概,Apache箩张,MIT,BSD和MPL都是OSI批準(zhǔn)的許可證窗市。GitHub建了一個很贊的網(wǎng)站Choose an open source license先慷,提供了各主流許可證的協(xié)議文本,并對它們作了詳細(xì)的介紹和比較咨察。國內(nèi)阮一峰的BLOG也提供了一張簡潔的分析圖(GPL论熙,LGPL和MPL許可證描述有誤)。
MIT許可證
MIT許可證是一個簡短摄狱、寬松的許可證赴肚,唯一的要求就是保留原始版權(quán)和許可聲明素跺。你可以:
- 商業(yè)使用。軟件及衍生產(chǎn)品可以用于商業(yè)目的誉券。
- 自由地修改指厌、發(fā)布。軟件可以被自由地拷貝踊跟、修改踩验、發(fā)布。
BSD許可證
BSD許可證是一個給予使用者很大自由的許可證商玫。使用者可以自由的使用箕憾、修改源代碼,也可以將修改后的代碼作為開源或?qū)S熊浖侔l(fā)布拳昌,只須滿足:
- 如果再發(fā)布的產(chǎn)品是源代碼袭异,則在源代碼中必須包含原始版權(quán)和許可聲明。
- 如果再發(fā)布產(chǎn)品是二進(jìn)制形式炬藤,則需要在其文檔和版權(quán)申明包含原始版權(quán)和許可聲明御铃。
- 未經(jīng)事先書面許可,不得使用原作者/機構(gòu)的名字和原產(chǎn)品名字進(jìn)行衍生產(chǎn)品的推廣沈矿。
Apache許可證
Apache許可證是一個寬松且專業(yè)的許可證上真,相比于其他許可證,軟件產(chǎn)品可以自由修改羹膳、發(fā)布和商用睡互,該許可證還為用戶提供專利許可,只須滿足以下條件:
- 包含一份原始許可聲明和版權(quán)聲明
- 如果修改了源代碼陵像,包含一份代碼修改說明就珠。
- 不得使用其原始商標(biāo)
GPL許可證
GPL(GNU General Public License)許可證是一個開放源碼許可證,只要在軟件產(chǎn)品中使用(“使用”指類庫引用醒颖,修改后的代碼或者衍生代碼)GPL許可證的產(chǎn)品妻怎,則該軟件產(chǎn)品也必須采用GPL許可證發(fā)布,并且不論以何種形式發(fā)布图贸,都必須同時附上源代碼蹂季。這就是所謂的“傳染性”冕广。其他細(xì)節(jié)與Apache許可證類似疏日,如:
- 軟件及衍生產(chǎn)品可以用于商業(yè)目的。
- 產(chǎn)品可以被自由地分發(fā)撒汉、修改沟优。
- 同時提供額外的專利授權(quán)。
- 產(chǎn)品再發(fā)布時包含一份原始許可聲明和版權(quán)聲明睬辐。
- 如果修改了源代碼挠阁,包含一份代碼修改說明宾肺。
LGPL許可證
LGPL( GNU Lesser General Public License)許可證是一個主要為類庫使用設(shè)計的開源協(xié)議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟件必須采用GPL協(xié)議不同侵俗。LGPL允許商業(yè)軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業(yè)軟件的代碼锨用。這使得采用LGPL協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。但是如果修改LGPL協(xié)議的代碼或者衍生隘谣,則所有修改的代碼增拥,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用寻歧,但不適合希望以LGPL協(xié)議代碼為基礎(chǔ)掌栅,通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。其他細(xì)節(jié)與GPL許可證類似码泛,如:
- 同時提供額外的專利授權(quán)猾封。
- 產(chǎn)品再發(fā)布時包含一份原始許可聲明和版權(quán)聲明。
- 如果修改了源代碼噪珊,包含一份代碼修改說明晌缘。
MPL許可證
MPL(Mozilla Public License)許可證是1998年初Netscape的 Mozilla小組為其開源軟件項目設(shè)計的軟件許可證。MPL許可證出現(xiàn)的最重要原因就是卿城,Netscape公司認(rèn)為GPL許可證沒有很好地平衡開發(fā)者對源代碼的需求和他們利用源代碼獲得的利益枚钓。MPL同著名的GPL許可證和BSD許可證相比。MPL在許多權(quán)利與義務(wù)的約定方面與它們相同瑟押,但是搀捷,相比而言MPL還有以下幾個顯著的特點:
- MPL雖然要求對于經(jīng)MPL許可證發(fā)布的源代碼的使用、修改也要以MPL許可證的方式再許可出來(開源)多望,以保證其他人可以在MPL的條款下共享源代碼嫩舟。但是,在MPL許可證對于衍生代碼沒有要求怀偷,這就意味著MPL允許一個企業(yè)在自己已有的源代碼庫上加一個接口家厌,除了接口程序的源代碼以MPL許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可椎工。這些饭于,就為借鑒別人的源代碼用做自己商業(yè)軟件開發(fā)的行為留了一個豁口。
- 軟件產(chǎn)品再發(fā)布時包含一份原始許可聲明和版權(quán)聲明维蒙。
- 提供快速的專利授權(quán)掰吕。
- 不得使用其原始商標(biāo)。
- 如果修改了源代碼颅痊,包含一份代碼修改說明殖熟。
注:以上所有許可證都支持私有使用,即使用和修改軟件但不對外發(fā)布斑响。
The Unlicense
The Unlicense是一個放棄所有權(quán)利的許可證菱属,沒有任何限制钳榨,它一般用在致力于公有領(lǐng)域的產(chǎn)品。
注:開源許可證也可用于非軟件產(chǎn)品纽门,尤其是那些能夠被當(dāng)做源碼編輯和管理的產(chǎn)品薛耻,如開源硬件設(shè)計等。
如果你的產(chǎn)品不是軟件產(chǎn)品(數(shù)據(jù)赏陵、多媒體等)昭卓,也有一些開源許可證可供選擇。
Creative Commons許可證
Creative Commons簡稱CC瘟滨,中國大陸正式名稱為知識共享候醒。傳統(tǒng)的著作權(quán)通常為兩種極端,一種是”保留所有權(quán)利”杂瘸,另一種是“不保留任何權(quán)利”(即公有領(lǐng)域倒淫,public domain)。知識共享則試圖在兩者中間廣大的灰色地帶保有彈性败玉,使創(chuàng)作者可以“保留部分權(quán)利”敌土。創(chuàng)作者可與大眾分享創(chuàng)作,授予其他人再散布的權(quán)利运翼,卻又能保留其他某些權(quán)利返干。知識共享一般用于設(shè)計,攝影血淌,圖片作品的開放式分享矩欠,并提供多種可供選擇的授權(quán)形式及條款組合:
- 署名(Attribution,簡寫為BY):必須提到原作者悠夯。
- 非商業(yè)用途(Noncommercial癌淮,簡寫為NC):不得用于盈利性目的。
- 禁止演繹(No Derivative Works沦补,簡寫為ND):不得修改原作品乳蓄,不得再創(chuàng)作。
- 相同方式共享(Share Alike夕膀,簡寫為SA):允許修改原作品虚倒,但必須使用相同的許可證發(fā)布。
注:許可協(xié)議不能同時包含“相同方式共享”和“禁止演繹”許可要素产舞,“相同方式共享”要素僅適用于演繹作品魂奥。
這些授權(quán)形式可以結(jié)合起來用,如CC BY庞瘸,CC BY-NC-SA等捧弃。
參考: