オープンソースソフトウェア開発で押さえておきたいライセンスについて

2023年8月21日

目次

オープンソースソフトウェアのライセンスとは

オープンソースソフトウェア(OSS)とは、ソースコードが公開されており無償で使用できるソフトウェアのことです。
無償ではありますが、オープンソースソフトウェアはすべて自由に使えるとは限りません。

オープンソースソフトウェアの複製、配布、改良がどの程度できるかどうかは、適用されているライセンスによって異なります。指定されているライセンスの範囲内で正しく使わなければ、ライセンス違反となってしまいます。そのため、オープンソースソフトウェアを使うためには、正しいライセンスの知識が必須です。

オープンソースソフトウェアのライセンスの3つの種類

オープンソースソフトウェアのライセンスは「コピーレフト(Copyleft)」という概念にどの程度適用しているのかによって、「コピーレフト型」「準コピーレフト型」「非コピーレフト型」3つに分類されます。

コピーレフトとは、GNUプロジェクトによると「プログラム(もしくはその他の著作物)を自由(自由の意味において。「無償」ではなく)とし、加えてそのプログラムの改変ないし拡張されたバージョンもすべて自由であることを要求するための、一般的な手法の一つ」と定義されています。

別の見方では、著作者がソフトウェアの利用者に対して、複製、配布、改良の自由を与えるという考え方を指します。さらに複製、配布、改良された派生物に対しても、同じ条件を与えることを義務としています。

3つの分類を表にすると、次のようになります。

型名複製・再配布改変改変部分のソースコード開示組み合わせた時のソースコードの開示
コピーレフト型
準コピーレフト型×
非コピーレフト型××

これら3つについて詳しく見ていきましょう。

コピーレフト型

コピーレフト型とは、ライセンステキストの添付が必須で、改変や他のソフトウェアと組み合わせた時にもソースコードの開示が必要なライセンスのことです。
具体的には、GPL(GNU General Public License)やAGPL(GNU Affero General Public License)などのライセンスが該当します。

GPLとは?

GPLとは、FSF(Free Software Foundation)が公開しているGNUプロジェクトで開発されたソフトウェアのためのライセンスです。ソースコードの公開を原則として使用、改変、再配布が可能となっています。OSのLinuxやCMSとして世界最大のシェアを持つWordPressなどがGPLで提供されています。

AGPL

AGPLとは、GPLがベースとなっているライセンスです。GPLではWebサーバーなどクラウド上でソフトウェアを動作させるだけなら、利用者にソースコードの公開義務はありませんが、AGPLではクラウド上で動作しているソフトウェアであっても、利用者に対してソースコードを公開することを義務としています。クラウドにあるソフトウェアの利用を「配布」と見なすことでソースコードの公開を要請するイメージです。X(旧Twitter)の類似サービスであるMastodonなどがAGPLで提供されています。

準コピーレフト型

準コピーレフト型とは、ライセンステキストの添付が必須で、改変したソースコードの開示が必要なライセンスのことです。コピーレフト型とは異なり、他のソフトウェアと組み合わせた場合ではソースコードの開示は不要です。ただし、リバースエンジニアリングを禁止することはできません。具体的には、MPL (Mozilla Public License)やLGPL(GNU Lesser General Public License)などのライセンスが該当します。

MPLとは?

MPLとは、Mozilla Foundationが公開しているライセンスであり、GPLよりライセンスの適用を緩やかにしたものです。オープンソース由来の部分はソースコードを開示し、それ以外の部分のソースコードの開示を不要としています。ブラウザのFirefoxやメールクライアントのThunderbirdなどがMPLで公開されています。

LGPLとは?

LGPLとは、GPLの条件を緩和したライセンスであり、ライブラリのように外部からリンクされたプログラムに対して、動的リンクとして呼び出すのであれば、ソースコードの提供を不要とします。クロスプラットフォームアプリケーション開発フレームのQt(キュート)などがLGPLで公開されています。

非コピーレフト型

非コピーレフト型とは、ライセンステキストの添付は必須だが、ソースコードを改変しても開示する必要がないライセンスのことです。具体的には、MITライセンス(Massachusetts Institute of Technology License)やBSDライセンス(Berkeley Software Distribution License)、Apacheライセンスなどのライセンスが該当します。

MITライセンスとは

MITライセンスとは、マサチューセッツ工科大学で考案されたライセンスです。再配布時に著作権とライセンス表示を含めれば、開発者はいかなる責任も負わず、ソースコードを非公開としながら販売・配布が可能とされています。JavaScriptのライブラリとして有名なjQueryなどがMITライセンスで公開されています。

BSDライセンスとは

BSDライセンスとは、カリフォルニア大学バークレー校で誕生したライセンスです。MITライセンスと同様に、ライセンス表記を明記すれば非営利、商用のどちらでも使用、改変、再配布が可能です。

UNIX系OSの関連ソフトウェア群のBSDや、Mozilla Firefoxの拡張機能の一つであるFirebugなどがBSDライセンスで公開されています。

Apacheライセンス

Apacheライセンスとは、Apache Software Foundationが考案したライセンスです。MITライセンスやBSDライセンスと同様に、プログラムの改変や自分のプログラムに組み込んだ派生物について、ソースコードを非公開のまま販売や配布が可能です。WebサーバーのApache HTTP ServerなどがApacheライセンスで公開されています。

ここまで紹介した非コピーレフト型のMITライセンスやApacheライセンスは、BSDライセンスの影響を受けていることから、合わせて「BSDスタイル」と呼ばれることもあります。

ライセンス違反はトラブルの元

ソフトウェアには様々なライセンスがあることを解説してきました。もしソフトウェアの提供元が指定したライセンスに従ってソフトウェアを使わないと、ライセンス違反になってしまいます。

たとえば以下のような使用方法はソフトウェアのライセンス違反と見なされる可能性があります。

ライセンス違反の例
  • 著作権表示を削除してしまう
  • 複数のソフトウェアを組み合わせてWebサイトを制作してライセンスの互換性がなくなってしまう
  • 派生物のソースコードを非表示にしてしまう

このようなライセンス違反を発生させないためには、ソフトウェアのライセンスをしっかりと確認しておかなければなりません。もしライセンス違反と見なされてしまうと、ソフトウェアの使用が差し止められたり、訴訟に発展したりする可能性もあります。社会的な信用も失われてしまうでしょう。

特にWebサイト制作にはオープンソースソフトウェアの利用は欠かせないものとなっています。ライセンスはソフトウェア開発者の権利と名誉を守るために生まれたものです。「違法だから」とか「モラルに反する」などの理由に加えて、ソフトウェア開発者へのリスペクトを表現する意味でも、ソフトウェアのライセンスは厳守しなければなりません。

ライセンス違反を防ぐ方法

オープンソースソフトウェアには様々なライセンスがありますが、これらのライセンスの違反を防ぎ適切に活用するにはどうすればよいのでしょうか。具体的な方法を解説します。

ライセンスの正しい知識を持つ

オープンソースを含めて、ソフトウェアには様々なライセンスがあります。ライセンスの正しい知識を持ち、正しく運用することがライセンス違反を防ぐ第一歩となります。

たとえば著作権の表示やソースコードを開示することは、オープンソースソフトウェアを使ったソフトウェアを公開する時に必須の条件とされています。ソースコードを開示しないでソフトウェアを公開したことで、訴訟に発展した例も実際にあります。

オープンソースソフトウェアを「無償で自由に使えるソフトウェア」と捉えてしまっていると、このようなトラブルに発展してしまいがちです。正しいライセンスの知識を持ち、適切に使用しなければならないのです。

ライセンスを適切に管理する

ライセンス違反を防ぐためには、使用しているオープンソースソフトウェアの適切なライセンス管理も重要です。しかしライセンスの把握には思いのほか手間がかかります。

インターネット上には「FOSSology」や「LicenseFinder」のようにオープンソースソフトウェアのライセンス管理に特化したツールが公開されています。こういったツールを使いライセンス管理を効率化するのも一つの方法でしょう。

参考

  • https://www.tohoho-web.com/ex/license.html(2023年8月16日確認)
  • https://www.intercom.co.jp/malion/column/license-violation/(2023年8月16日確認)
  • https://x-tech.pasona.co.jp/media/detail.html?p=2423(2023年8月16日確認)
  • https://www.sbbit.jp/article/cont1/34811(2023年8月16日確認)
  • https://ics.media/entry/201216/(2023年8月16日確認)
  • https://thinkit.co.jp/story/2014/02/03/4804?mini=2015-10&page=0%2C2(2023年8月16日確認)
  • https://www.ogis-ri.co.jp/otc/hiroba/technical/oss-license-violations/(2023年8月16日確認)