GPLリンク例外

GPLリンク例外（）とは、GNU一般公有使用許諾 (GPL) を改変して作られる新しいライセンスの総称で、ライブラリコードを提供するソフトウェアのプロジェクトにGPLの全ての条項を適用せずに、他のプログラムがリンクすることを可能にするものである。リンクとは、実行可能なファイルを作成するためにライブラリのコードを使用するコードに接続する技術的な処理であり、コンパイル時または実行時に機械語コードを生成する際に行われる。リンク例外を適用しない場合、GPLコードとリンクするコードにも、自動的にGPLが適用される。
GNU 劣等一般公衆利用許諾契約 (LGPL) のバージョン3は、同様なGPLの例外として作られたものである。
ライブラリ.
GPLで配布されるフリーソフトウェアのライブラリは、記述の仕方は様々だが、同様の例外条項を備えている。著名なものとして、GNU Guile、GNATのランタイムライブラリ、GNU Classpathなどがある。
コンパイラのライブラリもこの種のライセンスを使用することが多い。例えばGNUコンパイラコレクションはGCCランタイムライブラリ例外を採用している。Free Pascalプロジェクトの全ライブラリも同様である。
Java.
Classpath 例外.
GNU Classpathプロジェクトは、"GPLリンク例外" の一例であり、以下のようなライセンスを採用している(非公式訳)。
ClasspathはGNU一般公衆ライセンスに以下の確認事項と特別な例外を加えた条項の元で配布される。
従って、幅広い種類のアプリケーションやアプレットの実行・作成・配布にこれを利用できる。GNU Classpathが仮想マシンやJava言語のコンパイラやJavaプログラミング言語で記述されたプログラムの核となるクラスライブラリとして無改変で使われる場合、それらのプログラムの配布用ライセンスに直接的には影響を与えない。
OpenJDK.
OpenJDKも同様のライセンスを使用している。
2007年、サン・マイクロシステムズは、Java SEとJava EEのクラスライブラリのコードを、OpenJDKとして、GPL第二版ライセンスに Classpath リンク例外を追加したライセンスで公開し、
サンのエンタープライズ向けサーバ製品GlassFishおよびJava統合開発環境のNetBeans
と同じライセンスを選択可能とした。
GNU 劣等一般公衆利用許諾契約 (LGPL).
LGPLバージョン2.1 は単独で完結したライセンスだが、LGPLバージョン3はGPLを参照したものとなっている。
上述のGNU Classpathライセンスと比較すると、LGPLは最終的なプログラムの使用者により広範な自由が与えられることを保証するため、リンク例外に必要な要件を多くしている。特に、プログラムを新しいバージョンのLGPLライブラリに対してリンクすること、私的なリバースエンジニアリングやデバッグを許諾しなければならない。
LGPLが適用されたライブラリ中のクラスを継承してサブクラスを作る場合、それは関数呼び出しなどと同じような扱いとなる。