先に要点
- OSS(オープンソース)ライセンスは、大きく「寛容型(permissive)」と「コピーレフト(copyleft)」の2系統に分かれます。まずこの2つの違いを押さえるのが近道です。
- 寛容型(MIT・Apache 2.0・BSD)は、改変も商用利用も自由で、自分のコードを公開する義務がないのが特徴。著作権表示を残すくらいの軽い条件で、プロプライエタリ(非公開)製品にも組み込めます。
- コピーレフト(GPL・LGPL・MPL・AGPL)は、改変版を配布するなら同じライセンスでソースを公開するのが条件。強さに段階があり、GPLが強く、LGPL・MPLは緩めです。
- AGPLは特に強力で、ネットワーク越しに使わせる(SaaS)だけでもソース公開の対象になります。うっかり依存に入れると自社コードの公開義務につながることも。
- 商用プロダクトで使う側なら、まずは寛容型が安全。GPL/AGPL系は「自分のコードも公開させられる」可能性があるため、採用前にライセンスを必ず確認します。
このライブラリ、仕事で使って大丈夫?勝手に自社コードを公開させられない? ── OSSを使うとき避けて通れないのがライセンスです。種類ごとに「できること」と「守るべき義務」が違い、選び方を間違えると思わぬ公開義務を負うこともあります。
この記事では、OSSライセンスを寛容型とコピーレフトという2大分類で整理し、主要ライセンスの違いを一覧で解説します。特定のOSSの無料・商用可否はAstroは無料で使える?のような個別記事も参考にしてください。
OSSライセンスの2大分類
ざっくり言うと、寛容型は「自由に使っていいよ」、コピーレフトは「使ってもいいが、改変して配るなら同じ自由をみんなに渡してね」という思想の違いです。この軸で見ると、多くのライセンスは整理できます。
寛容型(permissive)の主なライセンス
MIT
もっとも短く広く使われる寛容型。著作権表示とライセンス文を残せば、改変も商用も、非公開製品への組み込みも自由。無保証。迷ったらこれ、と言われるほど定番。
Apache 2.0
MIT同様に自由だが、明示的な特許条項(特許ライセンスの付与)があるのが大きな違い。特許トラブルへの備えになるため企業に好まれる。変更点の告知やNOTICEの保持が求められる。
BSD(2条項/3条項)
MITに近い寛容型。3条項版は「作者名を宣伝に使わない」という条項が加わる。著作権表示と免責の保持が条件。
パブリックドメイン系
Unlicense・CC0など、権利をほぼ放棄して自由に使わせるもの。条件は最小だが、企業によっては採用可否の判断が要ることも。
寛容型に共通するのは、「自分のコードを公開しなくてよい」点。だから商用・プロプライエタリ製品と相性がよく、実務で最も選ばれます。ただし著作権表示・ライセンス文の保持は必須(MITでも省略はNG)です。
コピーレフト(copyleft)の主なライセンス
コピーレフトは「強さ」に段階があります。強いほど、あなたのコードにも公開義務が及びやすくなります。
| ライセンス | 強さ | 公開義務のイメージ |
|---|---|---|
| GPL | 強い | GPLコードを組み込んで配布するなら、全体をGPLで公開(いわゆる伝播) |
| LGPL | 弱め | 主にライブラリ向け。リンクして使う分には自分のアプリを公開しなくてよい(ライブラリ本体の改変は公開) |
| MPL 2.0 | 弱め(ファイル単位) | MPLのファイルはMPLのまま公開すればよく、他のファイルは非公開でもOK |
| AGPL | 最強 | GPLに加え、ネットワーク越しに使わせる(SaaS)だけでもソース公開の対象 |
ポイントは、GPLは「配布したら伝播する(自分のコードもGPLに)」、LGPL・MPLはその伝播を弱めたもの、という関係です。ライブラリとして少し使うだけならLGPL/MPLは扱いやすく、GPL/AGPLは影響範囲が大きくなります。
AGPLとSaaSの落とし穴
見落とされがちなのが AGPL です。通常のGPLは「ソフトを配布したとき」に公開義務が生じますが、SaaSのように手元では配布せず、ネットワーク経由で使わせる形だと、GPLでは公開義務を回避できてしまいます(いわゆるSaaSの抜け穴)。
AGPLはこの穴を塞ぎ、ネットワーク越しに利用させる場合もソース提供の対象とします。そのため、自社SaaSにAGPLのライブラリを組み込むと、自社コードの公開を求められることがあります。企業がAGPL依存を慎重に扱うのはこのためです。
Apacheの特許条項という強み
Apache 2.0がMITと並んで企業に好まれる理由が特許条項です。コントリビューターがそのコードに関する特許ライセンスを利用者に付与し、逆に利用者が特許で訴えると保護が失われる仕組みが組み込まれています。特許リスクへの備えが要る場面では、MITより一段安心という評価につながります。
実務での考え方
使う側(多くの人)
まずは寛容型(MIT/Apache/BSD)が安全。それでも著作権表示は必ず保持する。GPL/AGPLの依存は「自分のコードに公開義務が及ばないか」を確認。
依存の棚卸し
製品に入るOSSのライセンス一覧を把握しておく。GPL/AGPLが紛れていないか、ツールでチェックするのが安全。
重要案件は専門家へ
ライセンスは法的な問題。ビジネスの根幹に関わる採用は、この記事の理解を土台に法務・専門家に確認する。
OSSライセンスの種類に関するよくある質問
MITライセンスのOSSは商用利用できますか?
できます。MITは寛容型で、改変も商用利用も、非公開の製品への組み込みも自由です。義務は著作権表示とライセンス文を残すことくらいで、自分のコードを公開する必要はありません。
GPLのライブラリを使うと自社コードも公開しないといけませんか?
配布する場合は、その可能性があります。GPLは「GPLコードを組み込んだものを配布するなら、全体を同じGPLで公開する」という伝播(コピーレフト)が働くためです。自社コードを非公開にしたいなら、GPL依存は慎重に扱い、寛容型やLGPL/MPLの代替を検討します。
寛容型とコピーレフトの一番の違いは何ですか?
「自分のコードを公開する義務があるか」です。寛容型(MIT等)は公開義務がなく自由、コピーレフト(GPL等)は改変版を配布するなら同じ条件で公開する義務があります。ここが実務での分かれ目になります。
AGPLは何が特別なのですか?
ネットワーク越しの利用(SaaS)もソース公開の対象にする点です。通常のGPLは配布時のみ公開義務が生じますが、AGPLはSaaSの抜け穴を塞ぎます。自社サービスに組み込むと公開義務につながりうるため、企業は特に注意します。
Apache 2.0とMITはどちらを選べばいいですか?
どちらも寛容型で自由度は高いですが、特許リスクへの備えが要るならApache 2.0(特許条項がある)、とにかく短くシンプルにしたいならMITが目安です。企業のプロダクトではApache 2.0が好まれる傾向があります。
まとめ
OSSライセンスは、寛容型(permissive)とコピーレフト(copyleft)の2系統で捉えると整理できます。寛容型(MIT・Apache 2.0・BSD)は改変も商用も自由で、自分のコードの公開義務がないため実務で最も選ばれます(ただし著作権表示は必須)。コピーレフト(GPL・LGPL・MPL・AGPL)は改変版の配布時に同じ条件での公開を求め、強さに段階があります。特にAGPLはSaaSも公開対象、Apache 2.0は特許条項が要注意ポイント。使う側はまず寛容型が安全で、GPL/AGPL依存は公開義務の有無を確認し、重要な案件は専門家に相談するのが確実です。