必備知識 | 全球各種開源協(xié)議介紹
來源:菜鳥教程
世界上的開源許可證(Open Source License)大概有上百種,今天我們來介紹下幾種我們常見的開源協(xié)議。大致有GPL、BSD、MIT、Mozilla、Apache和LGPL等。

下面先通過幾張圖來了解下什么情況下我們需要哪種協(xié)議,后續(xù)有專門的詳細(xì)說明:



Apache License
Apache License(Apache許可證),是Apache軟件基金會(huì)發(fā)布的一個(gè)自由軟件許可證。
Apache 協(xié)議 2.0 和別的開源協(xié)議相比,除了為用戶提供版權(quán)許可之外,還有專利許可,對于那些涉及專利內(nèi)容的開發(fā)者而言,該協(xié)議最適合。
Apache 協(xié)議還有以下需要說明的地方:
永久權(quán)利:?一旦被授權(quán),永久擁有。
全球范圍的權(quán)利:?在一個(gè)國家獲得授權(quán),適用于所有國家。
授權(quán)免費(fèi),且無版稅: 前期,后期均無任何費(fèi)用。
授權(quán)無排他性:?任何人都可以獲得授權(quán)
授權(quán)不可撤消:?一旦獲得授權(quán),沒有任何人可以取消。比如,你基于該產(chǎn)品代碼開發(fā)了衍生產(chǎn)品,你不用擔(dān)心會(huì)在某一天被禁止使用該代碼。
分發(fā)代碼方面包含一些要求,主要是,要在聲明中對參與開發(fā)的人給予認(rèn)可并包含一份許可協(xié)議原文。
BSD
BSD是"Berkeley Software Distribution"的縮寫,意思是"伯克利軟件發(fā)行版"。
BSD 在軟件分發(fā)方面的限制比別的開源協(xié)議(如 GNU GPL)要少。該協(xié)議有多種版本,最主要的版本有兩個(gè),新 BSD 協(xié)議與簡單 BSD 協(xié)議,這兩種協(xié)議經(jīng)過修正,都和 GPL 兼容,并為開源組織所認(rèn)可。
新 BSD 協(xié)議在軟件分發(fā)方面,除需要包含一份版權(quán)提示和免責(zé)聲明之外,沒有任何限制。另外,該協(xié)議還禁止拿開發(fā)者的名義為衍生產(chǎn)品背書,但簡單 BSD 協(xié)議刪除了這一條款。
GPL
GPL (GNU General Public License) :GNU通用公共許可協(xié)議。
Linux 采用了 GPL。
GPL協(xié)議和BSD, Apache Licence等鼓勵(lì)代碼重用的許可很不一樣。GPL的出發(fā)點(diǎn)是代碼的開源/免費(fèi)使用和引用/修改/衍生代碼的開源/免費(fèi)使用,但不允許修改后和衍生的代碼做為閉源的商業(yè)軟件發(fā)布和銷售。這也就是為什么我們能用免費(fèi)的各種linux,包括商業(yè)公司的linux和linux上各種各樣的由個(gè)人,組織,以及商業(yè)軟件公司開發(fā)的免費(fèi)軟件了。
LGPL
LGPL是GPL的一個(gè)為主要為類庫使用設(shè)計(jì)的開源協(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è)軟件采用。
GPL/LGPL都保障原作者的知識產(chǎn)權(quán),避免有人利用開源代碼復(fù)制并開發(fā)類似的產(chǎn)品。
MIT
MIT是和BSD一樣寬范的許可協(xié)議,源自麻省理工學(xué)院(Massachusetts Institute of Technology, MIT),又稱X11協(xié)議。作者只想保留版權(quán),而無任何其他了限制。MIT與BSD類似,但是比BSD協(xié)議更加寬松,是目前最少限制的協(xié)議。這個(gè)協(xié)議唯一的條件就是在修改后的代碼或者發(fā)行包包含原作者的許可信息。適用商業(yè)軟件。使用MIT的軟件項(xiàng)目有:jquery、Node.js。
MIT與BSD類似,但是比BSD協(xié)議更加寬松,是目前最少限制的協(xié)議。這個(gè)協(xié)議唯一的條件就是在修改后的代碼或者發(fā)行包包含原作者的許可信息。適用商業(yè)軟件。使用MIT的軟件項(xiàng)目有:jquery、Node.js。
MPL (Mozilla Public License 1.1)
MPL協(xié)議允許免費(fèi)重發(fā)布、免費(fèi)修改,但要求修改后的代碼版權(quán)歸軟件的發(fā)起者 。這種授權(quán)維護(hù)了商業(yè)軟件的利益,它要求基于這種軟件的修改無償貢獻(xiàn)版權(quán)給該軟件。這樣,圍繞該軟件的所有代碼的版權(quán)都集中在發(fā)起開發(fā)人的手中。但MPL是允許修改,無償使用得。MPL軟件對鏈接沒有要求。
EPL (Eclipse Public License 1.0)
EPL允許Recipients任意使用、復(fù)制、分發(fā)、傳播、展示、修改以及改后閉源的二次商業(yè)發(fā)布。
使用EPL協(xié)議,需要遵守以下規(guī)則:
當(dāng)一個(gè)Contributors將源碼的整體或部分再次開源發(fā)布的時(shí)候,必須繼續(xù)遵循EPL開源協(xié)議來發(fā)布,而不能改用其他協(xié)議發(fā)布.除非你得到了原"源碼"Owner 的授權(quán);
EPL協(xié)議下,你可以將源碼不做任何修改來商業(yè)發(fā)布.但如果你要發(fā)布修改后的源碼,或者當(dāng)你再發(fā)布的是Object Code的時(shí)候,你必須聲明它的Source Code是可以獲取的,而且要告知獲取方法;
當(dāng)你需要將EPL下的源碼作為一部分跟其他私有的源碼混和著成為一個(gè)Project發(fā)布的時(shí)候,你可以將整個(gè)Project/Product以私人的協(xié)議發(fā)布,但要聲明哪一部分代碼是EPL下的,而且聲明那部分代碼繼續(xù)遵循EPL;
4.獨(dú)立的模塊(Separate Module),不需要開源。
Creative Commons 知識共享協(xié)議
Creative Commons (CC) 許可協(xié)議并不能說是真正的開源協(xié)議,它們大多是被使用于設(shè)計(jì)類的工程上。CC 協(xié)議種類繁多,每一種都授權(quán)特定的權(quán)利。一個(gè) CC 許可協(xié)議具有四個(gè)基本部分,這幾個(gè)部分可以單獨(dú)起作用,也可以組合起來。下面是這幾部分的簡介:
1、署名 作品上必須附有作品的歸屬。如此之后,作品可以被修改,分發(fā),復(fù)制和其它用途。
2、相同方式共享 作品可以被修改、分發(fā)或其它操作,但所有的衍生品都要置于CC許可協(xié)議下。
3、非商業(yè)用途 作品可以被修改、分發(fā)等等,但不能用于商業(yè)目的。但語言上對什么是"商業(yè)"的說明十分含糊不清 (沒有提供精確的定義),所以你可以在你的工程里對其進(jìn)行說明。例如,有些人簡單的解釋"非商業(yè)"為不能出售這個(gè)作品。而另外一些人認(rèn)為你甚至不能在有廣告的網(wǎng)站上使用它們。還有些人認(rèn)為"商業(yè)"僅僅指你用它獲取利益。
4、禁止衍生作品
CC 許可協(xié)議的這些條款可以自由組合使用。大多數(shù)的比較嚴(yán)格的CC協(xié)議會(huì)聲明 "署名權(quán),非商業(yè)用途,禁止衍生"條款,這意味著你可以自由的分享這個(gè)作品,但你不能改變它和對其收費(fèi),而且必須聲明作品的歸屬。這個(gè)許可協(xié)議非常的有用,它可以讓你的作品傳播出去,但又可以對作品的使用保留部分或完全的控制。最少限制的CC協(xié)議類型當(dāng)屬 "署名"協(xié)議,這意味著只要人們能維護(hù)你的名譽(yù),他們對你的作品怎么使用都行。
CC 許可協(xié)議更多的是在設(shè)計(jì)類工程中使用,而不是開發(fā)類,但沒有人或妨礙你將之使用與后者。只是你必須要清楚各部分條款能覆蓋到的和不能覆蓋到的權(quán)利。
???????????????? ?END ????????????????? 關(guān)注我的微信公眾號,回復(fù)“加群”按規(guī)則加入技術(shù)交流群。
