きりかノート 3冊め

おあそびプログラミング

続・ruby-1.8.6-p110 で bridgesupport の生成に失敗する(解決編)

ruby-1.8.6-p110 で bridgesupport の生成に失敗するの続き。どうにか解決できたっぽいので、[rubycocoa-devel:1222]として投げた。

原因は Ruby の REXML ライブラリの変更によるもの。Ruby 1.8.6 の p40 で lib/rexml にわりと変更がはいって、それに追従できていない。

  1. [ruby-dev:32040]
  2. REXML::Element#add_attribute の値が文字列じゃないといけない。元々 API の仕様はそうなんだけど、これまでなんとなくうまく変換されていた。現在は、true/false/数値 がアウト。
  3. REXML::DocType の DTD ファイルの場所が normalize されるようになった。そのため、今までダブルクオートでくくって渡していたものがエスケープされてアウト。

これらを解決するよう修正を入れて、ローカルで検証。以下の方法で生成した bridgesupport がすべて一致すること(diff -urw)を確認した。

なかなか Leopard でのプログラミングお楽しみ会は遠いねえ。

その後の経過(2007/11/04 追記)

  • BridgeSupport は r16 で修正された。Laurent 仕事はええな。
  • macports ruby はチケット#13135を投げた。コミットされるといいなあ。