GNAT Modified General Public License(GMGPL)は、
Adaプログラミング言語におけるジェネリック機能の利用に特化した
ライセンスであり、
GNU General Public License(GPL)を基盤としています。GPLの条項を一部変更したもので、特にジェネリックを利用する際の
ライセンスの適用範囲を明確化することを目的としています。
GMGPLの主な特徴
GMGPLの最も重要な点は、特定の条件下において、GPLの適用を免除する例外規定を設けていることです。具体的には、あるユニット(プログラムの構成要素)がGMGPLで
ライセンスされている場合、そのユニットからジェネリックをインスタンス化したり、実行ファイルを生成するためにそのユニットを他のファイルとリンクしたりしても、その結果として生成された実行ファイルが、自動的にGPLの対象となるわけではありません。これは、GPLの「
コピーレフト」条項が、ジェネリックの利用を通じて広範囲に適用されるのを防ぐための措置です。
ただし、この例外はあくまで特定の状況下でのみ適用されるものであり、実行ファイルがGPLの対象となる可能性を完全に否定するものではありません。たとえば、他のコードやライブラリがGPLで
ライセンスされている場合、それらの影響で実行ファイル全体がGPLの対象となる可能性は残ります。したがって、GMGPLが適用されるコードを利用する際には、全体の
ライセンス状況を慎重に確認する必要があります。
コンパイラディレクティブによる適用
GMGPLは、コンパイラディレクティブ `pragma License (Modified_GPL);` を用いて、
Adaコンパイラ(GNAT)に適用を指示します。このディレクティブによって、GNAT組み込みの
ライセンスチェック機能が有効になり、当該のコードがGMGPLの規定に従って扱われるようになります。これにより、
ライセンス違反を未然に防ぎ、ソフトウェア開発における透明性を確保することが可能になります。
GMGPLの利用における注意点
GMGPLは、GPLを基盤としているため、GPLと同様に、ソースコードの公開を要求する点に注意が必要です。しかし、ジェネリックの利用に関しては例外規定があるため、GPLよりも柔軟な利用が可能です。
関連ライセンスとの比較
GMGPLの理解を深めるために、以下の関連
ライセンスとの比較をすると役立ちます。
GNU Free Documentation License (GFDL): 文書を対象としたコピーレフトライセンスです。
GNU Lesser General Public License (LGPL): ライブラリの利用を促進するための、GPLよりも緩やかな
ライセンスです。
*
GPLリンク例外: 特定の条件下で、GPLコードとのリンクを許可する例外条項です。
これらの
ライセンスと比較することで、GMGPLが
Adaのジェネリック機能に特化した、独自の
ライセンスであることが理解できます。
まとめ
GMGPLは、
Ada言語のジェネリック機能を利用する際の
ライセンス上の懸念を解消するために開発された、特殊な
ライセンスです。GPLを基本としつつ、ジェネリックの利用に特化した例外規定を設けることで、より柔軟なソフトウェア開発を可能にしています。GMGPLで
ライセンスされたコードを利用する際には、その例外規定を理解した上で、全体の
ライセンス状況を考慮することが重要です。