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