小松です。

In the message of [ruby-list:17446] Re: Kconv について
    on 1999/10/6 12:58:30 Katsuyuki Komatsu <komatsu / sarion.co.jp> wrote:
||再インストールして、 情報を整理してメールしたいと思ってるところです。
|
|なんなら、scriptで全部ログを取って私宛にメールしていただいても
|かまいませんです。

この件に関して、関口さんからログをいただいて、ログを元にいくつか
確認していただいたところ、OSのfnmatch()の仕様が期待した通りで
なかったためということが分かりました。
テストのため、
    ruby -e 'for d in Dir["/tools/ruby/ruby142/ruby-1.4.2/ext/*"]; print d, " ", File.directory?(d), " ", File.file?(d + "/MANIFEST"), "\n"; end'
を実行してもらったところ、何も出力されなかったそうです。

このため、missing/fnmatch.cの方を使うようにしていただいた所、拡張
ライブラリも作られるようになりました。

ということで、
    ruby 1.4.2 (1999-09-18) [sparc-uxpds]
の方は、
    mv MANIFEST MANIFEST.dist
	# /tools/ruby/ruby142/ruby-1.4.2/ext/../MANIFESTにマッチして
	# しまうのを避けるため、名前を変えておく。
    ./configure
	# ここでMakefileの
	#   MISSING =  flock.o isinf.o
	# を
	#   MISSING =  flock.o isinf.o fnmatch.o
	# に変更する。
    make
    make test
    make install
としてください。

で、ext/../MANIFESTにマッチしないようにするため、ext/extmk.rb.inを
以下のように変更する必要があると思います。

diff -ru2pN ruby-1.4.2.dist/ext/extmk.rb.in ruby-1.4.2/ext/extmk.rb.in
--- ruby-1.4.2.dist/ext/extmk.rb.in	Wed Aug 18 16:51:30 1999
+++ ruby-1.4.2/ext/extmk.rb.in	Fri Oct 15 16:17:31 1999
@@ -605,4 +605,5 @@ for d in Dir["#{$top_srcdir}/ext/*"]
   
   d = File.basename(d)
+  next if d == "." or d == ".."
   if $install
     print "installing ", d, "\n"

Ruby 1.2.6でうまくいっていたのは、fnmatch()は常にruby独自のものを
使うようになっていたからのようですね。

Ruby 1.4.3では、ぜひとも[ruby-dev:7891]に出ているようにfnmatch()を
専用化してdir.cに組み込む件を実現して欲しいと思います。

--
小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>