In this article
GNU General Public License:GPLv3を解説
GPLライセンスとは?
GPLライセンスは、ライセンス対象のコードについて制限や支払い義務を課すことなく、ソフトウェアの改変や再配布を認めるフリーソフトウェアライセンスです。開発者は、改変されたコードがプロプライエタリ化されないようにするためにGPLライセンスを利用します。
GPLライセンスとは、オープンソースソフトウェアで広く使われているGNU General Public Licenseのことです。1989年にRichard Stallmanによって初めて作成されました。開発者や組織は、ソフトウェアがプロプライエタリになるのを防ぐためにこれを使用します。当時利用可能だった類似のライセンスを統合したもので、主にFree Software Foundation(FSF)の理念と、ソフトウェアの開発・配布に関するStallmanのコピーレフトの考え方を具体化したものです。
GPLライセンス(または単にGPL)のもとでは、ユーザーは制限なくソフトウェアを自由に使用、変更、再配布できます。GPLを採用しているソフトウェアの代表例がWordPressです。誰でも希望に応じてソースコードを使用、変更、拡張できます。WordPressプロジェクトにおいて、GPLはソフトウェアの権利章典に相当します。
GPLはユーザーに次のようなオープンソースの権利を付与します。
ソフトウェアを自由にダウンロードして実行する権利
ソフトウェアを自由に変更する権利
ソフトウェアのコピーを再配布する権利
ソフトウェアの新しいバージョンのコピーを変更して配布する権利
GPLはコピーレフトの考え方を用いて目的を実現します。コピーレフトは、著作権の仕組みを利用してソフトウェアのオープンソースとしての状態を維持するもので、著作権(copyright)をひねった表現です。ソフトウェアライセンスに自由の概念を組み込むことで、別のユーザーがソフトウェアを変更・拡張しても、プロプライエタリ化しないようにできます。
GPLv2とGPLv3の違いは何ですか?
GPLv3はGPLv2と同じ基本的な目的を維持しつつ、コピーレフトによる保護を強化しています。GPLv3の条文は、国際的なライセンス交換に関する条項など、技術や法律の変化に対応できるよう、より包括的になっています。
GPLv3に追加された主な条項は次の4つです。
互換性に関する規定 – ライセンスの互換性とは、異なる条件でライセンスされた2つのコンポーネントを組み合わせて新しい著作物を作る場合を指します。GPLv3では、互換性のあるライセンスを扱いやすくなっており、特にApache V2.0 Licenseのもとで提供されるコードに対応しています。
デジタル著作権管理 – DMCAなどの法規制に基づく技術的保護措置をユーザーが求めた場合でも、GPLソフトウェアの変更を不当に制限しないよう、新たな条項が設けられています。
明示的な特許ライセンス – 新しい特許条項により、一部のライセンシーだけが特許権の利益を得ることを防ぎます。すべてのユーザーが同じ利益を享受できるようにするか、誰もソフトウェアから利益を得られないようにすることが求められます。
ASP向けのソースコード開示免除 – ユーザーがクライアントにコピーを配布しない場合、GPLをASPとして実装する際にソースコードの開示が不要であることを明確にしています。ASPでの利用にもコピーレフトを適用する場合は、Affero General Public License(AGPLv3)を適用する必要があります。
GPLv3ライセンスの利用規約には何が含まれますか?
開発者がソフトウェアにGPLコンポーネントを使用すると、その著作物全体にGPLの利用規約が適用されます。GPLv3には、GPLソフトウェアに他のソースコード、コンポーネント、ライブラリが含まれる場合に適用される、複合作品に関する具体的な規約が定められています。
GPLv3ソフトウェアに適用される具体的な利用規約は次のとおりです。
許可 – ソフトウェアの商用利用、配布、変更、特許の使用、私的利用に関して認められる権利です。
条件 – ソースコードの開示、ライセンスと著作権表示の掲載、変更点の明記、同じライセンスのもとにあるライブラリの名称の記載が求められます。
制限事項 – 著作物に責任および保証に関する情報を含めます。
ライセンス契約の全文では、各条件が適用される場合と、開発者がその条項を免除できる場合が明確に定義されています。また、大きな著作物で使用されるコンポーネントの範囲を理解するための定義も記載されており、どの条項に従うべきか判断に迷う場合の指針にもなります。
GPLv3を使用するにはどうすればよいですか?
GPLライセンスのもとでソフトウェアを公開するには、雇用主や学校など、権利を有する組織から著作権に関する免責事項を取得する必要があります。免責事項を用意したら、各ファイルに適切な著作権表示を付け、ユーザーが使用できるバージョンを明確にします。
最後に、GNU GPLの利用規約全文を含むCOPYINGファイルを追加し、各ファイルにライセンス表示と許諾に関する記述を記載します。起動時に著作権表示を表示するかどうかは任意です。
商用ソフトウェアにGPLv3を使用できますか?
GPLの目的は、ソフトウェアに追加の制限が課されるのを防ぐことです。GPLソフトウェアの一部を使用する場合、変更後のバージョンにも同じ権利が適用されます。そのため、ユーザーがソフトウェアを変更して公開する場合は、後続のユーザーにも更新後のソースコードを公開する必要があります。GPLソフトウェアを他のユーザーに販売することはできますが、そのユーザーが変更や再配布を行う権利を制限することはできません。
その他のオープンソースライセンス
その他のオープンソースライセンスには、Massachusetts Institute of TechnologyのMITライセンスや、3条項のBerkeley Software Distribution(BSD)ライセンスがあります。GPLの主な目的は、開発者コミュニティの協力と継続的な改善を促すことです。GPLv3のもとでライセンスされたソフトウェアは、今後も自由に利用でき、競争を制限することはできません。自由の範囲を限定する必要がある場合(弱いコピーレフトライセンスとも呼ばれます)には、Lesser General Public License(LGPL)が適しています。

LGPLでは、元のフリーライブラリに対する変更のみを公開すればよいため、ソースコードを非公開にできます。後続のユーザーは、将来的にソフトウェアのGPL対象部分だけを置き換えることができ、プロプライエタリ部分を変更する必要はありません。
SnykでGPL対象コンポーネントをシームレスに管理
GPLライセンスについて理解したところで、Snykの開発者ファーストのライセンスコンプライアンス管理ツールについてもご覧ください。開発者がスピーディーなビルドとリリースのサイクルを維持しながら、プロセスの早い段階でライセンスの問題に対処できるよう支援します。