License　有名なライセンスのまとめ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680230/80b43faf-ccb1-4131-9e36-203b40463706.png)

## はじめに

前回の「[このライセンスは嘘じゃないよね？](https://qiita.com/magic10r/items/99393f6e1c7456e96130)」でライセンスを調べたので、ちゃんとしたライセンスもまとめます。

## そもそもOSSライセンスとは？

OSSライセンスは、ソースコードの利用・変更・再配布に関するルールを定めたものです。
プロジェクトにOSSを使うときは、ライセンスの内容を守る義務があります。

## Java系のライセンス

私は開発言語の中で `Java` の経験が長いですが、ライセンスについては詳しくないです。
「Classpath例外」の話は何となく聞いた事がある程度です。

### Java（OpenJDK）

- 主なライセンス：GPL v2 + Classpath Exception
- 商用利用：OK
- 特徴：クラスパス例外により商用アプリでも問題なし

### Spring Framework (Java)

- 主なライセンス：Apache License 2.0
- 備考：商用でも安心

#### Classpath Exception

GPLライセンスの“強いコピーレフト”の影響を回避するための特例条項。

- 背景：GPLライセンスは「改変したら全部公開」しないといけない
  - GPLソフトウェアを使ってプログラムを開発し、それを配布する場合、あなたのプログラムのソースコードも公開しなければならない
- 問題：JDK（Java開発キット）がGPLだと…？
  - OpenJDK を使ってビルドしたアプリを配布したら、そのアプリのソースコードも公開義務がある（！）
- 解決：Classpath Exception の登場
  - 「OpenJDK のライブラリ（java.*, javax.*など）を クラスパスに含めるだけ なら、GPLのソース公開義務を適用しません」


## 有名なソフトウェアライセンス

| ライセンス          | 商用利用 | ソース公開義務      | 改変再配布の制限 | 特許保護   | 備考           |
| -------------- | ---- | ------------ | -------- | ------ | ------------ |
| **MIT**        | OK   | なし（著作権表示のみ）  | なし       | なし     | 超シンプル        |
| **Apache 2.0** | OK   | なし（著作権・変更明示） | なし       | **あり** | 特許保護が強い      |
| **GPL**        | OK   | **あり（すべて）**  | 強い       | なし     | OSSの理想主義     |
| **LGPL**       | OK   | 一部（ライブラリ部分）  | 中程度      | なし     | 動的リンクならOK    |
| **BSD**        | OK   | なし（著作権表示）    | なし       | なし     | MITに似ている     |
| **MPL**        | OK   | **改変ファイルのみ** | 緩い       | なし     | 中間的な立場       |
| **EPL**        | OK   | **改変ファイルのみ** | 緩い       | **あり** | Eclipse系で使用多 |

### MITライセンス（MIT License）

#### 特徴

- 超シンプル＆ゆるいライセンス
- 商用利用、改変、再配布すべてOK
- ライセンス表記（著作権表示）さえ残せば自由に使える

#### 条件

- オリジナルの著作権表記とライセンス文を残すこと

#### 保証はない

- 「このソフトを使って問題が起きても責任持ちませんよ」という免責も明記されている

#### 向いている用途

- OSSライブラリ（特にJavaScript系などに多い）
- 商用アプリやクローズドな社内システムにも安心して使える

### Apache License 2.0

#### 特徴

- MITより少し厳しめ、でも商用利用OK
- 特許（patent）に関する保護が明記されている
- 改変部分を明示する必要がある（modified files must be marked）

#### 条件

- 著作権表示とライセンス文の保持
- 改変した箇所がある場合、それを明示
- 特許権の使用を許諾する（ライセンスに含まれている）

#### 向いている用途

- 法務的に慎重な企業でも安心して使える
- 特許トラブルを避けたい中～大規模プロジェクト

### GPL（GNU General Public License）

#### 特徴

- コピーレフト（Copyleft）：派生物にもGPLを適用する必要がある
- 自由に使えるが、改変して配布する場合はソースコードの公開義務がある
- 商用利用は可能だが、利用者にソースを開示する義務があるため、商用プロダクトに組み込みづらいことも

#### 向いている場面

- OSSの精神を守りたいとき
- 他人のコードが自分の改変によってクローズドになってほしくないとき

#### 注意点

- 自分のアプリに組み込んで配布する場合、自分のコードもGPL化される必要がある
- 組み込みがライブラリ形式（静的リンク）だとGPL義務が及ぶことがある

### LGPL（Lesser GPL）

#### 特徴

- GPLの「やや緩め」バージョン
- ライブラリがLGPLでも、そのライブラリを動的リンク（DLLや.so）で使用する場合は、アプリ全体をGPLにする必要はない

#### 向いている場面

- OSSライブラリを使ってクローズドなアプリを作りたい場合
- GPLほど強制力はいらないけど、改変されたライブラリ自体は公開してほしい場合

#### 注意点

- 静的リンクで使用した場合はGPLと同じく公開義務が発生する可能性あり

### BSDライセンス（2条項 or 3条項）

#### 特徴

- MITに非常に似ており、シンプルで商用利用にも寛容
- 「著作権表示」「免責の明記」などの基本ルールのみ
- 3条項BSDは「開発者名を広告などに使わない」旨が含まれる

#### 向いている場面

- MITとほぼ同様。特許を気にしない場合に気軽に使える

### まとめ

- 完全自由でシンプルにしたい → MIT / BSD
- 企業利用も安心、安全に → Apache 2.0 / EPL
- OSSとしての自由・共有を守りたい → GPL / LGPL
- 部分的にOSS化したい → MPL / EPL

## ライセンス利用

### プログラミング言語のライセンス一覧

| 言語                | 主なライセンス                      | 商用利用 | 特徴                           |
| ----------------- | ---------------------------- | ---- | ---------------------------- |
| **Python**        | PSF License（MITベース）          | ✅OK  | 非常に自由度が高い                    |
| **Java（OpenJDK）** | GPL v2 + Classpath Exception | ✅OK  | クラスパス例外により商用アプリでも問題なし        |
| **C / C++**       | 多数（GCCはGPL + 例外）             | ✅OK  | 実装ごとに異なる（例：ClangはApache 2.0） |
| **Go**            | BSD-3-Clause                 | ✅OK  | Googleが開発、非常に寛容なライセンス        |
| **Rust**          | MIT or Apache 2.0（二重ライセンス）   | ✅OK  | 商用でも安心して利用可能                 |
| **Ruby**          | BSD or GPL（二重ライセンス）          | ✅OK  | 柔軟に選択できる                     |
| **PHP**           | PHP License（MIT類似）           | ✅OK  | Apacheに似た独自ライセンス             |
| **JavaScript**    | 実装による（例：V8 → BSD）            | ✅OK  | 多くがMITまたはBSD系                |
| **Swift**         | Apache 2.0                   | ✅OK  | Apple公式、特許保護あり               |

### フレームワーク・ライブラリのライセンス一覧

| フレームワーク/ライブラリ               | 主なライセンス            | 備考                   |
| --------------------------- | ------------------ | -------------------- |
| **Spring Framework (Java)** | Apache License 2.0 | 商用でも安心               |
| **React (Meta/Facebook)**   | MIT License        | 過去は特許条項あり→現在はMITに変更済 |
| **Vue.js**                  | MIT License        | 業務利用にも最適             |
| **Angular (Google)**        | MIT License        | エンタープライズ利用にも安心       |
| **Django (Python)**         | BSD License        | 柔軟で企業でも使いやすい         |
| **Flask (Python)**          | BSD License        | 軽量Webフレームワーク         |
| **Express (Node.js)**       | MIT License        | Node.jsで最も有名なFW      |
| **TensorFlow (Google)**     | Apache License 2.0 | AI/MLライブラリ、商用利用可     |
| **PyTorch (Meta)**          | BSD License        | 学術・商用ともに広く使用         |
| **Bootstrap (CSS/JS)**      | MIT License        | デザイン系で広く使われる         |
| **jQuery**                  | MIT License        | 歴史あるJSライブラリ          |

### モバイル系フレームワーク

| フレームワーク                 | 主なライセンス                          | 備考                 |
| ----------------------- | -------------------------------- | ------------------ |
| **Flutter (Google)**    | BSD License                      | 商用利用・改変OK          |
| **React Native (Meta)** | MIT License                      | スマホアプリ開発にも安心       |
| **SwiftUI**             | Apple製（ライセンス未公開、使用にAppleの規約が関わる） | App Store経由で商用利用前提 |

### クラウド＆インフラ関連OSS

| ソフトウェア         | ライセンス                 | 備考                  |
| -------------- | --------------------- | ------------------- |
| **Docker**     | Apache License 2.0    | 商用利用OK              |
| **Kubernetes** | Apache License 2.0    | Google発、クラウドネイティブ   |
| **Terraform**  | MPL v2（以前はMPL、今はBSL※） | 商用利用可（ただし改変には注意）    |
| **Ansible**    | GPL v3                | ソース公開要注意（配布しない限りOK） |

### まとめ：商用で安心して使いたいなら？

| ライセンス                  | 商用利用          | OSSとしての強さ | 備考            |
| ---------------------- | ------------- | --------- | ------------- |
| **MIT / BSD / Apache** | ✅ 非常に使いやすい    | 🟢        | 柔軟で企業向けに最適    |
| **GPL / AGPL**         | ⚠️ 要注意        | 🔴        | 配布するならソース公開義務 |
| **MPL / EPL**          | ⚠️ 一部ファイル公開あり | 🟡        | 中間タイプ（柔軟性あり）  |


## おわりに

OSSライセンスって、難しそうで後回しにされがち。
でも、MITみたいな「自由に使っていいよ！」から、GPLの「ちゃんと公開してね！」、Apacheの「特許もOK！」まで、それぞれのルールには理由があります。
Classpath Exception のように、「このままだと使いづらいから、ちょっと緩めよう」なんて工夫もされてるんです。
結局のところ、OSSライセンスって、エンジニア同士の信頼で成り立ってるルールなんだなと思いました。

---

**参考（感謝）**

- AIに聞きました