サイログ。

~雑多な記事置き場~

ライセンスの話

さて、ここではかなりナイーブな話になります。
はい、「全部入りパック」のライセンスの話ですね。

各種ライセンスをウキィペさんで調べたり、twitterでの意見交換の後、出した結論はどう考えても

「全部入りパックはGPL(v2.0)で配布」

しか選択肢がないです。はい。

前提条件

まず、全体を説明する前に、今回の話をする際には、

GPLが適応されるのは、プログラム本体と、それにリンクするバイナリライブラリ
GPLの成果物と、GPL互換ライセンスの成果物をくっつけると、くっつけたものは自動的にGPL

以上の前提条件があると考えます。

各ソフトのライセンス

では、話をわかりやすくするために、各ソフトのライセンスを書いていきます。
ここで言うGPLGPL v2のことです。

Ruby本体、MiyakoLauncherLite … Ruby'sライセンス(まつもとさん独自のライセンス or GPL)
Ruby/SDL、Miyako … LGPL
ruby-opengl … MIT
MinGWパブリックドメイン,GPL
(ちなみに、2.1.10全部入りパックに同梱予定のNarrayはRuby'sライセンス)

このようにリストアップすると分かるのですが、これらのライセンスを矛盾無しでまとめようとすると、上の前提条件から、消去法的(必然的?)に、GPL以外には選択肢はありません。

ただ、幸いにも、これらのソフトやライブラリはオープンソースで、オリジナルを改変することはありません(ただ、インストール時にやっかいな(直接見ることがない)リファレンスなどを圧縮する事はあります)。これは、ソースの配布元のURLをreadmeとかの目立つ箇所に明記することで賄えると思います(逆に、プロプライエタリな"ライブラリ"をリンクしようとすると一発でGPL違反になります。ただし、MiyakoLauncherLiteのように、元に使っているライブラリはプロプライエタリ(クローズドソースの方が的確か)でも、ライブラリの使用制限が無く、アプリ本体はオープンソースならば、添付は可能と考えています)。

では、これらを使ってゲームを作った場合はどうなるのか? というわけですが…。

作ったゲームがGPLだと…

簡単に言うと、一番恐れるのは、

ネタバレの危険性

ですね。特に、シナリオが重要なRPGアドベンチャーゲームでは、ソースコード見たら一発で結末が分かっちゃいますから。
更に、アルゴリズムを解析されて、あっさりと必勝ルートが解明されるのは、開発者として納得いくものではありません。
(もちろん、中身を解析しない、正攻法での必勝ルートや攻略解説は別の話ですよ!)

ソースコードの公開は、せっかくみんなをあっと言わせようと思っいたゲームが、ライセンス上の問題という理由で悲しい結果になるのは避けたいと考えると思います。

作ったゲームのライセンス

では、作ったゲームのライセンスはどうなのでしょうか。

答えは、「たとえ、GPLライセンス化ソフトから動作するとしても、スプリクトやデータにはGPLの影響が無い」です。
GPLなソフトとくっつけるのに考えないといけないのは、バイナリのライブラリ、つまり拡張ライブラリに限ります。
作成したゲームは「ライブラリ」ではなく、「アプリケーション」なので、作ったソフトをGPLで配布する義務の適応外と考えています。

そして、アプリケーションのライセンスは、「ランタイム(ここで言うと、Miyako全部入りパック)」とは別の構成で配布することで(たとえば、ダウンロード・CD-ROM配布のとき、別々の"ファイル"として配布)、GPLとは違う別の(GPL非互換でも可)ライセンスでも問題ないでしょう。

ですので、スクリプトの暗号化(ASCIIで出力されるものならベターですね)も可能と考えています。

しかし、Miyako全部入りパックと、製作したゲームとを一緒のアーカイブにして配布するとGPLが適応されると誤解される恐れがあるため、別々に配布した方が誤解が少ないでしょう。

結論としては

いちばんGPLに見合った配布方法は、

Miyako全部入りパックを「ランタイム」として配布、そこで動作するゲームを「ゲーム本体」として配布

だと考えています。

ツクーラーの方なら、RPGツクール製のゲームは、別途RTPのインストールをしなきゃならないというの思い出していただけたらと思います。

(参考)
GPL:
http://www.opensource.jp/gpl/gpl.ja.html
http://ja.wikipedia.org/wiki/GNU_General_Public_License

LGPL:
http://www.opensource.gr.jp/lesser/lgpl.ja.html
http://ja.wikipedia.org/wiki/LGPL

MITライセンス:
http://sourceforge.jp/projects/opensource/wiki/licenses/MIT_license
http://ja.wikipedia.org/wiki/MIT%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9

Ruby'sライセンス:
http://www.ruby-lang.org/ja/LICENSE.txt

とりさんのソフト屋さん
http://soft.fpso.jp/it/entry_1931.html

成瀬さんのTwitterでの返答
http://twitter.com/nalsh/status/10718480925
http://twitter.com/nalsh/status/10718540376

最後に

このまとめは、これまでの情報を元にしたものです。もし、間違いがございましたら、コメントやメールでご連絡お願いいたします。

【補足】Ruby'sライセンスとGPL互換のライセンスの環境・ライブラリ同士と組み合わせるとどうしてGPLになるの?

Ruby'sライセンスは、「まつもとさんのオリジナルライセンス」とGPLとのデュアルライセンスです。
ここで気をつけないと行けないのは、Free Software Foundation(FSFGPLの親玉)がRuby'sをGPL互換と決めているのは、
この「デュアルライセンス」という点です。オリジナルライセンスの方は、GPL非互換と考えられています。

そのため、Ruby'sライセンスとGPL互換のライセンスの環境・ライブラリと組み合わせたとき、消去法で、GPL+GPL互換ライセンスの組み合わせになり、結果として、できたソフトはGPLとなるわけです。

【参照】
http://www.gnu.org/licenses/license-list.html
(「License of Ruby」の項目です)