OSSライセンスを勉強する前に知っておきたいこと

2014年1月20日(月)
吉井 雅人

まだまだ把握されていないOSSライセンス

オープンソースソフトウェア(「フリーソフトウェア」も含めてFOSSと呼ばれることもありますが、ここでは以下OSSとします)は、現在のソフトウェア開発に欠かせないものになっています。
OSSは簡単に入手でき容易に利用できるため、現在では幅広くソフトウェア開発の現場で利用されています。OSSに精通し、あるソフトウェアの機能を実現するためにはどのOSSを利用すれば良いか、という知識を持つ開発者も現在では多くいます。

一方で、ライセンスについてはそれほど意識されていないのが現状です。商用ソフトウェアと同様にOSSにもライセンスがありますが、あまりに簡単に入手できることから、利用条件を把握せずにソフトウェアに組み込まれているというケースがたくさんあります。筆者の所属するオージス総研では、ソフトウェア内に含まれるOSSを検出するサービスを行っていますが、実際にソフトウェアを検査してみると、事前に開発サイドが把握していた数の2倍から4倍のOSSが検出されるということも珍しくありません。

開発プロジェクトにおけるOSS利用の実態

筆者は2007年からソフトウェアに著作権違反がないかの検査、コンプライアンス遵守のための開発プロセスの構築、企業内でのOSS利用ポリシー策定、OSSライセンス教育などに携わってきました。2007年当時と比べると企業の意識はずいぶん向上したと感じていますが、個々の開発者の意識にはまだ向上の余地があると考えています。様々な企業で話を聞くと、開発プロジェクトに一人OSSライセンスに詳しい人がいて、その他の開発者はその人に聞いて解決する、という状況が多いようです。

ライセンスの知識がないと、OSSを利用してもどのような対応が必要なのかを判断することができません。もしライセンスの判断が遅れ、それが社内ポリシー外だった場合には難しい対処を迫られることになります。適切にOSSを利用するためには、開発者一人一人のOSSライセンスリテラシーを向上させる必要があります。

この連載ではOSSライセンスについて開発者や開発プロジェクトのメンバーが知っておくべきことを3回に分けて説明します。OSSライセンスがどんなもので、利用する際には何に注意しなければならないのか、利用した際にはどのように対応すれば良いのかをご説明します。

OSSライセンスは誰が決める?

まず初めに、OSSとはどのようなものを指すのでしょうか。OSI(Open Source Initiative)というオープンソースを促進している組織がオープンソースの定義(Open Source Definition)として10個の条件を挙げています。このうち特に重要な点は「ソースコードが公開されていること」、そして「再頒布が自由」ということです。
OSSと似たものと比較しながらOSSの特徴を説明しますと、フリーウェアと呼ばれるものは、無料ではありますがソースコードが必ずしも公開されていないという点でOSSとは異なります。また商用ソフトウェアは有償ですし、基本的に再頒布が許可されていないという点でOSSとは異なります。
また、OSSは基本的に無料で入手することが可能です。有償で配布(つまり販売)することも禁止されてはいませんが、その購入者が無料で再頒布することは禁止できないため(※)実質的には無料(もしくはメディア代や発送手数料程度)で入手できます。

では、OSSライセンスは誰が条件を決めているのでしょうか。現在、OSSライセンスと呼べるものは全世界に2000種類以上あると言われていますが、ある一つの組織が決定しているものではなく、オープンソースの組織、企業、コミュニティ、個人など様々な立場から作成されています。
OSSライセンスにはその作成者の思想、ソフトウェアに対する考え方、思いが込められています。ライセンス文を読むだけでは利用する際の条件を理解しにくい場合がありますが、作成者の思想を理解しながら読むことで、利用条件を正しく理解することができます。

(※)非コピーレフトのライセンスの場合は再頒布を禁止することが可能。

OSSライセンスの特徴

複数のライセンスから利用者が選択できる場合も

では、具体的にOSSライセンスが、実際のオープンソースにどのように適用されているのかを見ていきます。

OSSコンポーネントには必ず何らかのライセンスが適用されています。その際、ただ一つのライセンスが適用されることがほとんどですが、デュアルライセンスもしくはトリプルライセンスといったように複数のライセンスが適用されているものもあります。これは「提示した2つあるいは3つのライセンスの中から、好きなライセンスを選択してください」という意味です。これにより利用者の主義や思想、目的により適したライセンスを選択することができます。

OSSはライセンス条件を遵守していれば再頒布、再利用が可能ということは既に説明しましたが、これは利用者が別のOSSプロジェクトであった場合でも可能です。そのため既存の著名なOSSが、別のOSSに取り込まれ利用されているというケースは珍しくありません。特にサブコンポーネントがたくさんあるような巨大なプロジェクトの場合、サブコンポーネントやサブディレクトリ単位でライセンスが異なるということはよくあります。このようなプロジェクトの場合「3rdparty」や「external」といったディレクトリに、外部のライブラリやソースコードを格納していますので、そのプロジェクトのオリジナルのOSSかどうかを判別することができます。このようにOSSを利用する際には、トップのライセンスだけではなく、サブコンポーネント、サブディレクトリのライセンスについても確認する必要があります。

OSSライセンス自体のバージョンアップにも注意が必要

OSSコンポーネントがバージョンアップした際に、適用されるOSSライセンスが変更されることもあります。あるバージョンを境に適用するライセンスを変更するというケースです。条件の厳しい(多い)ライセンスから条件の緩い(少ない)ライセンスに変更される場合は、利用者側としては特に大きく意識する必要はありませんが、条件の緩いライセンスから条件の厳しいライセンスに変更された場合には、利用者側は利用条件をきちんと洗い出し新しいライセンスを遵守する必要があります。

また、OSSライセンス自体もバージョンアップすることがあります。例えばApache Licenseですと、1995年にApache License, Version 1.0がリリースされ、2000年にはApache License, Version 1.1、2004年にはApache License, Version 2.0がリリースされています。このようにあるシリーズのライセンスのバージョンアップに伴い、OSSコンポーネントに適用するライセンスをバージョンアップさせることもあります。

さて、ここまで読んで頂いた方の中には、数多くのライセンスを一つ一つ確認していくのはとても大変だと感じられた方もおられるかもしれません。先に述べたようにOSSライセンスは2000種類以上あると言われ、OSIに承認されているライセンスだけでも70種類あります。しかし、実際にはこれらのライセンスが万遍なく利用されているわけではありません。人気のあるライセンスと人気のないライセンスには、極端に差があります。特に人気のある10種類程度OSSライセンス条件を把握しておけば、90%以上のOSSコンポーネントのライセンスをカバーすることができます。

「コピーレフト」の概念とOSSライセンスの類型

OSSライセンスは作成元が様々とはいえ、先に述べた「オープンソースの定義の条件」を基本的に満たしています。そのため、どのライセンスにおいても共通の条件は存在しています。これに追加される条件がどのようなものかによってライセンスを類型化することができます。条件の強さによって様々な分類が可能ですが、ここでは3つに分類することにします。類型化するための鍵となるのが「コピーレフト」という概念です。この「コピーレフト」という概念はOSSライセンスを学習するためには、必ず理解しておく必要があります。

コピーレフト(copyleft)という概念はFree Software Foundationを設立したリチャード・ストールマンによって提唱されました。これは著作権を保持しつつ、再頒布や改変の自由を利用者に与え続けなければならない、というものです。つまり、コピーレフトのソフトウェアを利用(改変)した際には、ソフトウェアの受領者に対してソースコードを開示し、改変や再頒布をできる自由を与える必要があります。この概念の背景には、全てのソフトウェアは改変、再頒布が自由に行われるものでなければならない、という思想があります。

このコピーレフトという考え方がどの程度ライセンス条件に反映されているかによってライセンスを分類することができます。IPAの資料『OSSライセンスの比較および利用動向ならびに係争に関する調査』では、「コピーレフト型」「準コピーレフト型」「非コピーレフト型」の3種類に分類されており、本連載でもこの分類に基づいて説明します。

ライセンスごとの詳細な条件は次回に説明しますので、ここでは類型ごとの著名なライセンスを簡単に紹介します。

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

「コピーレフト型」の有名なライセンスとしては、以下が挙げられます。

  • GPL(GNU General Public License version2、version3)
  • AGPL(GNU Affero General Public License version 3)
  • Sleepycat License

GPLは組み込み開発の現場で非常によく利用されますし、全てのOSSライセンスの中で最も人気がある(割合が多い)ライセンスでもあります。AGPLはGPLがカバーしきれていなかった部分を補うために作成されたライセンスです。Sleepycat Licenseは作成元は異なりますがGPLと同様にコピーレフトとして知られているライセンスです。

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

続いて「準コピーレフト型」の有名なライセンスを挙げます。LGPL(GNU Lesser General Public License Version2.1、Version3)は名前の通り、GPLからコピーレフト性を弱めたライセンスです。またMPL(Mozilla Public License Version 1.1、Version 2.0)も作成元は異なりますが、弱いコピーレフト性を持つライセンスです。

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

「非コピーレフト型」のライセンスとして有名なものとしては、Apache License(Version1.1、Version2)、BSD License(4-clause、3-clause、2-clause)、MIT Licenseが挙げられます。いずれも非常に人気のあるライセンスで、ソフトウェアを検査すると必ずと言っていいほど検出されます。

次回はこれらのライセンスについて、個別の特徴や条件を説明していきます。

<編集部より> 1ページ目の内容で一部表現に誤りがあったため、注釈を追加しました。(2014.02.17)

株式会社 オージス総研

2007年 オージス総研に入社。アーキテクチャの開発、ITシステムのパフォーマンス改善などを実施。
2008年以降、OSSソフトウェア検査、OSSライセンス教育、OSSガイドライン作成など、OSS の活用促進と適正利用を目的としたソリューションに従事。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています