GPLライセンスの基礎知識

概要

Linuxディストリビューションには、GPL(GNU General Public License)をはじめ、さまざまなオープンソースライセンスのソフトウェアが含まれています。

LinuCレベル1では、次のような基本事項を押さえておきましょう。

  • オープンソースソフトウェアの意味
  • GPLとコピーレフトの関係
  • GPLソフトウェアを再配布するときの基本的な条件
  • GPL、LGPL、BSD系ライセンスの違い
  • Creative Commonsやパブリックドメインの位置づけ
  • FSFとOSIの役割

オープンソースソフトウェアとは

画像

オープンソースソフトウェアとは、単にソースコードを閲覧できるソフトウェアではありません。ライセンスによって、ソフトウェアの利用、調査、改変、再配布などが認められていることが重要です。

また、オープンソースは「無料」という意味ではありません。有償で販売したり、商用目的で利用したりすることも可能です。

オープンソースに関係する代表的な組織には、次のものがあります。

FSF

FSF(Free Software Foundation)は、ソフトウェアを利用・調査・改変・再配布できる自由を重視する団体です。GNUプロジェクトを支援し、GPLやLGPLなどのライセンスを公開しています。

OSI

OSI(Open Source Initiative)は、オープンソースの定義を管理し、その定義に適合するライセンスをオープンソースライセンスとして承認している団体です。

フリーソフトウェアとオープンソース

両者は対象となるソフトウェアの多くが重なりますが、重視する理念や説明の仕方が異なります。

項目フリーソフトウェアオープンソース
中心となる考え方利用者の「自由」を重視する開発方法やソフトウェアの品質を重視する
基本的な権利実行・調査・改変・再配布の自由ソースコードの利用・改変・再配布を認める
代表的な団体FSF(Free Software Foundation)OSI(Open Source Initiative)
代表的なライセンスGNU GPLGPL、MIT License、Apache Licenseなど
共通点ソースコードを入手でき、ライセンス条件に従って改変・再配布できる同左
注意点「free」は無料ではなく自由を意味し、有料で配布することもできるソースコードが公開されているだけではオープンソースとは限らない

GPLとは

画像

GPLは、GNUプロジェクトで広く使用されているオープンソースライセンスです。LinuxカーネルもGPLv2で公開されています。

GPLで提供されるソフトウェアには、次のような自由があります。

  • ソフトウェアを利用できる
  • ソースコードを調査できる
  • ソースコードを改変できる
  • ソフトウェアや改変版を再配布できる

ただし、再配布する場合にはGPLの条件を守る必要があります。

コピーレフト

GPLの大きな特徴が、コピーレフトです。

コピーレフトとは、ソフトウェアを改変したり、それを基にしたプログラムを作成したりして再配布する場合にも、利用者の自由を維持するため、GPLの条件を引き継がせる考え方です。

GPLの対象となるプログラムをバイナリ形式で再配布する場合は、受領者が対応するソースコードを入手できるようにする必要があります。また、受領者がGPLによって与えられた権利を行使することを妨げる、追加の制限を設けることはできません。

なお、GPLソフトウェアと別の独立したソフトウェアを同じ記録媒体やディストリビューションに収録しただけで、そのすべてがGPLになるわけではありません。

改変と再配布

GPLソフトウェアを改変しただけで、直ちにソースコードをインターネット上で一般公開する義務が生じるわけではありません。

GPL上の主な義務が問題になるのは、GPLソフトウェアやその改変版を他者へ再配布するときです。

例えば、GPLソフトウェアを改変して自分だけで利用している場合、通常はそのソースコードを一般公開する必要はありません。一方、改変版を第三者へバイナリ形式で配布する場合は、受領者が対応するソースコードを入手できるようにする必要があります。

ここで重要なのは、ソースコードを必ず不特定多数へ公開するという意味ではなく、配布を受けた人にGPL上の権利を与えるという点です。

GPLに関するよくある誤解

GPLソフトウェアは販売できない

誤りです。

GPLソフトウェアを有償で販売することは可能です。ただし、購入者にもGPLによる利用、改変、再配布などの権利が与えられます。

GPLソフトウェアは商用利用できない

誤りです。

GPLは商用利用を禁止していません。企業がGPLソフトウェアを業務で利用したり、GPLソフトウェアを含む製品やサービスを提供したりすることも可能です。

GPLソフトウェアを改変すると必ず一般公開しなければならない

誤りです。

自分だけで利用する場合には、通常、一般公開は求められません。改変版を他者へ再配布するときに、GPLの条件を守る必要があります。

GPLでは著作権がなくなる

誤りです。

GPLは著作権を放棄する仕組みではありません。著作権者が著作権を保持したまま、利用者に一定の権利を許諾するライセンスです。

GPLと他のライセンスの比較

AGPLとの違い

AGPL(GNU Affero General Public License)は、GPLを基礎として、ネットワーク経由で利用されるソフトウェアにもコピーレフトを適用できるようにしたライセンスです。

GPLでは、ソフトウェアを改変しても、コピーを第三者に配布せず、自分のサーバー上でサービスとして提供するだけであれば、一般にソースコードの提供義務は発生しません。

一方、AGPLが適用されたソフトウェアを改変し、ネットワーク経由で利用者に操作させる場合は、その利用者が対応するソースコードを入手できるようにする必要があります。

たとえば、AGPLのWebアプリケーションを改変してSaaSとして提供する場合、利用者に対して、改変部分を含む対応ソースコードをネットワーク経由で無償提供する仕組みが必要になります。

試験対策では、次の違いを押さえておきましょう。

  • GPL:主にソフトウェアを配布する場合に、ソースコードの提供などが必要になる
  • AGPL:配布に加えて、改変したソフトウェアをネットワーク経由で利用させる場合にも、対応ソースコードの提供が必要になる

AGPLは、ソフトウェアをサーバー上で動作させるだけでGPLのソースコード提供義務を回避できる、いわゆる「SaaSの抜け穴」に対応することを目的としています。

ただし、具体的な義務はソフトウェアの利用方法、改変の有無、他のプログラムとの結合方法などによって異なります。実際に利用する場合は、AGPLのライセンス本文を確認する必要があります。

LGPLとの違い

LGPL(GNU Lesser General Public License)は、主にソフトウェアライブラリで利用されるライセンスです。

GPLよりもコピーレフトの適用範囲が限定されており、所定の条件を満たせば、LGPLのライブラリを利用するアプリケーション全体にGPLやLGPLを適用せずに配布できる場合があります。

ただし、LGPLが適用されたライブラリ自体を改変して再配布する場合は、そのライブラリ部分についてLGPLの条件を守る必要があります。

試験対策では、次の違いを押さえておきましょう。

  • GPL:GPLの対象となるプログラム全体に強いコピーレフトが働く
  • LGPL:主にライブラリ部分を対象とした、GPLより弱いコピーレフト

静的リンクや動的リンクに関する具体的な条件は、LGPLのバージョンや配布方法によって異なります。LinuCレベル1の基礎学習では、詳細な法的判断まで覚える必要はありません。

BSD系ライセンスとの違い

BSD系ライセンス(BSD、MIT、Apache License 2.0)は、利用者への制約が比較的少ない寛容型ライセンスです。
BSD系ライセンスは、GPLとは異なり、コピーレフトを持たない許諾型のライセンスです。

> 注意: MIT LicenseとApache License 2.0は、厳密にはBSDライセンスではありませんが、BSDライセンスと同じ非コピーレフト型のライセンスに分類されます。

BSD系ライセンスには、次のような特徴があります。

  • 商用利用、改変、再配布、他のソフトウェアへの組み込みが広く認められている
  • GPLのように、派生物のソースコード公開を原則として要求しない
  • 再配布時には、著作権表示やライセンス文を保持する必要がある
  • ソフトウェアは無保証で提供され、作者は原則として損害責任を負わない

BSD系ライセンスでは、著作権表示や免責条項など、ライセンスで指定された表示を維持すれば、改変したソフトウェアを独自のライセンスで配布することもできます。そのため、BSD系ライセンスのコードをプロプライエタリソフトウェアに組み込める場合があります。

代表的なものに、BSD 2-Clause LicenseやBSD 3-Clause Licenseがあります。

GPL・AGPL・LGPL・BSD系ライセンスの主要な違いまとめ

ライセンスコピーレフト改変版を再配布する場合ネットワーク経由で提供する場合
GPLありGPLの条件を維持し、対応するソースコードを提供する配布を伴わない場合は、一般にソースコードの提供義務は発生しない
AGPLありAGPLの条件を維持し、対応するソースコードを提供する改変版をネットワーク経由で利用させる場合も、利用者に対応するソースコードを提供する
LGPL限定的にあり主にライブラリ部分でLGPLの条件を維持するGPLと同様に、ネットワーク利用だけを理由とするソースコード提供義務は原則としてない
BSD系なし著作権表示などを維持すれば、独自ライセンスでの配布も可能原則としてソースコードの提供義務はない

試験対策では、次のように整理するとよいでしょう。

  • GPL:配布時に強いコピーレフトが働く
  • AGPL:GPLの条件に加え、改変版のネットワーク経由での利用にも対応する
  • LGPL:主にライブラリ部分に限定してコピーレフトが働く
  • BSD系:コピーレフトを持たず、比較的自由に利用・再配布できる

各ライセンスには複数のバージョンや個別の条件があります。実際にソフトウェアを利用・改変・配布する場合は、適用されているライセンスの本文を確認する必要があります。


Creative Commons

Creative Commonsは、主に文章、画像、音楽、動画などのコンテンツに使用されるライセンス体系です。

代表的な条件には、次のものがあります。

  • BY:著作者などの表示が必要
  • SA:改変した作品にも同じライセンスを適用する
  • NC:営利目的での利用を禁止する
  • ND:改変を禁止する

Creative Commonsは主にコンテンツ向けであり、ソフトウェアのソースコードにはGPL、LGPL、BSD系などのソフトウェア向けライセンスを使用するのが一般的です。

また、NCやNDを含むCreative Commonsライセンスは、利用分野や改変を制限するため、オープンソースの定義には適合しません。

パブリックドメイン

パブリックドメインとは、著作権の保護期間が終了した場合など、著作権による独占的な制限を受けない状態を指します。

パブリックドメインはGPLやBSDのようなライセンスの一種ではありません。GPLなどは著作権を前提とした利用許諾ですが、パブリックドメインは著作権による制限を受けない状態です。

ライセンス情報の確認

ソフトウェアのライセンスは、配布物に含まれる次のようなファイルで確認できます。

  • COPYING
  • LICENSE
  • NOTICE
  • 各ソースコードファイルの先頭コメント

COPYINGはGPL系のソフトウェアでよく使われるファイル名です。LICENSEには、そのソフトウェアに適用されるライセンス本文やライセンス情報が記載されます。

パッケージ管理システムのメタデータにもライセンス情報が登録されている場合がありますが、これはパッケージ作成者による要約です。正確な条件を確認するときは、ソフトウェアに添付されたライセンス本文を確認します。


まとめ

LinuCレベル1の試験対策では、次の点を押さえておきましょう。

  • オープンソースは「無料」という意味ではない
  • GPLソフトウェアは商用利用や有償販売も可能
  • GPLはコピーレフトを採用している
  • GPLの対象となる改変版などを再配布するときは、GPLの条件を維持する
  • バイナリを再配布する場合は、受領者が対応するソースコードを入手できるようにする
  • 改変しただけで、不特定多数への一般公開が必要になるわけではない
  • LGPLは主にライブラリ向けで、GPLよりコピーレフトの範囲が限定的
  • BSD系ライセンスはコピーレフトを持たない
  • Creative Commonsは主に文章や画像などのコンテンツ向け
  • パブリックドメインはライセンスではなく、著作権による制限を受けない状態
  • FSFは自由ソフトウェア運動やGNUライセンスに関係する団体
  • OSIはオープンソースの定義とライセンスの承認に関係する団体