09 May 2008

オープンソースのライセンスについての、簡単なまとめ

前回の続きです。

機会があり、オープンソースのライセンスについて調べました。その結果について、簡単にまとめてあります。

調査を通じて、僕にはこういう法律系の細かな作業が、向いていないなあと痛感しました。ややっこしくて、文章を読んでいて疲れてきます。



概要

オープンソースの著作物(ソフトウェア以外のものも含む)は、商用・非商用問わず、第三者に再配布できる(ただしクリエイティブ・コモンズの非商用オプションは除く)。その際の条件はライセンスに拠り、著作者のクレジットを表記するだけでよいものから、すべてのソースコードを公開しなければならないものまで幅がある。

オープンソースのソフトウェアを用いたWebサービスについては、ソースコード配布の義務はないという見識が一般的である。


オープンソースの条件

次の要件を満たすものを、オープンソースと呼ぶ。

  1. 自由な再頒布ができること
  2. ソースコードを入手できること
  3. 派生物が存在でき、派生物に同じライセンスを適用できること
  4. 差分情報の配布を認める場合には、同一性の保持を要求してもかまわない
  5. 個人やグループを差別しないこと
  6. 適用領域に基づいた差別をしないこと
  7. 再配布において追加ライセンスを必要としないこと
  8. 特定製品に依存しないこと
  9. 同じ媒体で配布される他のソフトウェアを制限しないこと
  10. 技術的な中立を保っていること

以上の要件を満たせば、商用・非商用は問わない。むしろ、非商用に限定すると、ライセンスに反する。

第三者が自由に、ソースコード(または画像・文章などの著作物)を使用できるようにすることに主眼が置かれているため、ただ単に"無料"ということではない。よって、フリーソフトとは異なる概念である。同様に、第三者の自由な利用(第三者への再配布)が主な議論の論点となっているため、個人や社内といった、第三者へ配布しない範囲での利用においては、後述のライセンスに従う必要はなく、自由に使用しても良い。


オープンソース・ライセンスとその種類

オープンソースのライセンスとは、上記のオープンソースの要件を適用させるためのものである。ライセンスにはかなりの種類があるが、次の2点はどのライセンスにも共通している。

  • 著作権表示の保持。原作者のクレジットを表記することで、それを利用した第三者が、はじめから自分が作ったように偽ることを防ぐ。
  • 無保証であること。原作者は、葉生物を含め、その動作・品質を保証しない。

次の点は、それぞれのライセンスによって異なっている。

  • ソースコードを開示する範囲。
  • 改変・複製したものを再配布する際、どのようなライセンスを適用させるか。

ライセンスは大きく3つに分類することができる。

  • GPL系
  • MPL系
  • BSD系

GPL系がもっとも制限が厳しく、BSD系が緩い。MPL系はその中間である。


GPL系

GPL

最も有名なオープンソース・ライセンスがGPLである。また最も制約の厳しいライセンスでもある。特徴的なのはその"感染力"の強さであり、ソースコード中に少しでもGPLの部分があれば、ソフトウェア全体をGPLにしなければならない。例えば、GPLのライブラリを使っているソフトウェアを販売する場合を考えると、もしそのソフトウェアの購入者から、ソースコードの開示要求を受けたら、それに応じなければならない。

ただし、このような義務が発生するのは、第三者にソフトウェアを再配布するときのみである。例えば、あるGPLライセンスのソフトを改変し、社内ツールとして利用する場合は、ソースコード開示の義務は発生しない。あるいは、GPLライセンスのコンパイラを使ってソフトウェアを制作し、それを販売するという場合でも、そのソフトウェアはGPLライセンスにする必要はなく、ソースコードを秘密にしておいても良い。

関連して、GPLライセンスのCMSを一部修正し、Webサービスとして第三者のユーザに提供する場合を考える。この場合、第三者ユーザは、ソフトウェアを動作させた"結果"のみを受け取っており、ソフトウェアの本体は、サービス提供者のサーバ上に存在しているので、"第三者への再配布"にはあたらない。よってCMSのソースコードを開示せずに、サービスを提供することができる。ただし、現在策定中のGPLバージョン3では、この規定の改定が提案されている。


LGPL

LGPLはGPLの派生ライセンスで、ライブラリへの適用に特化している。GPLでは、GPLのライブラリを用いると、ソフトウェア全体をGPLにしなければならないが、LGPLのライブラリでは、そのライブラリを動的リンクした場合は、ソフトウェアの残りの部分は、GPLにする必要はない。例えば、あるBSDライセンスのソフトウェアを改良する際、LGPLライセンスのライブラリをひとつ動的にリンクしたというケースを考えると、BSDのソフトウェアはBSDのまま、LGPLのライブラリはLGPLというライセンスにすることができる。

ただし、現在GPL/LGPLの公開・維持を行っているフリーソフトウェア財団(FSF)はLGPLの使用を奨励していない。


MPL系

MPLはGPLの制約をより緩くしたものである。MPLライセンスのもとでは、ソースコードのファイル単位で、自分のソフトウェアに組み込むことができる。つまり、あるMPLの(ライブラリではなく)ファイルを利用したソフトウェアを開発・配布する場合、MPLのファイルの部分以外は、MPL以外のライセンスにすることができる。当然、ライブラリ単位でのMPLの適用や、ソフトウェア全体をMPLにすることも可能である。

MPL系のライセンスとしては、CPL、NPL、SISSLなどが挙げられるが、これらのライセンスについても同様である。ただし、こうした"ライセンスの感染"以外の条項で、微妙な違いがある場合がある。


BSD系

(修正)BSDライセンスは、上記に比べ、最も制約の緩いライセンスである。条約には"無保証であることの明示"、"著作権者名の表示"のみが定められている。つまり、BSDライセンスのライブラリやソフトウェアを組み込んだソフトウェアを開発・配布する場合、前述の2つの表示さえしておけば、ソースコードを全く秘密にしておくことも可能である。一方、自作のソフトウェアをBSDライセンスで公開した場合、それが他者のソフトに独占的に組み込まれることは防げない。

BSD系のライセンスには、MIT、X11、Apacheなどがあるが、いずれも同等の内容である。


ソフトウェア系以外のライセンス

上記のライセンスは、主にソフトウェアへ適用するためのものである。GPLはソフトウェア以外の著作物への適用も可能ではあるが、推奨されていない。画像や文章など、ソフトウェア以外の著作物への適用に主眼をおいたライセンスとしては、GFDL、クリエイティブコモンズが挙げられる。


GFDL

GFDLはGPLを、文章への適用に特化させたものである。基本的な考え方はGPLと同様である。主にソフトウェアのマニュアルへの適用を想定している。


クリエイティブコモンズ

クリエイティブコモンズは、写真や文章、音楽などへの適用を前提としたもので、ソフトウェアへの適用は推奨されていない。クリエイティブコモンズには4つのオプションがあり、著作者はこれらを組み合わせ、ライセンスを定める。

  • 表示(Attribution) - その作品の利用に関しての著作者の表示を求めるか
  • 非営利(Noncommercial) - 非営利目的に限ってその作品の利用を認めるか
  • 改変禁止(改変の禁止)(No Derivative Works) - その作品をそのままの形でのみ利用を認めるか
  • 継承(同様に共有)(Share Alike) - その作品につけられたライセンスを継承することを求めるか

2.0以降のバージョンでは、表示オプションの採用は必須とされている。また、改変禁止と継承を同時に採用することはできない。


パブリック・ドメイン

パブリック・ドメインとは、著作権が放棄された著作物のことである。よってパブリック・ドメインはライセンスではなく、むしろライセンスを適用する必要のない著作物ということである。パブリック・ドメインの著作物は一般公衆に属しており、知的財産権が誰にも帰していないため、誰でも自由に改変・再配布できる。


ライセンスの汚染

原則、複数のライセンスが混在している場合、そのソフトウェア全体のライセンスは、もっとも制約の強いライセンスとなる。例えば、GPLとBSDのライブラリを用いたソフトウェアの場合、全体のライセンスはGPLとなる。


ライセンスの矛盾

異なるライセンスを混在させたソフトウェアそ作成・再配布する場合、それらのライセンスは、互いに"矛盾"しないものでなければならない。例えば、BSDとGPLライセンスの関係を考える。BSDは"無保証と著作者の表記"をするだけでよいが、GPLはさらに"GPLを含んだ場合、全体がGPLになる"という条約がある。BSDとGPLが混ざったソフトウェアの場合、全体としてはGPLになるが、それはBSDのライセンスに違反していない。このような、一方のライセンスの条約がもう一方を包含している状態を、ライセンスが矛盾していない状態という。

一方矛盾する例としては、GPLとLGPLが挙げられる。この2つを混在させた場合、全体がGPLになるため、もともとLGPLだったライブラリまでGPLになってしまう。よって2つは矛盾している。


デュアルライセンス

互いに矛盾するライセンスを併記することもでき、デュアルライセンス、トリプルライセンスなどと呼ばれる。デュアルライセンスの場合、利用者はどちらかのライセンスを選択して適用することができる。例として、FirefoxはMPL/GPL/LGPLのトリプルライセンス、MySQLはGPLと商用ライセンスのデュアルライセンスとなっている。


オープンソース導入ガイドライン

経済産業省からオープンソースソフトウェアの導入に関するガイドラインが発表されており、Webで公開されている。オープンソース・ライセンスについても包括的にまとめられている。

http://www.meti.go.jp/kohosys/press/0004397/