許可・条件・制限の一覧
条件
- 著作権・ライセンス表示配布時にライセンスの写しと著作権表示を含めなければならない。
- 変更点の明示原本を改変した場合はその旨を示さなければならない。
- ソース公開配布時にソースコードを提供しなければならない。
- 同一ライセンス改変版・派生物を配布する際は同じ(または互換性のある)ライセンスを使わなければならない。
制限
- 責任の制限損害について責任を負わないことを明示する。
- 無保証いかなる保証もしないことを明示する。
許可・条件・制限の分類の出典: choosealicense.com(GitHub、MIT ライセンス)のデータ。
どんなライセンスか
GPL(GNU General Public License)3.0 は、フリーソフトウェア財団(FSF)が2007年6月29日に公開しました。誰でも自由に使用・研究・改変・配布できるようにする一方で、配布するときは受け取る人にも同じ自由を保証しなければならないというコピーレフト(copyleft)の原則が核心です。このコードを含む、または結合したプログラムを配布する場合、そのプログラム全体を GPL で、対応するソースコードとともに提供しなければなりません。GNU Bash、GIMP、GNU Emacs などが GPL-3.0-or-later を採用しています。
GPL-2.0 からの変更点
- 明示的な特許許諾(第11条): 貢献者は自分の貢献部分に必要な特許の実施権を許諾します。
- インストール情報(Installation Information): 家庭用機器のような「ユーザー製品(User Product)」に GPL-3.0 のソフトウェアを組み込んで配布する場合、改変したソフトウェアをその機器にインストールするための情報(署名鍵など)も提供しなければなりません(第6条)。一般に「Tivo 化の防止」と呼ばれます。
- 違反の是正期間(第8条): 初めての違反であれば、著作権者から通知を受けた日から30日以内に是正すれば権利が回復します。GPL-2.0 では違反と同時に権利が消滅していました。
- 互換性の拡大: Apache-2.0 のコードを受け入れられ、AGPL-3.0 と結合できます(第13条)。
配布時に守るべきこと
- 対応するソース全体(ビルドスクリプトを含む)を提供するか、書面による申し出など第6条の方法のいずれかで提供します。
- 著作権・ライセンスの表示を維持し、改変した事実と日付を表示します(第5条)。
- 受け取る人に GPL が与えた権利を制限する追加条件(例: 再配布禁止の契約)を課すことはできません。
よくある誤解
- 「GPL のコードを使うと必ず公開しなければならない」 — 公開義務は配布(conveying)するときに生じます。社内だけで使う場合や、サーバー上でのみ動かす場合は、GPL-3.0 のソース提供義務は生じません。ネットワーク利用まで対象にするには AGPL-3.0 が必要です。
- 「GPL のソフトウェアは販売できない」 — 販売しても構いません。ただし、受け取った人が再配布するのを止めることはできません。
- 「GPL のプログラムの上で動く自分のプログラムも GPL になる」 — 別個のプログラムとして実行されたり、標準的な方法で通信したりする場合は、通常「集積」とみなされます。結合かどうかの判断は、リンクの方式やデータのやり取りの方式によって解釈が分かれます。
- 「GPL-3.0 と GPL-2.0 は互換性がある」 — GPL-2.0 が「or later」ではなく only であれば互換性はありません(only vs or-later ガイド)。
適用方法
LICENSE(または GNU の慣例どおり COPYING)に原文をそのまま入れ、各ソースファイルの先頭に GNU の公式告知文を付けます。このとき「or later」にするかどうかを告知文で決めます。SPDX 識別子は GPL-3.0-only または GPL-3.0-or-later を使います(単なる GPL-3.0 は SPDX で廃止された識別子)。
こんな場合に向いている
自分のコードを基にした改良がクローズドな製品に流れていかず、みんなに還元されることを望むアプリケーション、ツール、コミュニティプロジェクトに合います。ライブラリであれば、クローズドなアプリが使えるよう LGPL-3.0 もあわせて検討します。
GPL-3.0 のコードを他のプロジェクトに組み込めるか?
このライセンスで公開されたコードを取り込み、下記ライセンスのプロジェクトに組み合わせて配布する場合の一般的な判定です。 互換性チェッカーで他の組み合わせを見る →
| 組み込み先のプロジェクト | 判定 | メモ |
|---|---|---|
| 非公開(商用)ソフトウェア | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| MIT | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| Apache-2.0 | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| MPL-2.0 | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| LGPL-2.1 | 条件付きで可能 | 結合物は GPL-3.0 の条件で配布する必要があります。 |
| LGPL-3.0 | 条件付きで可能 | 結合物は GPL-3.0 の条件で配布する必要があります。 |
| GPL-2.0 | 不可 | バージョン3.0のコードは GPL-2.0(only)の条件と両立しないため、組み込めません。 |
| AGPL-3.0 | 可能 | GPL-3.0 と AGPL-3.0 はそれぞれの第13条で結合を認めています。結合物でも AGPL 部分のネットワーク経由のソース提供義務は残ります。 |
このサイトの内容は一般的な情報であり、法的助言ではありません。実際の配布・契約・紛争に関する判断は、弁護士などの専門家にご相談ください。