GNU General Public License
2012-1
GNU General Public License
GNU General Public License(GNU GPLもしくは単にGPLとも表記、呼称される)とは、GNUプロジェクトのためにリチャード・ストールマンにより作成されたフリーソフトウェアライセンスである。八田真行の日本語訳ではGNU 一般公衆利用許諾書と呼んでいる。現在、GNU公式サイト日本語ページでは GNU一般公衆ライセンスと表記されている。
GPLは、プログラム(日本国著作権法ではプログラムの著作物)の複製物を所持している者に対し、概ね以下のことを許諾するライセンスである。
プログラムの動作を調べ、それを改変すること(ソースコードへのアクセスは、その前提になる)
プログラムを改良し、改良を公衆にリリースする権利(ソースコードへのアクセスは、その前提になる)
GPLは二次的著作物についても上記4点の権利を保護しようとする。この仕組みはコピーレフトと呼ばれ、GPLでライセンスされた著作物は、その二次的著作物に関してもGPLでライセンスされなければならない。これはBSDライセンスをはじめとするパーミッシブ・ライセンスが、二次的著作物を独占的なものとして再頒布することを許しているのとは対照的である。GPLはコピーレフトのソフトウェアライセンスとしては初めてのものであり、そのもっとも代表的なものである。
GPLはフリーソフトウェア財団(Free Software Foundation。以下FSFと略称)によって公開され、その管理が行われている。GPLでライセンスされている傑出したフリーソフトウェアのプログラムには、LinuxカーネルやGNUコンパイラコレクション(GCC)がある。
FSFが公開、管理する他のライセンスには、GNU Lesser General Public License(GNU LGPL)、GNU Free Documentation License(GNU FDL、またはGFDL)そしてGNU Affero General Public Licenseバージョン3(GNU AGPLv3)がある。
ストールマンは、ソフトウェアに対する自由とは何かという問題を提起し、そのひとつの答えを提示した。GPLは、「自由なソフトウェア」を、有償・無償に関係なく、頒布できるようにした、という単純な意味だけでなく、「ソフトウェアは自由であるべき」という思想が存在することを一般に認知させたという意味において極めて重要な意義がある。
GPLにより付与される強力なコピーレフトはGNU/Linuxの成功にとって重要な役割を果たしているとも言われる。なぜなら、コミュニティに全く還元しようとしないソフトウェア企業にただ搾取されるのではなく、著作物が世界全体に貢献し、自由であり続けるという確証をGPLはプログラマに与えたからである。
GPL誕生以前、Emacsの頒布条件となっていたライセンスが生まれたきっかけは、ジェームズ・ゴスリンが作成し、当初自由な利用が認められていたGosling Emacsのコードに突如ゴスリンが独占的な許諾条件を附してしまったことが契機となっている。この許諾条件の変更の影響により、ストールマンは自身のEmacsのコードを書き換えなければならなくなった。
またGPL、GNUプロジェクトの誕生について、次のような逸話もある。
当時、ストールマンはMIT人工知能研究所でSymbolics社製のLISPマシンで動くソフトウェアを開発していたが、ストールマンが作りSymbolics社に対して提供したパブリックドメイン版であるソースコードの改変版について、同社が著作権を根拠にソースコードを開示しなかったことに腹を立てGPLを考案したといわれる。いずれにせよ、これ以降いかにしてソースコードの自由な利用を保証するかということにストールマンは腐心するようになる。
GPLは1989年にリチャード・ストールマンによって、GNUプロジェクトのソフトウェアの配布を目的に作られた。オリジナルのGPLは、初期のGNU Emacs、GNUデバッガそしてGNU Cコンパイラの配布に利用していた類似のライセンスを基に、それらを組み合わせたものをベースとしている。前記3つのライセンスは、現在のGPLと似たような条文を含んでいる。しかし、それらは各プログラム固有のライセンスであり、似通っているとはいえ、互いの互換性は全くなかった。ストールマンの目標は、いかなるプロジェクトでも使用可能で、それゆえ多くのプロジェクトがコードを共有することを可能にさせる単一の汎用的なライセンスを作り出すことだった。
GPLは幾度か改訂されており、1991年にはバージョン2がリリースされている。バージョン3がリリースされるまで、それに従うこと15年間、FLOSSコミュニティの幾人かは、GPLでライセンスされているプログラムを、ライセンスの意図に反し、搾取する事につながる抜け道(loopholes; 抜け穴、ループホール)に対し懸念を抱くようになった。これらの懸念の中には、TiVo化(Tivoization。GPLでライセンスされたプログラムが含まれているにも関わらず、改変版ソフトウェアの稼動を拒絶するハードウェアについての問題)、Webインタフェースの裏側に隠れ公開されることのない改変版GPLソフトウェアの利用、AGPLバージョン1と同等の互換性問題、GNU/Linuxコミュニティと敵対するための武器として特許を行使する企てと見なされる、マイクロソフトとGNU/Linuxディストリビュータとの特許契約などがある。
FSFならびにFLOSSコミュニティは、これら懸念に対し真剣に取り組むべく、バージョン3への改訂作業を始めた。2005年後半、FSFは、GPLバージョン3(GPLv3)の策定に関するアナウンスを行った。2005年の時点でGPLは様々なFLOSSプロジェクトのソフトウェアに採用されていたこともあり、FSFが単独で改訂することにより起こりえる問題を回避するため、改訂プロセスは公開で行うことが同時に発表された。2006年1月16日、GPLv3の最初の議論用草稿(discussion draft)が公開され、公開協議プロセスを開始した。当初公開協議は9ヶ月から15ヶ月を想定していたが、終わってみると、4つの草稿公開に延べ18ヶ月にまで要した。公式のGPLv3は2007年6月29日、FSFにより発表された。GPLv3は、リチャード・ストールマンにより起草され、エベン・モグレンならびにSoftware Freedom Law Center(SLFC)による法的助言を受けている。
公開協議プロセスは、FSFを調整役、SFLC・Free Software Foundation Europe(FSFE)その他フリーソフトウェア開発組織による支援のもと進められた。この間、gplv3.fsf.orgというウェブポータルサイトが立ち上げられ、ここを経由し多くの一般からのコメントが集められた。このポータルサイトは、策定プロセスのために開発されたstetというソフトウェア上で稼働している。これらコメントは、およそ130名ほどから成る4つの協議グループ(committee)に渡された。この130名はFSFの目標に対しそれを支持する人物並びにそれと対立する人物双方が含まれている。これら協議グループは一般から提示されたコメントを精査し、新しいライセンスがどうあるべきか決定するため、ストールマンにその要約を回付した。
公開協議プロセスを経て、初回の草稿には962ものコメントが提出された。終わってみると、延べ2,636ものコメントが提出されていた。
初版の草稿公開ののち、GPLv2とGPLv3の非公式な差分(但し、これはdiff出力による行単位ごとの単純な差分)が、FLOSSコミュニティ向け法律サイトGroklawにより公開された。
2006年7月27日、GPLv3の討議用第2次草稿が、LGPL第3版(GNU LGPLv3)の初版草稿とともに公開された。初稿と第2稿の差分は、FSFとFSFEからそれぞれ提示されている。第2稿ではDRMに対抗する明確な目標が取り入れられている。
第3稿は2007年3月28日に公開された。この草稿は、かの物議を醸したマイクロソフトとノベルが締結したような特許相互ライセンス(patent cross-license)を排除する意図を持つ文言を含んでおり、反TiVo化条項(anti-tivoization clauses)はユーザ製品(User Product)・コンシューマ製品(Consumer Product)といった一般家庭で使用される製品に限定する旨定めている。また、公開協議開始時点で削除が予告されていた地理的(頒布)制限(Geographical Limitations)の項については、明白に削除されている。
最終稿となった第4の議論草稿は2007年5月31日に公開された。この草稿では、Apache Licenseとの組み合わせを可能にする条項が導入された他、外部契約者(contractor)の役割を明確化し、マイクロソフト–ノベル間の契約のような明白な問題を回避する例外条項を加えている。この最後の例外条項は、第11項第7段落に次のように記載されている(条文は正式公開版と同一である)。
これは、そのような契約を将来に渡って無効化することを目的としている。また本ライセンスは、マイクロソフトが、あるGPLv3ソフトウェアを利用するノベルの顧客に許諾したような特許契約(特許ライセンス、特許許諾、パテントライセンス)を、まさにそのGPLv3ソフトウェアを利用するユーザーすべてにまで(ユーザーの行為如何に全く関わらず)自動的に拡大適用することを意味する。ただし、マイクロソフトが法的にGPLv3ソフトウェアの伝達者(conveyor; 譲渡者)でもない限り、それは不可能である。これはある種、特許契約に対しそれを他者に無制限に提供してしまうことから、ポイズンピルのような働きを持つとの意見もある。ただし本条項導入の直接の契機となった、ノベルの行為そのものに対しては、本項第7段落最後に例外を設け、既得権条項を適用している。
バージョン1は、1989年2月にリリースされた。このライセンスは、ソフトウェア頒布者が制限しようとする主に2つの手段から、フリーソフトウェアの定義たる自由を守る働きを持っていた。第一の問題は、頒布者がバイナリ、すなわち実行ファイルのみを公開するかもしれないということである。しかしながらバイナリは人間にとって読み取れる形式ではなく、また改変もできない。このことを防ぐため、GPLv1では、バイナリを頒布するいかなるベンダーも、同じライセンスの条項のもと、機械可読なソースコードの形で利用できるようにしなければならないとしている。
第二の問題は、ライセンスに追加の制限を加える、もしくは頒布において別の制限があるソフトウェアを組み合わせることのどちらかにより、頒布者が追加の制限を加える可能性があるということだった。もしこのことが成されれば、その時、制限の2つの集合の和は、組み合わされた著作物に適用されるだろうが、それはすなわち、受け入れられない制限が加えられたことに等しい。この様な事態を避けるため、GPLv1では、改変版は、全体として、GPLv1の条項の下頒布されなければならないと規定している。このため、GPLv1の条項の下頒布されているソフトウェアは、それよりもパーミッシブ・ライセンスで保護されるソフトウェアと組み合わせて頒布することが可能となる。なぜなら、組み合わせによって全体を通して頒布に係るライセンス条項に変化はないからである。しかし、GPLv1の条項の下頒布されているソフトウェアとそれよりも制限の厳しいライセンスで頒布されるソフトウェアを組み合わせることは、GPLv1の条項の下全体が頒布されるという要件と衝突するため、できない。
バージョン2は、1991年6月にリリースされた。
リチャード・ストールマンによれば、GPLv2で最大の変更は第7節、彼に言わせると、パトリック・ヘンリーの名文句「自由か然らずんば死を」("Liberty or Death")の一節である。他の利用者の自由を尊重するような方法で、GPLで保護されたソフトウェアの頒布が妨げられる場合(たとえば、法的規制によりソフトウェアをバイナリ形式でしか頒布できないとき)、この節に従えば、頒布は一切できない。GPLv3でも同様の条項が存在し、幾分簡素化されたうえ主旨が明確になっている。これは、フリーソフトウェア開発者や、フリーソフトウェアを単に使用する者から金を脅し取ろうと特許を行使する企業の企みをすこしでも減らすことを見込んでいる。
1990年までには、現存するプロプライエタリなライブラリと本質的には同等な機能を持つCライブラリや、その他のソフトウェア・ライブラリに対しては、制限の緩いライセンスのほうが戦略的に有効なことが明らかになってきた。1991年6月にGPL第2版がリリースされた際、Library General Public License (LGPL) が、初版にもかかわらずGPLと相補的なことを示すため第2版として同時に導入された。GNUの思想における位置づけを反映させるため、Lesser General Public Licenseと名を変え、1999年、LGPL2.1がリリースされた。
バージョン3は、2007年6月にリリースされた。GPLv3は、ソフトウェア(プログラム・ライブラリなど)を含む著作物に対し、著作物の著作者・著作権者やライセンス受諾者の権利や、プログラムの受領者のためにライセンス許諾者が与える権利、またソフトウェアの自由と衝突するような法や法的権利の制限(DRM、特許の利用、他者を差別するような特許ライセンスの排除)などに関する基本理念を以前のバージョンのライセンスより明文化している。
ストールマンによると、もっとも重要な改訂点は、ソフトウェア特許、他のフリーソフトウェア・ライセンスとの両立性(compatibility; 互換性)、「ソースコード」とは何を指すのかの定義、ソフトウェアの改変に関するハードウェアの制限(TiVo化)そしてデジタル著作権管理(Digital Rights Management, DRM)との関連がある。その他の改訂点は、国際化、ライセンス違反時の対処手段そして可能ならば著作権者により追加的条項(additional terms)を与える手段に関連している。
他注目に値する改訂点としては、GPLv3で保護された著作物の著作権者が、パッチなどを提供しそれに改変を加えた貢献者(contributor)に対し、ある種の条件または要求を課すということを許諾する条項が加えられている。これらに加えて、新しく導入された要件の一つには、時折Affero条項(Affero clause、Affero節)とも呼ばれるが、Software as a serviceのようなASPモデルによるGPLの条項を回避しようとする試み(ASP loophole; ASPの抜け道)に対し、これを封じようと意図しているものも含まれる。この条項が追加された結果、GNU Affero General Public Licenseバージョン3(GNU AGPLv3)が作成されている。GPLv3とAGPLv3は互いに両立はしないが、リンクや結合のみを認める相補的な条項を共に持っている。
また、GPLv3で許諾されるソフトウェアは、米国のDMCAや日本の著作権法、不正競争防止法が規定している「技術的制限手段」(技術的保護手段、例: DRM)の「解除」を認める条項が追加されている(詳細はセクション"技術的保護手段回避を禁ずる法への対抗措置"を参照)。
「GPLが適用された著作物の複製を受け取る全ての者」(Recipients; 受領者)は、GPLの条項と条件(terms and conditions; 利用条件)を遵守しなければならない。利用条件を遵守するライセンシー(the licensee; 被許諾者、ライセンシー)は著作物を改変する許諾を与えられるのと同時に著作物または二次的著作(派生 derivative)物の複製と頒布を許諾される。ライセンシーは、このようなサービスを提供するのに料金を課してもよいし、また無料で行ってもよい。この後者の許諾は、GPLと商用再頒布禁止のソフトウェアライセンスとの相違点である。FSFは、フリーソフトウェアは商用利用を制限するべきではないと主張している。また、GPLは、GPLが適用された著作物を如何なる値段で販売しても良い旨、明確に述べてある。
加えて、GPLは、頒布者がGPLにより許諾される以上のさらなる権利制限(further restrictions on the rights granted by the GPL)を課してはならないと述べている(GPLv2第6節、GPLv3第10項)。これは(純粋に契約である)秘密保持契約(non-disclosure agreement, non-disclosure contract)のもとソフトウェアを頒布するような手法を禁ずる。GPLのもと、頒布者はまた、GPLなソフトウェアにおける特許を行使するために、ソフトウェアにより行使されるいかなる特許をも「ライセンス」(特許ライセンス)として許諾する。
GPLv2の第3節とGPLv3の第6項によると、事前コンパイルされたバイナリとして頒布されるプログラムは次のいずれかを満たさなければならない。
GPLのもと、事前コンパイルされたバイナリを受け取った場合に得た何かを、ソースコードを提供する旨の文書で提示
また、GPLv2の第1節とGPLv3の第4項は、プログラムの受領者すべてにプログラムと共にGPLの複製を(all recipients a copy of this License along with the Program)与えなければならないと規定している。GPLv3ではその第6項を満たす限りにおいて、ソースコードを利用可能な状態にするために、GPLv2で指定された物理媒体以外にも、明示的に追加の手段を講じても良いとする。コンパイル済みコードを取得する方法とソースコードのありかが明確に分かる場合、近くのネットワークサーバからまたはP2P送信によりソースコードをダウンロードさせる手段などもこの追加の手段に含まれる。
改変された著作物を頒布する権利は、GPLにより無制限に付与されるわけではない。頒布者自身による改変が加えられたGPLによる著作物を頒布する際に、著作物全体を頒布するための要件は、GPLよりも強い要件であってはならない。
その要件とは、コピーレフト (Copyleft)として知られている。これは、ソフトウェアプログラムに関し、著作権 (copyright)を利用した法的な権能をもたらす効果がある。GPLで保護される著作物もまた、著作権で保護されているため、改変された形態でなくとも、ライセンスで規定されている場合を除き、ライセンシーはその著作物の再頒布の権利を持たない(フェアユースを除く。ただし、その記事やGPL FAQで述べられている通り、フェアユースにworld-wide principle; 世界的な原則、統一見解などない)。再頒布のような、通常著作権法で制限される権利をある人物が行使しようと考える場合、その人物はGPLの条項をただ従う必要がある。逆に、GPLの条項を遵守せず(例えば、ソースコードを開示しない)著作物の複製を頒布すると、著作権法に基づき著作権者から頒布の差止め等で提訴される可能性がある。
コピーレフトは、著作権法を本来の使用目的と正反対の目的を実現するために利用する。すなわち制限を課す代わりに、コピーレフトは、権利がのちに消失しないような方法で、他者への権利を許諾する。コピーレフトはまた、ライセンシーに対し再頒布の権利を無制限に許諾するのではなく、コピーレフトが主張する点において発見されるのは法律上の任意の欠陥であるべきことを保証している。
コピーレフトライセンスで保護されるプログラムを頒布する多くの者は、ソースコードと共に実行ファイルを添付する。コピーレフトを満たす別の方法は、要求に応じて(CDのような)物理媒体を用いてソースコードを提供するという文書を提示することである。また事実としてコピーレフトライセンスで保護されるプログラムの多くは、インターネット上で頒布されており、ソースコードはまたはHTTPなどを用いてソースコードを遣り取りできるようにしているものが多い。インターネット上での頒布は本ライセンスを満たしている。
コピーレフトが適用されるのは、ある人物がプログラムを再頒布しようと求める場合にのみである。改変したソフトウェアを他の誰にも頒布しない限り、改変箇所を公開しなければならない如何なる義務も免ぜられ、その改変版を私的な物とすることは許される。また、コピーレフトはソフトウェア自身のみに適用されるのであって、ソフトウェアの出力(outputs, アウトプット)には適用されないことには注意しておきたい(ただし、そのアウトプット自身がプログラム自体の二次的著作物ではない場合)。例えば 、GPLで保護されたコンテンツ管理システム ("Contents Management Systems"; CMS) に対しその改変した派生版を動作させる一般ウェブポータル(ブログソフトウェアなど)は、その出力自体はプログラム自体の派生物ではないから、土台としたソフトウェアならびにその改変部分を頒布する必要はない。反例は、GPLで保護されたソフトウェア"GNU bison"である。この構文解析器の出力は、その派生物の一部をまさに含んでおり、そのため、この事実に対しGNU bisonにより許諾される特殊な例外条項(a special exception)が仮に存在しないならば、出力結果はGPLで保護される派生物となっていたであろう。最新のGNU bisonでは、事実として、出力コードのヘッダにAs a special exception...という特殊例外条項が記述されている。
なお(GPLに従う著作物に限ったことではないが)、コピーレフトのもとで公開された著作物の著作権は、前述の通り譲渡しなければ個々のコードの著作権者が保有している。従ってコピーレフトを無視した再頒布に対して、頒布の差止めやコピーレフト違反是正(エンフォースメント)を求める権利があるのはプログラムの著作権者だけであり、一般のライセンシーにはない。ただ、大規模なFLOSS開発プロジェクトは一般的にワールドワイドであり、開発者の居住国が多岐に渡るため、多かれ少なかれ差異がある各国の著作権法にプロジェクト全体で合致させるのは困難を要す。このため一部のFLOSSプロジェクトでは各著作権者に代わり、コードの著作権を一括してプロジェクト(またはそれを統括する団体・法人組織)が引き受ける場合もある。GNUプロジェクトは、コードの受け入れに関し、米国著作権法の庇護を享受するため、ライセンス如何に関わらず、寄贈されたコードの著作権を原著作者より明示的にFSFに譲渡する場合にのみ受け入れている。CMSのPloneならびにPlone財団(Plone Foundation)も似たような形式を採用している。
FSFによると、「GPLは改変版、もしくは改変版の一部のリリースを要求することは述べていない。改変版を一切公開せず、改変を加えることや、私的に利用することは自由である。」と主張している。しかしながら、仮にある人物がGPLでライセンスされたオブジェクトを公開するならば、ライブラリリンクに関する問題が提起される。すなわち、もし、プロプライエタリなプログラムがGPLなライブラリを使用するならば、そのプロプライエタリなプログラムは(一般にプロプライエタリソフトウェアはソースコードが自由な許諾の下利用できない為)GPLに違反する、はたまたそうではないのか、という問題がある。
この重要な論点は、非GPLソフトウェアがライセンス的、すなわち著作権法的に、GPLなライブラリに静的リンクまたは動的リンク可能であるか否かという問題に行き着く。この問題に関して、異なるいくつかの見解が存在する。GPLのもとリリースされるコードの二次的著作物が全て、それら自身もまた、GPLに従わなければならないとの要求は明白である。しかし、GPLなライブラリを使用する、そして、GPLなソフトウェアをより巨大なパッケージと組み合わせる(bundle, バンドルする)(概ね静的リンクによりバイナリを混合する場合などを想定すればよい)点に関しては、曖昧さが惹起する。これは究極的には、GPLそれ自体(per se, in itself)とは無関係の問題であるが、著作権法が二次的著作物をどう定義するかということと関連した問題である。この議論に関して、次のようないくつかの異なる見解が存在する。
GPLのライセンス条文自体の著作権を保持する法人組織でもあり、GPLでライセンスされる著名なソフトウェア製品を多数提供しているFSFは、動的リンクされたライブラリを利用する実行ファイルは、実際には二次的著作物である、と強く主張している。しかしながら、このことは、お互いを「結合する」(連携する、communicate)だけの分離された別個のプログラムには適用されないとしている。
FSFはまた、コピーレフトという点で、GPLとはほぼ同一であるが、「ライブラリ利用」という目的のために、リンクの許諾を追加的に与える、LGPLというライセンスも作成した。
リチャード・ストールマンとFSFは、プロプライエタリな世界と比較し、より豊富なツールを提供することによりフリーソフトウェアな世界を護持することを目的として、ライブラリ作者に対し、GPLの下でのライブラリのライセンシングを明確に促している。これは、ソースコードを公開しないならば、プロプライエタリ・プログラムがGPLで保護されたライブラリを一切使用できないようにすることを狙っている。
FSFは、プラグインの呼び出し方法についてはまた別であると認識している。もし、プラグインが動的リンクにより呼び出され、関数呼び出しをGPLプログラムに提供するならば、その時には、プラグインは、概ね二次的著作物であると見なされる。
静的リンクは二次的著作物を生じるが、他方、GPLコードに動的リンクされた実行ファイルが二次的著作物であると考慮されるべきか否かははっきりしないとする意見もある。詳細は(Weak copyleft)を参照せよ(ライセンス感染#相互運用性も参考になるかもしれない)。Linuxカーネルの著作権者リーナス・トーバルズは、状況により、動的リンクは派生物を生じ得るとの見解に同意する場合と同意しない場合があるとしている。
ノベルの弁護士は、動的リンクが二次的著作物でないのは「もっともらしい」が「断言」はできないとし、善意による動的リンクの証拠として、プロプライエタリなLinuxカーネルドライバの存在に見てとれる、と文書にて記載している。
ルイス・ガルーブ・トイズ対ニンテンドーオブアメリカ事件訴訟において、アメリカ合衆国第9連邦巡回区控訴裁判所は、二次的著作物を「『形式』または永続性」を所持するものと定義し、「当件における侵害された著作物が、ある形式で著作権の適用された著作物の一部と協働しなければならない」と言い渡した。しかし、特にこの対立を解決する明白な法廷判断は出ていない。