「OSSライセンスってよく分からないんだけど」 「OSSライセンスはどこに書いてあるの?」:解決! OSSコンプライアンス(2)
OSSコンプライアンスに関するお悩みポイントと解決策を具体的に紹介する連載「解決! OSSコンプライアンス」。2回目は、「OSSライセンスってよく分からないんだけど」 「OSSライセンスはどこに書いてあるの?」という2つのエピソードと解決策を紹介する。
本連載では、オープンソースソフトウェア(OSS)の利活用に伴う「ライセンスリスク」と、それをマネジメントするための活動である「OSSコンプライアンス」について取り上げ、エンジニアの方がOSSをスムーズに利用するための実務上の勘所や、これから戦略的にOSSを活用していきたいと考えている企業の方へのヒントとなる情報を紹介しています。
今回からは、ソフトウェア開発企業X社の新人開発者である新城くんが経験した、OSSコンプライアンス問題とその解決策を解説していきます。思わぬ落とし穴や難しい問題に直面しながらOSSコンプライアンスに対応していく新城くんのエピソードを通して、皆さんも理解を深めていってください。
なお、本連載では、特に記載がない限り日本国内でOSSを活用する場合を前提としており、本連載の執筆チームの経験に基づいて説明を記載しています。厳密な法解釈や海外での利用など、判断に迷う場合は専門家にご相談ください。
■今回の登場人物
新城くん 日本のソフトウェア開発企業X社の新人開発者。OSSはこれまで使ったことがない。
佳美先輩 X社の先輩エンジニアで、新城くんの指導担当。OSSを活用した開発の経験が豊富。
エピソード1 OSSライセンスってよく分からないんだけど……
ソフトウェア製品の開発チームに参加し、ある機能の開発を任されることになった新城くん。ヒントを探してインターネットでいろいろな情報を調べていたら、実装しようとしていた機能が提供されているOSSを発見。「いいものがある! ぜひ使おう」
ある日の定例ミーティングでプロジェクトマネジャーの佳美先輩から進捗(しんちょく)を聞かれて……。
新城くん、あの機能の開発状況を報告してくれる?
はい、順調です。インターネットを調べていたら、コードを公開してくれているところを見つけたので、それを利用すれば、開発工数はだいぶ削減できると思います!
ちょっと待って。それは勝手に使っていいものなの?
GitHubで公開されているOSSですよ。使ってもらうために公開されているんじゃないんですか?
OSSにはライセンスというものがあって、ライセンスを順守した形で使わないといけないの。きちんとライセンスを調べてからじゃないと、使ってもいいかどうかの判断はできないわよ。
ライセンス? そんなの気にしたことなかったな……。
解説:ライセンスとは
皆さんは、自分が作ったソフトウェアを、誰かがいつの間にか好き放題に複製したり改変したりして、その人が独自に開発したものとしてインターネットで公開したり販売したりするような行為が合法的にまかり通ったら、どうなると思いますか? そのようなことが続いていたら、世の中は模造ソフトウェアであふれかえり、新たなソフトウェアを開発する人が減っていってしまうかもしれません。そのような無制限の模倣行為を防ぎ、多種多様なソフトウェアの創作行為を守るために著作権があります。
著作権というと音楽や小説をイメージしがちですが、ソフトウェアも著作物として著作権で保護されています。
プログラムを開発すると、その時点で開発者に著作権が発生します。仕事で開発したプログラムの場合、基本的には会社に著作権が発生します(注1)。著作権は、複製、改変、配布などの行為をコントロールできる権利(注2)です。従って、基本的には著作権者から許諾された場合のみ(注3)、これらの行為をすることができます。こうした許諾、および許諾の内容と条件を「ライセンス」と呼びます。
ライセンスなしに著作物を利用する人がいた場合、著作権者は、著作権侵害として侵害者に対して侵害行為を止めるように差止請求をしたり、侵害により損害が発生した場合は、損害賠償請求を行ったりすることができます。
OSSの場合、著作権者がソースコードを公開し、ライセンスを明示することで、複製、改変、配布などを行うことを許諾しています。従って、利用者は著作権者から個別に許諾を得ることなく、OSSを利用することができます。
逆に言うと、ソースコードが公開されていたとしても、ライセンスが明記されていないものやライセンスの内容が曖昧なものは注意が必要であり、特にビジネス活用においては著作権侵害のリスクがあると考えるべきでしょう。
OSSを活用する際には、必ずライセンスを確認し、許諾されている内容と条件を理解してから使うようにしましょう。
注1:法人と従業員との契約や、勤務規則などで特別な条件を定めていた場合は、その条件が優先します(著作権法15条)。
注2:日本の著作権法では、第21条から第28条に記載されています。
注3:日本の著作権法では、第五款(著作権の制限)にて著作権者の許諾なく行うことができる行為を定めています。
「オープンソース」の定義
そもそも「オープンソース」とは何でしょうか?オープンソースの定義として、Open Source Initiative(OSI)という組織が定義した“The Open Source Definition(OSD)(注4)”を挙げる人が多いのではないでしょうか。OSDでは「自由に再配布できること」、「ソースコードが配布されていること」等の10個の条件を満たすものを”オープンソース”と定義しています。
ただし、これらの条件を全て厳密に満たしていなくてもOSSとして扱われているものもあるため、本連載ではそれらを含め、広義のOSSについて述べています。
なお、OSIはOSDに合致したライセンスを承認する活動をしており、日本では、Open Source Group Japanという組織が、承認されたライセンスの参考和訳を公開(注5)しています。
注4:OSSの定義(The Open Source Definition)
注5:オープンソースライセンスの日本語参考訳
エピソード2 OSSライセンスってどこに書いてあるの?
佳美先輩に指摘され、次回の定例会までにライセンスを調べて結果を報告することになった新城くん。いざライセンスを調べようと思っても、どこを見たらいいのか分からない……。
佳美先輩、ライセンスを調べようとしているんですが、どこを見ればライセンスが書いてあるのか分からないんです。
じゃあ、せっかくだから一緒に調べてみようか。GitHubの場合、一般的にはリポジトリの中にLICENSEというファイルがあって、そこにライセンスが書いてあるよ。
あれ、LICENSEという名前のファイルがないですね。ということは、このOSSにはライセンスがない、っていうことなんでしょうか?
ライセンスは利用許諾だって教えたよね? ライセンスがないということは、そもそも利用が許諾されていないから使えないっていうことになるよ。
そうなんですね……。では、このソフトは使ってはいけないんですね。
いやいや、それは短絡的過ぎ。OSS開発プロジェクトによってライセンス表示のやり方はまちまちなんだ。どうやって調べればいいか教えてあげるよ。
解説:ライセンスの見つけ方
OSSの著作権を侵害しないためには、OSSのライセンス条件を順守することが大切です。そのためには、まずライセンスを見つけて内容を確認する必要があります。
分かりやすいOSSの場合は、ファイル名を"LICENSE"として記載していたり、README やmetaファイルの中にLICENSEという項目を設けて記載していたりします。また、"GPL"や"LGPL"、"MPL"といったライセンス名称をファイル名にしているケースもあります。その他、ソースコードのコメント行に記載されていることもあります。
特に"LICENSE"といった言葉がないケースもありますが、許諾されている行為、複製や改変などの利用方法や条件について記載されている箇所があったら、それがライセンスです(例として、「本ソースコードは、以下の条件に従って、複製・譲渡・公衆送信・翻案等、誰でも自由に利用できます」など)。
ただし、前述の通り、著作物の利用については、著作権者がコントロールする権利を持っていますので、許諾がないものは利用できないということに注意してください。
ライセンスには何が書かれている?
OSSのライセンスには、許諾する内容(複製、改変、配布など)と、許諾に当たっての条件が記載されています。条件はさまざまですが、ほとんどのライセンスには、配布する際に、元のライセンスも一緒に配布することや知的財産権に関する情報(著作権表示など)を残しておくことが記載されています。
また、OSSには一切の保証がなく、開発者は一切の責任を負わない旨が記載されています。従って、バグや脆弱(ぜいじゃく)性などの技術的な問題や、特許権侵害などの知的財産権に関する問題が発生したとしても、開発者が修正してくれるとは限らず、自己責任で対応する必要があります。
その他、条件の例としては、以下のようなものがあります。
・配布する場合、OSSを含むことが分かるように謝辞を記載すること
・OSSのバイナリーを配布する場合は、バイナリーに対応するOSSのソースコードも配布すること
・OSSと他のプログラムをリンクして、一つの著作物としてバイナリーを配布する場合、その著作物全体のソースコードも配布すること
・クラウドサービスなどのサーバでOSSを利用する場合、サーバにアクセスする利用者がOSSのソースコードを入手できるようにすること
次回は……
次回の「解決! OSSコンプライアンス」では、新城くんがOSSを活用して開発した製品をリリースする際に直面したトラブルをもとに、ライセンスの読み方やライセンス順守のやり方を解説します。お楽しみに!
Copyright © ITmedia, Inc. All Rights Reserved.