許可・条件・制限の一覧
条件
- ソース公開配布時にソースコードを提供しなければならない。
- 著作権・ライセンス表示配布時にライセンスの写しと著作権表示を含めなければならない。
- 同一ライセンス(ファイル単位)既存ファイルを改変した部分は同じライセンスで配布しなければならない。
制限
- 責任の制限損害について責任を負わないことを明示する。
- 商標の使用商標権を許諾しないことを明示する。
- 無保証いかなる保証もしないことを明示する。
許可・条件・制限の分類の出典: choosealicense.com(GitHub、MIT ライセンス)のデータ。
どんなライセンスか
MPL 2.0 は Mozilla 財団が2012年1月に公開しました。Firefox・Thunderbird などの Mozilla 製品が採用しており、コピーレフトの範囲をファイル単位にしたことが特徴です。MPL が適用されたファイル(およびそのファイルを改変した部分)は MPL でソースを公開する必要がありますが、新しく書いた別ファイルは他のライセンスにでき、MPL のコードと組み合わせた「Larger Work」(第3.3条)全体は任意の条件で配布できます。明示的な特許許諾と、特許訴訟時に許諾が終了する条項もあります。
配布時に守るべきこと
- 実行ファイルで配布する場合は、MPL が適用されたファイルのソースを入手する方法を知らせます(第3.2条)。
- MPL ファイルのライセンス表示を削除・変更しません。
- MPL ファイルを改変した場合は、そのファイルを引き続き MPL-2.0 で配布します。
Secondary License と GPL との互換性
MPL-2.0 第1.12条は、GPL-2.0・LGPL-2.1・AGPL-3.0 とそれ以降の版を「Secondary License」と定義しています。第3.3条により、MPL のコードと GNU ライセンスのコードを結合した Larger Work は GNU ライセンスで配布できます。ただし、原著作者がファイルに Exhibit B(「Incompatible With Secondary Licenses」) の表示を付けている場合、この互換性は適用されません。MPL-1.1 にはこのような仕組みがなく GPL と互換性がありませんでしたが、2.0 で改善されました。
よくある誤解
- 「MPL のライブラリを使うと自分のアプリも MPL になる」 — 違います。自分で新しく作ったファイルは MPL でなくても構いません。
- 「MPL は GPL と混ぜられない」 — 2.0 からは Exhibit B がない限り可能です。
- 「MPL ファイルをコピーして自分のファイルに貼り付けても、自分のファイルは自由」 — MPL のコードを移して貼り付けた部分は引き続き MPL です。ファイルの境界がそのまま義務の境界になるので、コードを混ぜずにファイルとして分けるのが安全です。
適用方法
原文を LICENSE に置き、各ソースファイルの先頭に Exhibit A の告知文(「This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…」)を付けることが推奨されます。ファイルに入れるのが難しい場合は、該当ディレクトリの LICENSE ファイルのように、受領者が見つけやすい場所に置いても構いません。SPDX 識別子は MPL-2.0(Exhibit B がある場合は MPL-2.0-no-copyleft-exception)です。
こんな場合に向いている
ライブラリやエンジン自体の改良は還元してほしいが、それを使う製品のライセンスは制約したくない、というときの良い折衷案です。LGPL より条件がシンプルで、静的リンクの問題もありません。HashiCorp が2023年に Terraform を MPL-2.0 から BUSL に変更した際、コミュニティが MPL-2.0 版を OpenTofu としてフォークした事例もあります。
MPL-2.0 のコードを他のプロジェクトに組み込めるか?
このライセンスで公開されたコードを取り込み、下記ライセンスのプロジェクトに組み合わせて配布する場合の一般的な判定です。 互換性チェッカーで他の組み合わせを見る →
| 組み込み先のプロジェクト | 判定 | メモ |
|---|---|---|
| 非公開(商用)ソフトウェア | 条件付きで可能 | MPL のファイルはファイル単位で MPL-2.0 を維持し、それらのファイルのソースを提供する必要があります。残りのコードは別のライセンスにできます。 |
| MIT | 条件付きで可能 | MPL のファイルはファイル単位で MPL-2.0 を維持し、それらのファイルのソースを提供する必要があります。残りのコードは別のライセンスにできます。 |
| Apache-2.0 | 条件付きで可能 | MPL のファイルはファイル単位で MPL-2.0 を維持し、それらのファイルのソースを提供する必要があります。残りのコードは別のライセンスにできます。 |
| LGPL-2.1 | 条件付きで可能 | MPL-2.0 は GPL-2.0 以降・LGPL-2.1 以降・AGPL-3.0 以降を「Secondary License」として認めており、結合物を GNU ライセンスで配布できます。ただし原著作者が「Incompatible With Secondary Licenses」(Exhibit B)を付けている場合は不可です。 |
| LGPL-3.0 | 条件付きで可能 | MPL-2.0 は GPL-2.0 以降・LGPL-2.1 以降・AGPL-3.0 以降を「Secondary License」として認めており、結合物を GNU ライセンスで配布できます。ただし原著作者が「Incompatible With Secondary Licenses」(Exhibit B)を付けている場合は不可です。 |
| GPL-2.0 | 条件付きで可能 | MPL-2.0 は GPL-2.0 以降・LGPL-2.1 以降・AGPL-3.0 以降を「Secondary License」として認めており、結合物を GNU ライセンスで配布できます。ただし原著作者が「Incompatible With Secondary Licenses」(Exhibit B)を付けている場合は不可です。 |
| GPL-3.0 | 条件付きで可能 | MPL-2.0 は GPL-2.0 以降・LGPL-2.1 以降・AGPL-3.0 以降を「Secondary License」として認めており、結合物を GNU ライセンスで配布できます。ただし原著作者が「Incompatible With Secondary Licenses」(Exhibit B)を付けている場合は不可です。 |
| AGPL-3.0 | 条件付きで可能 | MPL-2.0 は GPL-2.0 以降・LGPL-2.1 以降・AGPL-3.0 以降を「Secondary License」として認めており、結合物を GNU ライセンスで配布できます。ただし原著作者が「Incompatible With Secondary Licenses」(Exhibit B)を付けている場合は不可です。 |
このサイトの内容は一般的な情報であり、法的助言ではありません。実際の配布・契約・紛争に関する判断は、弁護士などの専門家にご相談ください。