Traffine I/O

日本語

2022-09-14

GPLライセンス

GPLライセンスとは

GNU General Public License(GPL)は、世界中でオープンソースソフトウェアの開発、使用、普及を促進するための基盤となるものです。プロプライエタリなソフトウェアがしばしば課す制約なく、ユーザーがソフトウェアを自由に使用、変更、配布できるようにするために作成されました。

GPLは、コピーレフトの原則に基づいています。コピーレフトは著作権法のメカニズムを使用しますが、それを逆に使って制限や制御を行うのではなく、コピーレフトは作品のコピーを受け取る全ての人が、その作品と派生バージョンを自由に使用、変更、配布できるようにします。派生作品も同じ条件の下でライセンスされなければならないため、GPLによって付与された自由が、作品が変更や追加された場合でも保護されることが保証されます。

GPLは完全なソフトウェアアプリケーションにのみ適用されるわけではありません。個々のコンポーネント、ライブラリ、さらには小さなコードの断片にも適用されます。GPLライセンスのコンポーネントがソフトウェアのどこにでも含まれている場合、そのソフトウェア自体もGPLの下でリリースされなければなりません。これはソフトウェアの自由を保証する強力な手段ですが、ソフトウェア開発者にとっても重要なコミットメントとなります。そのため、ソフトウェア開発に関与する全ての人にとって、GPLとその影響を理解することは重要です。

年月を重ねるごとに、ソフトウェア開発の変化に対応するためにGPLも進化しました。これらのバージョンには、元のGPL(後にGPL-1.0と呼ばれる)、GPL-2.0、GPL-3.0などがあります。また、特定の使用ケースに対応したLesser General Public License(LGPL)やAffero General Public License(AGPL)などのバリエーションも存在し、オープンソースエコシステムにおける特定の問題に対処しています。

LGPL-2.1

1999年2月にリリースされたLesser General Public License(LGPL)バージョン2.1は、GPLの強力なコピーレフトとBSDライセンスやMITライセンスなどのより許容度の高いライセンスの折衷案と見なされることが多いです。LGPL-2.1は、完全なソフトウェアアプリケーションではなく、ソフトウェアライブラリと一緒に使用することを目的として設計されました。

このライセンスの下では、開発者は自身の(プロプライエタリな)ソフトウェアにLGPLでリリースされたソフトウェアを使用および統合することが許可されますが、GPLの条件によって自身のコンポーネントのソースコードを公開することは要求されません。ただし、LGPL-2.1でライセンスされたライブラリ自体を変更する場合は、それらの変更を同じライセンスの下で公開する必要があります。

https://opensource.org/license/lgpl-2-1/

LGPL-3.0

2007年6月に公開されたLGPL-3.0は、LGPL-2.1の改訂版です。先行バージョンと同じ権限と制限を持っていますが、GPLの後のバージョンへの「再ライセンス」を許可する新しい条項が含まれています。

この条項により、LGPL-3.0でライセンスされたソフトウェアは、GPL-3.0以降のプロジェクトに組み込むことができます。このより高い互換性により、LGPL-3.0は多くのオープンソースプロジェクトにとって魅力的な選択肢となっており、ソフトウェアの使用方法や他のソフトウェアとの組み合わせに対してより柔軟性を提供しています。

https://opensource.org/license/lgpl-3-0/

GPL-2.0

1991年6月にリリースされたGPL-2.0は、GPLライセンスの第2版です。元のGPLの概念を拡張し、以前はカバーされていなかったいくつかのシナリオに対応しています。このライセンスは、ソフトウェアおよび派生作品がオープンソースであることを保証します。

GPL-2.0でライセンスされたコードを含むプログラムを配布する場合、ソースコードも提供する必要があります。これは、要求に応じてソースコードを提供するという形であっても構いませんし、配布されるソフトウェア自体にソースコードを含めることでも構いません。この要件により、ユーザーは常にソフトウェアを変更し、派生作品を作成する能力を持つことが保証されます。

https://opensource.org/license/gpl-2-0/

GPL-3.0

2007年6月にリリースされたGPL-3.0は、GPLライセンスのさらなる進化版です。ソフトウェア特許からユーザーを保護するための規定や、他のライセンスとの互換性の改善など、いくつかの重要な更新が含まれています。

このバージョンでは、「Tivoization(ティボイゼーション)」を明示的に禁止しています。この用語は、ユーザーの変更をブロックするシステムを作成するプラクティスを指します。このプラクティスは、GPL-3.0が作成された当時、オープンソースコミュニティでの懸念が高まっていました。Tivoizationの禁止は、GPL-2.0とGPL-3.0の主な違いの一つです。

https://opensource.org/license/gpl-3-0/

AGPL-3.0

2007年11月に公開されたAffero General Public License(AGPL)バージョン3.0は、GPL-3.0と似ていますが、ネットワークサーバーソフトウェアの場合にコミュニティとの協力を保証するための追加の規定が含まれています。

AGPL-3.0の下では、修正されたプログラムをサーバー上で実行し、他のユーザーがそのサーバーと通信できる場合、サーバーは修正されたバージョンに対応するソースコードのダウンロードを許可する必要があります。この要件は、GPLにおけるアプリケーションサービスプロバイダー(ASP)の抜け穴を解消するために追加されました。これにより、クラウドコンピューティング環境でもGPLの精神が保持されることが保証されます。

https://opensource.org/license/agpl-v3/

参考

https://opensource.org/license/lgpl-2-1/
https://opensource.org/license/lgpl-3-0/
https://opensource.org/license/gpl-2-0/
https://opensource.org/license/gpl-3-0/
https://opensource.org/license/agpl-v3/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!