スターターキットとライセンスの話

yhara氏が作ってくれたDXRubyスターターキットの1.0.4版を作っている。
構成は、arton氏のRuby1.9.1-p129+Win32API+DL+DXRuby1.0.4+DXRubyExtension0.0.5。
これならvox.rbやbass.rbも後付けで呼び出しができる。
あと、こんなのも入ってると嬉しいなーと思うものがあればコメントでどうぞ。


Ruby1.9.1はエンコードの指定をしないと全角文字(って言えばいいのかな)が使えないわけだが、ocraで固めてmain.rbを呼び出す形式の場合、最初に起動されるスクリプトはexe内のものになる。
main.rbにcoding : SJISとか付けとけばいいんだろうが、Rubyの説明記事でこれが絶対最低限必要なものである、というほど強調されているわけではないから、Ruby初心者/Ruby1.9.1初心者なら恐らく確実にハマる。
そこで、DXRubyスターターキットではexe内のスクリプトの先頭に#!ruby -Ksを付けることにした。
どのみちDXRubyはSJIS用だし、これで一般的なWindowsユーザーは違和感なく使うことができるはずだ。
Ruby1.9的には、使う全員がエンコードをきちんと理解することを前提にしたいのだろうが、俺はスターターキットでRubyを始める人には敷居が高いと考える。
まあ、Rubyは初心者にターゲットを絞った言語ではないから、そういうことはそのような人をターゲットにするものを作る人が考えることなのだと思う。
スターターキットを卒業してRuby1.9.1を使おうとするとハマるかもしれないが、その頃には調べて解決できるレベルに少しは近づいているだろう。


RubyのライセンスはRubyライセンスとGPLのデュアルライセンスとなっているが、組み込まれているモジュールやらなんやらでそれぞれ別のライセンスになっていたりする。
一番困るのはwin32.c[h]がRubyライセンスを採用していないことだ。
そうなると、mswin32のRubyRubyライセンスにならない。
なんか知らないライセンスとGPLのデュアルライセンスになってるから、例えばarton氏のRuby1.9.1はGPLを採用しているらしい。
そうなると今度は、それを組み込んだexeファイルのライセンスはGPLにしないといけなくなり、これがいわゆるGPLの感染というやつである。
yhara氏が作ってくれたdxkit1_develにはexeに組み込むスクリプトと、サンプルのスクリプトが付いている。
ライセンスの考え方からすると、これら全てがGPLと互換性のあるライセンスを採用していないといけないことになる。
dxkit1_develにはライセンス条項が何も書かれていないので、恐らくNYSLとか、パブリックドメインとか、そんな話になってくるのだろうとは思うが、決め付けるわけにもいかないから問い合わせ中だ。
なにより修正しちゃったし。
同一性保持権に引っかかってしまうから、そういうものを配布する場合には許可がいる。
それを自動的に許可するのがライセンスというものなのだ。
んで、exeがGPLになるということは、dxkit1_develの修正版も同時に公開しとかないといけない。
使う人いないとは思うけど。


ところでGPLになるのはGPLのものを含んだexeだけで、同梱するmain.rbのサンプル(これも修正しちゃった)や、画像ファイルはそうはならない。
それから、ユーザーが作ったゲームスクリプトもそうはならない。
GPLは感染するものだが、そのあたりを誤解してる人は意外に多そうだから、これについてはきちんとマニュアルに書いておかないといけない。


ものとしては既にできあがってて、すぐにでも配布できる状態だが、ライセンス関連をいい加減にしたままリリースするわけにもいかないから、そのへんが解決したらリリースしよう。