一分鐘理解 MPL 2.0:檔案層級的 Copyleft,和 GPL、MIT 差在哪?
Mozilla Public License(MPL)是 Mozilla 基金會發布的開源授權,目前通行版本是 MPL 2.0。它的定位介於嚴格的 GPL 與寬鬆的 MIT 之間,最大特色是「檔案層級」的 Copyleft:只有被修改過的 MPL 檔案需要開源,你自己新寫的檔案可以保持閉源。
MPL 一句話重點
改了 MPL 的檔案,散布時就要公開那些檔案的原始碼;沒動到的部分、自己新增的檔案,授權由你決定。
使用 MPL 軟體時的義務
- 公開修改過的 MPL 檔案:散布時須以 MPL 提供這些檔案的原始碼
- 保留授權聲明:不可移除檔案中的版權與授權標示
- 告知取得原始碼的方式:散布執行檔時,要讓接收者知道如何取得 MPL 部分的原始碼
MPL 可以做什麼?
- 與閉源程式結合:MPL 檔案與專有檔案可以組成一個「Larger Work」一起散布,專有部分不需開源
- 商業使用:可以用於商業產品並收費
- 專利授權:貢獻者授予使用者相關專利的使用權
- 與 GPL 相容:MPL 2.0 預設可與 GPL / LGPL 結合,除非原作者標註「Incompatible With Secondary Licenses」
什麼情況適合選 MPL?
如果你希望自己程式碼的改進能回饋給社群,但又不想像 GPL 那樣要求使用者整個專案開源,MPL 是很好的折衷。它特別適合會被嵌入商業產品的元件或函式庫。
採用 MPL 的知名專案
- Mozilla Firefox、Thunderbird
- LibreOffice
- HashiCorp 早期的 Terraform、Vault 等工具(2023 年後改為 BSL)
GPL、LGPL、MPL、MIT 比較
| 授權 | Copyleft 強度 | 修改後要開源的範圍 | 可否與閉源程式結合 | 代表專案 |
|---|---|---|---|---|
| GPL | 強 | 整個衍生作品 | 不行(散布時整體須採 GPL) | Linux 核心、Git、WordPress |
| LGPL | 弱(函式庫層級) | 函式庫本身 | 可以,透過連結使用 | glibc、GTK、Qt(LGPLv3 選項) |
| MPL 2.0 | 弱(檔案層級) | 被修改的 MPL 檔案 | 可以,以檔案為界 | Firefox、Thunderbird、LibreOffice |
| MIT | 無(寬鬆授權) | 不需開源,保留版權聲明即可 | 可以 | React、jQuery、Node.js |
延伸閱讀
本文僅為授權概念的入門整理,不構成法律意見。實際條款請以官方英文版全文為準,商業產品涉及授權問題建議諮詢專業法律人士。
