In this article
オープンソースライセンス:種類と比較
ソフトウェアを購入する人の多くは、経験の浅い開発者も含め、「オープンソース」とはソフトウェアを自由に利用、コピー、変更、配布できることだと誤解しています。この誤解は、オープンソースをパブリックドメインやシェアウェアと混同することで生じるのかもしれません。どちらも、特別な許可やライセンスがなくても無料で利用・変更できます。
実際には、ほとんどのオープンソースソフトウェアは複数あるオープンソースライセンスのいずれかで保護されており、必ずしも無料とは限りません。
ベンダーが通常、ソースコードへのアクセスやコピー、変更を不可能にしているプロプライエタリソフトウェアとは異なり、オープンソースコードでは、コードを他のプログラムやアプリケーションで利用、再利用、共有、変更、配布できます。ただし、プロプライエタリソフトウェアライセンスと同様に、オープンソースソフトウェアにも、適用されるオープンソースライセンスの種類に応じたさまざまな法的条件や制限があります。そのため、プロジェクトで使用するオープンソースソフトウェアのライセンス条件を遵守することが重要です。また、オープンソースソフトウェアの利用に伴うその他のリスクについても把握しておきましょう。
この記事では、オープンソースライセンスの種類と、オープンソースコードの誤用や無断利用を防ぎ、ソフトウェアの作者と利用者の双方を保護するための仕組みを解説します。
オープンソースライセンスとは?
オープンソースソフトウェアライセンスは、開発者以外の人がソフトウェアコードをどのように利用、変更、配布できるかを定めています。ほかの利用者に対し、コードを新しいアプリケーションに利用・転用したり、別のプロジェクトに組み込んだりする権利を与えます。
オープンソースコードの主な利点の一つは、コードを確認できることです。問題のトラブルシューティングが容易になるほか、ドキュメントが不足していたり、誤っていたりする場合でも、仕組みをより深く理解できます。
オープンソースライセンスの種類によっては、ニーズに合わせたり、見つかった問題を修正したりするために、元のソースコードを変更できる場合もあります。変更の可否や条件はライセンスによって定められています。たとえば、変更内容を公開する必要がある場合があります。
Snykでオープンソースセキュリティについて詳しく知る
「2023年オープンソースセキュリティの現状」レポートをご覧いただくか、オープンソースの脆弱性トップ10についてお読みください
オープンソースライセンスにはどのような種類がある?
オープンソースライセンスには80種類以上のバリエーションがありますが、大きくはコピーレフト型と許諾型の2つに分類されます。
コピーレフトライセンスとは、元のオープンソースコードをもとにしたコードにも、そのライセンス条件が引き継がれるライセンスです。
許諾型ライセンスとは、再利用、変更、配布の自由度がより高いライセンスです。

コピーレフトライセンス
制限の強い順に並べると、代表的なコピーレフト型オープンソースライセンスは、AGPL、GPL、LGPL、EPL、Mozilla Public Licenseです。
GNU General Public License(GPL)は、ライセンス表示と著作権表示を維持することを求め、商用、特許、個人利用に適しています。GPLコードを使用するソフトウェアは、すべてのソースコードを同じライセンスで配布する必要があります。つまり、GPLライブラリの使用など、ソフトウェアにGPLコードを使用してアプリケーションを配布する場合、すべてのソースコードを同じGPLライセンスのもとで公開しなければなりません。この制約により、GPLは強いコピーレフト性を持つライセンスとなっています。
Affero GPL(AGPL)は条項を一つ追加したものですが、一部のソフトウェアにとって重要な条項です。GPLライセンスはソフトウェアが配布された場合にのみ適用されるため、ネットワーク経由で提供されるだけで、明示的に「配布」されないソフトウェアには抜け穴がありました。AGPLは、ネットワーク経由のリモート操作に関する条項を追加し、ネットワーク経由で使用されるソフトウェアにもGPLライセンスが適用されるようにして、この抜け穴を塞いでいます。
Lesser General Public License(LGPL)は、著作権表示とライセンス表示の維持など、AGPLやGPLと同じレベルの条件を定めるコピーレフト型オープンソースライセンスです。主な違いは、より大きなライセンス対象の著作物から利用される小規模なプロジェクトやオブジェクトについて、大規模なプロジェクト全体を配布する必要がない点です。また、変更したソースコードを、大規模なコードプロジェクトに適用されるものと同じ条件で配布する必要もありません。
Eclipse Public License(EPL)は、ビジネスソフトウェアでよく利用されます。EPLでは、EPL、非EPL、さらにはプロプライエタリコードを使って開発されたソフトウェアを組み合わせて、サブライセンスを付与できます。ただし、非EPLの要素は、独立した別個のモジュールまたはオブジェクトとして存在する必要があります。EPLライセンスのもとで変更を加えることもできますが、その変更は同じ条件で公開しなければなりません。
Mozilla Public License(MPL)は、コピーレフト型オープンソースソフトウェアライセンスの中で最も制限が緩やかです。MPLでライセンスされたコードを別ファイルに分け、ソフトウェアとともに配布すれば、クローズドソースやプロプライエタリソフトウェアでも、コードの変更や利用が容易にできます。また、MPLには特許ライセンスの付与が含まれ、著作権表示の保持も義務付けられています。
許諾型ライセンス
代表的な許諾型オープンソースライセンスには、Apache、MIT、BSD、Unlicenseがあります。
Apache Licenseでは、配布するコードへのライセンス表示と著作権表示、またはソフトウェア内での通知が必要です。ただし、派生物、大規模なプロジェクト、変更版は、配布時に異なるライセンス条件を適用でき、ソースコードの提供も求められません。Apache Licenseには特許ライセンスの付与が含まれます。
有名な大学の名前に由来するMIT Licenseは、世界で最も広く使われているオープンソースライセンスの一つです。おそらく、短く明快で理解しやすいことが理由でしょう。配布するソースコードまたはソフトウェアに元の著作権表示とライセンス表示を含めれば、元のコードを誰でも自由に利用できます。作者の責任を免除する一方で、特許ライセンスの付与は明示されていません。
Berkeley Source Distribution(BSD)ライセンスも許諾型のオープンソースライセンスです。ライセンス表示と著作権表示を維持しつつ、大規模な著作物やライセンス対象の著作物を、ソースコードを含めず、異なるライセンス条件で配布できます。2条項のBSD LicenseはMITオープンソースライセンスとよく似ていますが、3条項版と4条項版には、再利用などに関する追加要件や制限があります。
Unlicense:名前のとおり、オープンソースライセンスの中で最も制限が緩やかです。オープンソースをパブリックドメインとして公開するのと同等の扱いになります。条件がないため、こうしたライセンスのない著作物は、ソースコードを含めず、異なる条件で配布できます。
最適なオープンソースライセンスは?
オープンソースライセンスの種類の選択は、ソフトウェアの利用に関するライセンサーや開発者の意図に大きく左右されます。ライセンスを比較する際は、次の点を考慮しましょう。
コピーレフトライセンスを選ぶ際には注意が必要です。元のライセンスの制限が非常に緩い場合、変更後のコードにも同様に緩い制限しか課されず、作者にとって望ましくない可能性があります。
一方で、コピーレフトライセンスは一般に、許諾型ライセンスより制限が多く、責任が軽減される可能性もあります。
コードをできるだけ再利用・共有しやすくすることが目的なら、ある程度制約の緩いライセンスが適しているでしょう。
ネットワーク経由で利用されるソフトウェアを開発する場合は、AGPLを選ぶと大きなメリットがあります。オープンソースデータベースはその一例です。AGPLでライセンスしなければ、大手クラウドプロバイダーなどの企業が製品を改良して収益化しても、その変更を配布する義務はありません。
GPLライセンスには、GPLv2とGPLv3の2つの主なバージョンがあります。GPLv3には多くの変更があり、その大半は特許など、GPLv2では扱われていなかった問題に対応するものです。GPLv3では、Apache License v2など、他のオープンソースライセンスとの互換性も改善されています。ただし、GPLの2つのバージョンには互換性がない点に注意してください。
MITライセンスは非常によく使われているため、広く認知され、一般に理解されているという利点があります。MITライセンスのソフトウェアには、再配布や収益化に関する制限がないため、幅広い用途に適しています。また、多くのオープンソースライセンスと互換性があり、MITライセンスのコードを、異なるライセンスを採用する別のオープンソースプロジェクトで使用できます。
オープンソースライセンスの管理
多くの開発者、企業、商用ソフトウェア会社は、複数の種類のオープンソースライセンスを組み合わせて利用しています。ソフトウェアの開発、購入、配布が進むにつれて、ライセンスの管理はますます複雑になります。
元のソフトウェアライセンスに基づく派生ライセンスの管理
発効日と更新要件の把握
Snykは、包括的なライセンスコンプライアンスソリューションを提供します。プロジェクトで使用するオープンソースソフトウェアのライセンスを遵守しながら、開発のスピードを維持できます。
「Snykのツールはオープンソースライセンスの問題を特定してくれるため、開発者は簡潔で管理しやすいレポートを作成して法務チームに送ることができます。開発者の作業時間を何日も削減できています。」