一分鐘理解 MPL 2.0:檔案層級的 Copyleft,和 GPL、MIT 差在哪?

一分鐘理解 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

延伸閱讀

本文僅為授權概念的入門整理,不構成法律意見。實際條款請以官方英文版全文為準,商業產品涉及授權問題建議諮詢專業法律人士。

You may also like