gonzui-0.9がリリースされて、perl対応となったのですが自分の環境でインストールすると動かない。下記のようなエラーが出る。
% ./gonzui-import --cvs :pserver:foo@cvs.example.com:/usr/local/share/CVS module-name
./gonzui/fetcher.rb:264:in `get_extractor': undefined method `assert_non_nil' for # (NoMethodError)
from ./gonzui/fetcher.rb:33:in `new'
from ./gonzui/importer.rb:56:in `import'
from ./gonzui-import:119:in `import'
from ./gonzui-import:143:in `do_start'
from ./gonzui-import:142:in `each'
from ./gonzui-import:142:in `do_start'
from ./gonzui/cmdapp/app.rb:140:in `start'
from ./gonzui/cmdapp/app.rb:166:in `start'
from ./gonzui-import:152
なんでだろうとrubyのソースを必死こいて解析してみたら、下記のgonzuiの0.8と0.9の修正が問題みたい。
diff -u gonzui-0.8/gonzui/cmdapp/app.rb gonzui-0.9/gonzui/cmdapp/app.rb
--- gonzui-0.8/gonzui/cmdapp/app.rb Thu Mar 3 19:51:18 2005
+++ gonzui-0.9/gonzui/cmdapp/app.rb Mon Mar 21 02:35:31 2005
@@ -15,9 +15,9 @@
$KCODE = "u"
module Gonzui
- include Util
-
class CommandLineApplication
+ include Util
+
def initialize
@config = Config.new
@@ -71,7 +71,7 @@
def show_usage
do_show_usage
cache_size = @config.db_cache_size / 1024 ** 2
- puts " --gnozuirc=FILE specify alternate run control file"
+ puts " --gonzuirc=FILE specify alternate run control file"
puts " --dump-config dump configuration"
puts " -d, --db-dir=DIR use DB directory DIR"
puts " --db-cache=NUM use NUM megabytes of DB cache [#{cache_size}]"
この中で問題なのは、include Utilの位置が変っているところです。自分の環境(FreeBSD 4.9-RELEASE-p9, ruby 1.8.2 (2004-12-25) [i386-freebsd4])では、gonzui-0.8の位置でないと動かなかったです。rubyをよくわかってないのでアレですが、たぶんincludeする位置が実行しているプログラムから読めない部分に移動しちゃったので関数がロードできないんだろうと思います。自分の環境が特殊なのか、他の問題なのかわからない…。そして、この修正はたぶんなにかのバグを修正するために0.9でこうなったのだと思うのだけど、それを直してしまっていいのかの判断もつかず(笑)
とりあえず、こういう問題があったということで。