コピーレフトライセンスについて考察


みなさんこんにちは、 masa です。今日は、私たちが普段から無意識のうちに使っているオープンソースソフトウェアのライセンス について取り上げたいと思います。とくにコピーレフトという性質をもつ GPL (GNU General Public License) は商用利用で気をつけるべきことがあったりします。

いまや星の数ほどあるオープンソースソフトウェア(以下 OSS)ですが、私たちの仕事にあまりに無意識に入り込んでいるため、ライセンスについてはあまり考えずに使ってしまうこともしばしば。OSS のライセンスが複雑化していることも原因と考えられます。今日はそんな OSS のライセンスについて商用利用という観点から再考するために改めて書きとめておきたいと思います。

 

 そもそもオープンソースって無料でしょ?

OSS は無料で使えるのは確かです。しかし 負う義務はライセンスにより様々なのです。

無料だからといって何してもOKというわけではありません。

数あるライセンスの中で一番神経を使うのが GPL のようにコピーレフト(後述)であるライセンスです。GPL は商用利用において企業が神経をとがらせ、また敬遠するものであったりもします。

非コピーレフト
MITライセンス, Apacheライセンス, BSDライセンスなど

コピーレフト
GPL, LGPL , AGPL, CPL など

 

 コピーレフトかどうかが運命の分かれ道

コピーレフトというのは簡単に言えば

「あんた、コピーレフトの OSS を使ってソフトウェア作ったんやな?なら、あんたのソフトウェアも配布した人にソースコード公開せなアカンよ?」

というものです。

例えば、GPL ライセンスのライブラリを使って業務アプリケーションを完成させたとします。するとその業務アプリケーションは GPL ライセンスとなりますので、配布先であるクライアントに業務アプリケーションのソースコードを公開する義務を負います。

これが GPL ウイルスとも言われる理由ですね。

なんだその暴挙は!と思われるかもしれませんが、これにはちゃんと理由があります。GPL の哲学として「オープンソースソフトウェアを独占させず、より広くオープンソースソフトウェアを発展させたい」というものがあります。その想い通り、GPL ライセンスのソフトウェアというのは爆発的に広まっていきました。

しかし、最近はこの扱いにくい性質から非コピーレフトの MITライセンスや Apacheライセンスなどが好まれる傾向が強くなってきたのも事実です。非コピーレフトライセンスの場合、成果物のソースコードを公開する義務はありません。

少し前、PHP フレームワーク CodeIgniter がコピーレフトライセンスを採用すると発表。多くのユーザーが不満を抱き、 FuelPHP へ流れるといったことがありました。その後いざこざがありつつも結局、CodeIgniter3.0 は非コピーレフトである MITライセンスを採用することとなったのです。

 

 コピーレフトは商用利用には使えない?よくある勘違い

答えはノーです。

具体例を挙げると、コミュニティバージョンの MySQL は GPL ライセンスなので無料ですが、MySQL を使うソフトウェアを作れば GPL を継承することになります。依頼元のクライアントにソースコードを求められたらクライアントにさえソースコードを渡せばいいので、きちんと説明すれば GPL ソフトウェアを使うことも許されるでしょう。

Webサービスだったらユーザー全員にソースコード公開しなくちゃいけないのでは?

答えはノーです。

ソースコードを公開する義務があるのはソフトウェア自体の配布先に対してのみです。WebサービスのユーザーはたしかにWebサービスを利用していますが、ソフトウェアはサーバーにしかなく、ユーザーにソフトウェアを配布しているわけではないからです。

 

 もしライセンス違反したらどうなっちゃうの?

アメリカでは GPL ライセンス違反を犯した会社が訴訟を受ける事例がありました。日本ではまだ訴訟の事例はないようですが、国内大手の会社が Linux の GPL 違反を犯して、ユーザーから非難を浴び、修正したという事例があります。日本ではまだ訴訟のケースがないからいいや、ということにはなりません。事前に OSS の採用を綿密に考え、万が一、意図せずに違反してしまった場合は速やかに企業として対応する体制が必要です。企業の信頼は失ってからではもう遅いとすら言えます。

 

 おまけ: 私の周りのライセンスを調べてみた

最後に、私がよく使うソフトウェアやライブラリをざっくりまとめてみました。

・AngularJS (MIT License)

・Spring Framework (Apache License 2.0)

・MyBatis (Apache License 2.0)

・Tomcat (Apache License 2.0)

・Jenkins (MIT License)

・FuelPHP (MIT License)

・jQuery (MIT License)

・MySQL (GPL)

・Redis (BSD License )

・Apache HTTP SERVER (Apache License 2.0)

・NGINX (BSD like)

・Varnish Cache (BSD licence)

 

いかがでしたか?今日は私たちが普段から使っている OSS についてもう一度その足元を確認するために、ライセンスについて確認してみました。
オープンソースの力は偉大で私たちも多くの恩恵を受けてきたのは事実です。その反面、なかなかそのコミュニティの想いや哲学を知る機会はありません。今回は私自身にとって大変良い学びになりました。


“コピーレフトライセンスについて考察” への5件のフィードバック

  1. 日高 より:

    初めまして。

    OSSライセンスについて、まとめてくださって大変有用な情報をありがとうございました。

    商用利用時のMySQLについてですが、OracleがMySQLを買収して以降、たとえWebサービスであったとしても、Oracleに対してライセンス料を支払わなくてはいけないでのはないかと心配しております。

    このあたりについて、現状どのように対応なさっているのか、ご意見を伺いたいと存じます。

    どうぞよろしくお願い致します。

    • masa より:

      日高さんへ

      masaです。コメントいただきありがとうございます。

      ご質問の件、今のところうちはAWS専門で構築していますので、どちらかを案件によって使い分けています。

      ・RDS (OracleDB) ※ライセンス料込み
      ・RDS (MySQL) ※オープンソース版のみ

      AWSの場合、MySQLはオープンソース版しかないのでクリティカルな案件の場合そもそもMySQLは選びません。OracleDBになります。
      AWS以外でMySQLを使いたいけども以下のような要件がある場合はライセンス料を支払うしかないと思いますね。

      ・サポートを受けたい
      ・ナレッジやツールが使いたい
      ・責任をOracleに(ry

      よく誤解されることとして「商用サービスで使うには有償版MySQLを使うしかない」というものがありますが、これは間違いです。商用サービスでもGPLライセンスを飲めるなら、オープンソース版のMySQLを使って料金に還元するという方法もアリだと思います。

      • 日高 より:

        私の質問に対して丁寧に回答していただき、大変ありがとうございました。

        こちらを参考にさせていただきます。
        今後ともお付き合いをよろしくお願い致します。

        • masa より:

          日高さんへ

          いえいえ。また何かブログの内容でご不明などありましたらお気軽にコメントください。

  2. […] ■ GNU LGPLとは? 「コピーレフトライセンスについて考察」と、「Wikipedia : GNU Lesser General Public License」を参考にした。 […]

日高 にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>