MIT・Apache・GPL・BSDライセンスの違い

## 1. はじめに  
ソフトウェア開発では、オープンソースライセンスのライブラリやコードを利用することが一般的です。特に有名なライセンスとして **MITライセンス**、**Apacheライセンス**、**GPLライセンス**、**BSDライセンス** があります。「自由に使える」と思いがちですが、それぞれルールや義務が異なります、特に表記についてコメントしておきます。

---

## 2. ライセンスごとの特徴・ビジネス事例・表記例  

### **2.1 MITライセンス**  
#### 特徴  
- **利用、複製、変更、再配布が自由**  
- 商用利用も可能  
- **著作権表示** を残せばOK  

#### ビジネス事例  
- **React**（Meta社）：MITライセンスの代表例で、多くの企業が商用利用しています。  
- **jQuery**：Web開発で広く利用されています。  

#### 表記例  
```text
This software includes the following MIT-licensed component(s):

[ライブラリ名] - [ライブラリの説明]  
Copyright (c) [著作権者名]  
Licensed under the MIT License.  
[MITライセンス全文]
```

---

### **2.2 Apacheライセンス**  
#### 特徴  
- **利用、複製、変更、再配布が自由**  
- 商用利用も可能  
- **著作権表示** と **変更の通知** が必要  
- **ライセンス全文の配布** が必須  

#### ビジネス事例  
- **Android OS**：GoogleのAndroid OSはApacheライセンスベースです。  
- **Hadoop**：大規模データ処理で使われるフレームワークです。

#### 表記例（変更を加えた場合）  
```text
This software includes modified versions of the following Apache-licensed component(s):

[ライブラリ名]  
Copyright (c) [著作権者名]  
Modifications made by [あなたの会社名]  
Licensed under the Apache License, Version 2.0  
http://www.apache.org/licenses/LICENSE-2.0  
```

---

### **2.3 GPLライセンス（GNU General Public License）**  
#### 特徴  
- **ソースコードの公開義務** があるライセンスです。  
- 派生物もGPLライセンスで公開する必要があります。

#### ビジネス事例  
- **Linux OS**：LinuxカーネルはGPLライセンスです。  
- **MySQL**：GPLライセンスと商用ライセンスのデュアルライセンスです。

#### 表記例  
```text
This software is licensed under the GNU General Public License, version 3.  
Copyright (c) [著作権者名]  
Full license text: https://www.gnu.org/licenses/gpl-3.0.en.html  
```

---

### **2.4 BSDライセンス**  
#### 特徴  
- **利用、複製、変更、再配布が自由**  
- 商用利用も可能  
- **著作権表示** と **免責条項** が必須  

#### ビジネス事例  
- **FreeBSD**：macOSやPlayStation OSに採用されています。  
- **OpenSSH**：セキュアな通信を提供するソフトウェアです。

#### 表記例  
```text
Redistribution and use in source and binary forms, with or without modification,  
are permitted provided that the following conditions are met:

[BSDライセンス全文]
```

---

## 3. 用語解説  

### **3.1 オープンソースライセンス**  
ソースコードが公開され、誰でも利用・変更・配布できるようにするためのライセンスです。

### **3.2 パーミッシブライセンス**  
利用者への制限が少なく、著作権表示のみ必要です。代表例：**MITライセンス**、**BSDライセンス**。

### **3.3 コピーレフト**  
派生物も同じライセンスで公開する義務があります。代表例：**GPLライセンス**。

### **3.4 準コピーレフト**  
部分的なソースコード公開を義務付けるライセンスです。代表例：**LGPL（GNU Lesser GPL）**。  
- **ライブラリ改変時**：改変部分のソースコードを公開。  
- **リンク利用時**：ソースコード公開は不要。

### **3.5 変更の通知**  
Apacheライセンスで要求される要件で、改変内容や変更者を明示する義務です。

---

## 4. ライセンスの相互互換性  

| 使用ライセンス          | 互換性のあるライセンス              | 注意点                                   |  
|-------------------------|------------------------------------|-----------------------------------------|  
| **MITライセンス**       | Apache、BSD、GPL                   | 互換性が高い                             |  
| **Apacheライセンス**    | MIT、BSD                          | GPLとは一方向の互換性（Apache → GPL）   |  
| **GPLライセンス**       | 他のGPLライセンス                 | 派生物もGPLライセンスで公開が必要       |  
| **BSDライセンス**       | MIT、Apache、GPL                  | 免責条項を含み、互換性が高い            |  
| **LGPLライセンス**      | MIT、BSD、Apache                  | 改変時はソースコード公開が必要           |  

---

## 5. ライブラリのライセンス表記の調査方法  

### **5.1 GitHubリポジトリで確認**  
- LICENSEファイルや「License」表示を確認、おおかたこれでで対応可能だが、`最新バージョンとは限らないので利用するバージョンのブランチを見るべし。`
### **5.2 パッケージ管理ツールで確認**  
- **npm（Node.js）**：  
   ```bash
   npm view [ライブラリ名] license
   ```
- **pip（Python）**：  
   ```bash
   pip show [ライブラリ名]
   ```

### **5.3 ライセンス確認ツールを活用**  
- **LicenseFinder**：依存ライブラリのライセンス確認  
- **FOSSology**：ライセンス解析  
- **Black Duck**：ライセンス違反検出  

---

## 6. まとめ  
オープンソースライセンスを理解し、以下を守る。  

- **MITライセンス**：著作権表示のみ必要  
- **Apacheライセンス**：変更通知とライセンス全文の配布が必要  
- **GPLライセンス**：派生物のソースコード公開が必要  
- **LGPLライセンス**：改変部分のみ公開  
- **BSDライセンス**：免責条項付きの柔軟なライセンス