引入第三方庫時,若不理解授權條款,可能面臨法律風險 (侵權訴訟)、強制開源專有代碼、無法商業化分發等後果。本文梳理 7 大主流開源授權核心權利/義務/限制,並給出選型決策建議。
| 授權 | 類別 | 商業使用 | 修改/分發 | 專利授予 | 網路傳播觸發 | 相容 GPL | 典型專案 |
|---|---|---|---|---|---|---|---|
| Apache 2.0 | 寬鬆 | ✅ | ✅ (保留授權/聲明/修改標記) | ✅ 明確專利授予 | ❌ | ✅ (單向) | Hadoop, Kafka, Spring, Android |
| BSD 3-Clause | 寬鬆 | ✅ | ✅ (保留版權/授權/不背書) | ❌ 隱含 | ❌ | ✅ | Netty, Redis (舊版), Google Guava |
| MIT | 寬鬆 | ✅ | ✅ (保留版權/授權) | ❌ 隱含 | ❌ | ✅ | React, Vue, jQuery, Lodash |
| MPL 2.0 | 弱Copyleft (檔案級) | ✅ | ✅ (修改檔案需開源,可與專有代碼鏈接) | ✅ | ❌ | ❌ | Firefox, LibreOffice, React (早期) |
| LGPL 2.1/3.0 | 弱Copyleft (庫級) | ✅ | ✅ (動態鏈接不傳染主程式,修改庫需開源) | ✅ (v3) | ❌ | ✅ (v3 兼容 GPLv3) | glibc, Qt (商業版雙授權), Hibernate (舊版) |
| GPL 2.0/3.0 | 強Copyleft | ✅ | ✅ (衍生作品**必須同授權開源**) | ✅ (v3) | ❌ (v2) ✅ (v3 AGPL 針對網路服務) | — | Linux Kernel (v2), Git, WordPress, Bash |
| AGPL 3.0 | 強Copyleft + 網路 | ✅ | ✅ (含網路服務互動視為分發) | ✅ | ✅ **關鍵差異** | — | MongoDB (舊版), Grafana, Nextcloud |
| Public Domain (CC0/Unlicense) | 無限制 | ✅ | ✅ 無任何義務 | ❌ | ❌ | ✅ | SQLite, tinycc |
| Artistic 2.0 | 混合 | ✅ | ✅ (標準版本保留作者控制權,修改版需改名或合併回上游) | ❌ | ❌ | ❌ | Perl 5 |
Apache 2.0、MPL 2.0、GPLv3、LGPLv3 明確包含**專利授予條款**:貢獻者授予使用者永久、免費、不可撤銷的專利許可。若使用者對軟體提起專利訴訟,授權自動終止。BSD/MIT 僅隱含專利許可,法律效力較弱。
GPLv2/3 僅在「分發」 (傳輸副本) 時觸發開源義務。**SaaS/雲服務**僅透過網路互動,不構成分發,可合法使用 GPL 代碼而不開源。AGPL 3.0 明確規定:透過網路提供服務互動視為分發,**強制開源服務端代碼**。
license-maven-plugin, FOSSA, Snyk, ClearlyDefined)。NOTICE、LICENSE 檔案隨產品分發 (Apache 2.0 強制)。| 誤區 | 事實 |
|---|---|
| 「Apache 2.0 可以隨意改授權」 | 修改後的檔案**必須保留**原授權聲明、版權、專利聲明、變更標記;**不能**移除 Apache 2.0 條款,只能在新增檔案加入額外條款 (不得限制原授權權利)。 |
| 「LGPL 就是可以隨便用」 | **靜態鏈接**會觸發傳染;必須允許使用者替換庫版本 (提供 .o 檔或動態鏈接)。嵌入式裝置無法動態鏈接時極度受限。 |
| 「內部使用不分發,GPL 沒事」 | 內部部署通常視為「分發」 (組織法人間傳輸);**AGPL 更無死角**。風險極高。 |
| 「Public Domain = 沒版權」 | 版權仍存在,只是權利人**主動放棄**所有權利。部分司法管轄區 (如德國) 不承認完全放棄版權,CC0 提供備用授權條款。 |
license-maven-plugin (檢查/生成報表/下載授權文本)、dependency-license-report。license-gradle-plugin, oss-licenses。CycloneDX (Maven/Gradle/GitHub Action)、Syft (容器映像掃描)。OPA/Gatekeeper + Rego 規則 在 CI/CD 強制授權合規。開源授權不是法律文本飾品,而是**代碼流通的契約**。工程師具備基本授權識別力,配合自動化掃描工具鏈、法務協作流程,才能在開源海洋中安心航行、合規交付。