[Momonga-devel.ja:01531] Re: OmoiKondara のエラー


かずひこです。

At Sun, 30 Mar 2003 00:34:39 +0900,
NARITA Koichi wrote:

> 2〜3日前から、OmoiKondara を実行しようとすると、下記のエラーを吐
> いて止まってしまいます。
> 
>  number of specfiles: 1312
>  scanning specfile: 39%../tools/updatespecdb:139: [BUG] Segmentation fault
>  ruby 1.6.8 (2002-12-24) [i586-linux]
>  Aborted

pkgs/.specdb を消していつものように ../tools/OmoiKondara -sS とすると手
元でも再現しました。でも '-s' だけとか '-S' だけとか '-s -S' とかだと再
現しないなど、いまいち原因不明です。

> 念のために、tools 以下と pkgs 以下をすべて取得し直しても同様です。

pkgs をすべて取り直すと、*/*.spec のタイムスタンプがすべてその時点のもの
になり、SRPM とタイムスタンプを比較してビルドするか Skip するか決める現
在の OmoiKondara の仕様では、すべてリビルドするはめになってしまいます。

もし、既存の SRPM をもとにタイムスタンプつけ直すなら、(PKGS の位置とかは
適当に読み替えてください)

cd pkgs
for i in ~/PKGS*/SRPMS/*.rpm
  do touch -r $i `echo $i|ruby -n -e 'puts(split(/-/)[0..-3].join("-").gsub(/.*\//,""))'`/*.spec
done
../tools/delobso.rb     # で、古いバイナリや SRPM を消す

でいけると思います (ruby 部分は zunda さんに感謝)。delobso.rb をしないと、
既存の SRPM とは別の ver とかrel にあがっている spec も SKIP されてしま
いますのでご注意を。

# というか、delobso.rb はその時点の pkgs からはできないはずのバイナリお
# よびソース RPM と、ソースファイルを消してくれるツールです。

なお、もしこのあたりの ruby 系ツールが SEGV ったときは、
ruby -d ../tools/OmoiKondara
みたいに、debug モードで実行してみると有益な情報が得られるかもしれません。
-- 
かずひこ <http://www.fdiary.net/~kazuhiko/diary/>
  ★シャア「名字が付いてない」
  ☆一兵卒「あんなの飾りです。偉い人にはそれが分からんのです」