弱いコピーレフト

Mozilla Public License 2.0

改変した MPL ファイルだけを公開すればよく、残りのコードはどんなライセンスでも使えるファイル単位のコピーレフト。GPL とも結合できる。

SPDXMPL-2.0

許可・条件・制限の一覧

許可

  • 商用利用原本と派生物を商用目的で利用できる。
  • 改変コードを改変できる。
  • 配布コードを配布できる。
  • 特許の利用貢献者が特許の実施権を明示的に許諾する。
  • 私的利用公開せずに内部で利用・改変できる。

条件

  • ソース公開配布時にソースコードを提供しなければならない。
  • 著作権・ライセンス表示配布時にライセンスの写しと著作権表示を含めなければならない。
  • 同一ライセンス(ファイル単位)既存ファイルを改変した部分は同じライセンスで配布しなければならない。

制限

  • 責任の制限損害について責任を負わないことを明示する。
  • 商標の使用商標権を許諾しないことを明示する。
  • 無保証いかなる保証もしないことを明示する。

許可・条件・制限の分類の出典: choosealicense.com(GitHub、MIT ライセンス)のデータ。

どんなライセンスか

MPL 2.0 は Mozilla 財団が2012年1月に公開しました。Firefox・Thunderbird などの Mozilla 製品が採用しており、コピーレフトの範囲をファイル単位にしたことが特徴です。MPL が適用されたファイル(およびそのファイルを改変した部分)は MPL でソースを公開する必要がありますが、新しく書いた別ファイルは他のライセンスにでき、MPL のコードと組み合わせた「Larger Work」(第3.3条)全体は任意の条件で配布できます。明示的な特許許諾と、特許訴訟時に許諾が終了する条項もあります。

配布時に守るべきこと

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 で改善されました。

よくある誤解

適用方法

原文を 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)を付けている場合は不可です。

このサイトの内容は一般的な情報であり、法的助言ではありません。実際の配布・契約・紛争に関する判断は、弁護士などの専門家にご相談ください。