はじめに
オープンソースソフトウェアの世界で広く採用されているApache-2.0ライセンス。
企業でも安心して使えるライセンスとして知られていますが、実際にはどのような特徴があるのでしょうか。
今回は、Apache-2.0ライセンスの基本から実際の使い方まで、わかりやすく解説します。
Apache-2.0ライセンスとは
Apache-2.0ライセンスは、Apache Software Foundation(ASF)によって開発されたオープンソースライセンスです。
正式には「Apache License, Version 2.0」と呼ばれ、2004年にリリースされて以来、多くの企業や組織で採用されています。
主な特徴
1. 企業での利用に配慮
Apache-2.0ライセンスは、企業での利用を想定して弁護士によって入念に作成されており、法的な堅牢性が高いのが特徴です。
2. 特許保護を含む
- コード提供者からの特許ライセンスが自動的に付与される
- 特許訴訟に対する防御機能を持つ
- 特許を使った攻撃への対抗措置が組み込まれている
3. 寛容(Permissive)でありながら詳細
- 商用利用が可能
- 改変・再配布が自由
- クローズドソース※1での利用も可能
- ただし、MITライセンスより詳細な義務が存在
Apache-2.0ライセンスの全文
Apache-2.0ライセンスの全文は比較的長く(約11,000文字)、詳細な条項が含まれています。
公式の全文はApache License 2.0 – Apache Software Foundationで確認できます。
主要部分の抜粋:
Apache License
Version 2.0, January 2004
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
2. Grant of Copyright License.
3. Grant of Patent License.
4. Redistribution.
5. Submission of Contributions.
6. Trademarks.
7. Disclaimer of Warranty.
8. Limitation of Liability.
9. Accepting Warranty or Additional Liability.
主要部分の抜粋(日本語訳):
Apache License
Version 2.0, January 2004
使用、複製、および頒布に関する条項
1. 定義
2. 著作権ライセンスの付与
3. 特許ライセンスの付与
4. 再頒布
5. コントリビューションの提出
6. 商標
7. 保証の認否
8. 責任の制限
9. 保証又は追加的責任の引き受け
※日本語訳についてはこちらをご参照ください。
この詳細な条文が、企業での利用における法的リスクを最小化し、特許問題への対処を可能にしています。
何ができるのか
自由な利用
- 個人利用・商用利用問わず使用可能
- 改変・カスタマイズが自由
- 他のプロジェクトへの組み込み
配布・再配布
- 元のソースコードの配布
- 改変したバージョンの配布
- プロプライエタリソフトウェア※2の一部として配布
クローズドソースでの利用
- ソースコードを公開せずに商用製品に組み込み可能
- プロプライエタリソフトウェア(商用ソフトウェア)との組み合わせが自由
- 改変した内容を秘匿したまま配布することができる
サブライセンス
- Apache-2.0ライセンスのソフトウェアを含むプロジェクト全体に別のライセンスを適用可能
- GPLv3との組み合わせは可能だが、GPLv2とは互換性がない
- ただし、元のApache-2.0ライセンス部分の義務は遵守必須
注意すべき点
1. 変更の明示義務
改変したファイルには、その旨を明記する必要があります。これはMITライセンスにはない義務です。
2. NOTICEファイルの保持
NOTICEファイルとは: NOTICEファイルは、Apache License version 2.0のセクション4.4で規定される追加の帰属情報や免責事項を含むファイルです。プロジェクトにNOTICEファイルが存在する場合、それを保持・配布する必要があります。
NOTICEファイルの内容例: Apache公式のサンプルファイルでは以下のような内容が含まれます:
Apache HTTP Server
Copyright 2016 The Apache Software Foundation.
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Portions of this software were developed at the National Center
for Supercomputing Applications (NCSA) at the University of Illinois
at Urbana-Champaign.
参考リンク:
3. 特許訴訟による権利終了
Apache-2.0ライセンスソフトウェアに関して特許訴訟を起こした場合、その利用者(訴訟を起こした側)のライセンス権利は自動的に終了します。これにより、特許による攻撃を抑制する仕組みになっています。
4. ライセンス互換性
Apache-2.0とGPLの互換性:
- GPLv2とは互換性がない:Apache-2.0の追加条項(特許条項など)がGPLv2と衝突するため
- GPLv3とは互換性がある:GPLv3はApache-2.0との互換性を考慮して設計されている
これは実際の開発現場で重要な制約となるため、依存関係の確認時に注意が必要です。
5. 商標の使用制限
ライセンス付与者の商標を無断で使用することはできません。
他のライセンスとの比較
ライセンス | ソース公開義務 | 特許保護 | 条文の長さ | 主な特徴 |
---|---|---|---|---|
Apache-2.0 | なし | あり | 長い | 企業利用に配慮・法的堅牢性 |
MIT | なし | なし | 短い | 最もシンプルで制約が少ない |
GPL v3 | あり | あり | 非常に長い | 改変版も必ずオープンソース化 |
BSD | なし | なし | 短い | MITと似ているが歴史が古い |
実際の使用例
Apache-2.0ライセンスは多くの有名なプロジェクトで採用されています:
- Kubernetes – コンテナオーケストレーションプラットフォーム
- Android (AOSP) – Android Open Source Project。大部分がApache-2.0ライセンス
- Apache Spark – 大規模データ処理エンジン
- TensorFlow – Googleの機械学習フレームワーク
開発者として気をつけること
プロジェクトでApache-2.0ライセンスを採用する場合
1. LICENSEファイルの作成
- プロジェクトルートに「LICENSE」ファイルを作成
- Apache-2.0ライセンス全文をコピー
- 必要に応じてNOTICEファイルも作成
2. ソースファイルへのヘッダー追加
/*
* Copyright [yyyy] [name of copyright owner]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
3. README.mdでの表示
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
Apache-2.0ライセンスのソフトウェアを利用する場合
1. ライセンス確認の手順
- GitHubリポジトリのLICENSEファイルを確認
- package.jsonやライブラリ情報でライセンスを確認
- NOTICEファイルの存在も確認
2. 配布時の対応
- 使用したライブラリのLICENSEファイルを自分のプロジェクトに同梱
- NOTICEファイルが存在する場合はそれも同梱
- 改変した場合は変更内容を明記
- 著作権表示を削除・改変しない
3. 依存ライブラリの確認
使用しているライブラリのライセンスとの互換性を確認する:
- GPLv2ライセンスのライブラリとは組み合わせ不可
- GPLv3ライセンスのライブラリとは組み合わせ可能(ただしプロジェクト全体がGPLv3になる)
- その他のライセンスとの互換性も事前に調査
まとめ
Apache-2.0ライセンスは、企業での利用を重視したい場合や、特許問題への対策を考慮したい場合に優れた選択肢です。MITライセンスよりも複雑ですが、その分より包括的な保護を提供します。
開発者として、ライセンスの内容を正しく理解し、適切に遵守することで、オープンソースエコシステムの健全な発展に貢献できるでしょう。企業での採用も考慮したプロジェクトや、法的な安全性を重視する場合は、Apache-2.0ライセンスの採用を検討してみてください。
用語解説
※1 クローズドソース:ソースコードが一般に公開されていないソフトウェア。企業の機密情報として扱われる。
※2 プロプライエタリソフトウェア:特定の企業や個人が所有権を持つソフトウェア。ライセンス料を支払って使用権を購入し、ソースコードの閲覧や改変は制限される。
例:Microsoft Office、Adobe Photoshop、Windows OS。
この記事は一般的な情報提供を目的としており、法的アドバイスではありません。具体的な法的問題については、専門家にご相談ください。