誰しも、利用するソフトウェアによって制限を受けるべきではありません。すべてのユーザが有するべき、4つの自由があります:
ソフトウェアを書く開発者は、そのソフトウェアをGNUGPLの条項でリリースすることができます。そうしたとき、それは自由ソフトウェアであり、誰が変更し配布するかに関係なく、自由ソフトウェアでありつづけます。わたしたちはこれをコピーレフトと呼びます:ソフトウェアは著作権を設定されますが、プロプライエタリソフトウェアのように権利をユーザを制限するために使う代わりに、わたしたちはすべてのユーザが自由を有することを確実にするために著作権を使います。
GPLを改訂し、法的もしくは技術的開発によって害されることからそのコピーレフトを守ります。最新のバージョンは、ユーザを三つの最近の脅威から守ります:
DVDやほかのメディアにおけるディジタル制限管理(DRM)について、おそらくみなさんよくご存知でしょう。この制限をバイパスするツールを書くことを違法とする法律、ディジタルミレニアム著作権法やEUの著作権指令のような法律についても、ご存知かもしれません。誰であっても、どのようなコードであっても、だれかが欲してそのコードを書くことを禁じることができてはなりません。GPLv3はこの権利を守ります。
GPLのコードを使ってDRMを実装するソフトウェアを書くことは常に可能です。しかし、GPLv3で守られたコードを使って誰かがそうした場合、第3節は、実効的な技術的「保護」手段としてはそのシステムはみなされない、と述べています。これは、あなたがDRMを破った場合、そうするあなた自身のソフトウェアを配布する自由があり、DMCAや同様の法律によって脅かされない、ということを意味します。
いつもと同じく、GNUGPLは人々がソフトウェアで行うことを制限しません。それは、人々がほかの人を制限することを止めるのです。
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のこの変更が自由ソフトウェアコミュニティの中でさらなる協力と共有を促進することを希望します。以下のチャートで、異なる自由ソフトウェアライセンス間のよくある両立性の関係を解説します:
(両立性に関しては)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の遵守は常にFSFComplianceLabや世界のライセンスを守らせるほかのグループの第一の優先順位のものでした。この変更は、遵守することは守らせるものにおいて第一の優先順位のままであることを確実にするとともに、違反者に遵守することを奨励します。
これらの変更の中のいくつかは、ほかの人よりあなたにとっては重要ではないかもしれません。それは問題ありません。めいめいのプロジェクトはそれぞれ異なりますし、そのライセンスに対し異なるものを求めるでしょう。しかし、これらの改良の多くは、あなたとあなたの仕事に役立つでしょう。
全体としてとらえれば、このような変更のすべてはもっと多くを意味します。つまり、わたしたちはよりよい、コピーレフトを作成したのです。それは、よりユーザの自由をより守り、自由ソフトウェアコミュニティの協力をより進めます。しかし、ライセンスを改訂することは作業の一部に過ぎません。人々がそれが提供する利益を得るためには、開発者がかれらのプロジェクトにGPLv3を使う必要があります。新しいライセンスであなた自身のソフトウェアをリリースすることで、それを扱う全員(ユーザ、ほかの開発者、ディストリビュータ、弁護士でさえも)が利益を得ます。あなたの次回のリリースに、GPLv3を使うことをわたしたちは期待しています。