rb19-rcairoをつくった
MacPortsのport:ruby19の作業の際に、拡張ライブラリのコンパイルを確認しようとしたら既存のrb19-*がすべてgemという信じられない事実が判明したりした。1.9.2が出たら自分のRabbit環境を1.9.2にしようと思っていたのでどうせ自分用に使うし、ということでrcairoのport、rb19-rcairoをつくることにした。
すでにport:rb-modnameがある場合、ruby1.9系に対応させるのは簡単だ。
これだけ。
特にコンパイルはエラーもなかったのだけど、使ってみようとすると"cairo.so"がないとか言われる。調べてみると、cairo.bundleが
x86_64-darwin10/src/cairo.bundle
としてインストールされていることがわかった。"src"って?
ruby-1.8.7でつくったときと比べたりしてみるとMakefileのインストール処理がびみょうにちがっている。1.9.2でmkmf.rbが変更された影響だ。
@@ -1682,8 +1803,8 @@ mfile.print "\t@-$(RM) #{fseprepl[dest]}\n" mfile.print "\t@-$(RMDIRS) #{fseprepl[dir]}\n" else - mfile.print "#{dest}: #{f}\n" - mfile.print "\t$(INSTALL_PROG) #{fseprepl[f]} #{fseprepl[dir]}\n" + mfile.print "#{dest}: #{f}\n\t@-$(MAKEDIRS) $(@D#{sep})\n" + mfile.print "\t$(INSTALL_PROG) #{fseprepl[f]} $(@D#{sep})\n" if defined?($installed_list) mfile.print "\t@echo #{dir}/#{File.basename(f)}>>$(INSTALLED_LIST)\n" end
状況をだいた把握したものの、どう直せばよいのかはわからないので開発者の人(すとうさん)に連絡した。あっというまに「直しました!」との連絡がきたので、その修正をパッチにしてportに追加。
ということで、port:rb19-rcairoが使えるようになりました。