今回のゲストブログは、オープンソースライセンスのスペシャリストとしておなじみの可知豊さんに『わかっておきたい、オープンソースライセンス』と題して、3回に渡って、解説いただきます。第2回目は、代表的なオープンソースライセンスを紹介します。
情報システムの構築・運用で不可欠な存在となったオープンソースソフトウェア(OSS)。そこでは、オープンソースライセンスの理解が重要です。なぜなら、ソフトウェアは著作物であり、著作権者の許可(ライセンス)を受けなければ利用できないからです。
そこで、この連載では、オープンソースのライセンスについてざっくりと解説していきます。
前回解説したように、このようなオープンソースライセンスは、著作権をベースにして機能しています。また、オープンソースの定義に従っています。しかし、個々のオープンソースライセンスは、その細部が異なっています。そこで、第2回は、たくさんあるオープンソースライセンスを理解するポイントを説明すると共に、代表的なオープンソースライセンスを紹介します。
図:オープンソースライセンスの成り立ち
目次
OSSライセンスを理解するポイント
ではまず、OSSライセンスを理解するポイントを解説しましょう。オープンソースライセンスには、多くの種類がありますが、基本的なポイントを押さえておけば、大いに役に立つでしょう。ここでは、次のポイントを取り上げます。
- 有償販売と無償配布を制限しない
- 無保証
- コピーレフト方式を採用していることがある(ないこともある)
- デュアルライセンスを採用していることもある
有償販売と無償配布を制限しない
オープンソースライセンスでは、OSSを再配布する際に「無償で配布すること」とか「代金を請求してはいけない」とは書いてありません。OSS の利点として、無償で入手できる (ライセンス料が不要) という点が強調されがちですが、有償で販売しても構いません。
ただし、有償で購入した場合でも無償で入手した場合でも、ソースコードを手に入れた人は、そのソースコードを再配布できます。つまり、それを転売したり無償で配布したりできるのです。
無保証
オープンソースライセンスの大半は、「著作権者は、対象ソフトウェアの動作を保証せず、発生した結果について一切の責任を負わない」とする免責条項を持っています。
OSS を「現状のまま」で提供し、ユーザーから「動作がおかしいから直せ」とか「この機能が欲しいので、追加して欲しい」といったリクエストがあったとしても、それを著作権者が直すとは限らないのです。セキュリティ対策など社会的な必要性に応じて修正する場合はありますが、「必ず直す」という責任を負っていません。
ただし、このような免責条項は、オープンソース特有なものとは言えません。同様の条件を、一般的な商用ソフトウェアのライセンスが持っています。
コピーレフト方式を採用していることがある(ないこともある)
「ソースコードを改変したら、改変版も必ずオープンソースにしなければならない」
OSSは、このような条件を必ず持っていると、勘違いしている人は少なくありません。しかし、このような条件を持っているのは、オープンソースライセンスの一部だけです。また、実際の条件は、微妙に違っています。
「コピーレフト」(Copyleft) とは、著作物の利用を許可する方法のひとつで、この方式では次のような利用条件備えています。
- 改変版ソフトウェアには、元と同じ内容の利用条件を適用する。
「必ずオープンソースにする」のではなく、あくまでも「元と同じ内容の利用条件を適用する」となっているのです。
図:コピーレフトの働きと、対象とみなす範囲
どのような行為を改変とみなすかは、オープンソースライセンスによって異なっています。また、次のような行為は改変とは見なしません。
- 単なる同梱・ディストリビューション
- APIによる呼出し
- OSSを使った作業
デュアルライセンスを採用していることもある
いくつかのOSSでは、デュアルライセンス(Dual License)を採用しています。これは、複数のライセンスを提示して、ユーザに選択させる方式です。多くの場合、GPLとそれよりも制限の緩いライセンスの選択方式になっています。たとえば、MySQLでは、GPLと商用ライセンスのデュアルライセンスになっています。
図:デュアルライセンスの働き
代表的なオープンソースライセンス
OSSライセンスの詳細は、ライセンスの種類ごとに異なっています。ここでは、代表的な4つのライセンスについて、その特徴と理解のポイントを説明します。
- MITライセンス
- Apacheライセンス
- Mozilla Public ライセンス
- GPL/LGPL
オープンソースライセンスについて調べようとすると、最も有名なGPLについて真っ先に読むことが多いでしょう。しかし、これは一番長文かつ複雑で理解が難しいと思います。OSSのライセンスを読むときは、最も単純なMITライセンスから読んでいくのがおすすめです。
MITライセンス
このライセンスは、著作権表示と免責条項を含めれば、自由に複製・配布・改変できるとするライセンスです。改変したソフトウェアに、商用ライセンスなどの異なるライセンスを適用して公開しても構いません。また、コピーレフト方式は、採用していません。
最近では、Webアプリケーションを中心に、多くのソフトウェアがMITライセンスを採用しています。同様の内容を持つライセンスに、修正BSDライセンスがあります。
400文字ほどの、かなり短いライセンス文書なので、ぜひ一度、日本語参考訳を読んでみてください。
Apacheライセンス(APL 2.0)
これは、HTTPサーバーの「Apache」やWebコンテナの「Tomcat」といった、Apache財団が開発・提供しているOSSを中心に採用されているラインセンスです。
MITライセンスと同じように、著作権表示と免責条項を含めれば、自由に複製・配布・改変することができ、改変したソフトウェアに、商用ライセンスなどの異なるライセンスを適用して公開しても構いません。また、コピーレフト方式は、採用していません。
MITライセンスとの大きな違いは、特許条項にあります。Apacheライセンスの特許条項は、対象ソフトウェアを利用する場合に限り、含まれる特許も自由に利用できるとしています。
Mozilla Public ライセンス
これは、WebブラウザのFirefoxに採用されているライセンスです(MPL/GPL/LGPLのトリプルライセンス)。
MITライセンスと同じように、著作権表示と免責条項を含めれば、自由に複製・配布・改変することができます。限定的なコピーレフト方式を採用しており、プラグインや追加モジュールは適用対象外としています。
また、Apacheライセンスと同様の特許条項を備えています。
GPL/LGPL
自由に利用可能なソフトウェアに適用されるライセンスとして、フリーソフトウェア財団が作成したライセンスです。次のような条件を備えています。
- バイナリーコードを提供したら、ソースコードを入手可能にする
- ソースコードの提供時には、著作権表示と免責条項を含める
- 派生ソフトウェアを受け取った人が、ソースコードを入手できるようにする
GPLとLGPLでは、派生ソフトウェアの範囲が異なっています。LGPLでは、動的リンクしたプログラムを派生ソフトウェアと見なしません。また、LGPでは、ライブラリと結合・リンクして配布する場合、リバースエンジニアリングを禁止せず、結合・リンクしたコードは、ソースコードまたはオブジェクトコードの提供が必要としています。
現在は、GPL2.0/LGPL2.1と、GPL3.0/LGPL3.0という2つの系列があり、特許条項に互換性がありません。
というわけで、たくさんあるオープンソースライセンスを理解するポイントを説明すると共に、代表的なオープンソースライセンスを紹介してきました。かなり複雑ですし、専門家の間でも、条文の解釈が分かれることがあります。とはいえ、主要なポイントは押さえていると思います。
さて次回(第3回)は、OSSを使う場合、ライセンスの具体的な対応方法を解説します。次回をお楽しみに!
- 第3回:オープンソースライセンスの使い方をわかっておきたい
- 第2回:色々なオープンソースライセンスをわかっておきたい
- 第1回:著作権とライセンスをわかっておきたい
著者:
可知豊
テクニカルライター
豊田高専 電気工学科卒。
小学生のときにスターウォーズを見て以来、SFと映画とコンピュータに目覚めて大人になる。
以前は、パソコンの解説書を書いて収入の大半を得ていた。そのほかに、パソコンのコンサルタントやインストラクター、メーカーでパソコンを設計したり、秋葉原でPCの説明員をしてたこともある。
・オープンソース・ライセンスの談話室:https://www.catch.jp/oss-license/
・知る、読む、使う! オープンソースライセンス:https://tatsu-zine.com/books/osslicense