1. はじめに
ソフトウェア開発では、オープンソースライセンスのライブラリやコードを利用することが一般的です。特に有名なライセンスとして MITライセンス、Apacheライセンス、GPLライセンス、BSDライセンス があります。「自由に使える」と思いがちですが、それぞれルールや義務が異なります、特に表記についてコメントしておきます。
2. ライセンスごとの特徴・ビジネス事例・表記例
2.1 MITライセンス
特徴
- 利用、複製、変更、再配布が自由
- 商用利用も可能
- 著作権表示 を残せばOK
ビジネス事例
- React(Meta社):MITライセンスの代表例で、多くの企業が商用利用しています。
- jQuery:Web開発で広く利用されています。
表記例
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:大規模データ処理で使われるフレームワークです。
表記例(変更を加えた場合)
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ライセンスと商用ライセンスのデュアルライセンスです。
表記例
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:セキュアな通信を提供するソフトウェアです。
表記例
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):
npm view [ライブラリ名] license
-
pip(Python):
pip show [ライブラリ名]
5.3 ライセンス確認ツールを活用
- LicenseFinder:依存ライブラリのライセンス確認
- FOSSology:ライセンス解析
- Black Duck:ライセンス違反検出
6. まとめ
オープンソースライセンスを理解し、以下を守る。
- MITライセンス:著作権表示のみ必要
- Apacheライセンス:変更通知とライセンス全文の配布が必要
- GPLライセンス:派生物のソースコード公開が必要
- LGPLライセンス:改変部分のみ公開
- BSDライセンス:免責条項付きの柔軟なライセンス