一分鐘理解 GPL:授權義務、常見誤解與 GPLv2 / GPLv3 差異
GNU General Public License(GPL)是自由軟體基金會(FSF)發布、最具代表性的 Copyleft 開源授權。它的核心精神是:你可以自由使用、修改、散布軟體,但散布衍生作品時,也必須用 GPL 釋出並提供原始碼,確保軟體的自由一路傳遞下去。
GPL 一句話重點
拿了 GPL 的程式碼修改或結合,只要對外散布,整個衍生作品就要以 GPL 授權並公開原始碼。
使用 GPL 軟體時的義務
- 提供原始碼:散布執行檔時,必須同時提供或承諾提供對應的完整原始碼
- 沿用相同授權:衍生作品必須以相同版本(或相容版本)的 GPL 釋出
- 保留版權與授權聲明:不可移除原作者的版權資訊
- 不得附加額外限制:不能透過額外條款限制接收者的權利
常見誤解
只要用到 GPL 程式,我的程式就得開源?
不一定。GPL 的義務在「散布」時才觸發。公司內部自行修改、內部使用而不對外散布,不需要公開原始碼。
把 GPL 軟體架成網站服務,要開源嗎?
一般 GPL 不要求。但如果是 AGPL(Affero GPL),透過網路提供服務給使用者,也必須提供原始碼,這是 AGPL 與 GPL 最大的差異。
GPL 軟體可以拿來賣錢嗎?
可以。GPL 不禁止收費,但買方取得軟體後,同樣享有修改與再散布的權利。
GPLv2 與 GPLv3 的差異
- 專利條款:GPLv3 明確授予專利授權,防止貢獻者事後以專利控告使用者
- 反 Tivoization:GPLv3 要求消費性裝置不可用硬體鎖住使用者安裝修改版軟體
- 相容性:GPLv3 與 Apache License 2.0 相容,GPLv2 則否
- 代表專案:Linux 核心採 GPLv2(only),許多 GNU 工具採 GPLv3
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 |
延伸閱讀
本文僅為授權概念的入門整理,不構成法律意見。實際條款請以官方英文版全文為準,商業產品涉及授權問題建議諮詢專業法律人士。
