GNU General Public License
GPL誕生以前、Emacsの頒布条件となっていたライセンスが生まれたきっかけは、ジェームズ・ゴスリンが作成し、当初自由な利用が認められていたGosling Emacsのコードに突如ゴスリンが独占的な許諾条件を附してしまったことが契機となっている。この許諾条件の変更の影響により、ストールマンは自身のEmacsのコードを書き換えなければならなくなった。
またGPL、GNUプロジェクトの誕生について、次のような逸話もある。 当時、ストールマンはMIT人工知能研究所でSymbolics社製のLISPマシンで動くソフトウェアを開発していたが、ストールマンが作りSymbolics社に対して提供したパブリックドメイン版であるソースコードの改変版について、同社が著作権を根拠にソースコードを開示しなかったことに腹を立てGPLを考案したといわれる。いずれにせよ、これ以降いかにしてソースコードの自由な利用を保証するかということにストールマンは腐心するようになる。
GPLは1989年にリチャード・ストールマンによって、GNUプロジェクトのソフトウェアの配布を目的に作られた。オリジナルのGPLは、初期のGNU Emacs、GNUデバッガそしてGNU Cコンパイラの配布に利用していた類似のライセンスを基に、それらを組み合わせたものをベースとしている。前記3つのライセンスは、現在のGPLと似たような条文を含んでいる。しかし、それらは各プログラム固有のライセンスであり、似通っているとはいえ、互いの互換性は全くなかった。
GPLの条文自体はGFDLやGPLの下に自由に配布されているわけではなく、ライセンス著作者は条文の改変 (modifications) を許可していない(GPLの条文自体の著作権はフリーソフトウェア財団が持つ)。GPLはプログラムの受領者に(本ライセンスの直接の対象となる)本プログラムと共に本ライセンスの複製を (a copy of this License along with the Program) 得る権利を与えているため、未改変のライセンスの複製と頒布 (distribution; 配布) は許されている。GPL FAQによると、仮に改変する場合は、別の名前とし、「GNU」について言及せず、フリーソフトウェア財団から許諾を得ている場合を除いて改変版ライセンスからGPLの前文 (Preamble) を削除した場合に限り、GPLの改変版を利用して新たなライセンスを作成しても良い。そのようにして作成された派生ライセンスに対し、FSFは一切の法的異議申し立てを行うことはないが、そういったライセンスは一般にGPLと両立しない (互換性が無い、incompatible) ので、FSFは推奨していない 。
前述のとおり、GPLの条文自体は著作権で管理されており、その保持者はFSFである。
あるオープンソースソフトウェアでライセンス上考慮すべき点があるなどして、またはもっと極端な例では、GPLの思想的な面に反発があるなどして、GPLと両立性を欠くようなライセンスを著作物に敢えて採用するケースがあるかもしれない。しかし、GPLを採用するフリーソフトウェア、オープンソースソフトウェアが多数存在するため(セクション"採用実績"を参照)、現実問題としてそのような行為はコードの再利用性を著しく欠く結果につながる(記事"ライセンスの氾濫"を参照)。このため、自身の採用するライセンスをGPLと非互換にしないよう、GPLとのライセンス両立性を考慮することは重要である。
著作物全体として影響を受けるライセンスの持つ制限の組み合わせにより、GPLが許諾する事項を越えるいかなる追加的制限が課されない限り、他のライセンスで許諾されたコードは、GPLで許諾されたプログラムと衝突することなく組み合わせることも可能である。また二次的著作物の観点として、互換性のあるフリーソフトウェアライセンス/オープンソースソフトウェアライセンスで許諾されるコードを組み合わせる場合は、原則コードの組み合わせ全体に、そのコピーレフト性が最も強くなるライセンスの影響を受ける。GPLの正規の条項に加えて、追加的な制限や許諾を適用することができる組み合わせは以下の通りである。
異なるバージョンのGPLのもとライセンスされるコードを組み合わせたいと考える場合は、より古いバージョンのGPLのコードに"any later version" statement (「任意の以後のバージョン」という表明文) が認められているのならば許可される
LGPLのもとライセンスされるコードは、そのコードのライセンス如何に関わらず(独占的なコードでさえも)、いかなるその他のコードともリンク可能である。
コンパイル済みコードを取得する方法とソースコードのありかが明確に分かる場合、近くのネットワークサーバからまたはP2P送信によりソースコードをダウンロードさせる手段などもこの追加の手段に含まれる。
改変された著作物を頒布する権利は、GPLにより無制限に付与されるわけではない。頒布者自身による改変が加えられたGPLによる著作物を頒布する際に、著作物全体を頒布するための要件は、GPLよりも強い要件であってはならない。
その要件とは、コピーレフト (Copyleft) として知られている。これは、ソフトウェアプログラムに関し、著作権 (copyright) を利用した法的な権能をもたらす効果がある。GPLで保護される著作物もまた、著作権で保護されているため、改変された形態でなくとも、ライセンスで規定されている場合を除き、ライセンシーはその著作物の再頒布の権利を持たない(フェアユースを除く。ただし、その記事やGPL FAQで述べられている通り、フェアユースにworld-wide principle; 世界的な原則、統一見解などない)。再頒布のような、通常著作権法で制限される権利をある人物が行使しようと考える場合、その人物はGPLの条項をただ従う必要がある。逆に、GPLの条項を遵守せず(例えば、ソースコードを開示しない)著作物の複製を頒布すると、著作権法に基づき著作権者から頒布の差止め等で提訴される可能性がある。
GPLのもとリリースされるソフトウェアは、他のソフトウェアを、決して「攻撃」したり「感染」などしない。むしろ、GPLで保護されるソフトウェアは、オリヅルランのようなものである、と述べている。だれかが、GPLで保護されたソフトウェアのコード断片を持ち帰り、どこかよそへそれを組み込んだならば、GPLで保護されるソフトウェアもまた、そのどこかで成長するのである。このようにGPLのような二次的著作物にも適用を強制するという強い制約を持つライセンスは、独占的なソフトウェアを開発する企業や、他のライセンスを支持するソフトウェア開発者から批判されることがある。コピーレフトの考え方を支持する人々は、これは自由を守るために必要なことだと主張する。一方、二次的著作物への制限が少ないBSDスタイル・ライセンスを支持する人々はまた別の考え方を持っている。GPLの支持者が「フリーソフトウェアの自由が二次的著作物でも保護されることを、フリーソフトウェア自身が保証すべき」と確信する一方、そうでない人々は「フリーソフトウェアはその再頒布にあたって利用者に最大限の自由を与えるべきだ」と主張する。後者の考え方は、例えばBSDライセンスのように敢えて「ソフトウェアの自由を捨て去る」ことも可能という、ソフトウェア利用者の自由意志、選択の自由を述べている。
コピーレフトは、著作権法を本来の使用目的と正反対の目的を実現するために利用する。すなわち制限を課す代わりに、コピーレフトは、権利がのちに消失しないような方法で、他者への権利を許諾する。コピーレフトはまた、ライセンシーに対し再頒布の権利を無制限に許諾するのではなく、コピーレフトが主張する点において発見されるのは法律上の任意の欠陥であるべきことを保証している。
コピーレフトライセンスで保護されるプログラムを頒布する多くの者は、ソースコードと共に実行ファイルを添付する。コピーレフトを満たす別の方法は、要求に応じて(CDのような)物理媒体を用いてソースコードを提供するという文書を提示することである。また事実としてコピーレフトライセンスで保護されるプログラムの多くは、インターネット上で頒布されており、ソースコードはFTPまたはHTTPなどを用いてソースコードを遣り取りできるようにしているものが多い。インターネット上での頒布は本ライセンスを満たしている。
コピーレフトが適用されるのは、ある人物がプログラムを再頒布しようと求める場合にのみである。改変したソフトウェアを他の誰にも頒布しない限り、改変箇所を公開しなければならない如何なる義務も免ぜられ、その改変版を私的な物とすることは許される。