GPLリンク例外

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

GPLリンク例外:GPL linking exception)とは、GNU一般公有使用許諾 (GPL)を改変して作られる新しいライセンスで、ライブラリコードを提供するソフトウェアのプロジェクトにGPLの全ての条項が適用せずに、他のプログラムがリンクすることを可能にするものである。リンクとは、実行可能なファイルを作成するためにライブラリのコードを使用するコードに接続する技術的な処理であり、コンパイル時ないし実行時に機械語コードを生成する際に行われる。リンク例外を適用しない場合、GPLコードとリンクするコードにも、自動的にGPLが適用される。

GNU 劣等一般公衆利用許諾契約(LGPL)のバージョン3[1]は、同様なGPLの例外として作られたものである[2]

ライブラリ[編集]

GPLで配布されるフリーソフトウェアのライブラリは、記述の仕方は様々だが、同様の例外条項を備えている。著名なものとして、GNU Guile[3]GNATのランタイムライブラリ[3]GNU Classpath[4]などがある。

コンパイラのライブラリもこのライセンスを使用することが多い。例えばGNUコンパイラコレクション[5]は非常に似かよったリンク例外を採用しており、Free Pascalプロジェクトの全ライブラリも同様である。

Java[編集]

classpath 例外[編集]

GNU Classpathプロジェクトは、GPLリンク例外 の一例であり、以下のようなライセンスを採用している(抄訳)。

Classpath は、以下の条項と特記事項のうえでGNU一般公有使用許諾で配布される。
本ライブラリを他のモジュールと静的ないし動的にリンクすることは、本ライブラリに基づき結合した成果物を作成することである。そのため、GNU一般公有使用許諾は結合したもの全体に適用される。
特殊な例外として、本ライブラリの著作権者は、本ライブラリを実行ファイルを作成し、独立したモジュールのライセンス条項によらず、作成された実行ファイルに任意のライセンスを選択し、コピーし配布するさらに、リンクした独立のモジュールそれぞれの使用許諾に準拠している限りにおいて、独立したモジュールとは、本ライブラリの派生物なく、また本ライブラリに基づくものでもないものを示す。あなたが本ライブラリを改変した場合、本ライブラリを改変したあなたの新しいバージョンのライブラリに本ライブラリの例外事項を引き継ぐことは許可されるが(you may extend this exception to your version of the library)、必ずしもそうする義務はない。望まない場合には、あなたの新しいバージョン(your version)からこの例外事項を削除してよい。
従って、GNU ClassPathは、大規模なアプリケーションやアプレットの実行、作成、配布に使用することができる。GNU Classpathは、仮想マシン、Java言語コンパイラ、Java 言語で記述されたプログラムの核となるクラスライブラリとして改変せずに使用する場合、リンクするプログラムの使用許諾、配布に影響を与えない[4]

Open JDK[編集]

OpenJDKも同様のライセンスを使用している。

2007年サン・マイクロシステムズは、Java SEJava EEのクラスライブラリのコードを、OpenJDKとして、GPL第二版ライセンスに Classpath リンク例外を追加したライセンスで公開し[6]、 サンのエンタープライズ向けサーバー製品GlassFish[7]およびJava統合開発環境NetBeans [8]と同じライセンスを選択可能とした。

GNU 劣等一般公衆利用許諾契約(LGPL)[編集]

LGPLバージョン2.1 は単独で完結したライセンスだが、LGPLバージョン3はGPLを参照したものとなっている。

上述のGNU Classpathライセンスと比較すると、LGPLは最終的なプログラムの使用者により広範な自由が与えられることを保証するため、リンク例外に必要な要件を多くしている。特に、プログラムを新しいバージョンのLGPLライブラリに対してリンクすること、私的なリバースエンジニアリングデバッグを許諾しなければならない。

関連項目[編集]

参考文献[編集]

  1. ^ GNU Lesser General Public License, Version 3. 2007-06-29. Retrieved on 2007-10-19.
  2. ^ Guide to the second draft of LGPLv3. 2007-04-03. Retrieved on 2007-05-10.
  3. ^ a b Stallman, Richard. Various Licenses and Comments about Them. Free Software Foundation. Published on 2007-05-17. Retrieved on 2007-05-18.
  4. ^ a b Classpath::License. Free Software Foundation. 2007-04-23. Retrieved on 2007-05-18.
  5. ^ Text of the GCC license Savannah code repository. 2007-09-25. Retrieved on 2008-03-27
  6. ^ Open-Source Java Project Overview”. Sun Microsystems. 2007年5月22日閲覧。
  7. ^ Glassfish license. 2008-03-27. Retrieved on 2008-03-27.
  8. ^ Netbeans license. 2008-03-27. Retrieved on 2008-03-27.