オープンソースのライセンスを一覧にしてまとめて比較

オープンソース

オープンソースソフトウェア(OSS)のライセンスって分かりにくいので、ちょっとまとめてみました。

スポンサーリンク
スポンサーリンク

オープンソースのライセンスの種類

下の表は、OSS (オープンソースソフトウェア) のライセンスごとに、そのOSSを利用したプログラムを配布するとき、ソースコードを公開しなければならないかどうかを示しています。

GPL LGPL MPL BSD
OSSのソースコードを修正して作ったプログラム ×
OSSに静的にリンクしたプログラム × ×
OSSに動的にリンクしたプログラム × × ×

表中の“○”は公開しなければならないことを表し、“×”は公開しなくてもよいことを表しています。

過去の情報処理試験にも出たことがある表です。

これ、わかりやすいです。

GPL GNU General Public License

GNU General Public License(GNU GPLもしくは単にGPLとも)とは、GNUプロジェクトのためにリチャード・ストールマンにより作成されたフリーソフトウェアライセンスである。八田真行の日本語訳ではGNU 一般公衆利用許諾書と呼んでいる
(Wikipediaより)

GNUプロジェクトのためにリチャード・ストールマンにより作成されたフリーソフトウェアライセンスで、プログラムの複製物の所持者に対して

  • プログラムの実行
  • プログラムの動作を調べ、それを改変すること
  • 複製物の再頒布
  • プログラムを改良し、改良を公衆にリリースする権利

という4点を許諾しています。

静的/動的に関わらずGPLライセンスされたライブラリにリンクする場合には二次著作物であると解釈され、自動的にGPLライセンスが適用されるためソースコードの公開義務が生じます。

LGPL (Lesser General Public License)

厳格なGPLから派生したライセンスで、他のプログラムにリンクされることを前提としたライブラリのために作成されました。

「改変や再コンパイルの自由」や「二次著作物を再頒布する場合のソースコードの公開」などはGPLと同等ですが、LGPLライセンスされたライブラリをリンクして使用するプログラムの頒布に対する制限は、

  • 動的リンク:本体プログラムのリバースエンジニアリングを禁止する条項を含めてはならない。
  • 静的リンク:本体プログラムのソースコード、またはオブジェクトコードを公開しなくてはならない。

というように動的リンクであれば本体プログラムのソースコードを公開する義務がないライセンスになっています。

MPL (Mozilla Public License)

ネットスケープコミュニケーションズとMozilla Organization(後のMozilla Foundation)によって作成されたコピーレフトのライセンスのひとつです。

二次著作物にも自動的にMPLライセンスが適用されるため、プログラムを頒布する場合にはソースコードを公開する義務が生じるが、GPLと比較するとコピーレフト性は弱く、MPLライブラリに静的/動的リンクするプログラムはライセンス適用の対象外となります。

BSDライセンス

カリフォルニア大学によって策定されたフリーソフトウェアで使われるライセンス体系のひとつです。

BSDライセンスのソースコードを組み込んだソフトウェアは、著作権表示、ライセンス条文、無保証の旨の三点をドキュメント等に記載さえしておけば、ソースコードを公開せずに頒布することが可能になっています。

ところで、最近のオープンソースで開発された成果物を配布する流れは、商用で利用しやすいMPLまたは、EclipseのCPL, EPLが主流のようです。

これらは概念的に似ています。

CPL (Common Public License)

IBMがEclipseをオープンソース化する際に作り出したライセンスです。

EPL (Eclipse Public License)

CPLから派生した、Eclipseの現在のライセンスです。

シェアード・ソース・ライセンス

シェアードソース(Shared Source)は、コンピュータプログラムのソースコードを個人あるいは組織が共有するためのマイクロソフトによるフレームワークです。

シェアードソースで使われるライセンスは以下のとおりです。

Microsoft Public License (Ms-PL)

当初、Microsoft Permissive Licenseと呼ばれていた、もっとも制限の緩やかなライセンスです。

Microsoft Community License (Ms-CL)

コラボレーションによる開発向けライセンスです。

Microsoft Reference License (Ms-RL)

ソースコードの参照だけが許される、もっとも制限の強いライセンスです。

まとめ

いかがでしたでしょうか?

特にオープンソースソフトウェアのライブラリを使う場合は、ライセンスについては十分注意しなければなりません。

うっかりGPLライセンスのライブラリを使った場合、そのソフトウェアを全部公開する必要がある場合があります。

ソフトウェアのライセンスについては以下の本が詳しいです。

この記事お役に立ちましたらシェアをお願いします!