現在位置: ホーム 研究支援 アプリ開発支援 アプリ公開の手引 アプリの公開 ライセンスの設定

ライセンスの設定

作者: admin — 最終変更 2014年02月01日 09時11分
研究で利用するために開発したソフトウェアをオープンソース・ソフトウェアとして公開することを考えるにあたり、ライセンスの設定に関して知っておいたほうがよい基礎知識の一部をまとめたものです。

はじめに

オープンソース・ソフトウェアの思想は、物質科学の研究においても、無視できないものになっています。例えば、米国物理学会の新しいオープンアクセスな論文誌 Physical Review X は、クリエイティブ・コモンズという、オープンソース・ソフトウェアの思想を背景に誕生した「ライセンス」を利用して成り立っています。

さらに、わたしたちは、オープンソース・ソフトウェアの恩恵を受けています。研究の一環として、数値計算で利用することの多いgccやgfortranなどのコンパイラやBLAS/LAPACKなどライブラリーだけでなく、このWebサーバのソフトウェアもオープンソース・ソフトウェアで成り立っています。

オープンソースと著作権

オープンソース・ライセンスは著作権に基づく「ライセンス」です。そもそも、ソフトウェアのソースコードは、論文や書籍と同様に、著作物として保護されます。そこで、一定の条件を満たせば、自由に再頒布できることを明示的に認めるようにしたものがオープンソース・ライセンスです。著作権者が重視する項目が異なるため、いろいろな条件があり、その結果、いろいろな種類のライセンスが存在します。その中で、オープンソース・ライセンスのコンセンサスとして、次の10項目がよく知られています。

オープンソースの定義(http://www.opensource.jp/osd/osd-japanese.html)

  1. 再頒布の自由
  2. ソースコードの完全性
  3. 個人やグループに対する差別の禁止
  4. 利用する分野に対する差別の禁止
  5. ライセンスの分配の平等
  6. 特定製品でのみ有効なライセンスの禁止
  7. 他のソフトウェアを制限するライセンスの禁止
  8. ライセンスは技術中立的でなければならない

これから紹介するライセンスは、すべて「オープンソースの定義」を満たしています。

おすすめのオープンソース・ライセンス

オープンソース・ソフトウェアとして公開する目的は様々でしょうが、その中の一つとして、広く利用者や開発者を募りたいという目的は共通でしょう。そのためには、開発したプログラミング言語のコミュニティーで広く使われているライセンスを選ぶのがおすすめです。コミュニティーの標準と同じであれば、公開されたソフトウェアを違和感なく利用してくれる可能性が高いからです。例をあげると、PythonならPython Software License(PSF)、統計計算ソフトウェアRならGPL、C++ライブラリーならBoost Licenseなどです。残念ながら、Fortranのソフトウェアに関しては、コミュニティーのデファクトスタンダードなオープンソース・ライセンスはありません。

条件に当てはまらない場合など、自らライセンスを選択する際に、おすすめとなるライセンスを2つあげます。Apache LicenseとGNU General Public Licenseです。なぜ、この2つがおすすめであるかというと、双方ともに多くの著作権者によって選択されているだけでなく、法律家によるサポートも豊富なコミュニティによるライセンスだからです。なお、ドキュメントは、ソフトウェアと同じライセンスにすることが推奨されますが、ドキュメント固有のライセンスを選ぶのであれば、ドキュメントのライセンスのデファクトスタンダードになりつつあるクリエイティブ・コモンズをおすすめします。

Apache License 2.0

http://www.apache.org/licenses/LICENSE-2.0

Apache License 2.0は、ソフトウェアが無保証であることを明記し、著作権者とライセンスの表示のみを再頒布の条件とする、きわめて制限のゆるいライセンスです。特許に関する明示的な記載があることをのぞき、実質的な内容はBSDライセンスとほぼ同じですが、BSDライセンスの複雑な歴史的経緯もあって、制限がゆるいライセンスとしてはこのライセンスを推奨します。

Apache License 2.0は、改良したソフトウェアのライセンスに関する制限がないため、第三者が改良ソフトウェアを有償で販売し、そのソースコードが公開されないこともあります。クリエイティブ・コモンズでは、CC-BY 3.0 (http://creativecommons.org/licenses/by/3.0/deed.ja) にほぼ対応します。

GNU Public License

http://www.gnu.org/licenses/gpl.html

GNU Public License(GPL)は、「フリーソフトウェア」(自由という意味であって、値段の問題ではない)を広めるために考え出されたライセンスです。ソフトウェアが無保証であることが明記されており、再頒布の条件に著作権者とライセンスの表示があることまではApache Licenseと共通ですが、追加の制限として、GPLのソフトウェアの二次的著作物には、ライセンスとしてGPLを適用する必要があり、ソフトウェアの頒布を受けた人にそのソースコードを提供する必要があります。クリエイティブ・コモンズでは、CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/deed.ja) がほぼ対応します。

ライセンスの選択

まず、オープンソース・ソフトウェアは、ソフトウェア(ソースコード・バイナリ問わず)を入手した人が、著作権者の明示的な許可なしに「使用」(プログラムのコンパイル・実行)ができ、ライセンスに同意した人が「利用」(再頒布)できるものです。

  • 著作権者の明示的な許可なしに「利用」(再頒布)を許可する
    • はい
      • 「使用」(プログラムの実行)に制限をかけたい(商用利用を許可しない、実行者に論文の引用を義務づける、など)
        • はい - プロプライエタリ・ライセンス
        • いいえ - オープンソース・ライセンス
    • いいえ - プロプライエタリ・ライセンス

ソフトウェアを公開するにあたって他に注意すべき点は、他のソフトウェアに依存する場合、矛盾しないライセンスを選ばなくてはいけないという点です。多くの数値計算ソフトウェアは、線形計算にBLAS/LAPACKを利用していますが、これはBSDライセンスであるため、自由にライセンスを選択できますが、例えばGNU Scientific Library(GSL)はGPLのため、GSLとリンクしないと動かないソフトウェアはGPLで公開する必要があります。また、Numerical Recipeのコードは、頒布の許諾がないため、組み込んだソフトウェアを頒布することはできません。

著作権の法律的な概要(参考)

著者は法律の専門家ではないので、あくまで参考としてください。

(専門家による概説は、例えばhttp://ossforum.jp/node/73)

著作権には、「利用」と「使用」という概念があります。「使用」は読む、聞くといった「著作物の享受」行為を指し、ソフトウェアの文脈では(頒布されたバイナリを)実行することに相当します。これは、著作権の法律では制限されることはありません。一方「利用」は、「著作権の支分権」を行使する行為であり、ソフトウェアの文脈では「複製権・公衆送信権・翻案権の行使」、すなわち頒布を行うことに相当します。なお、冒頭に述べた、オープンアクセスの論文誌Physical Review Xのライセンスがクリエイティブ・コモンズのCC-BYであるというのは、法律上の考え方としては、著作者が著作権を保持しながらCC-BYライセンスで公開したものを、米国物理学会はその自由に複製をする権利を行使して論文誌にまとめているということです。

著作権は強力な権利で、明示的に許可を受けていなければ、著作物は自由に「利用」(再頒布)できません。これを逆手に取って、自由に「利用」する許諾を与える条件を定めたものが、オープンソース・ライセンスです。これは、プロプライエタリ・ソフトウェアを利用する際の「使用許諾契約(EULA)」が著作物の「使用」の制限を与えていることとは異なる考え方に基づくもののため、理解が難しいところがあります。

補足

Public Domainは、著作権者による、著作権を行使しないという宣言であり、自由に頒布できますが、他人に著作者を詐称されたり、著作者に対して損害賠償請求が起こされたりする可能性があります。