著作権を利用して自由を守る方法
コピーレフト(copyleft)は、著作権(copyright)をもじった言葉です。1980年代にリチャード・ストールマンとフリーソフトウェア財団(FSF)が GNU プロジェクトのために作った概念で、著作権法を利用してソフトウェアの自由が失われないようにする仕組みです。著作権者は誰にでも使用・改変・配布を許可しますが、一つだけ条件を付けます。「このコードを基に作ったものを配布するときは、受け取る人にも同じ自由を与えなければならない。」
寛容型ライセンス(MIT・BSD・Apache)にはこの条件がありません。そのため、誰かが寛容型のコードを改変して非公開の製品として販売しても構いません。コピーレフトはこうした流れを防ぎ、改良されたバージョンも公開された状態のまま残るようにします。この性質から、コピーレフトライセンスは「互恵的(reciprocal)ライセンス」とも呼ばれます。
義務は「配布」するときに生じる
コピーレフトの条件は、コードを他人に渡すときに発動します。GPL-3.0 はこれを「convey(伝達)」と呼びます。
- 社内だけで使うツールを GPL のコードで作り、外部に配布しないのであれば、ソース公開義務は生じません。
- アプリを顧客にインストーラーとして配ったり、機器に組み込んで販売したりすれば、配布に当たります。
- サーバー上でのみ動かし、利用者はウェブでアクセスする場合、GPL では配布ではありません。これを埋めるのが AGPL です。
範囲による3つの系統
強いコピーレフト
GPL-2.0・GPL-3.0 が代表です。GPL のコードと結合して一つのプログラムとして配布する全体が、GPL の条件に従わなければなりません。静的リンクでも動的リンクでも、一つのプログラムを成すなら結合とみなすのが FSF の立場です。
弱いコピーレフト
義務の範囲を狭めたライセンスです。
- LGPL: ライブラリ単位。ライブラリ自体の改変部分だけを公開すればよく、それを利用するプログラムは条件(再リンク可能など)を守れば非公開にできます。
- MPL-2.0: ファイル単位。MPL が適用されたファイルを改変したら、そのファイルだけを公開します。
- EPL-2.0: モジュール単位。EPL のコードと改変部分は公開しますが、別モジュールは他のライセンスを使えます。
ネットワークコピーレフト
AGPL-3.0 は、改変したプログラムをネットワーク経由で提供するだけで、利用者にソースを提供する義務を課します。ウェブサービスの時代に GPL の空白を埋めるために作られました。
| ライセンス | 公開の範囲 | サーバー運用のみの場合 |
|---|---|---|
| GPL-2.0 / GPL-3.0 | 結合したプログラム全体 | 義務なし |
| LGPL-2.1 / LGPL-3.0 | ライブラリとその改変部分 | 義務なし |
| MPL-2.0 | 改変した MPL ファイル | 義務なし |
| EPL-2.0 | EPL のコードと改変部分(モジュール) | 義務なし |
| AGPL-3.0 | 結合したプログラム全体 | 改変版ならソース提供 |
よくある誤解
- 「コピーレフトは商用利用を妨げる」 — 妨げません。GPL のソフトウェアを販売しても構いませんし、有償サポートやホスティングで収益を上げている会社も多くあります。妨げるのは、受け取った人の自由を奪うことです。
- 「GPL のコードを一行でも見ると自分のコードが GPL になる」 — ライセンスは著作物の複製・改変・配布を扱います。コードを見てアイデアを得ること自体は著作権の対象ではありません。ただし、事実上書き写したレベルであれば複製とみなされることがあります。
- 「違反すると自分のコードが自動的に GPL になる」 — ライセンス違反の結果は、通常、権利の喪失と著作権侵害の責任です。自分のコードが強制的に公開されるのではなく、条件を守るか配布をやめるかを選ぶことになります。
- 「コピーレフトのコードは寛容型のプロジェクトに絶対に使えない」 — 組み合わせて配布すると、結合物がコピーレフトの条件に従うことになるという意味です。別プログラムとして分離したり、弱いコピーレフトのライブラリを条件に沿ってリンクしたりする方法はあります。互換性の基礎を参照してください。
コピーレフトを選ぶかを判断するための質問
- 自分のコードを改変した結果が、非公開の製品に入っても構わないか?
- ライブラリとして広く採用されることと、改良が還元されることのどちらが重要か?
- 主な利用形態はインストール型か、サーバーで動くサービスか?
3つの質問への答えに応じて、選択ウィザードが候補を絞り込みます。より詳しい比較は寛容型 vs コピーレフトにあります。
この記事は一般的な情報であり、法的助言ではありません。重要な決定は専門家にご相談ください。
参考資料
- GNU — What is Copyleft? — https://www.gnu.org/licenses/copyleft.html
- GNU ライセンス FAQ — https://www.gnu.org/licenses/gpl-faq.html
- GNU GPL v3.0 原文 — https://www.gnu.org/licenses/gpl-3.0.html