読者です 読者をやめる 読者になる 読者になる

Ruby1.9 on NetBSD

コンパイルしようとしていて、

making ruby
gcc -g -O2 -pipe  -Wl,-export-dynamic -L.   main.o  -lruby-static -lcrypt -lm   -oruby
./libruby-static.a(process.o): In function `p_sys_setruid':
/home/naruse/test/ruby/process.c:1997: warning: this program uses setruid(), which is deprecated.
./libruby-static.a(process.o): In function `p_sys_setrgid':
/home/naruse/test/ruby/process.c:2341: warning: this program uses setrgid(), which is deprecated.

setruidやsetugidは使っちゃダメって怒られた。

Index: process.c
===================================================================
RCS file: /var/cvs/src/ruby/process.c,v
retrieving revision 1.115
diff -r1.115 process.c
96a97,101
> #ifdef __NetBSD__
> #undef HAVE_SETRUID
> #undef HAVE_SETRGID
> #endif
> 

したら動くようになったよ。

やたーっ

って、動きはしたんだけれど、make installしたら、

Generating RI...
a/usr/home/naruse/ruby/lib/rdoc/ri/ri_writer.rb:51: warning: setvbuf() can't be honoured for /usr/local/share/ri/1.9/system/IO/readlines-i.yaml
/usr/home/naruse/ruby/lib/rdoc/ri/ri_writer.rb:51: warning: setvbuf() can't be honoured for /usr/local/share/ri/1.9/system/IO/rewind-i.yaml
/usr/home/naruse/ruby/lib/yaml/baseemitter.rb:135:in `gsub': failed to allocate memory (NoMemoryError)
        from /usr/home/naruse/ruby/lib/yaml/baseemitter.rb:135:in `fold'
        from /usr/home/naruse/ruby/lib/yaml/baseemitter.rb:67:in `node_text'
        from /usr/home/naruse/ruby/lib/yaml/rubytypes.rb:329:in `to_yaml'
        from /usr/home/naruse/ruby/lib/yaml/rubytypes.rb:307:in `call'
        from /usr/home/naruse/ruby/lib/yaml.rb:373:in `quick_emit'
        from /usr/home/naruse/ruby/lib/yaml/rubytypes.rb:307:in `to_yaml'
        from /usr/home/naruse/ruby/lib/yaml/baseemitter.rb:181:in `map'
        from /usr/home/naruse/ruby/lib/yaml/baseemitter.rb:170:in `each'
         ... 29 levels...
        from /usr/home/naruse/ruby/lib/rdoc/generators/ri_generator.rb:84:in `each'
        from /usr/home/naruse/ruby/lib/rdoc/generators/ri_generator.rb:84:in `generate'
        from /usr/home/naruse/ruby/lib/rdoc/rdoc.rb:269:in `document'
        from ./bin/rdoc:63
Error code 1
Stop. make: stopped in /usr/home/naruse/ruby
って言われたよ、、むぅ。 今までは単体でnkfのテストをしていたけれど、 さすがにコミットするには全体テストしたいからなぁ・・・。 どうしたものか。 散々当り散らして、不貞寝した挙句、やっと思い切ってRDocをインストールしないようにしたら、 とりあえずインストールできるようになった。 ふぇ。 今日の教訓: ruby-1.6.8は忘れず消そう。 追記: これは、メモリが足りない&RDocメモリ喰いすぎ、が原因らしい そうそう、Ruby1.9はbison必須なので、その辺も注意。