GPL とライセンスの互換性

ライセンスをくっきりと分ける境界線は、 独占的なライセンスと互換性があるか、ないかです。 つまり、GPL (GNU General Public License) とそれ以外全てです。 GPL の第一の目的はフリーソフトウェアを広めることなので、 GPL を書いた人は、意図的に独占的なコードと GPL のコードを混ぜることができないようにしました。 特に GPL が要求していること (全文は http://www.fsf.org/licensing/licenses/gpl.html を参照してください) は以下の二つです。

  1. すべての派生物 — つまり、GPL が適用されたコードを含んだあらゆるプログラム — は、それ自体も GPL で配布しなければならない。

  2. オリジナルでも、派生物であっても、 それを再配布する場合には制限を追加してはいけない。 (原文の該当箇所を以下に引用します: 「あなたは、 このライセンスが与えた、または認めた権利を行使することに関して、 これ以上他のいかなる制限も課してはならない。」)

これらの条件によって、GPL は自由を伝播させることに成功しています。 いったんプログラムが GPL で保護されると、 再配布の条件が 伝染する のです — つまり、取り込んだコード以外のあらゆる部分にその条件を適用させ、 かつ GPL を採用したコードをクローズドソースなプログラムで使うのを不可能にしているのです。 しかしながら、 これらの条項は他のフリーなライセンスと GPL を非互換にするものでもあります。 通常は、他のライセンスが追加の条件を課したときに非互換が起きます — たとえば、何らかの方法でオリジナルの作者へのクレジットを要求する場合です — これは、GPL の 「あなたは、これ以上他のいかなる制限も課してはならない ...」 という文言に反しています。こうした二次的な結果は、望ましいものか、少なくとも悪いことではない、というのが FSF の見解です。 GPL は あなたのソフトウェアをフリーな状態に保つだけでなく、 他の ソフトウェアにも自由を強制する媒体にもするのです。

この手法がフリーソフトウェアを広める優れた手段なのかどうかは、 インターネット上でずっと続いている宗教論争 (6章コミュニケーション 「宗教論争を回避する」 を参照してください) のひとつであり、 ここでは深く触れません。重要なのは、 GPL と互換性があるかどうかがライセンスを選ぶ際に重大な問題になるということです。GPL は非常に重要なオープンソースライセンスです。 ある時点での Freecode 上では、GPL が 68% を占めており、次に高いのは 6% です [38]。 GPL で保護されたコードと自分のコードを混ぜた上でフリーにしたいのなら — GPL なコードがたくさんあるのだから — GPLと互換性があるライセンスを選ぶべきです。 GPL と互換性があるオープンソースライセンスのほとんどは、 独占的なライセンスとも互換性があります。 よって、そうしたライセンスを採用したコードは、 GPL なコードでも使うことができますし、 独占的なプログラムでも使うことができるのです。 もちろん、そうやってコードを混ぜた 結果生じたもの は相互に互換性がありません。 なぜなら、一方は GPL となり、 一方はクローズドソースなライセンスが適用されるからです。 問題が及ぶのは派生物に対してのみであり、 はじめに配布したオリジナルなコードは影響を受けません。

ありがたいことに、FSF は GPL と互換性があるライセンスと、 互換性がないライセンスの一覧を http://www.gnu.org/licenses/license-list.html で示してくれています。この章で議論しているすべてのライセンスがこのリストにありますが、GPL と互換性があるものもあれば、ないものもあります。



[38] かつて、ライセンスに関する統計情報が Freecode.com にありました。 まだ Freshmeat.net と呼ばれていた頃のものです。しかし 2008 年に彼らはプロジェクトを自由にタグ付けできるように切り替えました。 その結果、信頼できるライセンス統計を取得するのが難しくなりました。 http://help.freecode.com/discussions/questions/187-where-did-the-license-statistics-page-go に、統計情報を取得する方法についての議論があります。