2024 年 11 月 05 日
MIRACLE ZBX 7.0.0 から適用される AGPLv3 とは?
2024 年 6 月 4 日にリリースされた Zabbix 7.0.0 ではライセンスが GPLv2 から AGPLv3 へと変更されました。ここでは AGPLv3 の紹介と、ライセンス変更の影響を解説します。
はじめに
2024 年 6 月 4 日に Zabbix 7.0.0 がリリースされました。それにともない、このバージョン以降の Zabbix はライセンスが AGPLv3 として頒布されるようになりました。MIRACLE ZBX は Zabbix から fork して頒布しているため、MIRACLE ZBX 7.0.0 以降も同様に AGPLv3 が適用されます。この変更によってユーザーとしてなにかしなければならないのかと疑問に思うかたもいるのではないでしょうか。本稿ではこのライセンス変更の影響について解説します。
本稿はライセンスに関する話題を扱います。したがって、まずは前提知識となるオープンソースソフトウェア(OSS)ライセンスに関する基本的な考え方について説明します。そしてこれまで Zabbix で採用されていた GNU General Public License version 2(GPLv2)および 7.0.0 以降のバージョンで適用される GNU Affero General Public License version 3(AGPLv3)について説明し、両者の違いについて述べます。最後に Zabbix がライセンスを変更したことによるユーザーへの影響について解説します。
本稿の参考文献は末尾に記載しています。Web ページへのリンクの場合は、そのページを掲載している著作権者の名前とタイトルおよび閲覧日時を記載します。書籍の場合は著者名、訳者名、タイトルにくわえ出版社名と出版年を記載し、参照や引用をしたさいにはその箇所に著者名とページ番号を角括弧([])で囲って示します。
OSS ライセンスの基礎
OSS というソフトウェアの「在りかた」を実現するために、OSS は OSS ライセンスとともに頒布されています。「このソフトウェアは OSS である」と言える状態に関してなにか法律があるわけではありませんが、Open Source Initiative が『The Open Source Definition』で定義している条項を満たしていれば OSS であると主張しても差し支えないでしょう。
大雑把に OSS とはなにかを説明するならば「ソースコードの利用・改変・再頒布が可能なソフトウェア」です。そして OSS ライセンスは利用者が特定の条件に同意したときに限り、そのソフトウェアのソースコードの利用・改変・再頒布を許諾します。逆を言えば、OSS ライセンスが示す条件に同意せず OSS を利用したり再頒布したりした場合は、そのソフトウェアの著作者が持つ著作権を侵害したことになります [ 姉崎、p20]。
GPLv2 と AGPLv3 について
ここで従来 Zabbix で採用されていた GPLv2 と、今回新しく採用された AGPLv3 について説明します。
GPLv2
GPLv2 は 1991 年に Free Software Foundation(FSF)が発表したライセンスです。上田氏が述べるとおり、ライセンスが GPLv2 のソフトウェアを再頒布するさい、以下の 4 項目を遵守する必要があります [ 上田、pp.103-104]。
- OSS の頒布を受けた側が読めるかたちでライセンス文言を表記すること。
- ソースコードの開示をすること。
- ソースコードをどう入手できるか明確に表記すること。
- ソースコードの開示はその OSS の頒布を受けた側に対して最低 3 年間は継続すること。
FSF 創設者の Richard M. Stallman が「プログラムおよびそれから派生したプログラムのコードを利用、変更、再頒布する権利をすべてのユーザーに与える法的な装置」[Stallman、p144] と述べたように、GPL は著作権という枠組みを使い、ユーザーがソフトウェアを自由に扱うことができる状態を実現するために作られました。
ライセンスが GPLv2 かつそのソフトウェアが頒布されていれば、そのソースコードに対して誰もがアクセスできる権利があります。GPLv2 のソフトウェアを再頒布する条件にソースコードの開示義務があるからです。一方、GPLv2 のソースコードを改変して再頒布しておきながらソースコードを開示していない場合や、ソースコードの入手方法を明確に表記していない場合はそのソフトウェアの著作権を侵害していることになります。
以上が GPLv2 の基本的な考え方です。次に、GPL の抜け道を回避する目的で作られた AGPLv3 について紹介します。
AGPLv3
AGPLv3 は 2007 年に FSF が発表したライセンスです。内容としては GPL の改良版ととらえていいでしょう。ここでは GPLv3 との大きな違いとして「ASP ループホール」(Application Service Provider loophole)への対策について紹介します。GPLv2 から GPLv3 への変更点としては再インストール情報の開示、差別的特許の禁止、Apache ライセンスとの互換性の確保などがありますが [ 上田、pp.137-143]、ここでは AGPLv3 の話題に絞る都合上割愛します。詳細は参考文献やライセンスの原文を参照してください。
ASP ループホールへの対策
GPL のソースコード開示の強制力は、GPL でラインセスされたソフトウェアを頒布するときに効力を有します。したがって仮に GPL ライセンスのソフトウェアを改変したとしても、頒布をしていない場合にはソースコードを開示する義務はありません。
このようなシチュエーションは、Software as a Service(SaaS)のように OSS を Web サービスとしてユーザーへ提供する場合に当てはまります。たとえば GPLv2 でライセンスされた Web アプリケーションのソースコードを取得し、それを改変してサーバにホスティングし、自社の有償 Web サービスとして提供するとします。改変したソースコードをもとにビルドされたソフトウェアを第三者に頒布する場合はソースコードの開示をしなければなりません。しかし、ここでは単に Web アプリケーションとしてサービスを提供しているだけであって、ソフトウェアそのものを頒布しているわけではありません。
このような GPL のソースコード開示義務の抜け道を ASP ループホールと言います。GPL の基本理念からすれば改変を加えたソースコードも開示してほしいのにもかかわらず、ソフトウェアは頒布されていないのでそのような強制力が働きません。
AGPLv3 ではネットワーク経由でソフトウェアを利用するユーザーに対しても、要望に応じてソースコードを開示する義務が発生します。AGPLv3 はこのような条件が追加されていることで、ASP ループホールを対策しています [ 上田、pp.144-147]。
Zabbix におけるライセンス変更とその影響
GPLv2 でライセンスされたソフトウェアを再頒布する場合にはソースコードを開示しなければならないこと、ASP ループホールへ対抗するために AGPLv3 が作られたことを書いてきました。Zabbix 社がライセンスを変更したのも、ソースコードを開示させる義務の適用範囲を広げるためです。Zabbix 社が公開している資料をみていきましょう。
ライセンス変更の背景
Zabbix の開発チームは Zabbix への変更をチケットとして管理しています。チケット番号 ZBXNEXT-9168 でライセンスを AGPLv3 へ変更する背景が簡単ながら述べられているので抜粋して紹介します。
概要としてこのように述べられています。主な動機は 2 つあるようです。
Licensing policy must support fair usage of Zabbix, including SAAS usage and encouraging creating new capabilities by opening API, plugins, connectors to 3rd party development as possible.
1 つ目は Zabbix を公平に使わせたいという点です。これは SaaS ベンダによる ASP ループホールを懸念してのことでしょう。MIRACLE ZBX は Zabbix のソースコードを改変して再頒布しているので、ソースコードも SRPM のかたちで公開しています。しかし仮に MIRACLE ZBX サーバと Web フロントエンドを SaaS として提供すると、頒布はしていない以上それらへの改変箇所を公開する必要はありません。このような不公平さを解消したいというのが動機のひとつです。
2 つ目は Zabbix の API やプラグイン、コネクタ(HTTP を使ってメトリクスやイベントを外部のシステムへ送信するもの)への変更が AGPLv3 にもとづき公開されることで、それらを活用したなにかしらの第三者製ソフトウェアを開発しやすくさせたいという点です。これらのコンポーネントは Zabbix サーバ側が持っており、サーバを SaaS として提供したさいに変更を隠しやすいものです。Zabbix に対してなにか有益な機能追加があれば、Zabbix の API やプラグインなどを使ったソフトウェアもまたその機能による恩恵を受けられるということです。
ここまでで API やプラグインに関する言及がありました。これは Zabbix の機能の一部でありすべてではありませんが、一部を使うにせよライセンスの決まりの中で利用しなければなりません。つまり GPL のソースコードの一部を利用したり、関数を呼び出したりライブラリをリンクしたりするソフトウェアを再頒布したときにも、ソースコードは公開しなければなりません。Zabbix は複数のコンポーネントからなるソフトウェアですが、従来は GPLv2 の都合上その一部を使ってなにかしらのソフトウェアを SaaS を提供したとしても再頒布にはあたらずソースコードの公開義務はありませんでした。「Zabbix を SaaS として利用する」ということにはこのようなケースも含まれているわけです。
AGPLv3 になった Zabbix/MIRACLE ZBX を使っている場合どうしたらいいのか?
Zabbix 社のブログ『Striking the Right Balance: Zabbix 7.0 to be Released Under AGPLv3 License』ではコミュニティと Zabbix そのものへの影響について簡潔に説明しています。要約すると、AGPLv3 と互換性のあるライセンスで提供されている既存のプラグインなどへの影響はなく、Contributor License Agreement も変わりはなく、Zabbix という製品そのものへの影響もないということが書かれています。しかしユースケースに応じたユーザーの具体的な対応については特に言及されていません。
では実際に Zabbix/MIRACLE ZBX 7.0 を利用するユーザーはなにをすればいいのでしょうか?それはパッケージを利用しているだけなのか、ソースコードを使って Zabbix そのものを拡張していたりなにかしらのソフトウェアを開発しているのかによって変わってきます。
頒布されたパッケージをインストールし利用しているだけであれば特にするべきことはありません。Zabbix 7.0 を新規にインストールする場合でも、Zabbix 6.0 以前のバージョンからアップグレードする場合でも変わりありません。
Zabbix 7.0 のソースコードを利用・変更したソフトウェアを開発し頒布している場合も、GPL の要請どおりにソースコードを公開していればいいだけですので、他のバージョンの Zabbix に比べてもやることに変わりはありません。
Zabbix 7.0 のソースコードを利用・変更したソフトウェアを開発し、それを SaaS として提供しているユーザーは注意が必要です。Zabbix 7.0 のソースコードを利用する場合には、ライセンスが AGPLv3 になっていることによって、SaaS の利用者に対してソースコードを開示しなければならなくなる可能性があります。このようなケースに該当する方に関しては、いちど AGPLv3 の原文を法務部などと一緒に確認し今後の対応を検討する必要があるでしょう。
まとめ
Zabbix/MIRACLE ZBX 7.0 ではライセンスが GPLv2 から AGPLv3 に変更されました。
両者のライセンスの違いについて解説したあと、Zabbix におけるライセンス変更の動機について説明しました。
AGPLv3 では ASP ループホールが塞がれたため、SaaS として AGPLv3 ライセンスのソースコードを利用している場合でもその利用者に対してソースコードを開示する必要があります。Zabbix 7.0 をそのまま利用しているだけのユーザーには特に影響がありませんが、SaaS のかたちで Zabbix 7.0 の機能を提供する場合には注意が必要です。
参考文献
- Open Source Initiative『The Open Source Definition』 (2024 年 8 月 14 日 閲覧)
- 姉崎章博『OSS ライセンスを正しく理解するための本』(C&R 研究所、2021 年)
- Free Software Foundation『GNU General Public License, version 2』 (2024 年 8 月 20 日 閲覧)
- 上田理 著、岩井久美子 監修『OSS ライセンスの教科書』(技術評論社、2018 年)
- Free Software Foundation『GNU Affero General Public License』 (2024 年 8 月 20 日 閲覧)
- Richard M. Stallman 著、株式会社ロングテール、長尾高弘 訳『フリーソフトウェアと自由な社会 ―Richard M. Stallman エッセイ集』(株式会社アスキー、2003 年)
- https://support.zabbix.com/browse/ZBXNEXT-9168 (2024 年 9 月 10 日 閲覧)
- Zabbix SIA『 Streaming to external systems』 (2024 年 9 月 10 日 閲覧)
- Alexei Vladishev『Striking the Right Balance: Zabbix 7.0 to be Released Under AGPLv3 License』 (2024 年 10 月 8 日 閲覧)