ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2009-05-12

FOSS License Exception

MySQLにはFOSS License Exceptionという制度がある。そのような制度があることはあまり知られていないし、名前を知っていても内容はよく知らない、または誤解しているという人が結構居る。そこで、FOSS License Exceptionについて改めてここで紹介したい。

MySQL FOSS License Exception
http://www.mysql.com/about/legal/licensing/foss-exception/

知っての通り、MySQLはデュアルライセンスだ。無料で公開されているMySQL Community ServerはGPLv2でライセンスされており、その他に有料のコマーシャル・ライセンス版が存在する。コマーシャル・ライセンス版はソースコードを公開したくないユーザー向けのライセンスで、俗にOEM版とも呼ばれる。

さて、FOSS License Exceptionが対象とするのは、GPLv2版のMySQLサーバーである。GPLv2のソフトウェアをバンドル(正式にはリンク)したソフトウェア、または改変したソフトウェアは、ライセンスをGPLv2にしなければならない。多くのオープンソースプロジェクトの場合、GPLv2は最も良く利用されているライセンスであるので、自分が作成したソフトウェアをGPLv2にすることが問題になることはさほどないだろう。だが、GPLv2と互換性のないライセンスのライブラリを利用したい場合にはそうは問屋が卸さない。例えばApacheライセンスなどだ。

とあるApache 2.0ライセンスのライブラリがとても有用で、どうしてもそのライブラリを利用したいとする。だが一方でGPLv2版のMySQLも利用したい。しかしGPLv2とApacheライセンスは互換性がないので同時に利用することができない。はてさてどうしたものか?!

というわけで、そこで登場するのがFOSS License Exceptionという制度なのだ。これは、MySQL(サン・マイクロシステムズ)が許可したオープンソース・ライセンスに限って、GPLv2版のMySQLを利用した場合でもそのソフトウェア全体のライセンスをGPLv2にしなくてもいいですよという制度なのだ。そうすると、上記のような場合は、その作品にApache 2.0ライセンスを適用すれば、GPLv2版のMySQLの利用とApache 2.0ライセンスのライブラリのリンクを同時に行う事が可能になる。

FOSS License Exceptionで認められているライセンスの全リストは、上記のページに載っているので参照して欲しい。先に挙げたApache 1.0/1.1/2.0ライセンスやBSDライセンス、PHPライセンスなどがリストアップされている。

当然のことであるが、プロプラエタリなソフトウェアにはこの制度は適用されない。GPL違反をすると、MySQL(サン・マイクロシステムズ)は違反者を法的に訴えることが出来るので注意しよう。(そしてコマーシャル・ライセンスを買って貰ってライセンス料を頂いたりする。)しかし、オープンソース・ソフトウェアに対してそのようなことをしてもナンセンスである。なぜなら、オープンソース・ソフトウェアは無料で配布されていることが多いからだ。MySQLはオープンソースを支持しているので、自身はGPLv2であるが他のオープンソース・ソフトウェアで利用できるようにFOSS License Exceptionのような仕組みがあるのだ。

一点注意しなければならないのは、FOSS License Exceptionを適用した場合でも、バンドルされるMySQLは依然としてGPLv2として残るということだ。つまり、作品全体はGPLv2ではないオープンソース・ライセンスであったとしても、その一部にGPLv2のコンポーネントが含まれることになる。そのソフトウェアを利用して別の新たなソフトウェアをリリースする場合には、再度GPL違反にならないように注意しなければならない。例えば、PHPはPHPライセンスでリリースされているが、MySQLとの接続をサポートしている場合(つまりlibmysqlclient.soとリンクしている場合)にはFOSS License Exceptionが適用されているわけである。(そうでなければPHPはGPLv2ライセンスを適用しなければならない。)その場合、MySQLとの接続を前提にしたPHPソフトウェアを頒布する場合にば、GPLv2ライセンスまたはFOSS License Exceptionの対象になるオープンソース・ライセンスだけを適用することが出来るわけである。

MySQLを利用してプロプラエタリなソフトウェアをリリースしたい場合には、やっぱりコマーシャル・ライセンスが必要なのである。

0 コメント:

コメントを投稿