1. まとめトップ

GPL, LGPL, BSD などのOSSライセンスの違いと注意点まとめ

ソフトウェアを開発する際には、既存のモジュールやライブラリを利用することも多いです。その際のトラブルを防ぐためには、OSSライセンスについて知っておく必要があります。

更新日: 2013年01月25日

4 お気に入り 36899 view
お気に入り追加

この記事は私がまとめました

ihassenさん

ソフトウェアを開発する際には、既存のモジュールやライブラリを利用することも多いです。
その際のトラブルを防ぐためには、OSSライセンスについて知っておく必要があります。

オープンソース(OSS)ライセンスとは?

まず知っておくべきこととして、Microsoft Office や Adobe Photoshop などのような一般的なパッケージソフトウェアのライセンスと、GPL, LGPL, BSD などを表すOSSライセンスでは、「ライセンス」という単語の意味が違います。

前者はソフトウェアの「自分で使用するため」のライセンスであり、改変や第三者への配布は不可ですが、
後者は「第三者に配布するため」のライセンスで、自分で使用するのは自由ですが配布する際に条件がつくことが多いです。
すなわち、自分用のアプリを個人的に開発して誰にも公開しない分には、OSSライセンスを気にする必要は全くありません。

オープンソース、フリーソフトウェアとは?

どちらもユーザーが「自由に」使用・改変ができるソフトウェアを表します。(厳密には、両者は定義している団体および思想が少し違います)
フリーソフトウェアの「フリー」は「自由」の意味であり、「無料」を意味する「フリーソフト」「フリーウェア」とは別物です。フリーソフトウェアを有料で配布するのもまた自由です。

GPL (GNU GPL / GNU General Public License)

「フリーソフトウェア」の精神にもとづく代表的なライセンスで、2次的著作物(派生物)にも自由を保証する(コピーレフト)点が特徴です。
すなわち、GPLのコードを含むソフトウェアはGPLで配布しないといけません。また、配布の際にはソースコードの公開が必須となります。
こういった特徴から、開発者の間では「GPL汚染」などと呼ばれ敬遠されることも多いです。

誤解されやすい点ですが、GPLなソフトウェアを作成したら必ずソースコードを全世界に公開しなければいけないわけではありません。
ソースコード公開条件はソフトウェアを配布する際につくものであり、すなわち、ソフトウェアを使う人にだけ公開されていればよいことになります。

LGPL (GNU Lesser General Public License)

GPLの制約を緩めたもの。
動的リンク(Windowsでいう.dllなど)として使用した場合は、呼び出し元のプログラムにはLGPLを適応させる必要がありません。
主にライブラリやモジュールなどに使用されます。

BSD (Berkeley Software Distribution License)、MIT License / X11 License / X License

これらは基本的に同じ内容で、GPLに比べると非常に緩いライセンスで、
著作権表示、無保証 のみが条件です。
ただし、BSDには「オリジナルBSD」「修正済みBSD」の2種類があり、オリジナルBSDの場合は初期開発者の表示が必要となっています。

Apacheライセンス

BSDベースの非コピーレフトライセンスです。

1