GPLバージョン3へアップグレードすべき理由
まず始めに、アップグレードは必須ではないという点をおさえておくことは大切だ。GPLv2は今後も有効なライセンスであり続ける。一部のプログラムがGPLv2に留まったまま、その他のプログラムがGPLv3へアップグレードしたとしても、何か非常に困る大変なことが起こるわけではない。GPLv2とGPLv3との間に互換性はないが、そのことは深刻な問題ではない。
GPLv2とGPLv3が非互換であるということはつまり、GPLv2の下にあるコードとGPLv3の下にあるコードとを1つのプログラムの中で合法的に混ぜ合わせる方法はないという意味だ。その理由は、GPLv2とGPLv3がどちらもコピーレフトのライセンスであるためだ。どちらのライセンスも「このライセンスの下にあるコードを『より大きなプログラム』の中に含める場合には、その『より大きなプログラム』もこのライセンスの下に置かなければならない」としている。GPLv2とGPLv3に互換性を持たせるようにすることは不可能だ。GPLv2と互換性を持たせるための条項をGPLv3に加えることはできたかもしれないが、GPLv2の側にもGPLv3と互換性を持たせるための条項を加える必要があるため、GPLv3だけにGPLv2と互換性を持たせるための条項を作っても意味がない。
幸いなことにライセンスの非互換性が問題となるのは、2つの異なるプログラムからのコードを1つのプログラムの中にリンク/マージ/混合したいという場合だけだ。1つのオペレーティングシステムにおいて、GPLv3の下にあるプログラムとGPLv2の下にあるプログラムとを同時に利用しても問題はない。例えばTeXライセンスとApacheライセンスはGPLv2と非互換だが、LinuxカーネルとBashとGCCを使っているシステム上でTeXやApacheを実行しても問題はない。理由は、それらがすべて別々のプログラムであるためだ。同じように、仮にBashとGCCがGPLv3へ移行して、LinuxカーネルがGPLv2のままであったとしても、ライセンス上は何ら問題はない。
GPLv3に移行する理由は、プログラムをGPLv2のままにしておくと何か新たに問題が発生するからではなく、GPLv3がGPLv2の既存の問題に対処しているからだ。GPLv3が阻止しようとしている、とりわけ大きな脅威にTivo化がある。Tivo化とは、コンピュータ(「アプライアンス」と呼ばれる)がGPLのソフトウェアを含んでいるが、そのGPLのソフトウェアが変更されたことを検出するとアプライアンスが機能停止するため、事実上そのGPLのソフトウェアを変更することができないという状態になっていることだ。通常Tivo化を行なうのは、多くの人が望まないような機能をソフトウェアに含めた上で、そのような機能を削除されたくないとメーカーが考えている場合だ。そのようなコンピュータのメーカーは、フリーソフトウェアが与える自由を利用している一方で、あなたには同じ自由を与えないでいる。
自由市場でのアプライアンス間の競争があれば、そのようなたちの悪い機能は少量に留まることになるだろうという議論もある。確かにそのような競争原理からだけでも、「毎週火曜日の午後1時から午後5時までの間にシャットダウンしなければならない」というような独断的で無意味な機能は淘汰されることになるだろう。しかしそうだとしても、支配者を選ぶことができるというのは自由であることとは違う。自由というのは、あなたの代わりに決定権を持つ他の誰かに対して単に懇願したり脅迫したりすることができるということではなく、あなたのソフトウェアの動作を「あなた」が支配することができるということだ。
またDRM(デジタル「諸制限」管理――あなたのコンピュータ上のデータをあなたが利用することについて制限することが目的の、たちの悪い機能)という非常に重要な分野では、競争はまったく役に立たない。というのも、適切な競争が禁じられているためだ。「DVD陰謀団」の正式な規定によると、DMCA(デジタルミレニアム著作権法)やそれに類した法律の下では、米国やその他の多くの国々において、ユーザの自由を制限しないDVDプレイヤを流通させることは違法行為となっている(なおこのDVD陰謀団のウェブサイトはhttp://www.dvdcca.org/だが、この規定については記載されていないようだ)。つまり非DRMプレイヤは入手可能になっていないため、人々は非DRMプレイヤを購入することによってDRMを拒否するということができない。どれほど数多くの製品から購入するものを選ぶことができたとしても、それらにはすべて同じデジタルの手錠がかけられている。
GPLv3は、あなたがそのような手錠を自由に取り外すことができるということを保証する。とは言ってもGPLv3では、DRMを含めいかなる機能も実装することが禁止されているわけではない。言い換えるとGPLv3は、あなたがプログラムへ追加する(あるいはプログラムから削除する)何らかの機能に対して制限を設けることはしていない。そうではなくGPLv3は、あなたにプログラムを配布したメーカーが自由に追加したたちの悪い機能を、あなたが彼らと同じく自由に削除できることを保証している。Tivo化はあなたからそのような自由を奪うための手段であるが、GPLv3はTivo化を禁止することであなたの自由を守る。
Tivo化の禁止は、消費者による利用(時折の利用であっても)が予期されるすべての製品に適用される。GPLv3ではほぼもっぱらビジネスや組織での利用を目的とした製品についてだけTivo化を容認している(GPLv3ドラフトの最新版では製品がどちらに該当するのかの判断基準が明記されている)。
GPLv3が阻止しようとしているもう一つの脅威として、Novell-Microsoft契約のような特許契約がある。Microsoft社は、GNU/Linuxユーザに特別保護を与える代わりにMicrosoft社に対してお金を支払わせるという形で、自社の何千という特許を利用したいと考えている。そして実際にその目的を実現しようとしてNovell-Microsoft契約を結んだ。Novell-Microsoft契約では、Microsoft社の特許からのかなり制限された保護がNovell社の顧客に対して提供されている。
Microsoft社はNovell-Microsoft契約の中でいくつかのミスをしており、GPLv3は、そのような一部の人への保護をコミュニティ全体に拡大させることで、それらのミスがMicrosoft社にとってあだとなるように設計されている。この設計が功を奏すためには、プログラムがGPLv3を使用している必要がある。
Microsoft社の弁護士たちは頭が良いので、次回はそのようなミスを避けてくるかもしれない。そのためGPLv3は彼らに「次回」はないと記している。プログラムをGPLv3の下にリリースすることは、プログラムのユーザからMicrosoft社のロイヤリティをディストリビュータに徴収させようとするMicrosoft社の将来的な試みから、プログラムを守ることになる。
GPLv3ではまた、ユーザはプログラムのコントリビュータとディストリビュータから明示的な特許保護が得られると規定している。GPLv2では、ユーザにプログラムを提供した企業が、ユーザ、つまり自分たちがプログラムを配布した相手を特許侵害で訴えることはないということに関して暗黙的な特許ライセンスを拠り所としており、明示的な特許ライセンスは存在しなかった。
GPLv3における明示的な特許ライセンスにも、われわれは十分に満足しているわけではない。われわれの理想を言えば、GPLの下にあるコードを再配布する人もしない人もすべての人々が、あらゆるソフトウェア特許を放棄するようにしたかった。ソフトウェア特許は、すべてのソフトウェア開発者をその分野のすべての巨大企業はもちろん聞いたこともないような企業からも訴えられる危険にさらす、不道徳かつ不合理なシステムだ。大規模なプログラムであれば一般的に何千というアイデアを組み合わせているため、何百もの特許がカバーするアイデアを実装していることも珍しくない。巨大企業は何千もの特許を収集し、それらの特許を使って、より小規模な開発者たちをいじめている。特許は、すでにフリーソフトウェアの開発も妨害している。
ソフトウェア開発を安全にするための唯一の方法は、ソフトウェア特許を廃止することであり、われわれはいつかこの目標を達成するつもりだ。しかし、ソフトウェアライセンスという手段ではこの目標を達成することはできない。フリーであろうとなかろうとすべてのプログラムは無関係の人たちが持っているソフトウェア特許によって葬り去られるということが起こり得るのだが、プログラムのライセンスではそれを防ぐことはできない。特許の脅威からソフトウェア開発を守ることができるのは、法廷での判決か、特許法の改革だけだ。それをGPLv3でやろうとしても失敗するだろう。
したがってGPLv3では、脅威の大きさを抑えたり回避したりすることを目指している。われわれは特に、葬り去られるよりも悪い運命、すなわち特許を通して事実上プロプライエタリにされてしまうということからフリーソフトウェアを救おうとしてきた。GPLv3の明示的な特許ライセンスは、4つの自由(※)をユーザに与えるための「GPL」を利用している企業が、一部のユーザに対しては態度を一変して自社の特許を振りかざし「あなたにはそのような自由はない」と言い出すことはできないようにするものだ。またGPLv3では、他の特許保持者と共謀して同様のことを行なうことも阻止している。
GPLv3にはさらに、優れた国際化、よりゆるやかな契約の打ち切り、BitTorrentのサポート、Apacheライセンスとの互換性などの利点がある(より詳しくはgplv3.fsf.orgを参照してほしい)。全体的に見て、GPLv3にはアップグレードするための理由が十分にある。
GPLv3がリリースされた後も世の中にはまた何らかの変化が必ず起こるだろう。ユーザの自由に対する新たな脅威が現われたら、われわれはGPLバージョン4を作成する必要があるだろう。その時が来た場合にプログラムをGPLv4へ問題なくアップグレードすることができるようにしておくことは重要だ。
そのための方法の一つは、プログラムを「GPLバージョン3またはそれ以降のバージョン」の下でリリースすることだ。また別の方法としては、プログラムのすべてのコントリビュータが同意の元で、GPLの将来のバージョンのアップグレードについての決定権を持つ代理人を前もって決めておくという方法もある。3つめの方法としては、すべてのコントリビュータが一人の指名された著作権保持者に著作権を譲渡するという方法がある。この場合、その著作権保持者がライセンスのバージョンをアップグレードすることができる。いずれにせよ、プログラムはこのような将来のための柔軟性を備えておくべきだ。
Copyright 2007 Richard Stallman Verbatim copying and distribution of this entire article are permitted worldwide without royalty in any medium provided this notice is preserved.
※編注 GPLがユーザーに与える「4つの自由」とは、(0)実行、(1)解析と変更、(2)再配布、(3)改変バージョンの配布のこと。