当社は、ASPサービス・SaaSに関するシステム開発において、OSSを利用しています。このような場合に、ユーザに対してシステムのソースコードを提供しなければならない場合があると聞いたのですが、本当でしょうか。
ASPサービス・SaaS等、ソフトウェアの配布(譲渡・貸与等)が行われない場合であっても、AGPLというライセンス条件が適用されるOSSを利用する場合には、ユーザに対しソースコードを提供しなければなりません(ソースコード開示義務)。
1 GPLとASPサービス・SaaSの関係性
GPL(GNU GENERAL PUBLIC LICENSE)バージョン2(v2)やバージョン3(v3)といったライセンス条件が適用されるOSS(オープン・ソース・ソフトウェア※1)を利用したソフトウェアを、製品に組み込むなどして、実行可能ファイル等のオブジェクトコードをユーザに配布(譲渡、貸与等)する場合、通常、そのユーザ(受領者)に対し、そのOSSのソースコードを提供しなければならないという条件が課せられます(ソースコード開示義務※2)。
また、そのOSSとリンクするソフトウェアがある場合、そのソフトウェアにもGPLが適用され、ソースコード開示義務が及びます。
※1 OSSのより詳細な解説については、以下の記事をご覧ください。
OSSライセンスの基礎知識
※2 ソースコード開示義務のより詳細な解説については、以下の記事をご覧ください。
GPL系のOSSライセンスとソースコード開示義務
他方で、ASPサービス・SaaS等、ユーザがインターネットを通じて遠隔でソフトウェアにアクセスし使用する形態のサービスにおいては、そのソフトウェアの配布が行われません。そのため、そのソフトウェア(OSS及びその改変物)にGPLv2、v3といったライセンス条件が適用される場合であっても、サービス提供者はユーザに対しソースコードを開示する必要がないということになります。
このように、ASPサービス・SaaS等を提供する場合に、GPLに基づくソースコード開示義務等が生じないという問題を「ASPループホール」と呼ぶこともあります。
このASPループホールに対処するために策定・発表されたのがAGPL(GNU AFFERO GENERAL PUBLIC LICENSE[1])です。AGPLは、GPLをベースとしつつ、これに条件を追加し、ネットワークを介してソフトウェアを使用させる場合についても、ユーザへのソースコードの提供を義務付けています。
現在、AGPLは、ASPサービス・SaaS等のためのシステム開発に利用される多くのOSSに採用されています。
2 AGPLにおけるソースコード開示義務
AGPL(バージョン3(v3))においては、以下のとおり、AGPLが適用されるソフトウェアの改変物について、ネットワークを介してこれを利用するユーザに対して、ソースコードを提供する義務が規定されています。
また、ユーザへのソースコード提供方法としては、ネットワークサーバからそのソースコードへアクセスする手段を無償で提供することとされています。
そして、そのソースコードの提供範囲は、GPLv3と同じ”Corresponding Source”(対応するソース)ですので、上記1のとおり、そのOSS(の改変物)とリンクするソフトウェアにも及ぶと考えられます。
AGPLv3第13項第1パラグラフ: http://www.fsf.org/licensing/licenses/agpl-3.0.html | 参考訳: https://licenses.opensource.jp/AGPL-3.0/AGPL-3.0.html |
Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. | 本許諾書に含まれる他の条件に関わらず、あなたが『プログラム』を改変した場合、改変したバージョンは、そのバージョンとリモートでコンピュータネットワークを介し対話的にやりとりする(あなたのソフトウェアがそのようなインタラクションをサポートしている場合)すべてのユーザに対して、ネットワークサーバから、あなたのバージョンに『対応するソース』にアクセスする手段を、無償、かつソフトウェアのコピーを円滑に行う上で標準的、慣習的に用いられる方法で提供することにより、ユーザが『対応するソース』を受け取る機会を明示的に与えなければなければならない。ここでいう『対応するソース』には、次の段落に従って取り込まれた、GNU 一般公衆利用許諾書のバージョン3で保護されるすべての作品も含まれる。 |
以上のとおり、AGPLにおいては、ASPサービス・SaaS等によるソフトウェアの提供により、GPLにおけるソフトウェア配布とほとんど同等の条件によるソースコード開示義務が生じるということになります。
3 GPLとAGPLの両立性
GPLは、OSSの配布にあたり、GPLに規定している以上に追加的に制限を課してはならないとされています(GPLバージョン2(v2)第6項、GPLバージョン3(v3)第7項第4パラグラフ、第10項第3パラグラフ)。
他方、AGPLは、GPLでは特に制限されていなかったASPサービス・SaaS等の提供に関して、ソースコード開示義務を追加的に規定しています。
そうすると、GPLが適用されるソフトウェアAとAGPLが適用されるソフトウェアBがリンクする場合、ソフトウェアAとBにGPL・AGPLが重複して適用されるため、GPLの上記追加的制限規定に反するのではないかという問題があります(GPLとAGPLの両立性の問題)。
この点、GPLv2には特段の規定がなく、AGPLとは非両立ということになります(つまり、ソフトウェアAとソフトウェアBがリンクするようなシステムを構築してはなりません。)。
他方で、GPLv3においては、明示的にAGPLが適用されるソフトウェアとのリンク又は結合して単一の著作物を創作すること及びその配布が許可されています(GPLv3第13項。上記でいえば、ソフトウェアAとソフトウェアBとをリンクさせることができます。)。
以上のとおり、GPLとAGPLを取り扱う上では、バージョン情報にも留意してシステムを開発する必要があります。
2024年9月9日
[1] AGPLは、当初Affero社により発表されたライセンス(Affero General Public License)であり、あくまでもGPLとは別個独立したライセンス条件でしたが、その後、(GPLを策定・管理する)FSFにより、GPLバージョン3(v3)の文章をほとんどそのままに、一部を改変する形でAGPLバージョン3が策定されました。