はじめに

「このライブラリ使いたいけど、ライセンスってどこ見ればいいの?」

「GitHubのどこを確認すれば安全に使えるか分からない…」

オープンソースソフトウェア(OSS)を利用する際、ライセンスの確認は避けて通れない重要なステップです。
しかし、「どこを見ればライセンス情報が分かるのか?」と迷う方も多いのではないでしょうか。
この記事では、OSSライセンスを確認する具体的な方法を、実践的に解説します。

なぜライセンス確認が重要なのか?

OSSは自由に使えるイメージがありますが、実際には各プロジェクトに定められたライセンス条件を守る必要があります。ライセンスを確認せずに使用すると、以下のようなリスクがあります:

  • 法的問題: ライセンス違反による訴訟リスク
  • 商用利用の制限: 一部のライセンスは商用利用に制限がある
  • 再配布の義務: ソースコード公開が必要になる場合がある
  • 互換性の問題: 異なるライセンス同士の組み合わせで問題が生じる

新人君

OSSって無料で使えるんですよね?ライセンスを確認しなくても大丈夫じゃないですか?

ossan

それは大きな誤解だよ。「無料」と「自由に使える」は別物なんだ。例えば、GPLライセンスのコードを使った場合、自分のコードも公開しなければならないことがある。商用製品では致命的な問題になるから、必ずライセンスを確認しよう。

それでは、具体的にどこを確認すればよいのか見ていきましょう。

1. GitHubリポジトリで確認する

最も一般的な確認方法は、プロジェクトのGitHubリポジトリをチェックすることです。

LICENSEファイル

リポジトリのルートディレクトリにある LICENSELICENSE.txtCOPYING などのファイルを確認しましょう。GitHubでは、このファイルがあると自動的にリポジトリのトップページに表示されます。

your-project/
├── LICENSE          ← ここを確認
├── README.md
├── package.json
└── src/

READMEファイル

README.md にもライセンス情報が記載されていることが多いです。通常、ファイルの最後の方に「License」セクションがあります。

GitHubのライセンス表示

GitHubのリポジトリページの右サイドバーの「About」セクションに、検出されたライセンスが表示されます。これは参考になりますが、必ず元のLICENSEファイルも確認することをお勧めします。

新人君

GitHubの表示だけ見ればいいんじゃないですか?わざわざLICENSEファイルを開くのは面倒で…

ossan

GitHubの自動検出は便利だけど、たまに誤検出もあるんだ。それに、プロジェクトによっては追加の条件や例外が書かれていることもある。法的な証拠としても、実際のLICENSEファイルの内容が重要だから、必ず確認する習慣をつけよう。

2. パッケージマネージャーで確認する

プロジェクトで使用している依存パッケージのライセンスを確認する方法です。

npm (Node.js)

# 特定のパッケージのライセンス確認
npm info パッケージ名 license

# プロジェクト内の全依存パッケージのライセンス一覧
npm install -g license-checker
license-checker --summary

pip (Python)

# 特定のパッケージの情報確認
pip show パッケージ名

# 全パッケージのライセンス確認
pip install pip-licenses
pip-licenses

Maven/Gradle (Java)

# Mavenの場合
mvn license:aggregate-third-party-report

# Gradleの場合(プラグイン使用)
./gradlew generateLicenseReport

3. ソースコード内で確認する

ファイルヘッダー

多くのOSSプロジェクトでは、各ソースファイルの先頭にライセンス情報がコメントとして記載されています。

/*
 * Copyright (c) 2024 Project Name
 * Licensed under the MIT License
 * See LICENSE file in the project root
 */

パッケージメタデータ

言語ごとのパッケージ定義ファイルにもライセンス情報が含まれています:

  • Node.jspackage.json の "license" フィールド
  • Pythonsetup.py または pyproject.toml の license フィールド
  • Rubygemspec ファイルの license フィールド
  • RustCargo.toml の license フィールド

4. ライセンススキャンツールを使う

大規模なプロジェクトでは、自動化ツールの利用が効率的です。

推奨ツール

  • FOSSA: 商用・無料版あり、CI/CDに統合可能
  • WhiteSource (Mend): エンタープライズ向け
  • Black Duck: 包括的なライセンススキャン
  • licensee (GitHub製): コマンドラインツール
  • SPDX Tools: 標準化されたライセンス情報管理

5. 注意すべきポイント

デュアルライセンス

一部のプロジェクトは複数のライセンスを提供しています。利用者が選択できる場合と、条件によって適用されるライセンスが異なる場合があります。

ライセンスの互換性

複数のOSSを組み合わせる場合、ライセンス間の互換性に注意が必要です。

主要ライセンスの比較

ライセンスソース公開義務商用利用主な特徴
MITなし可能最も制約が少ない・シンプル
Apache 2.0なし可能特許権の明示的な許諾あり
GPL v3あり可能改変版も必ずオープンソース化
BSDなし可能MITと似ているが歴史が古い

互換性の注意点:

  • GPLライセンスのコードは、他のライセンスとの組み合わせに制約がある
  • Apache 2.0とGPL v2は互換性がない場合がある
  • MITとBSDは比較的他のライセンスと組み合わせやすい

サブディレクトリのライセンス

プロジェクト内の一部のコードが異なるライセンスの場合があります。サブディレクトリに別のLICENSEファイルがないか確認しましょう。

ライセンスがない場合

LICENSEファイルが見当たらない場合、そのコードは著作権で保護されており、無断使用できません。作者に連絡してライセンスを明確にしてもらうか、別のOSSを探すことをお勧めします。

新人君

LICENSEファイルがないプロジェクトを見つけたんですが、GitHubで公開されているから使っても大丈夫ですよね?

ossan

それは危険な考え方だよ!ライセンスが明記されていない場合、著作権法によってすべての権利が作者に留保されているんだ。つまり、公開されていても使用許可がない状態。必ず作者に連絡してライセンスを追加してもらうか、別のライブラリを探そう。

まとめ

ライセンス確認さえ習慣化すれば、安心してOSSを活用できます!

OSSライセンスの確認は、以下の順序で行うのが効率的です:

  1. プロジェクトのLICENSEファイルを確認
  2. README.mdのライセンスセクションをチェック
  3. パッケージマネージャーで依存関係のライセンスを確認
  4. 大規模プロジェクトではライセンススキャンツールを導入

ライセンスの確認を習慣化することで、法的リスクを回避し、安心してOSSを活用できます。開発者として、ライセンスの内容を正しく理解し、適切に遵守することで、オープンソースエコシステムの健全な発展に貢献できるでしょう。

不明な点がある場合は、プロジェクトのメンテナーに問い合わせるか、法務担当者に相談することをお勧めします。


用語解説

デュアルライセンス: 一つのソフトウェアに対して、複数のライセンスが用意されていること。利用者が用途に応じて選択できる場合と、条件によって自動的に適用されるライセンスが決まる場合がある。

ライセンス互換性: 異なるライセンスのソフトウェアを組み合わせて使用できるかどうか。例えば、GPLライセンスのコードを含むプロジェクトは、プロジェクト全体がGPLライセンスになる必要がある。

コピーレフト: ソフトウェアを改変・再配布する際に、同じライセンス条件を維持することを要求する仕組み。GPLが代表的なコピーレフトライセンス。

プロプライエタリソフトウェア: 特定の企業や個人が所有権を持つソフトウェア。ソースコードは公開されず、ライセンス料を支払って使用権を購入する形態。


免責事項: この記事は一般的な情報提供を目的としており、法的アドバイスではありません。具体的な法的問題については、専門家にご相談ください。