2008/03/11

MySQL

書かれちゃったら書くしかないじゃん。

法律屋じゃないあくまで個人的な考えなのであてにしないように。あとで訴えられてもしらないよ;p

個人的にMySQLとMySQLクライアント(Java屋なのでJDBCコネクタとしよう)は別物だと思ってる。

MySQLを利用するってのはMySQLをDBとして利用する。つまり、DBMSとしてデータを格納するプログラムとして実行する。これはこれで単体のプログラムとして完結している。

MySQLのソースを改変してYourSQLとかMeineSQLとか作ろうって場合は別だが、MySQLサーバ自体を取得し、配布、使用することはGPL的にはなんら問題ないはず。(こっからもう前提が違うのかねぇ)

問題はMySQLにレコードを追加するためのインターフェース、つまりMySQLクライアントを利用したプログラム、例えば一般的な受託開発のWebアプリとか(非GPL)(以下自プログラム)を開発・提供する際にGPLにする必要があるかということだ。

LinuxはカーネルはGPLだが、システムコールの部分はGPL対象外とされているらしく、そのためLinuxのシステムコールを呼び出すアプリケーションは非GPLでも問題ないらしい。ApacheとかASLだし。

MySQLはこのシステムコールに当たるクライアントがGPLだから、MySQLにアクセスするプログラムはGPLに従う必要があるように思える。

しかし、GPLに準拠しなければならないのは自プログラムがGPLの元プログラムの「派生物」である場合である。よってここで重要なのは、MySQLクライアントを利用したプログラムが「派生物」にあたるのかどうかだ。

自プログラムがMySQLクライアントの派生物でないならば、MySQLクライアントを利用する自プログラムはGPLである必要はなく、MySQLを(ライセンスを買わずに)GPLで利用しても問題ないはず。

「派生物」の定義がGPLでは明確にされてない。(LGPLではライブラリについて定義されているが。)一般的に「派生」と言ったときには、元の「翻案」を改変したものを指すらしい。つまりMySQLクライアントには一切手を加えず利用しているだけの(基礎としているのではなく一部として利用している)自プログラムはMySQLクライアントを利用しているだけで「派生」ではないと言えるのではないだろうか。

ということでMySQLをDBとして使う普通のWebアプリケーション開発・提供はライセンス買わなくてもいいんじゃねー?と思うんだけど、こことかこことか何が何でも商用ライセンス買えってなるんだよね。

結論としては、ぐだぐだめんどくせーから金で解決できることは金で解決しちゃえば良いんじゃねー。と思うわけです。1本5万らしいです。

きっとそれがMySQLのさぁーくせんなんだな。

法律屋の見解を聞いてみたい。

ところでMySQLの例外条項にはASLならOKみたいなことが書いてあるけど、コネクタをラップしたライブラリを(例えば独立なライブラリと見せかけるためにO/Rマッパとして作って)ASLライセンスで配布して、それを非GPLなプログラムが利用する場合はどうなるんだろね。あぁこれがPHPの組み込みMySQLドライバか。

それにしてもここでMySQLを利用したプログラムを公開・配布している場合ライセンス買えになるけど、オプションとしてMySQLを使えるよってのはどうなんだよ?と。ActiveRecordとか。

ホスティングサービスで提供してるMySQLを使ってサービス提供する場合はホスティングがかね払ってるからGPLじゃなくてもいいのか?とか。

結局よくわかりませんでしたorz

#ホントこういう文書の読みにくさは異常。

#俺の読解能力が足りなすぎるだけじゃないよね?

1 件のコメント:

zishida さんのコメント...

マジでよくわからんよね。
ライセンスってサプライヤーが恣意的に選択提供できるはずなので、「おまえにはGPLでくれてやらない」って言えるし、言っていいんだけど(GPLだったとしても、上げたくないやつには上げなくて良い)。

でも、GPLで配布されたパッケージを、たとえば俺があなたに再配布する分には問題無い(筈)なんだよね。