はじめに
ソフトウェアライセンスであるGPL・LGPL・AGPLについて概要をメモとして書き留めておきます。
GPLは、GNUプロジェクトのためにリチャード・ストールマンにより作成されたフリーソフトウェアライセンスです。LGPLとAGPLはGPLから派生したものです。
ライセンスの利用にあたっては公式ドキュメントを参照してください。
https://www.gnu.org/licenses/gpl-3.0.html
https://www.gnu.org/licenses/agpl-3.0.html
https://www.gnu.org/licenses/lgpl-3.0.html
GPLの特徴
- 複製・改変・再配布・販売等自由に行なって良い
- ソフトウェアを配布する際は、ソースコードを一緒に配布しなくてはならない
- 再配布するものもGPLライセンスにしなくてはならない
ライセンス伝搬/感染
GPLライセンスで公開されたソフトウェアと他のソフトウェアを組み合わせて配布する場合、その組み合わされたソフトウェアもGPLライセンスにしなければなりません。
GPLは権利を守るためのライセンスなので「ライセンス伝搬/感染」という表現は誤解を招く恐れがありますが、理解しやすいことと、Wikipediaなどにも記載があることから書き留めておきます。
しかし、このライセンス伝搬があったおかげで今日のオープンソース文化が華開いたとも言えそうです。
例
パソコンのローカル環境で動く動画プレイヤーを作っていたとします。 GPLライセンスの動画デコードライブラリを組み込んで動画プレイヤーを配布する場合、動画プレイヤーもGPLライセンスとして配布しなくてはなりません。
GPLの主な目的
GPLの主な目的はソフトウェアを使ったり変更したりする自由を守るためのものです。そのソフトウェアが無料か有料かどうかは問題にしていません。誰でもソフトウェアを利用することができて、ソースコードが開示されていて、誰でも変更することができる、といったことを大切にしているようです。
商用ソフトウェアではソースコードを非公開にして、企業が独占的に管理するといったことはよくあることです。GPLではこういったこと自体を否定しているのではなく、フリーに使ってもらうために作ったソフトウェアを企業が自社製品に取り込んでソースコードを隠蔽して改変できなくすることに反発して作られたライセンスのようです。
LGPLの特徴
GPLから派生したライセンスで、GPLと比べると緩いライセンスになっています。LGPLのLは「Lesser」で、より小さい、劣るといった意味があります。GPLに比べるとライセンス伝搬が起き難くなっています。
LGPLライセンスのソフトウェアを組み込んで利用する場合と呼び出して利用する場合とでは、前者は組み込んだソフトウェアもLGPLライセンスにする必要がありますが、後者はLGPLライセンスにする必要がありません。
静的リンクして実行ファイルに組み込まれる場合は伝搬する。動的リンクして実行ファイルに組み込まない場合は伝搬しないということのようです。
LGPLまとめ
- 基本はGPLと同じ
- ソフトウェア配布時にライセンスが伝搬する
- 動的リンクはライセンス伝搬しない
AGPLの特徴
昨今、ソフトウェアを配布しインストールして利用すること以上にSaaSやWebサービスといった形でソフトウェアをネットワーク越しに利用することが多くなっています。
GPLもLGPLもソフトウェアを配布することとライセンスが深くかかわっていますが、ネットワーク越しにソフトウェアを利用するだけではソフトウェアを配布したことにはなりません。
AGPLはソフトウェアを配布しなくても、ネットワーク越しに利用しているだけでライセンスの効力が生まれる点でGPLやLGPLと異なります。
AGPLで作られたソフトウェアを使ってWebサービスを提供していて、そのソフトウェアを改変した場合、そのWebサービス利用者に対してソースコードを開示しなくてはなりません。
また、AGPLで作られたソフトウェアを自分のソフトウェアに組み込んで利用する場合、そのソフトウェアにもライセンスが伝搬します。組み込みの考え方はGPLと同等のようです。静的リンクや動的リンクのような形態を指しています。API呼び出しのようなネットワークを介した通信による利用の場合は、組み込みとは見なされずライセンスの伝搬はしないようです。
AGPLまとめ
- 基本はGPLと同じ
- ソフトウェア配布時にライセンスが伝搬する
- SaaSやWebサービスなどで利用することとソフトウェアの配布を同じと考える
- "REST API"などネットワークを介した利用はライセンス伝搬しない
参考サイト
https://yamory.io/blog/about-gpl-license/
https://www.tohoho-web.com/ex/license.html
https://snyk.io/jp/learn/agpl-license/
https://wa3.i-3-i.info/word13200.html
https://wa3.i-3-i.info/word13201.html