今回取り上げるテーマは「オープンソースソフトウェア」(Open Source Software: 略してOSS)。システムエンジニアやプログラマーではない方には馴染みが薄いかもしれませんが、実は様々なソフトウェア本体やその一部として使われており、現在のソフトウェア開発においては決して無視できない重要なものとなっています。
OSSとは?生まれた背景
一般的に、ソフトウェアを生成するためのソースコード(※)は重要な知的財産であり企業秘密であるため、開発者や開発会社以外には公開されません。
こういったソフトウェアは「プロプライエタリソフトウェア」や「クローズドソフトウェア」と呼ばれ、Microsoft Windowsを初めとしてWordやExcel、その他AdobePhotoshopなどの多くのソフトウェアがこの形態で公開・販売されています。
※ソースコード:ソフトウェアを生成するために作成する、そのソフトウェアの動作のすべてを人間が理解できる形で記したもの
それに対し、ある条件を守ることで、ソースコードを自由に利用し、改変し、さらに再配布できるソフトウェア「OSS」が誕生しました。しかも、そのソースコードは無償で提供されています。
OSSが生まれた経緯は、ソースコードを共有財産と考え、多くの人が利用し、そして開発にも参加できるという、著作権=コピーライト(copyright)に対抗する「コピーレフト(copyleft)」思想から、ソースコードを公開(オープン)していこうという動きが生まれました。
それは1984年、アメリカのRichard Stallman氏らによって開始されたGNUプロジェクトが起源となります。
◆ちなみに、この当時は「フリーソフトウェア運動」と呼ばれていました。オープンソースソフトウェアと呼ぶようになったのは1998年からですが、この運動への敬意を込めてOSSではなくFree/Open Source Software(FOSS)と呼ばれることもあります。
この運動は大きな流れとなり、現在ではLinuxなどのOSや、スマートフォンでおなじみのAndroid、Mozilla FirefoxやGoogle Chromeなどのウェブブラウザ、ブログシステムとして有名なWordPressなど、数多くのOSSが生まれ、多くの人に利用されています。
OSSの基礎知識
無料=オープンソースではない
OSSのソースコードは無償で公開されていますが、無償で入手できるソフトウェアのすべてがOSSというわけではありません。
例えば、無償のスマートフォンアプリが多数リリースされていますが、特に明示のない限り、その多くはOSSではありませんし、無償で入手できるソフトウェアの体験版などもOSSではありません。
こういったソフトウェアは、OSSではない以上、たとえ無償であっても権利者からの許諾なしで改変や再配布などを行うことはできません。
後述するOSSのライセンスに基づいて公開されているソフトウェアがOSSとなります。
ソースコードの開示義務
ソースコードを共有財産とする考えから、OSSの多くはそのソースコードを自由に入手できる必要があります。
ただ、どのような場合においても必要となるのではなく、あくまで「再配布」する場合ですので、例えば第三者には配布せず社内のみで利用するソフトウェアや、ウェブサービスのようにウェブサーバー上に設置し第三者に利用させるだけの場合は、第三者はソフトウェア自体を受け取っていませんので、ソースコードを開示する必要はありません。
ただし、GNU Affero General Public License(AGPL)により提供されるOSSは、再配布せずウェブサーバー上にて利用するだけの場合でもソースコード開示義務が課せられていますのでご注意ください。
OSSとライセンス
OSSを利用するに当たってまず知っておくべき事は、ソフトウェアは原則的には著作物であるという点です。
日本の著作権法においても、昭和60年の改正から「プログラムの著作物」(著作権法10条1項9号)として定義されるようになっており、複製や改変などを行うためには権利者からの許諾が必要となります。
また、ソフトウェア(A)を改変してできたソフトウェア(B)は、Aの二次的著作物となることから、Aの著作権者はBの利用についても権利行使できます(著作権法28条)ので、Bを改変したい場合は、Bの著作権者だけでなくAの著作権者からも許諾が必要となります。
プロプライエタリソフトウェアであれば、こういった著作権者と個別に交渉して複製や改変の許諾を得る必要がありますが、OSSの場合は、ソースコードの利用・改変・再配布を行うに当たっての内容や条件を定めた「ライセンス」により、予め許諾されている形となっています。詳細はライセンスによって異なりますが、その条件さえ満たせば誰でも改変などを行うことができます。
OSSのライセンスは、オープンソース普及を目的とする団体である「Open Source Initiative(オープンソース・イニシアティブ)」が認めたものだけでも82種類(2017年9月現在)もありますが、基本的にはソフトウェアの作者が自由に作成することができるため、その数は少なくとも100以上はあると言われています。
OSSライセンスの特徴
数多くのライセンスにおいて共通している内容が2点あります。
「著作権表示」の必要性
コピーレフトという概念は、決して著作権を放棄するものではなく、著作権は著作者が保有したままで、利用者に改変や再配布の自由を与えるものです。
そのため、誰が権利者なのかという情報の共有が必要となっています。
同様に、OSSがどのライセンスの基に提供されているのかを知らせるためにも、再配布の際にはライセンス条文(原文である必要があり、日本語訳などは無効です)を含めることが求められています。
「無保証」である
OSSはどんどん新しい開発者によって改変が加えられていくことが想定されているため、元の著作者が知らないところにまで広がっていってしまいますので、そのすべてについて著作者が動作を保証し責任を負うことは非常に困難です。
そのため、OSSについては著作者はどのような保証もしません。
基本的に何らかのサポートを提供する場合が多いプロプライエタリソフトウェアとは大きく異なる点です。
なお、1つのOSSに適用されるライセンスは1つだけとは限らず、OSSによっては条件の異なる複数のライセンスから選ぶことができるものもあります。
代表的なライセンスの概要
多数存在するOSSのライセンスですが、“コピーレフト”への準拠の程度に応じて大きく3つに分類することができます。
種別ごとに、代表的なOSSライセンスをいくつか取り上げてみます。
(ここでの分類は「OSSライセンスの比較および利用動向ならびに係争に関する調査 調査報告書」(独立行政法人 情報処理推進機構)に準じます。)
・コピーレフト型ライセンス
ソースコードの開示義務、および他のソースコードと組み合わせた場合にはその組み合わせたソースコードについても開示を義務付けるものです。
何と言っても代表格はGNUプロジェクトが策定した「GNU General Public License」(「GPL」と略されることが多い)で、1991年の第2版(GPLv2)が現在でも広く利用されています。最新版は2007年公開の第3版(GPLv3)です。
・準コピーレフト型ライセンス
改変部分のソースコード開示義務はありますが、他のソースコードと組み合わせた場合においては、その組み合わせた側のソースコードについては開示義務が無いものです。
コピーレフト型と同様、再配布する際には同じライセンスを適用しなければなりません。
ウェブブラウザFirefoxなどMozilla FoundationのOSSに適用されるMozilla Public License(MPL)や、GPLのコピーレフト性を弱めたGNU Lesser General Public License(LGPL)などがあります。
・非コピーレフト型ライセンス
改変したり再配布したりする場合でも同じライセンスを適用する必要がなく、またソースコードを非公開にできることも大きな特徴です。
このようにコピーレフト性がとても弱く、自由度が高いライセンスです。
中心的なものはBSD Licenseで、他にもApache License 2.0や、ソフトウェア開発のための共有サービス「GitHub」で最も多くのソフトウェアに適用されているMIT Licenseなどがあります。
OSS利用の際の注意点
非常に便利なOSSですが、注意すべき点もあります。
以下に挙げる注意点を守らないとライセンス違反ということになり、それは著作権の侵害とみなされる可能性が高いです。
派生物への伝搬性
コピーレフト型のライセンスの基では、改変や再配布された二次的著作物(「派生物」と呼ばれます)は元の著作物と同じ条件で配布しなければなりません。
例えば、GPLライセンスで配布されているOSSを改変して再配布する場合は、その派生物も必ずGPLライセンスの元で再配布する必要があり、他のライセンスや条件に変えることはできません。
さらに、他のソフトウェア(コピーレフト型以外のライセンスや、OSS以外のソフトウェア)と組み合わせて派生物を作成した場合には、そのソフトウェアについても同じライセンスを適用する必要があります。
ここで問題となるのが、プロプライエタリソフトウェアと組み合わせた場合です。
OSSではソースコードの開示義務がありますので、企業秘密として本来は開示されることの無いプロプライエタリソフトウェアの部分についても、利用者からの要求に応じてソースコードを開示する義務が生じてしまいます。
このように、俗に“GPL汚染”とまで言われる強力な伝搬性がありますので、十分に注意する必要があります。
異なるライセンス間での互換性
複数のOSSを組み合わせて利用する場合は、各ライセンスで求めている内容が異なるため、ライセンス間での互換性についても留意する必要があります。
特に、GPLv2とGPLv3は、v3から多くの要件が追加変更されたため互換性が無く、これらのライセンスのOSSを組み合わせてソフトウェアを作ることはできません。
ただし、GPLv2 or any later versionのライセンスで公開されているものであれば、GPLv3を適用できますので問題ありません。
情報共有を忘れずに
OSSを利用する場合には、各ライセンスに定められている条件を守る必要がありますが、トラブルになりやすいのは「OSSを利用していることを知らなかった」こと、そして「OSSライセンスの内容を知らなかった」ことにより遵守できなかった場合です。
ソフトウェアの制作を外部に委託しているような場合は特に、委託先が無断でOSSを利用してしまい、第三者からの指摘やソースコード公開請求によって初めてその事実が露呈するということも考えられます。
OSSを利用する際は、関係者間でOSSのメリットとリスクを十分に共有し、またライセンスの内容についても教育と情報共有が重要となります。