許可・条件・制限の一覧
条件
- 著作権・ライセンス表示配布時にライセンスの写しと著作権表示を含めなければならない。
- ソース公開配布時にソースコードを提供しなければならない。
- 変更点の明示原本を改変した場合はその旨を示さなければならない。
- 同一ライセンス(ライブラリ単位)ライブラリの改変部分は同じライセンスでなければならないが、それを利用するプログラムには適用されない場合がある。
制限
- 責任の制限損害について責任を負わないことを明示する。
- 無保証いかなる保証もしないことを明示する。
許可・条件・制限の分類の出典: choosealicense.com(GitHub、MIT ライセンス)のデータ。
どんなライセンスか
LGPL(GNU Lesser General Public License)3.0 は、GPL-3.0 と同じ日(2007年6月29日)に公開されたライブラリ用のライセンスです。独立した完全な文書ではなく GPL-3.0 に追加の許可を加えた形なので、原文も「GPL 第3版の条件に、以下の追加の許可を加える」という趣旨で始まります。核心となる追加の許可は、このライブラリを利用するプログラム(Combined Work)を自分の望む条件で配布できるようにすることです。ライブラリ自体を改変した部分は、引き続き LGPL(または GPL)で公開する必要があります。Qt(LGPL-3.0・GPL・商用から選択)が代表的な例です。
ライブラリを利用するプログラムを配布するとき(第4条)
- プログラムで LGPL ライブラリが使われていて、LGPL が適用されることを目立つ形で知らせます。
- GPL-3.0 と LGPL-3.0 の写しを一緒に提供します。
- 利用者がライブラリを改変した版に差し替えられるようにします。通常は動的リンク(共有ライブラリ)を使えば満たされ、静的リンクの場合は再リンクできるオブジェクトファイルなどを提供する必要があります。
- そのような改変をデバッグするためのリバースエンジニアリングを禁止する条件を課すことはできません。
- ライブラリ部分の対応するソースを提供し、ユーザー製品であれば GPL-3.0 第6条のインストール情報も提供します。
よくある誤解
- 「LGPL ライブラリを使うとアプリのソースも公開しなければならない」 — 違います。上記の条件さえ守れば、アプリは非公開にできます。公開義務はライブラリ自体の改変部分にあります。
- 「静的リンクは絶対に禁止」 — 禁止ではありません。ただし、利用者がライブラリを差し替えて再リンクできるようオブジェクトファイルなどを提供する必要があるため、手間がかかります。
- 「LGPL-3.0 は GPL-2.0 のプロジェクトで使える」 — GPL-2.0-only とは互換性がありません。結合するには、プロジェクトを GPL-3.0 で配布できる必要があります。
適用方法
慣例として、GPL-3.0 の原文を COPYING、LGPL-3.0 の原文を COPYING.LESSER として一緒に置きます(生成ツールが両方のファイルを提供します)。各ソースファイルには、GNU の告知文の「General Public License」を「Lesser General Public License」に置き換えた文言を使います。SPDX 識別子は LGPL-3.0-only または LGPL-3.0-or-later です。
こんな場合に向いている
クローズドなアプリでも広く使われることを望みつつ、ライブラリ自体を改良した成果は公開されることを望むライブラリに合います。ファイル単位でよりシンプルな弱いコピーレフトを望むなら、MPL-2.0 も比べてみてください。比較は寛容型 vs コピーレフトガイドにまとめてあります。
LGPL-3.0 のコードを他のプロジェクトに組み込めるか?
このライセンスで公開されたコードを取り込み、下記ライセンスのプロジェクトに組み合わせて配布する場合の一般的な判定です。 互換性チェッカーで他の組み合わせを見る →
| 組み込み先のプロジェクト | 判定 | メモ |
|---|---|---|
| 非公開(商用)ソフトウェア | 条件付きで可能 | ライブラリとしてリンクして使うことは可能ですが、利用者が LGPL 部分を差し替え・再リンクできるようにし、LGPL 部分のソースを提供する必要があります。コードをコピーして混ぜると、結合物全体が (L)GPL の条件に従う必要があります。 |
| MIT | 条件付きで可能 | ライブラリとしてリンクして使うことは可能ですが、利用者が LGPL 部分を差し替え・再リンクできるようにし、LGPL 部分のソースを提供する必要があります。コードをコピーして混ぜると、結合物全体が (L)GPL の条件に従う必要があります。 |
| Apache-2.0 | 条件付きで可能 | ライブラリとしてリンクして使うことは可能ですが、利用者が LGPL 部分を差し替え・再リンクできるようにし、LGPL 部分のソースを提供する必要があります。コードをコピーして混ぜると、結合物全体が (L)GPL の条件に従う必要があります。 |
| MPL-2.0 | 条件付きで可能 | ライブラリとしてリンクして使うことは可能ですが、利用者が LGPL 部分を差し替え・再リンクできるようにし、LGPL 部分のソースを提供する必要があります。コードをコピーして混ぜると、結合物全体が (L)GPL の条件に従う必要があります。 |
| LGPL-2.1 | 条件付きで可能 | 結合物は GPL-3.0 の条件で配布する必要があります。 |
| GPL-2.0 | 不可 | バージョン3.0のコードは GPL-2.0(only)の条件と両立しないため、組み込めません。 |
| GPL-3.0 | 可能 | LGPL-3.0 は GPL-3.0 に追加の許可を加えたものなので、GPL-3.0 の結合物では追加の許可を無視すればよいです。 |
| AGPL-3.0 | 可能 | LGPL-3.0 は GPL-3.0 に追加の許可を加えたものなので、GPL-3.0 の結合物では追加の許可を無視すればよいです。 GPL-3.0 と AGPL-3.0 はそれぞれの第13条で結合を認めています。結合物でも AGPL 部分のネットワーク経由のソース提供義務は残ります。 |
このサイトの内容は一般的な情報であり、法的助言ではありません。実際の配布・契約・紛争に関する判断は、弁護士などの専門家にご相談ください。