0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MIT・Apache・GPL・BSDライセンスの違い

Posted at

1. はじめに

ソフトウェア開発では、オープンソースライセンスのライブラリやコードを利用することが一般的です。特に有名なライセンスとして MITライセンスApacheライセンスGPLライセンスBSDライセンス があります。「自由に使える」と思いがちですが、それぞれルールや義務が異なります、特に表記についてコメントしておきます。


2. ライセンスごとの特徴・ビジネス事例・表記例

2.1 MITライセンス

特徴

  • 利用、複製、変更、再配布が自由
  • 商用利用も可能
  • 著作権表示 を残せばOK

ビジネス事例

  • React(Meta社):MITライセンスの代表例で、多くの企業が商用利用しています。
  • jQuery:Web開発で広く利用されています。

表記例

This software includes the following MIT-licensed component(s):

[ライブラリ名] - [ライブラリの説明]  
Copyright (c) [著作権者名]  
Licensed under the MIT License.  
[MITライセンス全文]

2.2 Apacheライセンス

特徴

  • 利用、複製、変更、再配布が自由
  • 商用利用も可能
  • 著作権表示変更の通知 が必要
  • ライセンス全文の配布 が必須

ビジネス事例

  • Android OS:GoogleのAndroid OSはApacheライセンスベースです。
  • Hadoop:大規模データ処理で使われるフレームワークです。

表記例(変更を加えた場合)

This software includes modified versions of the following Apache-licensed component(s):

[ライブラリ名]  
Copyright (c) [著作権者名]  
Modifications made by [あなたの会社名]  
Licensed under the Apache License, Version 2.0  
http://www.apache.org/licenses/LICENSE-2.0  

2.3 GPLライセンス(GNU General Public License)

特徴

  • ソースコードの公開義務 があるライセンスです。
  • 派生物もGPLライセンスで公開する必要があります。

ビジネス事例

  • Linux OS:LinuxカーネルはGPLライセンスです。
  • MySQL:GPLライセンスと商用ライセンスのデュアルライセンスです。

表記例

This software is licensed under the GNU General Public License, version 3.  
Copyright (c) [著作権者名]  
Full license text: https://www.gnu.org/licenses/gpl-3.0.en.html  

2.4 BSDライセンス

特徴

  • 利用、複製、変更、再配布が自由
  • 商用利用も可能
  • 著作権表示免責条項 が必須

ビジネス事例

  • FreeBSD:macOSやPlayStation OSに採用されています。
  • OpenSSH:セキュアな通信を提供するソフトウェアです。

表記例

Redistribution and use in source and binary forms, with or without modification,  
are permitted provided that the following conditions are met:

[BSDライセンス全文]

3. 用語解説

3.1 オープンソースライセンス

ソースコードが公開され、誰でも利用・変更・配布できるようにするためのライセンスです。

3.2 パーミッシブライセンス

利用者への制限が少なく、著作権表示のみ必要です。代表例:MITライセンスBSDライセンス

3.3 コピーレフト

派生物も同じライセンスで公開する義務があります。代表例:GPLライセンス

3.4 準コピーレフト

部分的なソースコード公開を義務付けるライセンスです。代表例:LGPL(GNU Lesser GPL)

  • ライブラリ改変時:改変部分のソースコードを公開。
  • リンク利用時:ソースコード公開は不要。

3.5 変更の通知

Apacheライセンスで要求される要件で、改変内容や変更者を明示する義務です。


4. ライセンスの相互互換性

使用ライセンス 互換性のあるライセンス 注意点
MITライセンス Apache、BSD、GPL 互換性が高い
Apacheライセンス MIT、BSD GPLとは一方向の互換性(Apache → GPL)
GPLライセンス 他のGPLライセンス 派生物もGPLライセンスで公開が必要
BSDライセンス MIT、Apache、GPL 免責条項を含み、互換性が高い
LGPLライセンス MIT、BSD、Apache 改変時はソースコード公開が必要

5. ライブラリのライセンス表記の調査方法

5.1 GitHubリポジトリで確認

  • LICENSEファイルや「License」表示を確認、おおかたこれでで対応可能だが、最新バージョンとは限らないので利用するバージョンのブランチを見るべし。

5.2 パッケージ管理ツールで確認

  • npm(Node.js)
    npm view [ライブラリ名] license
    
  • pip(Python)
    pip show [ライブラリ名]
    

5.3 ライセンス確認ツールを活用

  • LicenseFinder:依存ライブラリのライセンス確認
  • FOSSology:ライセンス解析
  • Black Duck:ライセンス違反検出

6. まとめ

オープンソースライセンスを理解し、以下を守る。

  • MITライセンス:著作権表示のみ必要
  • Apacheライセンス:変更通知とライセンス全文の配布が必要
  • GPLライセンス:派生物のソースコード公開が必要
  • LGPLライセンス:改変部分のみ公開
  • BSDライセンス:免責条項付きの柔軟なライセンス
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?