GPLリンク例外

GPLリンク例外とは



GPLリンク例外とは、GNU General Public License (GPL) の条項を一部緩和するライセンスの総称です。これは、特にライブラリコードを提供するソフトウェアプロジェクトにおいて、GPLの制約を一部緩和し、他のプログラムがこれらのライブラリとリンクすることを可能にするために用いられます。

リンクとは



ソフトウェアの文脈における「リンク」とは、実行可能なファイルを作成するために、異なるコードの部品(例えば、ライブラリ)を結合する技術的な処理を指します。この処理は、コンパイル時または実行時に行われ、結果として機械語コードが生成されます。

GPLとリンクの制約



GPLライセンスが適用されたコードとリンクするコードは、原則として自動的にGPLの条項が適用されます。このため、GPLで配布されたライブラリを他のプログラムで使用する場合、そのプログラム全体もGPLに基づいて配布する必要が出てきます。この制約を緩和するために、GPLリンク例外が用いられます。

GNU Lesser General Public License (LGPL)



LGPLバージョン3は、GPLリンク例外の一種として位置づけられます。LGPLは、GPLの制約を緩和し、より広範な状況下でのライブラリの利用を可能にします。

ライブラリとGPLリンク例外



GPLで配布される自由ソフトウェアライブラリは、多くの場合、GPLリンク例外に相当する条項を備えています。以下にその例を挙げます。

GNU Guile
GNATのランタイムライブラリ
GNU Classpath
GNU Compiler Collection (GCC) ランタイムライブラリ
Free Pascalプロジェクトの全ライブラリ

これらのライブラリは、GPLリンク例外を用いることで、他のソフトウェアとの連携を容易にし、より柔軟な利用を可能にしています。

JavaとGPLリンク例外



Classpath例外



GNU Classpathプロジェクトは、GPLリンク例外の代表的な例です。そのライセンスは以下のように記述されています。

ClasspathはGNU一般公衆ライセンスに以下の確認事項と特別な例外を加えた条項の元で配布されます。

> ライブラリと他のモジュールを静的または動的にリンクする行為は、本ライブラリに基づく結合著作物の作成となる。そのため、GNU一般公衆ライセンスの条項が結合物全体に適用される。

特別な例外として、本ライブラリの著作権者は、独立したモジュールと本ライブラリをリンクして実行可能プログラムを生成する許可を、それらの独立したモジュールのライセンス条項に関わらず与え、またリンクした独立した各モジュールのライセンス条項を満たした上で、あなたが選んだ条件の元で結果の実行可能プログラムを複製および配布する許可を与える。独立したモジュールとは、本ライブラリの派生物でもなく、本ライブラリを基にしてもいないモジュールである。もし本ライブラリを改変した場合、この例外をあなたの版にまで拡大してもよいが、そうする義務はない。もしあなたが望まないのであれば、この例外の記述をあなたの版から削除せよ。


この例外により、GNU Classpathは様々なアプリケーションやアプレットの実行・作成・配布に利用できます。例えば、Java仮想マシンやコンパイラ、Javaで記述されたプログラムの核となるクラスライブラリとして利用しても、これらのプログラムのライセンスに直接的な影響を与えません。

OpenJDK



OpenJDKも同様のライセンスを使用しており、GPL第二版ライセンスにClasspathリンク例外を追加しています。これにより、Java SEやJava EEのクラスライブラリがより広範な状況で利用可能になっています。

LGPLとGPLリンク例外



LGPLバージョン2.1は単独のライセンスとして機能しますが、LGPLバージョン3はGPLを参照しています。

LGPLの柔軟性



LGPLは、GPLリンク例外と比較して、プログラムの最終使用者により広範な自由を与えます。LGPLは、以下のような要件を設けることで、より柔軟なライブラリの使用を可能にします。

プログラムを新しいバージョンのLGPLライブラリに対してリンクすることを許可
私的なリバースエンジニアリングデバッグを許可

LGPLとサブクラス



LGPLが適用されたライブラリのクラスを継承してサブクラスを作成した場合、その扱いは、関数呼び出しなどと同様とみなされます。

まとめ



GPLリンク例外は、GPLライセンスの適用範囲を特定の状況下で緩和する重要な仕組みです。この例外により、GPLライブラリを他のソフトウェアと組み合わせて利用する際の柔軟性が向上し、ソフトウェア開発の多様性を促進しています。特に、ライブラリの開発者や利用者は、自身のプロジェクトのニーズに合わせて適切なライセンスを選択することが重要です。

関連項目



GNAT Modified General Public License
OpenSSL 例外
自由ソフトウェアライセンス

参考文献



GNU General Public License
GNU Lesser General Public License
* GNU Classpath

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。