開発では3つのOSSライセンス分類で対応を判断する

OSS管理

Linuxが商用的に活用される機会が増えるとともに、組込みソフトウェア開発やシステム開発の現場においてもオープンソースソフトウェア(OSS)を活用することが増えてきています。OSSを活用することによって納期短縮やコスト削減が図れる半面、そのライセンスに縛られることになります。

しかもOSSはそれぞれが独自のライセンスを持っていますので、OSSだからといって一括りにして扱えるものではありません。利用参照しているOSSはもれなく把握して、それらのライセンスに基づいて対応が必要となりますので、OSSの取り扱いには注意が必要です。

OSSライセンスを遵守する

OSSを利用するのであれば、ソースコードを開示したり、コピーライトやライセンス文表示を行ったりとライセンス条項を満たす義務が発生します。企業としてこの義務を守らないのであれば、コンプライアンス違反となります。

ライセンスを把握することなく、ほんのわずかにOSSを採用したがために、自社技術がソースコードとともに流出するといった事態が発生してしまうかもしれません。

コピーレフトとは

Copyright は著作権ですが、copyleft(コピーレフト)とは、著作者が著作権を保有したまま、著作物の配布条件として、利用者に著作物を複写・改変・再配布する自由を与える一方、二次的著作物の配布者に対しても、全く同じ条件で派生物を配布することを義務付けるものです。

このコピーレフトの概念をライセンスに採用しているソフトウェアを少しでも自社開発のソフトウェアに組み込めば、その成果物に対して、複写・改変・再配布する自由を与えなくてはいけなくなります。

3つのOSSライセンス分類

このコピーレフトの概念を採用しているのか、一部を導入しているのか、全く採用していないかで、数多くあるOSSライセンスは3つに分類することができます。

  1. コピーレフト型
  2. 準コピーレフト型
  3. 非コピーレフト型

分類の基準は以下の二つの点で行います。

  1. 利用者がソースコードを改変した際に、改変部分のソースコード開示を義務付けるか
  2. 利用者がソースコードを他のソフトウェアと組み合わせた際に、他のソースコードの公開を義務付けるか

分類と基準をまとめると以下の表のようになります。

分類 改変部分の公開義務 組合せソースコードの公開義務
コピーレフト型 有り 有り
準コピーレフト型 有り 無し
非コピーレフト型 無し 無し

コピーレフト型のOSS利用はできるだけ避ける

このOSSの分類の中で、コピーレフト型が厳しいのがわかると思います。コピーレフト型のOSSと自社のソフトウェアと組み合わせた場合、自社のソースコードも公開義務が発生するということです。

組合せになるかどうかの判断が実は曖昧なところがあるのですが、LinuxのようなOSを使っているのであれば、OSSと静的リンクを行えば組合せたと判断されますが、動的リンクだと組合せていないというのが通例のようです。

組込開発などでは動的リンクなんてできないものもありますので、その場合はコピーレフト型のOSSは実質的に排除しないといけないことになります。

主要なライセンス

OSSのライセンスは現在100以上存在していると言われていますが、Open Source Initiativeが主要といっているものが9種類あります。これを上の分類で整理すると以下の表になります。

分類 ライセンス ライセンス作成者
コピーレフト型 GNU General Public License (GNU GPL) Free Software Foundation (FSF)
準コピーレフト型 GNU Lesser General Public License (LGPL) Free Software Foundation (FSF)
Mozilla Public License (MPL) Mozilla Foundation
Common Development and Distribution License (CDDL) Sun Microsystems
Common Public License (CPL) IBM
Eclipse Public License (EPL) Eclipse Foundation
非コピーレフト型 Apache Lincense Apache Software Foundation
BSD License University of California, Berkeley
MIT License (X-11 License) Massachusetts Institute of Technology

まとめ

商品開発の現場においては利用するOSSを管理するプロセスを構築して、ライセンスに応じた対応を着実に実施できるようにする必要があります。

OSSのライセンスは数多くあり、内容は複雑で難しいものもありますが、結果として何をしないといけないかで分類するとそれほど難しいことではありません。

上ではソースコード公開だけを主に取り上げましたが、マニュアルなどにコピーライト表示やライセンス文の表示を義務付けているライセンスがほとんどですので、これも遵守しなければいけません。

コメント