オープンソースソフトウェアのライセンスについて

オープンソースを利用するにあたって知っておきたいライセンスなんだけど、ライセンスはたくさんありすぎるんでひとまずGPLLGPLBSD、MPL、Apache Licenseあたりをおさえておけばいいのかなと思ってます。

GPL

正式名称

GNU General Public License(GNU一般公衆許諾契約書)

解説

特に制限が厳しい。
コードの流用 改変は全く自由で正しその流用した元コードのライセンス条項をそのまま引き継がなければいけない。

  1. ソフトウェアを利用した時点でGPLに従うことを承諾したと見なす(契約書へのサインや申請といった手続きがない)
  2. GPLが適用されているソフトウェアは、GPLの条項に反しない限り、複製、頒布、改変を自由に行える
  3. ソフトウェアを複製、あるいは改変し頒布する場合、頒布するソフトウェアもオリジナルと同じライセンスで配布すること
  4. ソフトウェアのバイナリを第三者に提供した場合、第三者ソースコードを要求できる

LGPL

正式名称

GNU Lesser General Public License(GNU劣等一般公衆許諾契約書)

解説
  1. コードの流用 改変 配布はGPLと同様。
  2. 動的にリンク*1する場合に限り、アプリケーションをその「派生物」と見なさない。
  3. 主にライブラリで用いられる。
  4. クレジット表示は必要で、誰の著作物で元のコードはどこで配布されているかを明示しなければならない。

BSD License

正式名称

Berkeley Software Distribution License

解説
  1. ソフトウェアの利用、再配布、改変は自由に行えるが、再配布のときに原著作者の著作権表示と条項の掲示が必要
  2. ソフトウェアを改変し、配布・販売する場合でも、ソースコードを公開する義務がない(原著作者の著作権表示と条項の掲示は文書で提供)

MPL

正式名称

The Mozilla Public License

解説
  1. GPLLGPLと同様に派生物もMPLで公開する必要がある。
  2. バイナリ形式で配布する場合には、ソースコードをバイナリと同一媒体で配布するか、電子配布メカニズムを通じて最低12ヶ月間入手可能にしておく義務がある。
  3. 他のライセンスと選択的に成立させることが可能であることが規定されている。(トリプルライセンス)

Apache License

解説
  1. ユーザーがそのソフトウェアの使用/頒布/修正、派生版の頒布をすることを制限しない。
  2. 頒布される二次的著作物が同じライセンスで提供されたり、フリー/オープンソースソフトウェアとして頒布されることを要求しない。
  3. ソフトウェアにApache License のコードが使われていることを知らせる文言を入れる必要がある。

再配布ソフトウェアパッケージでは、そのディレクトリのトップに次の二つのファイルを置かなければならない。

  1. LICENSE - ライセンスの条文そのもののコピー
  2. NOTICE - ライセンスされ使用されているライブラリ名とその開発者名のリスト

*1:ライブラリをアプリケーション内にコピーせず、バイナリ実行時に必要に応じて利用する