More info...

2008-12-10

デュアルライセンスとGPL

GPLソフトウェアを用いてビジネスを行うモデルの一つに、デュアルライセンスというものがある。デュアルライセンスとは一つのソフトウェアをGPLとその他の私有ライセンスの両方でリリースするということを意味する。ちょっと意外かも知れないが、ソフトウェア配布時に同梱するライセンス条項さえ変更すれば、一つのソフトウェアを異なるライセンスでリリースすることに特に制約はない。(ちなみに、デュアルライセンスはMySQLがとっているビジネス形態である。)

デュアルライセンスモデルを用いると、次のようなことが可能になる。
  • GPLライセンスのメリットを最大限に享受して、ユーザの拡大やソフトウェア品質の向上を期待出来る。
  • 私有ソフトウェアにはGPLソフトウェアを組み込めないので、そのようなユーザには私有ライセンスバージョンを販売することができる。
私有ライセンスを組み込むのは、OEMとも呼ばれるビジネス形態である。一見すると「なんだ?!これは素晴らしいじゃないか!!デュアルライセンスにすれば万事解決!!」と思うかも知れないが、デュアルライセンスにはいくつかの問題点がある。

まず第一に、ソフトウェアに複数のライセンスを設定できるのは、そのソフトウェアを最初に作成した者だけであるということが挙げられる。つまり、GPLソフトウェアを拡張した場合には、そのソフトウェアはGPLでリリースしなければならないので、私有ライセンスにすることができない。つまり、デュアルライセンスにすることが出来ない。デュアルライセンスを用いることが出来るのは、元祖だけなのである。

そして第二に、他の優れたGPLソフトウェアを組み合わせることが出来ないという問題がある。例えば(次の部分は訂正2008/12/10)MySQLにはSSL機能が備わっているが、これはOpenSSLではなく、YaSSL(Yet Another SSL)というライブラリを利用している。なぜならば、OpenSSLはGPLライセンスであり、YaSSLはGPLと私有ライセンスのデュアルライセンスだからである。MySQLのCLIインターフェイスはlibeditとGNU Readlineという2種類のソフトウェアを活用している。名前から分かるとおり、GNU Readlineの方が便利なのであり、こちらはライセンスがGPLである。従ってGPLバージョンのMySQLにはGNU Readlineがリンクされている。しかし、私有ライセンスのMySQLにはlibeditがリンクされているのである。その他にも、純粋なGPLライセンスであれば組み合わせることが出来たであろう、優秀なソフトウェアを組み合わせることが出来ない。

他のソフトウェアを組み合わせることが出来ないと何が起きるかというと、いわゆる「車輪の再発明」をしないといけないことになる。同じ機能を一から別の方法で実装し直すのである。これは非常に作業効率が悪い。しかし、一方でGPLとして同じソフトウェアをリリースしているのであれば、ユーザーから多くのフィードバックを受けることが出来るため、私有ライセンスだけでリリースされたソフトウェアよりはずいぶん状況はマシだとは言える。

第三の問題点は、それでもなお完全なGPLソフトウェアよりユーザーからのフィードバックを得にくいということがある。外部の人がそのソフトウェアに貢献(改良、機能追加などの変更)をするためには、デュアルライセンスでリリースするという条件に同意してもらわなければならない。そのような条件に同意出来ない人はソフトウェアに改良を加えようと思わないかも知れないし、例え改良を加えたとしても自ら変更を加えたGPLバージョンのソフトウェアものを、別バージョンとしてフォークしてしまうだろう。例えばOurDeltaのように。

このような問題点を孕んではいるが、今日ではまだまだ私有ライセンスでビジネスを展開している企業が多く、そのような企業達と付き合いつつも、GPLの利益を享受できるので、デュアルライセンスは良いモデルであると言える。私有ライセンスで既にビジネスを展開している場合には、いきなりそれをGPLにすることは困難な場合がある。なぜならば、ライセンスの転換はビジネスモデルの転換を意味し、ビジネスモデルの転換はそれなりにリスクがつきものだからである。

もしこの投稿を読んでいるあなたが現在私有ソフトウェアを開発しているのであれば、デュアルライセンスを検討してみてはいかがだろうか。そして、次第にGPLに一本化していくといいだろう。そうすることで、長期的には私有ソフトウェアでビジネスを行うよりも収入を安定化させることが出来るのである。

0 件のコメント:

コメントを投稿