知らなければいけないライセンスのお話
システムを構築するうえで、既存のライブラリやミドルウェア、オープンソースソフトウェアの使用は、開発時間の短縮にとても役立ちます。
ただ、ここで常に気を付けるべきことがライセンス問題です。自分がインストールしたもののライセンスを常に気を付け、実は知らない間に法律に違反していた、とならないように注意しなければいけません。スタートラボの入門コースの受講生は9割以上が未経験者。この記事では未経験者が見落としがちなライセンスについて解説します。
3つのライセンス形式
ライセンスは大きく分けて3つの種類があります。
1. コピーレフト型ライセンス
2. 準コピーレフト型ライセンス
3. 非コピーレフト型ライセンス
それぞれの適用範囲は以下の通りとなります。
コピーレフト型ライセンス
複製、再配布可能。改編部分のソースコードは開示しなければならない。
他のソフトウェアを組み合わせた場合、他のソフトウェアのソースコードも開示しなければならない。
準コピーレフト型ライセンス
複製、再配布可能。改編部分のソースコードは開示しなければならない。
他のソフトウェアを組み合わせた場合、他のソフトウェアのソースコードも開示する必要はない。
非コピーレフト型ライセンス
複製、再配布可能。ソースコードの開示必要はない。システムを開発する場合、非コピーレフトのほうが安心して利用できますね。コピーレフト型ライセンスが一つでも入ると、開発物に同じライセンスが伝搬されることになります。
ライセンスの形式を確認
まず初めに、使用するソフトウェアがどれに該当するかを調べましょう。このうち、コピーレフト、準コピーレフトが適用される場合は注意が必要です。
コピーレフトというのは、ライセンスが伝搬する形式のライセンスです。元の利用規約がそのまま利用しているソフトウェアに適用され、それが消えることはありません。
コピーレフトの場合、
・ソースコードを改編した場合、改変したコードの公開を義務付けるかどうか
・ソースコードを利用する他のソフトウェアのソースコードの公開を義務付けるか
が分類すべき基準になります。
お客さんがいて、システムを開発して納品をした場合、そこにコピーレフトなライセンスのソフトウェアが混ざっていた場合、それを見た第三者がソースコード開示を求めた場合、応じなければならなくなります。
その場合、ソースコードを見た第三者が同じようなシステムを横展開できてしまうという問題が発生します。
ライブラリやソフトウェアを組み込んだり、オープンソースソフトウェアを提供する場合は、必ず、ライセンスがどのような形態で提供されているのかを確認しましょう。
ライセンス別ソフトウェア、ライブラリまとめ
有名なソフトウェアやライブラリをライセンスの種類別にまとめてみました。
自分が利用しているソフトウェアやライブラリがどこに該当するか確認してみましょう
■コピーレフト型
GNU GPL
GNU AGPL
EUPL
Q Public License15
■準コピーレフト型
GNU LGPL
MPL (Mozilla Public License)
SUN Public License
CPL (Common Public License)
IBM Public License
Artistic License (Perl License) Apple Public License
■非コピーレフト型
BSD License
MIT License
Apache License
FreeBSD Copyright
X11 License
ZPL (Zope Public License)
コピーレフト型の中でもGNU GPLは伝搬力が強く、俗にGPL汚染と言われるくらいにライセンスが伝染していきます。逆に非コピーレフトがたのBSDライセンスは伝搬力が弱く、開発物に対して同じライセンスの適用義務はなく、公開義務もありません。
ライセンス違反は甘く見てはならない
ライセンス違反は、監視する団体もあり、表に出てこないだろうと甘く見ると大変なことになりかねません。違反が見つかれば、当然ソフトウェアは差し止めになりますし、そのようなことが起こったらお客様にも多大な迷惑をかけることになります。
法律というのは、「知らなかったから」で許されることはありません。無知は罪となります。
これから開発を目指す皆様には、その辺りの知識もしっかり持って、BSD,MIT,Apacheあたりのライセンスを出来る限り使うという点です。納品物にはGPLは使わないように気をつけましょう。