someone's notebook

誰かさんの書いたジャポニカ学習帳

MySQLとGPL

突如として社内で勃発したMySQLのライセンス問題

受託案件でLAMPで開発 → MySQL商用お金かかる? → PostgreSQLだ!

ちょっと待ったー。MySQLが商用だとライセンス料必要なんてホント?


そんならそもそも使わないよ、って流れでこんなに普及しないじゃない。

OracleSQLServerなどの商用DBとは違うはず。

弁護士やってる知り合いに聞いても、そんなん詳しいの身の回りにいないって言われちゃったので少し調べてみた。


ここに書いているのはあくまで個人の見解なので法的なアレは勘弁して下さい。

商用ライセンスが必要?

デュアルライセンスでの提供がされているが、DBサーバに使う場合はGPLv2を適用できる

本当は恐ろしい、MySQLのライセンス?

GPLだから公開しなきゃいけない?

GPLのソフトウェアを有償で頒布できない、頒布する場合は公開義務がある → ダウト


GPLライセンスの適用されているMySQLソースコードを改変し、それを何らかの形で公にする場合はもちろんGPLを適用しなければならない

GNU GPLに関して良く聞かれる質問


これはつまり、使用するユーザにソースコードにアクセスする権利を与えるということじゃないかと

GPLについて以前、以下のような質問をしました。


でもってGPL自体は有償で提供可能だし、ライセンシーの発生しない第3者への公開義務はない

MySQLとともに作成したソフトウェアを納品する場合はMySQLソースコードを提供すればよいのでは(要調査)


たしかに言えるのはLAMPで作られたWebサイトを顧客に納品する場合にソースコード一式の第3者公開を強制するものではない

GPL汚染

GPL?はい不採用、というのは割とあるんじゃないかと。

門外不出のソースコードを公開だなんて言語道断、というのはメーカーなどでは当たり前な気がする

自分でコンパイルして勝手に製品手に入れることが可能なのは問題だとか、海賊版とかセキュリティホールとかリスクはある

コードのコピーじゃなくてアイデアを真似るとかだと収集つかないし

そもそもGPLって?

GPLはコピーライトに対するコピーレフトという概念で作られた

ソフトウェアを単に使用する場合にライセンス料を支払わなければならないという制約からの自由を目指して作られた

GNU General Public License - Wikipedia

受託開発

そもそも受託開発でソースコードの権利とともに発注者に納める場合にはGPLは適用されない

漢(オトコ)のコンピュータ道 受託開発とGPL

でもプロプライエタリな企業がGPLを採用することには依然として上述した以外にもリスクがある

開発システムの公開範囲が限定的であったとしても、パートナー企業がアクセスする場合に公開義務が発生する、など(要調査)

それと後述するライセンスの互換性がある

MySQLを使用するソフトウェアにGPLを適用すべきかどうか

焦点となるのはMySQLのドライバで、ソフトウェアでGPLMySQLドライバを使う場合で

静的にリンクされている場合はGPLを適用する必要がある(JDBCドライバとか)

PHPの場合はMySQL Native Driverを使えばOKっぽい

PHP Manual

その場合はPHPライセンス

コピペは?

GPLに限らずオープンソースのコードの一部をコピペしてライセンスを明記しないのはライセンス違反(要調査)

デュアルライセンス

利用者はどっちか選べる

提供する側の戦略

ライセンス互換性の問題

GPLを適用する場合、 GPLと矛盾するライセンスを持ったプロダクトを混ぜることができない

これも開発する際にリスクになる

ライセンスの互換性 - Wikipedia

List of FSF-approved software licenses

その他のGPL派生のライセンス

LGPLはリンクしてもGPL適用を強制しない

AGPLはネットワーク経由でのアクセスなどでもライセンシーが発生する

感想

GNUのサイト見ても日本語だと公にするとか頒布とか言葉の定義が曖昧で、解釈によるところが大きくモヤっとする。

MySQLは要するにライセンス買ってくださいって感じだけど現状ではGPL適用できることがわかり、とりあえず一安心。

調査中のことが多かったりで間違っていたらすみませんすみません。

Fork me on GitHub