原文は英語で、これはその翻訳です。

GPLv3クイック・ガイド

[GPLv3ロゴ]

[この小論(の原文: 英語)はPDFreStructuredTextのフォーマットでも利用可能です。]


一年半の公衆への諮問、何千ものコメント、そして4つの草案の後、バージョン3のGNU一般公衆ライセンス (GPLv3)がついに2007年6月29日に発行されました。最初の草案が現れて以来、多くの議論がありましたが、それが開発者にもたらす利益についてはあまり多くの人々が述べてきませんでした。このガイドをそのギャップを埋めるものとして発表します。自由ソフトウェア、コピーレフト、そしてGPLの目標の簡潔な復習から始めます。そして、ライセンスの主要な変更をレビューし、それがGPLの目標をどのように前進させ、開発者の利益になるかを見ていきます。

GPLの基礎

誰しも、利用するソフトウェアによって制限を受けるべきではありません。すべてのユーザが有するべき、4つの自由があります:

  • いかなる目的にも、ソフトウェアを使う自由、
  • 必要にあわせてソフトウェアを変更する自由、
  • 友人や隣人とソフトウェアを共有する自由、そして、
  • 変更を共有する自由、です。

あるプログラムがこれらの自由のすべてをユーザに提供するとき、わたしたちはそれを自由ソフトウェアと呼びます。

ソフトウェアを書く開発者は、そのソフトウェアをGNU GPLの条項でリリースすることができます。そうしたとき、それは自由ソフトウェアであり、誰が変更し配布するかに関係なく、自由ソフトウェアでありつづけます。わたしたちはこれをコピーレフトと呼びます: ソフトウェアは著作権を設定されますが、プロプライエタリソフトウェアのように権利をユーザを制限するために使う代わりに、わたしたちはすべてのユーザが自由を有することを確実にするために著作権を使います。

GPLを改訂し、法的もしくは技術的開発によって害されることからそのコピーレフトを守ります。最新のバージョンは、ユーザを三つの最近の脅威から守ります:

  • Tivoization: いろいろな会社がGPLのソフトウェアを実行するさまざまに異なる種類のデバイスを作成し、そして、実行されるソフトウェアをかれらは変更できるが、あなたはできないようにハードウェアを装備しました。デバイスが任意のソフトウェアを実行できる場合、それは、一般目的のコンピュータであり、その所有者はそれがすることを制御するべきです。あるデバイスがあなたがそうすることを妨害するとき、わたしたちはそれをTivoizationと呼びます。
  • 自由ソフトウェアを妨げる法律: ディジタル・ミレニアム著作権法やEUの著作権指令のような法令は、DRM(ディジタル制限管理、以下をご覧ください)を破ることができるソフトウェアを書いたり共有することを犯罪にします。これらの法律はGPLが与える権利に干渉するべきではありません。
  • 差別的な特許取引: マイクロソフトは最近、自由ソフトウェアユーザを特許侵害で訴えないと人々に言うようになりました。マイクロソフトにその特権のために支払っているベンダからソフトウェアを入手している限りにおいて、です。究極的には、マイクロソフトは自由ソフトウェアの使用からロイヤリティを集めようとしています。これはユーザの自由に干渉します。どんな会社もこのようなことができるべきではありません。

バージョン3は、また、すべての人が使い、理解するために、ライセンスを容易にするよう、いくつもの改善があります。しかし、すべてのこれらの変更でさえ、GPLv3は急進的な新しいライセンスではありません。そうではなく、以前のバージョンの発展です。たくさんの文章は変更されましたが、そのほとんどはGPLv2が述べていたことを単に明確にしただけです。これを念頭に、GPLv3の主要な変更をレビューし、ライセンスがどのようにユーザと開発者のために改善されたかについて語りましょう。

自由ソフトウェアを禁じる法律に中立 — しかしDRMを禁じない

DVDやほかのメディアにおけるディジタル制限管理(DRM)について、おそらくみなさんよくご存知でしょう。この制限をバイパスするツールを書くことを違法とする法律、ディジタルミレニアム著作権法やEUの著作権指令のような法律についても、ご存知かもしれません。誰であっても、どのようなコードであっても、だれかが欲してそのコードを書くことを禁じることができてはなりません。GPLv3はこの権利を守ります。

GPLのコードを使ってDRMを実装するソフトウェアを書くことは常に可能です。しかし、GPLv3で守られたコードを使って誰かがそうした場合、第3節は、実効的な技術的「保護」手段としてはそのシステムはみなされない、と述べています。これは、あなたがDRMを破った場合、そうするあなた自身のソフトウェアを配布する自由があり、DMCAや同様の法律によって脅かされない、ということを意味します。

いつもと同じく、GNU GPLは人々がソフトウェアで行うことを制限しません。それは、人々がほかの人を制限することを止めるのです。

修繕する権利を守る

Tivoizationはユーザの自由を削ぐ危険な試みです。ソフトウェアを変更する権利はあなたのどのコンピュータもそれを許さない場合、無意味となってしまいます。GPLv3は、デバイスに変更したソフトウェアをインストールするのに必要な情報やデータを(なんであろうとも)提供することをディストリビュータに要求することでTivoizationを止めます。インストールするための情報やデータは、一連の手順といった単純なものである場合もあれば、暗号鍵のような特別なデータや、ハードウェアの一貫性チェックをバイパスする方法の情報を含むこともあるでしょう。それはハードウェアがどのように設計されているかに依存します。どのような情報が必要であるかに関わらず、それを入手できる必要があるのです。

この要求の範囲は制限されます。それでもディストリビュータは暗号鍵をいかなる目的で使っても許されます。かれらは、あなたが必要な場合に鍵を開示する必要があるだけで、それは、かれらがあなたに与えたデバイスのGPLのソフトウェアをあなたが変更することができれば良いのです。GNUプロジェクトは自身、GnuPGを使ってそのFTPサイトのすべてのソフトウェアの一貫性を保証するようにしています。GPLv3は暗号を使うことを人々にやめさせません。わたしたちはそんなことは希望しません。GPLv3は単にライセンスがあなたに与える権利を奪ってしまうことを止めさせるのです。それが、特許法、技術、もしくはほかのなんの方法であっても。

特許の脅威に対するより強い保護

GPLv2が発行されてから17年の間、ソフトウェア特許の風景は大きく変わり、自由ソフトウェアライセンスではそれらに対応する新しい戦略を発達させてきました。GPLv3はこの変化も反映しています。ある人が書いたり変更したGPLv3の及ぶソフトウェアを運搬する時はいつでも、すべての受け取った人にGPLが与える権利を行使するのに必要な特許のライセンスを提供しなければなりません。加えて、ライセンシーがほかのユーザのこれらの権利の行使を止めるように特許訴訟を利用しようとした場合、かれらへの(GPLの)ライセンスは終了します。

これがユーザと開発者に意味するところは、無鉄砲な貢献者によって、後で特許侵害だとして、訴えられるという心配なしに、GPLv3の及ぶソフトウェアで作業することができる、ということです。これらの変更で、GPLv3は、ほかのどの自由ソフトウェアライセンスよりも、特許攻撃に対する防御をユーザに与えるものとなりました。

ライセンスの両立性の明確化

あるコードに対してGPLのプロジェクトに組み入れたい場合、GPLv2はそのほかのコードのライセンスはGPLv2にない制限がなにもあってはならないと述べています。そういった場合、そのライセンスはGPLと両立する、と言います。

しかしながら、あるライセンスには、遵守するのがとても簡単なため実質として制限とならない要求があります。たとえば、あるライセンスは、ある商標を使うことを許可しないと述べています。これは実質として追加の制限とはなりません: その条項がなかったとしてもその商標を使う許可はないかもしれないのですから。わたしたちは常々、そのようなライセンスもGPLv2と両立すると述べています。

今、GPLv3はすべての人に、このような要求があるコードを使う許可を明示的に与えます。新しい条項によって、GPLと両立するライセンスは何か、なぜ両立するのか、そしてGPLと両立するコードと何ができるのかに関する誤解を晴らしてくれます。

新しい両立するライセンス

既にGPLと両立するライセンスに関するルールを明確化したのに加えて、GPLv3は、いくつかのほかのライセンスとの新しく両立するようになりました。Apacheライセンス2.0が主要な例です。たくさんの素晴らしいソフトウェアが強力なコミュニティに支えられ、このライセンスで利用可能です。GPLv3のこの変更が自由ソフトウェアコミュニティの中でさらなる協力と共有を促進することを希望します。以下のチャートで、異なる自由ソフトウェアライセンス間のよくある両立性の関係を解説します:

異なる自由ソフトウェアライセンスの間での両立性の関係を解説したチャートです。詳細はFSFのライセンスリストのページをご覧ください。

あるライセンスからもう一つのライセンスへの矢は、第一のライセンスが第二のものと両立することを示しています。これは、たとえ複数の矢をたどって、あるライセンスから別のライセンスに到達しても成立します。たとえば、ISCライセンスはGPLv3と両立します。そのプログラムが“any later version”のGPLを選択することを許している場合、GPLv2はGPLv3と両立します。この図は包括的ではなく(GPLv2とGPLv3と両立するライセンスのより完全なリストについては、わたしたちのライセンスページをご覧ください)、GPLv3がGPLv2の両立するすべてのものと両立(し、そしていくつかとも両立)することを解説するためだけのものです。

(両立性に関しては)GNUアフェロGPLバージョン3も対象になっています。オリジナルのアフェロGPLはウェブアプリケーションのすべてのユーザがそのソースを受けとることが可能となることを確実にするよう、設計されています。GNUアフェロGPLバージョン3は、この目標を拡大しました。このライセンスはネットワーク・インタラクティブなソフトウェアのすべてに適用でき、ゲームサーバのようなプログラムにも作用するでしょう。追加された規定はまたより柔軟で、AGPLのソースをネットワークインタフェースなしのアプリケーションに使った場合、GPLが常に要求してきたのと同様な種類の方法でソースを提供するだけで良いようになっています。この二つのライセンスを両立するようにすることで、ネットワーク・インタラクティブなソフトウェアの開発者は、成熟したかれらに利用可能なGPLのコードの上に構築しつつ、かれらのコピーレフトを強めることができるのです。

開発者がソースを提供する多くの方法

GPLの基本的要求の一つは、ユーザにオブジェクトコードを配布するときは、ソースを取得する方法も提供しなければならない、というものです。GPLv2はこれのためのいくつかの方法を与えていましたが、GPLv3はそれをそのまま保持するとともに、いくつかの明確化を行いました。また、GPLv3はネットワークでオブジェクトコードを運搬する時にソースを提供する新しい方法も提供しています。たとえば、ウェブやFTPサーバでオブジェクトコードをホストするとき、訪れた人には、第三者のサーバからどのようにソースを取得するかの手順を単に提供できれば良い、となっています。このオプションで、多数のソースに少しの変更だけを行うといった、多くの小さなディストリビュータは、この要求を満たすことが、より容易になったでしょう。

新しいライセンスでは、BitTorrentでオブジェクトコードを運搬することがより容易になっています。第一に、単にtorrentをダウンロードしたりシードしたりする人々は、ソフトウェアを運搬することについてのライセンスの要求から除外されます。次に、torrentを開始する人は誰でも単にほかのtorrentユーザにパブリックなネットワークサーバのどこで利用可能かを伝えるだけでソースの提供ができる、ということです。

これらの新しいオプションは、ユーザが取得するのを困難とすることなく、ソースを提供についてGPLをコミュニティのスタンダードに適合させています。

より少ないソースの配布: 新しいシステムライブラリ例外

両方のバージョンのGPLはソフトウェアをビルドするために必要なすべてのソース、すなわち、サポーティングライブラリ、コンパイルのスクリプト等を含めて、提供することを要請します。また、両方のバージョンのGPLはシステムライブラリで線を引きます: Cライブラリのような、オペレーティング・システムのある種の中心コンポーネントのソースを提供する必要はありません。

GPLv3はシステムライブラリの定義を修正し、オペレーティング・システムには直接ついてこないかも知れないけども、そのソフトウェアのすべてのユーザが有していることが合理的に期待できるソフトウェア、を含めるようにしました。たとえば、システムライブラリには今、PythonやRubyのような一般的なプログラミング言語の標準ライブラリが含まれます。

新しい定義は、GPLのソフトウェアを(OpenSolarisのCライブラリのような)GPLと両立しないシステムライブラリと組み合わせることができ、一緒に両者を配布できると、明確にもしています。これらの変更はそのような組み合わせをユーザに提供したい自由ソフトウェアディストリビュータの暮らしを容易にするでしょう。

グローバルなライセンス

GPLv2は「配布」について多く述べています。ほかの誰かとプログラムを共有するとき、あなたはプログラムを配布します。このライセンスは配布とはなにかについてまったく述べていません。なぜならこの用語は合衆国著作権法から借りてきたものだからです。わたしたちは判事がその定義についてそれを見ることを期待していました。しかし、わたしたちは、ほかの国の著作権法で、同じ言葉を使って異なる意味を与えていることに後に知ることになりました。このため、そのような国の判事は合衆国の判事とGPLv2を異なって分析する可能性があります。

GPLv3は新しい用語、“convey”を使い、その用語の定義を与えます。“convey”は“distribute”でわたしたちが意図するのと同じ意味を持ちますが、今、これはライセンスの中で直接説明され、わたしたちが意味するものを理解することは、どこの人々にも容易であるべきです。ライセンス全体でほかの小さな変更があり、世界中で矛盾なく適用されることを確実にする助けとなるでしょう。

ルールが破られたとき: 遵守へのなめらかな道

GPLv2では、どのような形でもライセンスに違反した場合、その権利は自動的に永久に失われました。それを取り戻す唯一の方法は、著作権者への嘆願でした。違反への強い防御は価値がある一方、このポリシーは、ある人が事故で規則に違反してしまった場合に頭が痛い問題を引き起こすものでした。ライセンスの正式な回復をすべての著作権者にお願いするのは大変でコストがかかることになり得ました。典型的なGNU/Linuxディストリビューションは何千もの作品を利用しているのです。

GPLv3は適切な行動には猶予を与えます。ライセンスに違反した場合、著作権者が60日以内に連絡してこない限り、一旦違反を止めれば、その権利を取り戻せます。もし、通知を受け取った場合、初めての違反者であり30日以内に違反を修正すれば、その権利はすべて回復することができます。そうでなければ、連絡してきた著作権者とケースバイケースでその問題に取り組み、その後、その権利は回復されます。

GPLの遵守は常にFSF Compliance Labや世界のライセンスを守らせるほかのグループの第一の優先順位のものでした。この変更は、遵守することは守らせるものにおいて第一の優先順位のままであることを確実にするとともに、違反者に遵守することを奨励します。

最新で一番良いもの

これらの変更の中のいくつかは、ほかの人よりあなたにとっては重要ではないかもしれません。それは問題ありません。めいめいのプロジェクトはそれぞれ異なりますし、そのライセンスに対し異なるものを求めるでしょう。しかし、これらの改良の多くは、あなたとあなたの仕事に役立つでしょう。

全体としてとらえれば、このような変更のすべてはもっと多くを意味します。つまり、わたしたちはよりよい、コピーレフトを作成したのです。それは、よりユーザの自由をより守り、自由ソフトウェアコミュニティの協力をより進めます。しかし、ライセンスを改訂することは作業の一部に過ぎません。人々がそれが提供する利益を得るためには、開発者がかれらのプロジェクトにGPLv3を使う必要があります。新しいライセンスであなた自身のソフトウェアをリリースすることで、それを扱う全員(ユーザ、ほかの開発者、ディストリビュータ、弁護士でさえも)が利益を得ます。あなたの次回のリリースに、GPLv3を使うことをわたしたちは期待しています。

あなたのプロジェクトをGPLv3にアップグレードすることについてより詳しく知りたい場合、FSFコンプライアンス・ラボは喜んで協力します。わたしたちのウェブサイトでは、そのライセンスを使う基本的手順や人々が持つよくある懸念を扱ったFAQがあります。もし、あなたの状況がそれよりも複雑なものである場合、わたしたちに連絡してください。わたしたちは、あなたの(ライセンスの)移行に役立てるよう努力します。ともに、すべてのユーザの自由を守ることに努めましょう。