[Momonga-devel.ja:02202] OmoiKondara のマクロ展開時の挙動について


吉田です。

alpha cpu マシンで OmoiKondara を動かしています。
うちの環境だけで起こることかもしれませんが、OmoiKondara の問題では
ないかと思いますので報告致します。

OmoiKondara でビルド実行中に、ruby がループに入っているような挙動
(CPU を 100% 使ってしまう)が起こって、ビルドが進まなくなることが
ありました。特定のパッケージによって起こり、計50パッケージほどで
起こります。ver.1.121 以前の OmoiKondaraでは発生せず、ver.1.122 以降
で発生します。

止まってしまうパッケージの spec ファイルを見ると、タグ名と同じ名前の
マクロがありました。例えばこんな感じです。
    %define name hoge   <== タグ名(Name)と同じ名前のマクロ(name)
    %define version 1.0
    %define release 1m
    Name: %{name}
    Version: %{version}
    Release: %{release}

これを、
    %define myname hoge
    %define myversion 1.0
    %define myrelease 1m
    Name: %{myname}
    Version: %{myversion}
    Release: %{myrelease}
とマクロ名を変更したり、または直接、
    Name: hoge
    Version: 1.0
    Release: 1m
としたりすると正常にビルドできました。

OmoiKondara の strip_spec() の2行目くらいの所で spec.scan して macro[]
にマクロを読み込んでいますが、マクロ名がタグ名と同じだった場合、これを
16行目くらいの所で上書きしてしまっているのではないでしょうか。
ruby を読むのは初めてですので、間違えていましたら申し訳ありません。

以上、よろしくお願い致します。