オープンソースライセンスの互換性: どのライセンスを組み合わせられるか?

どのオープンソースライセンスが互いに互換性があるかを学びます。ライセンスの互換性が重要な理由と、マルチライセンスの依存関係の扱い方を理解します。

Guides

詳細な説明

オープンソースライセンスの互換性

ライセンスの互換性は、あるライセンスのコードを別のライセンスのコードと組み合わせられるかどうかを決定します。互換性のないライセンスは、コードを合法的にマージまたはリンクできないことを意味します。

なぜ互換性が重要なのか?

現代のソフトウェアプロジェクトは数百のライブラリに依存しています。2つの依存関係に互換性のないライセンスがある場合、結合された作品を合法的に配布できない可能性があります。

主要なルール

  1. 寛容型からコピーレフトへ — 寛容型ライセンス(MIT、BSD、ISC)のコードは一般的にコピーレフトプロジェクトに組み込める
  2. コピーレフトから寛容型へ — コピーレフトのコードは寛容型ライセンスで再ライセンスできない
  3. GPL-2.0 vs GPL-3.0 — 「GPL-2.0-or-later」でライセンスされていない限り互換性がない
  4. Apache-2.0とGPL — Apache-2.0はGPL-3.0と互換性があるが、GPL-2.0とは互換性がない

互換性のないライセンスへの対処

  • 別プロセス — 互換性のないコードをAPIで通信する別のプロセスで実行
  • システムライブラリ例外 — GPLはシステムライブラリへのリンクを許可
  • デュアルライセンス — 著者に互換性のあるライセンスでのデュアルライセンスを依頼
  • 書き直し — 互換性のない依存関係を互換性のある代替品に置き換え

ユースケース

単一のプロジェクトで複数のオープンソースライブラリを組み合わせられるかどうかの評価、受容可能なライセンスの企業ポリシーの作成、またはオープンソースコンプライアンス監査の準備。

試してみる — License Identifier

フルツールを開く