中國(guó)移動(dòng)-智慧家庭運(yùn)營(yíng)中心 鄭國(guó)忠、王雪珊
開(kāi)源軟件的世界里,許可證(License)就像是一張通行證,決定了代碼的使用、分發(fā)和衍生方式。對(duì)于開(kāi)發(fā)者、創(chuàng)業(yè)公司、甚至大廠來(lái)說(shuō),選錯(cuò)許可證就像踩進(jìn)法律的雷區(qū),輕則重構(gòu)代碼,重則陷入訴訟。
今天,我們聚焦寬松型開(kāi)源許可證(Permissive Licenses),深入解析MIT、Apache 2.0、BSD 3-Clause、ISC、Unlicense這幾大代表性協(xié)議的核心條款、版本差異、實(shí)踐注意事項(xiàng),以及那些讓人后悔莫及的“血淚教訓(xùn)”。
一、什么是“寬松型”許可證?
寬松型(Permissive):寬松授權(quán),允許自由使用、修改、分發(fā),允許衍生作品閉源或商業(yè)化,通常只需保留原始許可證和版權(quán)聲明。例如:MIT、Apache 2.0、BSD、ISC等。這類許可證以靈活性和低合規(guī)風(fēng)險(xiǎn)著稱,廣泛應(yīng)用于需要快速傳播或商業(yè)集成的開(kāi)源項(xiàng)目。
如果你希望最大化降低法律風(fēng)險(xiǎn),允許代碼自由流通,同時(shí)避免“傳染性”限制,那么寬松型許可證是最佳選擇。
二、當(dāng)心!寬松≠無(wú)腦用——5大許可證暗藏致命差異
MIT、Apache 2.0這些傳說(shuō)中的”寬松型許可證”,就像程序界的萬(wàn)能通行證:
?允許商用
?隨意魔改
?閉源發(fā)布
但寬松就能”為所欲為”嗎?
2023年,國(guó)內(nèi)CEC-IDE事件引爆開(kāi)發(fā)者圈[1]!這款宣稱”國(guó)內(nèi)首款多環(huán)境支持且有自建插件市場(chǎng)”的IDE工具,因未保留VSCode的MIT聲明,遭940+社區(qū)聲討后公開(kāi)道歉并進(jìn)行整改。這再次警示我們:最寬松的協(xié)議也有致命紅線!
可見(jiàn)每張”免死金牌”背面都刻著隱秘的江湖規(guī)矩…那么五大協(xié)議暗藏哪些”生死符”?
1. MIT License:極簡(jiǎn)主義的陷阱
MIT許可協(xié)議:即The MIT License,該許可協(xié)議之名源自麻省理工學(xué)院(Massachusetts Institute of Technology,MIT),又稱“X許可協(xié)議”(XLicense)或“X11許可協(xié)議”(X11License),是相對(duì)寬松的軟件許可協(xié)議。
超級(jí)寬松、最流行、商業(yè)友好
個(gè)人項(xiàng)目、初創(chuàng)公司、教學(xué)demo、非核心模塊
1)附加符合許可證要求的版權(quán)聲明:
MIT許可示范條款:
2)出現(xiàn)違反許可證要求的情況,主要包括以下幾種情形:
1)MIT許可的代碼可以被閉源商用,如果你不希望自己的代碼被某些大廠“拿去封閉”,可能要考慮更嚴(yán)格的協(xié)議(如GPL)
2)注釋/文檔/源碼中的聲明都是雷區(qū)
1)刪除/篡改版權(quán)聲明
案例:
何同學(xué)視頻商用事件[2],B站千萬(wàn)粉絲博主何同學(xué)在商單視頻中使用基于MIT協(xié)議的開(kāi)源項(xiàng)目“ASCIIgenerator”,刪除源代碼中的原作者署名,并聲稱軟件為團(tuán)隊(duì)獨(dú)立開(kāi)發(fā),誤導(dǎo)觀眾,引發(fā)開(kāi)源社區(qū)對(duì)創(chuàng)作者合規(guī)意識(shí)的廣泛討論!
Remark:
MIT協(xié)議唯一強(qiáng)制要求是保留版權(quán)聲明,何同學(xué)團(tuán)隊(duì)未遵守
2)未附帶許可證文本
案例:
CEC-IDE”自主研發(fā)”暴雷事件[1],數(shù)字廣東公司推出的“CEC-IDE”軟件基于MIT協(xié)議開(kāi)源的VSCode代碼修改,但未在版本中附帶原始MIT許可證聲明,被開(kāi)發(fā)者社區(qū)曝光,遭940+社區(qū)聲討后公開(kāi)道歉。
Remark:
3)未附帶許可證文本
案例:
FBI智能合約事件[3]。其代碼使用MIT協(xié)議的OpenZeppelin庫(kù),但未包含原始許可證歸屬信息,代碼被標(biāo)記為“未經(jīng)許可”,引發(fā)對(duì)政府機(jī)構(gòu)使用開(kāi)源代碼合規(guī)性的關(guān)注。
4)忽視專利風(fēng)險(xiǎn)
案例:
2017年Facebook在React的MIT協(xié)議中,新增專利反制條款(可單方面終止授權(quán))、且未在npm包中顯著提示條款變更,與Apache等基金會(huì)協(xié)議產(chǎn)生沖突,造成開(kāi)源生態(tài)爆發(fā)“十級(jí)地震”,React最終被迫回歸純MIT協(xié)議[4]。
Remark:
MIT License
附加條款:若起訴Facebook專利侵權(quán),自動(dòng)終止React使用權(quán)
2. Apache License 2.0:大廠最愛(ài)的心機(jī)條款
Apache License 2.0(ALv2)是Apache軟件基金會(huì)推出的開(kāi)源協(xié)議,以專利博弈和企業(yè)級(jí)友好著稱。看似比MIT寬松,實(shí)則暗藏“法律武器庫(kù)”。
寬松但帶專利授權(quán)、企業(yè)友好
涉及專利的企業(yè)級(jí)項(xiàng)目、大型開(kāi)源社區(qū)、需要防御專利訴訟的商業(yè)代碼
1)NOTICE文件的重要性
2)專利防御三原則
3)衍生作品標(biāo)注版權(quán)歸屬示例
This product includes software developed by the Apache Software Foundation(http://www.apache.org/).
Modifications Copyright (c) 2023 [Your Company]
第一行明確指出軟件包含Apache軟件基金會(huì)開(kāi)發(fā)的代碼,并提供Apache官方網(wǎng)站的鏈接。
第二行聲明對(duì)原始代碼的修改部分的版權(quán)歸屬,確保企業(yè)對(duì)自身修改的權(quán)益得到保護(hù)。
如果你擔(dān)心專利訴訟風(fēng)險(xiǎn),Apache 2.0比MIT更安全,適合企業(yè)級(jí)應(yīng)用。但Apache 2.0代碼不能直接變成MIT代碼(因?yàn)镸IT沒(méi)有專利條款),所以如果你希望向MIT生態(tài)靠攏,需要額外處理。
慎碰GPL:ALv2與GPLv3不兼容!混用將觸發(fā)“協(xié)議核戰(zhàn)”
代碼審計(jì)紅線:結(jié)合自動(dòng)化工具與人工審查,定期檢查NOTICE文件和許可證聲明,尤其警惕GPL組件混入
1)未明確標(biāo)注開(kāi)源組件來(lái)源、忽視衍生作品要求
案例:博云(BoCloud)違反ALv2事件[5]。
2020年,博云在推廣其微服務(wù)產(chǎn)品“BeyondMicroservice”時(shí),宣傳視頻中展示的APM監(jiān)控界面與Apache頂級(jí)項(xiàng)目SkyWalking的UI布局、指標(biāo)顯示完全一致,但未在宣傳材料或產(chǎn)品文檔中聲明使用了SkyWalking組件。Apache社區(qū)發(fā)起問(wèn)責(zé),博云公開(kāi)道歉。
Remark:
ALv2要求衍生作品必須明確標(biāo)注原項(xiàng)目信息,即使代碼經(jīng)過(guò)修改或僅使用界面設(shè)計(jì),仍需在“顯著位置”聲明來(lái)源(如產(chǎn)品文檔、宣傳材料或NOTICE文件)
2)刪除或篡改聲明文件、混淆代碼原創(chuàng)性
案例:
2022年火山引擎違規(guī)使用Apache SkyWalking事件[6]。字節(jié)跳動(dòng)旗下火山引擎的“應(yīng)用性能監(jiān)控全鏈路版”產(chǎn)品基于Apache SkyWalking(Apache 2.0協(xié)議)二次開(kāi)發(fā),但在重新分發(fā)時(shí),火山引擎的團(tuán)隊(duì)更改了所有軟包名稱,刪除了Apache軟件基金會(huì)的抬頭,并且在重新發(fā)行時(shí)未保留Apache軟件基金會(huì)、ApacheSkyWalking的LICENSE和NOTICE文件。
Remark:
基于Apache License Version 2.0的作品或衍生作品進(jìn)行修改或增補(bǔ),并應(yīng)用到商業(yè)項(xiàng)目時(shí),前提是滿足以下幾個(gè)條件:
需要給代碼的用戶一份Apache License;
如果你修改了代碼,需要在被修改的文件中說(shuō)明;
在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來(lái)代碼中的協(xié)議,商標(biāo),專利聲明和其他原來(lái)作者規(guī)定需要包含的說(shuō)明;
如果再發(fā)布的產(chǎn)品中包含一個(gè)Notice文件,則在Notice文件中需要帶有Apache License。你可以在Notice中增加自己的許可,但不可以表現(xiàn)為對(duì)Apache License構(gòu)成更改。
3. BSD 3-Clause:廣告條款的深坑
BSD 3-Clause許可證:全稱”BSD 3-Clause License”,起源于加州大學(xué)伯克利分校(University of California, Berkeley)的”BerkeleySoftwareDistribution”項(xiàng)目,是寬松開(kāi)源協(xié)議的代表之一。
MIT變體、對(duì)商用友好、禁止背書營(yíng)銷、無(wú)專利保護(hù)
學(xué)術(shù)界、企業(yè)合作項(xiàng)目
1)版權(quán)聲明格式示例:
// Copyright (c). All rights reserved.
// 此代碼使用 BSD 3-Clause 許可證授權(quán),詳情見(jiàn)LICENSE文件
2)BSD-3-Clause在發(fā)生派生項(xiàng)目時(shí),需要注意的情況:
第三條款是雷區(qū)!若閉源產(chǎn)品宣傳中提及“基于某BSD項(xiàng)目開(kāi)發(fā)”,需確保原作者未禁止此類使用
衍生作品的所有宣傳材料必須聲明”本產(chǎn)品包含XXX開(kāi)發(fā)的軟件”
4.ISC License:MIT的克隆體?NO!
ISC許可證:全稱”ISC License”,源自Internet Systems Consortium,是MIT許可證的“極簡(jiǎn)進(jìn)化版”。僅用5行文本覆蓋核心條款。允許用戶幾乎無(wú)限制地使用、修改和分發(fā)代碼,僅需保留原始版權(quán)聲明和許可文本。
極簡(jiǎn)主義、兼容性之王、無(wú)存在感但實(shí)用
超簡(jiǎn)潔、無(wú)額外限制的開(kāi)源項(xiàng)目
1)聲明保留的極簡(jiǎn)操作:
// Copyright (c)
// 此代碼依據(jù)ISC許可證授權(quán),詳情見(jiàn)LICENSE文件
2)出現(xiàn)違反許可證要求的情況,主要包括以下幾種情形:
3)隱藏優(yōu)勢(shì):
由于去掉了部分條款,ISC可能在某些法律環(huán)境下比MIT更脆弱,但在大多數(shù)場(chǎng)景下影響不大。
如果你追求極簡(jiǎn)代碼許可文本,ISC是最佳選擇,但不要誤刪許可證文本!
5. Unlicense:極端自由的風(fēng)險(xiǎn)
Unlicense:誕生于2010年,由開(kāi)源開(kāi)發(fā)者Arto Bendiken起草,旨在通過(guò)“放棄所有版權(quán)”將軟件釋放到公共領(lǐng)域(Public Domain),是開(kāi)源協(xié)議中最極端的自由派代表。
Unlicense就像把一本書放入公共圖書館并說(shuō):”這本書沒(méi)有版權(quán)限制,任何人都可以復(fù)制、修改或出版它,無(wú)需任何義務(wù)。”
零限制、公共領(lǐng)域、法務(wù)雷區(qū)
個(gè)人實(shí)驗(yàn)性項(xiàng)目、徹底放棄控制權(quán)的代碼、學(xué)術(shù)原型、反版權(quán)倡導(dǎo)
公共領(lǐng)域≠無(wú)風(fēng)險(xiǎn):
某些國(guó)家(如德國(guó)、日本)法律不承認(rèn)完全的版權(quán)放棄,代碼可能仍受默認(rèn)版權(quán)保護(hù)
如果你希望最大化自由,但又要確保法律有效性,可以考慮CC0(Creative Commons Zero)代替Unlicense。
三、核心條款對(duì)比:開(kāi)源許可證的底層邏輯
一句話總結(jié):
四、救命c(diǎn)hecklist!選許可證前靈魂四問(wèn)
是否涉及專利技術(shù)?→選Apache 2.0。
是否要兼容GPL?→優(yōu)先選MIT/BSD
是否會(huì)被集成到閉源產(chǎn)品?→選擇MIT、Apache、BSD
最后無(wú)論選擇哪種許可證,清晰標(biāo)注版權(quán)信息并遵守許可條款,是避免法律糾紛的關(guān)鍵哦!
參考文獻(xiàn)