許可・条件・制限の一覧
条件
- 著作権・ライセンス表示配布時にライセンスの写しと著作権表示を含めなければならない。
- 変更点の明示原本を改変した場合はその旨を示さなければならない。
- ソース公開配布時にソースコードを提供しなければならない。
- 同一ライセンス改変版・派生物を配布する際は同じ(または互換性のある)ライセンスを使わなければならない。
制限
- 責任の制限損害について責任を負わないことを明示する。
- 無保証いかなる保証もしないことを明示する。
許可・条件・制限の分類の出典: choosealicense.com(GitHub、MIT ライセンス)のデータ。
どんなライセンスか
GPL-2.0 は、FSF が1991年6月に公開した GPL の第2版です。コピーレフトの原則は GPL-3.0 と同じで、このコードを含む、または結合したプログラムを配布する場合は、全体を GPL-2.0 でソースとともに提供しなければなりません。Linux カーネル(GPL-2.0-only、一部のヘッダーに syscall 例外)、Git(GPL-2.0-only)、WordPress(GPL-2.0-or-later)が代表的な例です。
only と or-later
GPL-2.0 を使うプロジェクトは、通常どちらか一方を選びます。
- GPL-2.0-only: この版の条件でのみ配布できます。Linux カーネルがこの方式なので、GPL-3.0 に移行できません。
- GPL-2.0-or-later: 受け取る人が 2.0 または FSF が公開した以降の版(3.0 など)を選んで使えます。GPL 原文の推奨告知文はこの方式です。
原文第9条は、バージョン番号を指定していないプログラムであれば、FSF が公開したどの版でも選べると定めています。そのため、どちらなのかをファイルヘッダーや SPDX 識別子で明確にすることが重要です(ガイド)。
配布時に守るべきこと
- ソースコードを一緒に提供するか、少なくとも3年間有効な書面による申し出で提供します(第3条)。
- 著作権表示と無保証の文言、ライセンスの写しを維持します(第1条)。
- 改変したファイルには変更した旨と日付を表示します(第2条 a)。
- 受け取る人の権利に追加の制限を課すことはできません(第6条)。特許の合意などで GPL の条件を守れなくなった場合は、配布そのものができません(第7条)。
よくある誤解
- 「GPL-2.0 と GPL-3.0 は同じ GPL なので混ぜてもよい」 — GPL-2.0-only のコードと GPL-3.0 のコードは結合して配布できません。どちらかが「or later」である必要があります。
- 「Apache-2.0 のコードも入れられる」 — FSF は Apache-2.0 が GPL-2.0 と互換性がないと見ています。「or later」のプロジェクトであれば、GPL-3.0 で配布することで解決できます。
- 「特許条項がないので特許を行使してもよい」 — 明示的な特許許諾はありませんが、第7条と前文は特許によって自由を制限する配布を防ぐ趣旨を含んでいます。解釈は分かれるので、特許が重要な場合は GPL-3.0 を検討します。
適用方法
原文を LICENSE または COPYING にそのまま置き、各ファイルに公式告知文を付けます。告知文の「either version 2 of the License, or (at your option) any later version」という文を残せば or-later、削れば only です。SPDX 識別子は GPL-2.0-only / GPL-2.0-or-later を使います。
こんな場合に向いている
Linux カーネルモジュールのように、GPL-2.0-only のエコシステムとコードをやり取りする必要があるプロジェクトに必要です。新しいプロジェクトで強いコピーレフトが目的なら、特許条項と互換性が改善された GPL-3.0 や「GPL-2.0-or-later」のほうが柔軟です。
GPL-2.0 のコードを他のプロジェクトに組み込めるか?
このライセンスで公開されたコードを取り込み、下記ライセンスのプロジェクトに組み合わせて配布する場合の一般的な判定です。 互換性チェッカーで他の組み合わせを見る →
| 組み込み先のプロジェクト | 判定 | メモ |
|---|---|---|
| 非公開(商用)ソフトウェア | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| MIT | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| Apache-2.0 | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| MPL-2.0 | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| LGPL-2.1 | 条件付きで可能 | LGPL-2.1 は GPL への切り替えを認めているため、結合物を GPL-2.0-only で配布する場合に限り可能です。 |
| LGPL-3.0 | 不可 | GPL-2.0-only のコードは GPL-3.0・LGPL-3.0・AGPL-3.0 の追加条件と両立しません。 |
| GPL-3.0 | 不可 | GPL-2.0-only のコードは GPL-3.0・LGPL-3.0・AGPL-3.0 の追加条件と両立しません。 |
| AGPL-3.0 | 不可 | GPL-2.0-only のコードは GPL-3.0・LGPL-3.0・AGPL-3.0 の追加条件と両立しません。 |
このサイトの内容は一般的な情報であり、法的助言ではありません。実際の配布・契約・紛争に関する判断は、弁護士などの専門家にご相談ください。