背景
JPHACKS2021に出場した際に、最初から作業・提出リポジトリにMITライセンスなるものが設置されていた。
ライセンスよくわからないで使わされるのも怖いし、コピーレフト性のあるものは「改変の開示」が必要で怖いし、知っておかないとやばいよなーとなった。
この記事のゴール
コピーレフト性のあるGPL系ライセンスで、どのケースでコードを開示する必要があるのか理解する。
GPLライセンスのまとめ
コピーレフト(Copyleft)
著作物の自由な利用・改変・再配布する権利を人々に提供し、その派生物についてもこれら行為の制限をしてはならないとする考え。
OSSライセンスが持つことのある概念。
GPLライセンスとは
GPL(GNU General Public License)はコピーレフト性を持つライセンスとして有名。
GPLライセンスは他のライセンスよりも、制限が強く、厳格にコピーレフトの概念を具現化したライセンスと言える。
GPL2.0ライセンスを持つソースの主な利用条件
GPLはいくつかのバージョンが存在するが、ここでは特にGPL2.0について調査を行った。
- 著作権表示とライセンス条文、無保証などをソフトウェアの重要部に記載する必要がある
- ヘッダへの埋め込みでも良い
- 頒布時にソースコードの公開義務
- GPLライセンス以上の条件を課すことはできない
また、商用利用も可能なようです。
どんなときにソースコードを開示しないといけないのか?
頒布時のソースコードの公開義務は、一定の場合、一定の範囲で発生するようです。
「一定の場合、一定の範囲」は主にOSSを第三者に提供する場合に当てはまります。
「OSSを第三者に提供すること」のケース
- 機器の組み込みソフトウェアの一部に存在
- サーバからダウンロードさせて利用させる
などが該当します。
ソースコード公開義務が通常は及ばないケース
- 社内利用に留まる
- 社外ユーザにネットワークを介してアクセス、利用に供する
などが該当します。
最後に
__「頒布」__というワードは「不特定多数の相手に広く配る行為」であり、多くのケースで該当するようです。
MITライセンスなど非コピーレフト性のライセンスなどは頒布時の公開の義務はありませんが、GPLのようなOSSでは、「どこでその処理が行われるのか?」という処理形態に注意が必要そうですね。。。
詳しくは参考文献をご参照ください。
参考文献
[1]https://yamory.io/blog/about-gpl-license/
[2]http://www.it-houmu.com/archives/1902
[3]https://blog.y-yuki.net/entry/2018/09/02/214000