きりかノート 3冊め

おあそびプログラミング

port:ruby186のLeopard専用パッチ群について調べた

こいつらね。

 platform darwin 9 {
    patchfiles-append  dot-darwin.diff \
                       etc-irbrc.diff \
                       ignore-gsetcontext.diff \
                       md5_sha1_commoncrypto.diff \
                       use-dyld.diff \
                       use-setreugid.diff \
                       words-bigendian-from-arch.diff
 }

たぶん出自はAppleのパッチなのかな?

rdocの処理中で

 return if RUBY_PLATFORM =~ /win/

としている箇所で"darwin"がハマってしまう問題を修正するパッチ。1.8.7では修正済み。

  • etc-irbrc.diff

Macに最初から入っている/etc/irbrcをirbで読み込むようにする。必要かどうかはびみょう。

  • ignore-gsetcontext.diff

Macのgetcontext()/setcontext()があやしいので使わないようにするパッチ。1.8.7のpatch-node.h.diffと同じ。

利用可能なとき、opensslでなくのほうを使う。どっちが安全側かっていうとケースバイケースだなあ。ホントにこのパッチだけで足りてるのかちょっと疑ってる。

  • use-dyld.diff

不要になったので、こないだ削除した。

  • use-setreugid.diff

Leopard以降ではsetreuid()/setregid()を使うようにするパッチ。Snow Leopardで効いてないじゃん!1.8.7でも同様。

  • words-bigendian-from-arch.diff

see [ruby-dev:32160]WORDS_BIGENDIAN on Mac OS X。1.8.7では修正済み。

ということで、すべてLeopard限定である必要がないことがわかった。ちょっと週末まで寝かせて、もう1回確認したら通常のpatchfiles-appendにうつすよ。

パッチをPortfile中で追加している場合はコメントを書いてくれ。マジお願いします。