許可・条件・制限の一覧
条件
- 著作権・ライセンス表示配布時にライセンスの写しと著作権表示を含めなければならない。
- 変更点の明示原本を改変した場合はその旨を示さなければならない。
- ソース公開配布時にソースコードを提供しなければならない。
- ネットワーク利用も配布とみなすネットワーク経由で利用するユーザーにもソースを受け取る権利がある。
- 同一ライセンス改変版・派生物を配布する際は同じ(または互換性のある)ライセンスを使わなければならない。
制限
- 責任の制限損害について責任を負わないことを明示する。
- 無保証いかなる保証もしないことを明示する。
許可・条件・制限の分類の出典: choosealicense.com(GitHub、MIT ライセンス)のデータ。
どんなライセンスか
AGPL-3.0 は FSF が2007年11月に公開しました。本文は GPL-3.0 とほぼ同じで、第13条「リモートネットワーク経由の相互作用」が異なります。GPL ではプログラムを「配布」するときにだけソース提供義務が生じるため、改変した GPL ソフトウェアをサーバー上でのみ動かすウェブサービスはソースを公開しなくて済みます。いわゆる「SaaS の抜け穴」です。AGPL はこの部分を埋めます。Mastodon、Nextcloud サーバー、Grafana(2021年に Apache-2.0 から移行)が AGPL-3.0 を採用しています。
第13条が求めること
プログラムを改変した場合、その改変版とコンピュータネットワークを通じてリモートで相互作用するすべての利用者に、対応するソースを受け取る機会を目立つ形で提供しなければなりません。通常はサービス画面に「ソースコード」へのリンクを置く方法で満たします。
配布時に守るべきこと
GPL-3.0 の義務(ソース提供、表示の維持、変更の明示、同一ライセンス、追加制限の禁止)がすべてそのまま適用され、そこに第13条が加わります。
よくある誤解
- 「AGPL ソフトウェアをサーバーで使うだけで自分のサービス全体を公開しなければならない」 — 第13条は改変したプログラムをネットワーク経由で提供するときに、そのプログラムのソースを求めるものです。改変していない AGPL のデータベースを別プロセスとして使うだけで自分のアプリケーション全体に義務が生じるとは考えにくい、という解釈が一般的ですが、結合の方法によって判断が変わることがあります。
- 「AGPL は商用利用を禁止している」 — 禁止していません。商用サービスでも使え、条件を守ればよいのです。
- 「AGPL はオープンソースではない」 — OSI 承認のオープンソースライセンスであり、FSF が認める自由ソフトウェアライセンスです。MongoDB が2018年に AGPL から SSPL に移行した事例のため混同されがちですが、SSPL は OSI の承認を得ていない別のライセンスです。
- 「GPL のコードと混ぜられない」 — GPL-3.0 と AGPL-3.0 は互いの第13条によって結合を認めています。結合物でも AGPL 部分のネットワーク条項は維持されます。
適用方法
原文を LICENSE にそのまま置き、各ファイルに AGPL の公式告知文を付けます。ウェブサービスであれば、利用者の画面からソースリポジトリへのリンクを提供する機能をコードに入れておくと、改変版を運営する人も第13条を守りやすくなります。SPDX 識別子は AGPL-3.0-only または AGPL-3.0-or-later です。
こんな場合に向いている
主にサーバーで動くソフトウェア(ウェブアプリケーション、コラボレーションツール、分析プラットフォーム)を公開しつつ、他社が改変版を非公開のサービスとして運営するのを防ぎたいときに使われます。商用ライセンスと併せて提供するデュアルライセンスモデルでもよく選ばれます。
AGPL-3.0 のコードを他のプロジェクトに組み込めるか?
このライセンスで公開されたコードを取り込み、下記ライセンスのプロジェクトに組み合わせて配布する場合の一般的な判定です。 互換性チェッカーで他の組み合わせを見る →
| 組み込み先のプロジェクト | 判定 | メモ |
|---|---|---|
| 非公開(商用)ソフトウェア | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| MIT | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| Apache-2.0 | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| MPL-2.0 | 不可 | 組み合わせて配布するプログラム全体を同じ GNU ライセンスでソースとともに公開する必要があるため、プロジェクトのライセンスを維持したままでは組み込めません。 |
| LGPL-2.1 | 条件付きで可能 | 結合物は GPL-3.0 の条件で配布する必要があります。 GPL-3.0 と AGPL-3.0 はそれぞれの第13条で結合を認めています。結合物でも AGPL 部分のネットワーク経由のソース提供義務は残ります。 |
| LGPL-3.0 | 条件付きで可能 | 結合物は GPL-3.0 の条件で配布する必要があります。 GPL-3.0 と AGPL-3.0 はそれぞれの第13条で結合を認めています。結合物でも AGPL 部分のネットワーク経由のソース提供義務は残ります。 |
| GPL-2.0 | 不可 | バージョン3.0のコードは GPL-2.0(only)の条件と両立しないため、組み込めません。 |
| GPL-3.0 | 条件付きで可能 | GPL-3.0 と AGPL-3.0 はそれぞれの第13条で結合を認めています。結合物でも AGPL 部分のネットワーク経由のソース提供義務は残ります。 |
このサイトの内容は一般的な情報であり、法的助言ではありません。実際の配布・契約・紛争に関する判断は、弁護士などの専門家にご相談ください。