GPLv3にアップグレードする理由
Richard Stallman著
GNU一般公衆利用許諾書のバージョン3がまもなく完成し、フリーソフトウェ アをGPLバージョン2からアップグレードできるようになります。この記事では、 ライセンスのアップグレードがなぜ重要なのかについて説明します。
まず重要な点は、アップグレードは選択制だということです。GPLバージョ ン2は依然として有効なライセンスなので、他のプログラムがGPLv3にアップグ レードするなかで、いくつかのプログラムがGPLv2の元でライセンスされ続けた としても、厄介なことが起こったりはしないでしょう。
私たちは、GPLv2とGPLv3は両立性が無いと言っていますが、それは、ひとつ のプログラムの中で、GPLv2でライセンスされたコードと、GPLv3でライセンス されたコードとを結合させる合法的な方法はない、という意味です。なぜなら、 GPLv2とGPLv3は、ともにコピーレフト・ライセンスであり、双方に「このライ センスで提供されているコードを大きなコードの一部に含める場合には、その 大きなコードもこのライセンスで提供しなくてはならない。」と書かれている からです。よって、両者に互換性を持たせる方法はありません。私たちは、 GPLv2との互換性に関する条項をGPLv3に追加することもできましたが、それだ けでは役に立たないでしょう。なぜなら、GPLv2にも同様な条項が必要だからで す。
幸いなことに、ライセンスの非両立性が問題になるのは、リンクやマージ、 あるいは結合を行って、2つの異なるプログラムから1つのプログラムを作ると きだけです。1つのオペレーティングシステムの中に、GPLv3で保護されたプロ グラムと、GPLv2で保護されたプログラムとを並べておくことには何の問題もあ りません。例えば、TeXライセンスやApacheライセンスはGPLv2と非互換ですが、 だからといって、Linuxや Bash, GCCが存在する同じシステムで、TeXやApache が使えなくなるわけではありません。なぜなら、これらは全て分離した別のプ ログラムだからです。同じ理由で、LinuxがGPLv2で提供され続け、BashやGCC がGPLv3に進んだとしても、法的な衝突は起こりません。
プログラムをGPLv2で提供し続けても問題は発生しません。それでもGPLv3に 移行するのは、今ある問題にGPLv3で対処したいからです。
GPLv3で防ぐことができる重要な危険の1つは、「Tivoization」です。 Tivoizationとは、コンピュータ (「電化製品」と呼ばれています) が、GPLで 保護されているのに変更不可能になっているソフトウェアを含んでいる、とい う意味です。そういった電化製品は、ソフトウェアが修正されたことを検知す ると停止してしまうのです。ソフトウェアに含まれるある種の機能は多くの人々 の気に入らないだろうと製造者が考えることが、彼らがTivoizationを行うよく ある理由です。このようなコンピュータの製造者は、フリーソフトウェアが提 供する自由を利用する一方で、あなたが同様に自由に利用することは許さない のです。
自由市場で電化製品間の競争が起これば有害な機能は抑制されるので、それ 以上の措置は必要ではない、という人もいます。例えば「毎週火曜日の午後1時 から5時に停止します」といった、恣意的かつ無意味で、間違った機能を避ける には、おそらく競争が起こるだけで十分でしょう。しかしそうだとしても、ご 主人さまを選択できるというだけでは、自由とは言えないのです。自由とは、 ソフトウェアが何をするかをあなた自身が制御するということであっ て、誰か他人にあなたに関することを決められてしまい、彼らに懇願したり、 脅したりしない限りあなたはそれを変えられない、ということではありません。
デジタル諸制限管理 (あなたのコンピュータにあるデータの利用方法を制限 するために設計された有害な機能) といった重要な分野では、競争は役に立ち ません。妥当な競争が禁止されているからです。デジタル・ミレニアム著作権 法や類似の法律のため、米国やその他の多くの国では、いわゆる「DVDの陰謀」 (ウェブサイト は http://www.dvdcca.org/ にありま すが、ルールは公開されていないようです) の公式ルールに基づいて利用者を 制限しない限り、DVDプレーヤーを頒布することは違法です。一般人は、DRM 機 能の無いプレーヤーを買って、DRMを拒絶することができません。そのようなプ レーヤーは手に入らないからです。どんなにたくさんの製品の中から選択した としても、全ての製品には同様のデジタル手錠がかけられているというわけで す。
GPLv3は、あなたがその手錠を外す自由を保証します。GPLv3は、DRMや似た ような機能を禁止しているわけではありません。プログラムに追加したり、プ ログラムから削除したりできる実質的な機能には制約をかけません。そうでは なくて、販売業者が有害な機能を製品に自由に追加するのと同様に、あなたが 機能を自由に削除できることを保証しているのです。Tivoizationとは、彼らが あなたに自由を与えないやり方です。あなたの自由を保護するために、GPLv3は Tivoizationを禁止します。
Tivoizationの禁止は、消費者が時折にでも利用することが想定される製品 全てに適用されます。GPLv3は、ビジネスや組織での利用だけを想定した製品の Tivoizationは許容します。(最新のGPLv3の草稿では、この基準を明確に記載し ています。)
GPLv3が抵抗している他の脅威には、Novell-Microsoftの取引のような、特 許に関する取引があります。Microsoftは、所有している何千もの特許を利用し て、GNU/Linuxユーザーにその権利分を支払わせようとしており、 Novell-Microsoftの取引でそれを実現しようとしました。この取引によって、 Novellの顧客には、Microsoftが保有する特許の限定的な保護が与えられます。
MicrosoftはNovell-Microsoftの取引において若干ミスを犯しました。 GPLv3は、Microsoftが与えた限定的な保護がコミュニティ全体に拡大適用され るようにすることで、そのミスがMicrosoftに不利にするように作られています。 これを活かすには、プログラムをGPLv3でライセンスする必要があります。
Microsoftの弁護士は馬鹿ではないので、次回はミスしないようにうまくや るでしょう。そのため、GPLv3は彼らに「次回」を与えないように書かれていま す。GPLバージョン3の元でリリースされたプログラムは、ユーザーの特許権使 用料を再頒布者に徴収させるというMicrosoftの将来の企てから保護されます。
また、GPLv3は、ユーザに対してプログラムの貢献者や再頒布者からの明示 的な特許権保護を提供します。GPLv2では、プログラムのコピーを提供した企業 が、そのプログラムのユーザとユーザから再配布を受けた人々を特許権侵害で 訴えないことを保証するには、暗黙的な特許ライセンスを頼るしかありません。
GPLv3における明示的な特許ライセンスは、私たちが好んだかもしれないほ ど極端なものではありません。理想的には、GPLで保護されたコードを再頒布し ない人と同様に、GPLで保護されたコードを再頒布する全ての人に、全てのソフ トウェア特許を放棄させたいのです。ソフトウェア特許はたちの悪いばかげた システムで、そのせいで、全てのソフトウェア開発者は、その分野の巨大企業 だけでなく、聞いたこともないような会社から訴えられる危険に晒されていま す。典型的な大規模プログラムは、何千ものアイデアを組み合わせているので、 何百もの特許で保護されたアイデアを実装してしまっていることは珍しくあり ません。巨大企業は何千もの特許を集め、その特許を使って小さな開発者をい じめています。特許というものは、既にフリーソフトウェア開発の障害になっ ているのです。
ソフトウェア開発を安全にする唯一の方法は、ソフトウェア特許を廃止する ことです。私たちは、いつの日かこの目標を達成することを目指しています。 しかし、ソフトウェアライセンスを通じてこれを実現することはできません。 フリーなプログラムもフリーでないプログラムも、ソフトウェア特許によって、 無関係な団体につぶされる可能性があります。そして、プログラムのライセン スではそれを防ぐことはできません。判決や特許法の改正によってのみ、ソフ トウェア開発を特許から守ることができます。もしこれをGPLv3で実現しようと しても、失敗することになるでしょう。
従って、GPLv3では、危険を制限し、その向きを変えようとしています。特 に、フリーソフトウェアを、死よりも酷い運命、すなわち、「特許によって事 実上プロプライエタリになってしまう」という事態から守るように試みました。 GPLv3の明示的な特許ライセンスによって、GPLを利用する企業がユーザーに4つ の自由を提供することを保証できます。その自由は撤回することができず、特 許を使って特定のユーザーに「あなたたちは含まれていません」ということが できなくなります。また、このようなことを行うために、他の特許保有者と結 託することもできなくなります。
他にGPLv3の有利な点として、より良い国際化、ライセンス終了に関するよ り穏健な解釈、BitTorrentのサポート、Apacheライセンスとの互換性などがあ ります。全般的に見て、アップグレードする理由はたくさんあります。
ひとたびGPLv3がリリースされ、その後は変更がなくなる、ということはあ り得ません。ユーザの自由に対する新しい脅威が明らかになれば、GPLバージョ ン4を作らなくてはならないでしょう。その時が来たら、プログラムを問題なく GPLv4にアップグレードできるようにしておくことは重要です。
これを可能とする1つの方法は、プログラムを「GPLバージョン3かそれ以降 のバージョンのいずれか」でリリースすることです。もう一つの方法として、 プログラムの貢献者全員に、将来のGPLバージョンへの更新を決定する代理人を 指定させておくことができます。3つめの方法は、貢献者全員が著作権を一人の 指名された著作権者に譲渡するようにし、その1名がライセンスのバージョンを アップグレードできるようにすることです。いずれにせよ、将来に備えて、プ ログラムはこのような柔軟性を持つべきです。
