daily memorandum 2.3.0

CBUG | FreeBSD | Hiki | Knoppix | Mac | Ruby | W-ZERO3 | Windows | ad | amd64 | ks | linux | momonga | net | print | security | tdiary | unix | www | 会社 | 鯖缶 | 全学ゼミ |

Apple Store(Japan)

2007-08-07 (Tue)

_ [FreeBSD] 久し振りに portupgrade いぢってみたよ

devel/cvs2cl を upgrade しようとしたら、 ナゾのエラー で portupgrade がコケてくれた。 久し振りにコード追う気力があったので(現実逃避とも言うが) ちょいと追ってみることにする。

結局、原因は

  1. checksum mismatch になったファイルは refetch しようとするのだが、この時なぜか $fetch_cmd から /[Rr]/ が消されてる…
  2. checksum mismatch になったファイルを探すために build log を parse するのだけど、ログのフォーマットが変わってるのでマッチしない。

という感じでした。サクッと直して send-pr, といきたかったのだが、 PR文書くのに何のかんので小一時間かかるのね… (ちゃんと出したけど)。

portupgrade って make の出力に結構依存してて(たしか)、 メッセージのフォーマット変わると挙動が変わって/動かなくなってもおかしくないのよねぇ。 あまり幸せな話じゃないのだが、そこを気にしてると 「bsd.port.mk を ruby で再実装!」ってな話になるわけで…