検索
連載

OSSを使うなら「知らなかった」では済まされない、オープンソースライセンスの話いまさら聞けないOSSの基礎知識(2)

Open Source Initiativeの定義に適合しているオープンソースライセンスは約100種類あります。代表的なオープンソースライセンスや、その特徴を紹介します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

オープンソースライセンスはどれくらいある? 何を選べばいい?

 本連載の第1回では、意外と知らないかもしれないオープンソースソフトウェア(OSS)の基礎知識として、オープンソースの理念や、OSSを利用するメリット/デメリットを説明しました。第2回は、OSSを活用する上で知らなかったでは済まされない「オープンソースライセンス」を紹介したいと思います。

 OSI(Open Source Initiative)の定義に適合しているライセンスは約100種類あります。これらのライセンスは、第1回で紹介した「コピーレフト」という手法の中身を基準にすることで3種類に分類できます。最もコピーレフトの性質が強い「コピーレフト型」、コピーレフトの性質が弱い「準コピーレフト型」、コピーレフトの性質がない「非コピーレフト型」です。それぞれ見ていきましょう。

コピーレフト型ライセンスとは

 コピーレフト型ライセンスは、ライセンシー(利用者)およびライセンシーの派生物に同一ライセンスの適用を要求します。

 例えば、コピーレフト型ライセンスで公開されているAというOSSを利用して誰かがBというソフトウェアを開発・公開した場合、Bに同一ライセンスの適用が要求されます。Bを使って誰かが別のソフトウェアを開発、公開すれば、そのソフトウェアにもA、Bと同様に同一ライセンスの適用が要求されるというわけです。これを「ライセンスが伝搬する」といいます。

伝搬性とは

 「伝搬性」とは、あるOSSと一体化したソフトウェア全体(OSSの派生物)に対して、ソースコードの公開など、そのOSSのライセンス(許諾条件)が適用されることです。OSSを改変した場合はもちろん、コード実行時にOSSにリンクするような場合もOSSの派生物と見なされます。


 コピーレフト型の代表的なライセンスとして「GPL」が知られています。

  • 「GNU GPL(GNU General Public License)」
  • 「GNU AGPL(GNU Affero General Public License)」
  • 「EUPL(European Union Public License)」

準コピーレフト型ライセンス

 準コピーレフト型のライセンスも、ライセンシーに同一ライセンスの適用を要求します。しかし、ライセンシーが配布するソフトウェアの派生物に対しては、同一ライセンスの適用を要求しません。

 準コピーレフト型の代表的なライセンスは以下の通りです。

  • 「GNU LGPL(GNU Lesser General Public License)」
  • 「MPL(Mozilla Public License)」
  • 「EPL(Eclipse Public License)」
  • 「CPL(Common Public License)」
  • 「IBM Public License」
  • 「Artistic License(Perl License)」

非コピーレフト型

 非コピーレフト型ライセンスは、ライセンシーにもライセンシーの派生物にも同じライセンスの適用を要求しません。従って、非コピーレフト型のOSSを活用する場合は、OSSをカスタマイズして自社商品化することもできるでしょう。

 非コピーレフト型の代表的なライセンスは以下の通りです。

  • 「BSD License」
  • 「FreeBSD Copyright」
  • 「MIT License」
  • 「X11 License」
  • 「ZPL(Zope Public License)」
  • 「Apache License」

ライセンスごとの特徴

GPLおよびLGPL(最新版はv3)

 「GPL(GNU General Public License)」は、Free Software Foundationが作成したコピーレフト型ライセンスです。GPLが適用されたOSS(GPLプログラム)を改変して、このプログラムに基づく著作物(派生著作物)を作成して配布する場合、その全体についてGPLの条件を順守する義務があります。この条件により、GPLプログラムと他のプログラムをリンクや結合した場合、他のプログラムにもGPLの条件を適用する必要があります。

 「LGPL(GNU Lesser General Public License)」は、GPLの条件を少し弱めたライセンスです。LGPLが適用されたOSS(LGPLプログラム)と他のプログラムをリンクした場合、リンクした他のプログラムにLGPLを適用する必要はありませんが、リバースエンジニアリングを許諾する(禁止しない)義務があります。

 GPLの最新バージョンはGPLv3ですが、GPLv2のOSSも多数存在しています。これは、GPLv3で追加された、OSSで実施された特許権について、当該OSSの開発者が保有する特許権を許諾する条件や、ユーザー製品にOSSを利用する場合は修正したOSSを再インストールできるように、「インストール用情報」を提供する義務などが追加されたことによるものです。これらの新しい条件を付加したくないプロジェクトは、GPLv2のままにできます。LGPLv3は、GPLv3に追加的許諾条項を加えたライセンスです。

 なお、GPLやLGPLは、OSSを配布した際に条件が課されるため、誰にも配布しない場合は、ソースコードの提供などの義務は生じません。これをカバーするために「AfferoGPLv3」が作成されました。

 AfferoGPLv3は、クラウドサービスなどのサーバでAfferoGPLv3を適用したOSSを利用した場合、(OSSのバイナリを配布しない場合でも)サーバにアクセスするクライアントにソースコードを提供する条件が追加されています。

CPLv1.0

 IBMが作成したライセンスです。CPLが適用されたOSS(CPLプログラム)を配布する場合は、ソースコードも提供する義務があります。CPLプログラムのコントリビュータに対する特許訴訟(訴訟対象はOSSに限定されていない)を制限する条件があります。

EPLv1.0

 Eclipse FoundationがCPLv1.0を基に作成したライセンスで、CPLv1.0にある特許訴訟の制限が削除されています。

MPL(最新版はv2.0)

 Mozilla Foundationが作成したライセンスです。もともとはNetscape Communicationsの弁護士が作成したものです。MPLが適用されたOSS(MPLプログラム)のソースコードを配布する場合は、ソースコードも提供する義務があります。最新のバージョンはMPLv2.0ですが、MPLv1.1のOSSも多数存在しています。

 MPLv2.0で追加された条件は、GPL関連のOSSと組み合わせて配布する場合、「Secondary License」(GPLv2.0/LGPLv2.1/AfferoGPLv3.0、と以降のバージョンを含む)を適用することを許諾するか否かを定めることができるようになりました。

Apache License(最新版はv2.0)

 Apache Software Foundationが作成したライセンスです。最新バージョンはApache License v2.0ですが、Apache Software License v1.1も多数存在しています。Apache Software License v1.1は、ドキュメントへの謝辞を記載する義務があります。Apache License v2.0 では、謝辞の記載義務は削除され、開発者による著作権や特許権の許諾が明確になりました。

BSD License

 カリフォルニア大学バークレー校で作成されたライセンスです。制限は緩く、著作権表示と許諾リスト、免責条項を記載する義務があります。「OLD BSD License」(4-Clause)には、宣伝媒体に所定の謝辞を記載する条件がありましたが、「NEW BSD License」(3-Clause)では削除されました。2-Clauseの「BSD License」もあり、3-Clauseから開発者名などの利用許諾に関する条件を削除し、ソースコードとバイナリの配布条件を記載しています。

MIT License

 マサチューセッツ工科大学で作成されたライセンスです。制限は緩く、著作権表示と許諾表示を記載する義務があります。BSD License(2-Clause)と利用条件は類似していますが、MIT Licenseでは、サブライセンスの許諾など、著作権者が許諾する内容が細かく記載されています。

CC ライセンス(最新版はv4.0)

 クリエイティブ・コモンズで作成されたライセンスです。条文とは別に、条件をマークで示すことで利用者に分かりやすく伝えようとする特徴があります。マークにはクレジットの表示義務、営利目的での利用禁止、改変禁止、ライセンス継承義務の4種類があり、これらの組み合わせにより条件を示しています。

 なお、CC ライセンスは、OSI承認のライセンスに含まれていません。

ライセンスの両立性について

 英語では「License compatibility」といいますが、これを「互換性」と日本語で表記すると誤解を招く恐れがあるため、ここでは「両立性」と表現します。

 両立性とは、あるOSSのライセンス条件が他のOSSのライセンス条件と矛盾がないことをいいます。例えば、先述したOLD BSD LicenseとGPLv2です。OLD BSD Licenseには、宣伝媒体に所定の謝辞を記載する条件があります。この条件が、GPLv2にある「GPLv2以上の条件を求めてはいけない」に反することになるため、この2つのライセンスは、共存できません。このような状態を「両立性がない」といいます。

 複数のOSSやソフトウェアを結合して製品を開発する場合、上記のような「両立性」が問題になることがあります。Free Software Foundationのサイトには、GNUのさまざまなライセンスの両立性についてユースケースを紹介しているので、ご覧いただければと思います。この「両立性」もOSSを活用する上で、配慮すべき項目であることがお分かりいただけると思います。

まとめ

 オープンソースライセンスの中でも代表的なライセンスについて紹介しました。時代とともにライセンスの使われ方は変化してきています。特に、パブリッククラウドの活用が進んだ現在、ライセンスに対する従来の考え方が通用しなくなってきています。記憶に新しいところでは、RedisやMongoDBなどのOSSの開発元が、クラウドベンダーに対して商用サービスでの利用を制限するためにライセンスを変更したことが話題になりました。

 こうした事例からも分かるように、ライセンスは企業のビジネスの延長線上にあります。OSS活用に当たっては、なぜそのライセンスを利用しているのか背景を確認したり、自社で開発したソフトウェアをOSSとして公開する際は、どのようなビジネス像を描いているのか考えたりしてライセンスを選択する必要があるでしょう。

OSSライセンスの種類と条件の比較表《クリックで拡大》
OSSライセンスの種類と条件の比較表《クリックで拡大》

筆者紹介

吉田行男

2000年ごろからメーカー系SIerにて、Linux/OSSのビジネス推進、技術検証、OSS全般の活用を目指したビジネスの立ち上げに従事。社内外でOSS活用に関する講演、執筆活動を行ってきた。2019年から独立し、さまざまな会社や団体の顧問として活動。OSSの活用やコンプライアンス管理などを支援している。


特集:AI、クラウドネイティブ時代の必須知識、「オープンソース活用」のマナーとリスク

SaaSやWebサービスを通じて利用者に価値を提供する中で、もはや必要不可欠となっているOSS(オープンソースソフトウェア)。近年はクラウド事業者が提供するAI(人工知能)やデータ分析系サービスと、OSSを組み合わせた活用事例も出ているなど、実ビジネスを支える存在となっている。実ビジネスである以上、安全・信頼を保証することが前提条件だが、果たしてOSSを本当に安全に使いこなせているだろうか。社会的信頼失墜のリスクをしっかりと認識した上で扱えているだろうか。本特集では、企業や開発者がOSSを活用するに当たってどのようなリスクとチャンスがあるのか、AI、クラウドネイティブ時代のオープンソースのマナーとリスクを徹底解説する。



Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る