今さら聞けないオープンソースソフトウェア(OSS)ライセンス ~最低限の知識まとめ

  • 2016年10月27日
  • by 
今さら聞けないオープンソースソフトウェア(OSS)ライセンス ~最低限の知識まとめ

こんにちは。設樂です。

昨今の開発現場では、オープンソースのソフトウェアを組み込んだ開発がよく行われていますね。
イチからプログラムを作らずとも様々な機能を実現できるという点では、ソースが公開され、かつ、無料で使えるオープンソースソフトウェア(ライブラリ)は、使えるととても便利で作業が捗ること間違いありません。

しかし、“オープン”というだけあって、ソースが無償公開されているとはいえ、利用する上での制約は存在します。これらを無視して商用利用した挙句、リリース後にトラブルになってはダメですよね。
そこで今回は、OSSライセンスと制約について、最低限の把握すべき内容についてまとめました。

(※私自身はOSSの専門家ではなく、OSS素人のイチ開発者です。私の見解による記事ですので、あらかじめご了承ください)

OSSライセンスにはどんなものがあるか

世の中にはOSS定義(Open Source Software Definition)に従った、数千ものOSSライセンスが存在します。

「こんなにたくさんあったら覚えられない」と思うかもしれませんが、大丈夫です。
大まかに3種類に分類できるようです。

●GPL (GNU General Public License) 系
●BSD (Berkeley Software Distribution) 系
●MPL (Mozilla Public License) 系

オープンソースとしての制限はGPL系がもっとも厳しく、BSD系が緩い。
MPL系はその中間に位置する、とだけまずは覚えておきましょう。

そもそもの話ですがオープンソースソフトウェアライセンスは、ソフトウェアを再配布することを前提として作成されたライセンスです。
なぜかというと、オープンソースソフトウェアは「オープンソースの定義」に従ったソフトウェアのことであり、この定義には「再配布の自由」が謳われているからです。

では、数あるライセンスごとの「共通点」と「相違点」は、どのようなものなのでしょうか。

<共通点>
●著作権を表示すること

<相違点>
●再配布するソフトウェアのソースコードの公開を必要とする否か
●必要とする場合、公開範囲をどこまでとするか

著作権表示こそ、ライセンス全般において絶対に厳守すべきルールですが、再配布する範囲についての決まりはライセンスごとに異なるんですね。

それぞれのライセンスの特徴

それでは上記に挙げた三種類のライセンスについて、抜粋にはなりますが、その特色をご案内いたします。

●GPL (GNU General Public License) 系
<採用されている主なソフトウェア例>
Linux 等
<主要ルール>
・著作権表示を保持しなければならない
・無保証である
・誰でも自由に複製・改変・頒布することが許可されている
・GPLライセンスのソフトウェアやプログラムを使用した場合、その制作物もGPLライセンスで配布しなければならない

GPL系はソースコードの公開を原則とし、使用者に対してソースコードを含めた再配布や改変の自由を認めています。ただし、GPLライセンスのオープンソースを使って、MITライセンスやBSDライセンスにすることはできません。
つまり、オープンソースが継承されるライセンスということなんですね。

●BSD (Berkeley Software Distribution) 系
<採用されている主なソフトウェア例>
Aphche、PHP、Python 等
<主要ルール>
・再配布時には著作権表示を残す ※ソースのヘッドに著作権表示していればOK
・無保証である

無保証を宣言し、再配布する際に著作権表示を行うことのみを条件とする、極めて制限の緩いライセンスです。つまり、著作権表示さえしておけば、以下のような使い方ができるわけです。
・BSDライセンスのコードを他のプログラムに組み込める
・組み込み後のコードを非公開にできる
・再配布時のライセンス条件を制限することもない

●MPL (Mozilla Public License) 系
<採用されている主なソフトウェア例>
Firefox 等
<主要ルール>
・再配布時には著作権表示を残す
・無保証である」

基本的にはBSD系と同じです。
ただし、ソースコードを変更して使用した場合は、その部分はMPLライセンスで公開する必要があるので、その点は注意を払う必要があります。

気兼ねなくオープンソースを使いこなすために

いかがでしたでしょうか。
普段何気に使っているツールも、実はオープンソースかもしれません。
開発完了後に実は「公開できない」なんてことにならないよう、今使っているツールが何であるのかを今一度把握してみましょう。
そしてこの記事がキッカケで、オープンソースソフトウェアをより自由に使いこなせる助けになればと思います。

最後に今回の記事を執筆するにあたって、参考とさせていただいたサイトを下記にご紹介いたしますので、併せてご一読いただければと思います。

<参考>
オープンソースの定義(Open Source Definition)
https://opensource.org/osd
http://www.opensource.jp/osd/osd-japanese.html

各ライセンスの違いについて詳しくまとめたページ
http://smkn.xsrv.jp/blog/2009/03/summary_for_gpl_mit_cc_etc/
http://www.greenwich.co.jp/blog-archives/p/899

GPL (GNU General Public License) 系についてのウィキペディア
https://ja.wikipedia.org/wiki/GNU_General_Public_License

LGPL (GNU Lesser General Public License) 系についてのウィキペディア
https://ja.wikipedia.org/wiki/GNU_Lesser_General_Public_License

MPL (Mozilla Public License) 系についてのウィキペディア
https://ja.wikipedia.org/wiki/Mozilla_Public_License

BSD (Berkeley Software Distribution) 系についてのウィキペディア
https://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9

コメント