Linux、Python などのオープンソースソフトウェア(Open Source Software、OSS)のライセンスについてまとめておきます。
背景
Linux、Python、Scikit-learn、Tensorflow など、ソフトウェアをオープンソース化することで市場浸透が進んでいる技術があります。
こうしたソフトウェアについて、主なものをピックアップし、OSSライセンスの観点でまとめてみます。
IoT (Internet of Things) などといわれているように技術革新が進んでいる分野ですし、GAFAM (Google、Apple、Facebook、Amazon、Microsoft) のような先端企業も基盤としている技術分野といえます。
また、無数にあるソフトウェアの中で、どのソフトウェアを採用すべきか判断するときの一つの尺度にもなると思います。
なお、各ライブラリについては、ライセンスの変更が常時生じています。
商用利用、再配布等をする場合は、各ライブラリ/ライセンスについて、各企業の法務などで確認するようにしてください。
OSS ライセンスタイプのまとめ
ライセンスはどのようにでも記載することができ、種類は無数にありますので、もともと1つに集約するには無理があります。しかし、厳密さはある程度妥協して、オープンソースソフトウェアのライセンスタイプ別にまとめます。オープンソースソフトウェアで有名なものがあれば、随時、追加・修正することにします。
OSSライセンス | ライセンスの表示義務 | ソースコードの開示義務 | 特許関連条項 | 事例 | コメント |
---|---|---|---|---|---|
GPLv3 GNU Lesser General Public License version 3 |
あり | あり | あり | yolo v5 | コピーレフト型(厳しいライセンス) GPLv2 に特許条項を追加 |
GPLv2 GNU Lesser General Public License version 2 |
あり | あり | あり | Linux カーネル WordPress |
コピーレフト型(厳しいライセンス) |
AGPL Affero GPL |
あり | あり | あり | – | – |
LGPL GNU Lesser General Publlic License |
あり | あり | あり | GNU C Library Qt(別のライセンスもあり) |
準コピーレフト型 ライブラリへの適用のためGPLのコピーレフト性を弱めたライセンス リバースエンジニアリングを許容する必要がある |
MPL Mozilla Public License |
あり | あり | あり | Mozilla Firefox | 非コピーレフト型 3-clause BSD license と互換 |
PSFライセンス Python Software Foundation License |
あり | なし | – | Python 3.8.6以降 Matplotlib |
BSD ライセンススタイルで GPL 互換ライセンス |
Apache License 2.0 | あり | なし | あり | Android (Linux 部分は GPL/LGPL を含む) Tensorflow Apache HTTP Server |
GPL v3 互換ライセンス |
BSD Berkley Software Distribution |
あり | なし | なし | Google Chromium OpenCV NumPy SciPy scikit-learn Django (3-clause BSD) nginx (BSD like) |
– |
SGI Free Software License B version 2.0 | – | – | – | OpenGL | – |
MIT License | あり | なし | – | Jenkins Keras Three.js |
– |
※ 一般に、条件が厳しいといわれているライセンスを上に、比較的緩いライセンスを下に並べています。
※ また、Linux 関連技術、機械学習、画像処理の分野でよく使われているものについても追記しました。ほぼ周知のソフトウェアばかりだと思います。本来は、根拠となるすべてのライセンスのリンクを張るなどしたいところですが、省略します。
※ 加えて、同じソフトウェアであってもバージョンによっては、ライセンス条件が変更となることがあります。業務で使用する場合、再配布等する場合などは、都度、確認する必要があります。
※ 表で、Apache License 2.0 より下に記載されたものであるほど、制約が比較的緩く、普及が進んでいるものが多いと思います。
※ 機械学習系でよく使われるものは、Apache License 2.0 か BSD 以下の比較的緩いライセンスが多くなっています。
比較的緩いといっても、第三者に渡す(再配布する)際にはライセンスの表示義務が発生しえますので、注意が必要です。成果物にライセンスを記載したテキストファイルを入れて、ユーザーインターフェース上でも表示をしておく等となろうかと思います。
※ また、厳しいライセンスだから一概にダメかというとそうとも限りません。例えば、厳しいライセンスには特許条項(自社が持っている関連する特許の使用を許諾する…)などが入っていたりしますので、逆にそのエコシステム内においては、安心して技術を使用できるようになる(その結果、普及しやすくなる)といった側面もあります。
※ 個人でプログラミング言語を学習する、パッケージを利用する、といった場合、プロプライエタリなソフトウェアなど、特定の企業色の強いソフトウェアを選んでしまうと、その企業の支配から逃れられなくなってしまうケースが生じえます。Webサービス、オープンソース関連分野は変化が速く、仕様変更が続き、結局は競争力を失って、言語やパッケージごと市場から消え去る結果にもなりかねませんので、十分に注意をする必要があります。(日本の多くのソフトウェアエンジニアが世界で勝てない/勝てなかった一因になっていると思っています。)
OSSライセンスの具体例
一例として、OSSライセンスの具体例を挙げておきます。
・ APACHE LICENSE, VERSION 2.0
上記の Apache License 2.0 の場合、4. Redistribution. に再配布時の条件について記載があります。
リンク先のとおり、ライセンス添付…など、所定の条件を満たした場合は、複製をしてコピーの再配布をすることができる、といった旨の記載となっています。
したがって、再配布時にライセンス等を表示できない、物理的な表示手段がないからといって、ライセンスに従う必要がなくなるわけではないため注意が必要です。
なお、この記載からは、再配布等に該当しない場合は、必ずしもこの条件に従う必要はないと解釈しうる記載となっています。
例えば、OSS ライブラリを製品に実装して販売するのではなく、サーバーサイドにのみ実装し、数値データなどの処理結果のみをインターネットを介在させてデバイスに返すだけの使用にとどめる場合、再配布には該当しないように読み取ることができる記載となっています。
OSS ライセンスの種類によっては、AGPLのように、サーバーサイドに実装した場合であっても、ライセンス表示等が必要となるケースも生じます。サーバーサイドでの使用であるからといって一概にライセンス表示が不要になるということにはなりません。
加えて、上記の Apache License 2.0 のライブラリをサーバーサイドに実装した場合であっても、プログラムの開発が完了して発注者に納品する場合や、事業売却/事業譲渡が生じた場合など、再配布に該当すると解釈できるケースも考えられますので注意が必要です。
各ソフトウェアの態様、各ライセンスごとに確認をする必要があります。
最近のライセンス変更について ~ 企業戦略
オープンソースのソフトウェアが有名になり普及してくると、企業買収等により、ライセンスが変更となったり、有償化されるなどの事例が生じています。
よく知られている事例として、たとえば、以下があります。
・ MySQL は、サンマイクロシステムズ、Oracle に買収され、ライセンス変更となっています。
・ Anaconda は、最近、ライセンスが変更となり、一部、有償化されています。
・ Java は、Oracle 傘下となり、有償サービス化される傾向があります。
・ GitHub は Microsoft に買収されています。
経営戦略として、市場浸透している OSS や関連企業の買収を進めることで、デファクトスタンダード、コンソーシアム標準を取りに行く企業がある、という理解でよいかと思います。
このようなソフトウェアや機能を、例えばサーバーなどにインストール・設定して、第三者に納品等すると、ソフトウェアの再配布や有償となる条件等に該当しうるため、注意が必要です。
一方、OSS を使う側の立場からすると、ライセンス変更となる可能性が高いソフトウェアやサービスは、採用を控えるのが無難といえます。
日本企業などでは、無償のオープンソースより有償のマイクロソフトのソフトウェアやサービスのほうが安心などといった判断をするケースが多い印象があります。しかし、Google などの先端企業ではオープンソースを採用してサービスを展開することで、特定企業の支配を避けて広くデファクトスタンダードを取りにいくといった経営判断をする企業(経営層がソフトウェアやデータの特徴をよく理解しているケース)もありますので、従来型の(クローズ型の)発想にとらわれない判断をする必要があるといえます。
まとめ
ライセンスの観点でオープンソースソフトウェアについてまとめました。
厳密さは求めず、簡素にまとめることを重視しました。
ネット検索で、オープンソースのソフトウェア技術について調べると、技術の説明だけで終わっているサイトが大半のようです。
オープンソース戦略、企業戦略の観点で書かれたものをほとんど見ません。そこで、まずはライセンスの観点でまとめてみました。
どのソフトウェアを採用するべきか比較検討をする際、相手方の意図が推測できる必要があります。また、ネットを活用したサービスを展開する場合も、OSS やプロプライエタリソフトウェアの特性や、GAFAM など最近のソフトウェア技術を展開している企業の狙いが理解できることが望ましいといえます。
関連リンク
・ アパッチ Apache とは何か
・ Linux 関連技術を独学で学ぶときのキーワードまとめ
・ レンタルサーバーの比較表
・ おすすめ書籍ピックアップ 【サーバー&ネットワーク関連】
・ おすすめ書籍ピックアップ 【Python&機械学習】
外部リンク [PR]
・ GNU Affero General Public License
・ APACHE LICENSE, VERSION 2.0
・ 「オープンソースがよーくわかる本」 (参考文献 ★1)
・ 「OSSライセンスを正しく理解するための本」(参考文献 ★2)
・ 「ICT知財戦略の基本がよーくわかる本」(参考文献 ★3)
※ ご参考までに、私が持っている書籍、最近読んだ書籍を挙げておきます。★1は、オープンソースの基本的なあたりを概観した内容となっています。OSS ライセンスタイプについて言及している本としては★2があります。★3は、知的財産権全般や訴訟といった観点でまとめられています。
OSS の分野は定番といえる文献が少ない印象があります。とはいえ、実際に英文のライセンスを読んでみて、最近の訴訟などの事例を理解するといったあたりは、大学教育・学校教育でやっていてもよいと思います。Linux や Python などのオープンソースソフトウェアは、すでに広く普及して誰でもすぐに使える状態になっており、ライセンスに関する知識や理解がないと問題が起こりうるためです。
– Free Software, Free Society, Free Code, Free World, No xi, we want Freedom, We want reforms.