[俺日記]

qmail on Panther / 2003-11-14 (金)

DJB絡みでもう一つ書いておくか。
qmailをPantherでコンパイルするとき、dns.cのコンパイルで失敗する。dns.cで前提としているarpa/nameser.hの中身が変わっているせいだ。
例えばmaximum packet sizeとしてarpa/nameser.hで定義されているNS_PACKETSZだが、以前はNS_が付いていなかった。名前が変わったせいで例えば『PACKETSZは定義されてないよー』ちうエラーが出ていた訳だ。
で、回避する方法だけど、2つある。手動で直すのと、パッチを当てるの。
パッチはこれ。Panther専用である。Jaguar用には別のパッチがある。今回Panther用のパッチを作るにあたり、Makefileの行数を変えないように努力してみた(そのせいで汚くなってるけど)。Jaguar用のパッチもそのようにしてみたので、qmail-smtp-relay-rejectとかqmail-date-local.patchとか当てる/外す時も順番を気にしなくても多分大丈夫なはず。
なお、panther.patch・jaguar.patchとも、DNSレスポンスのパケットサイズが512バイトを超える場合にハングアップする不具合を回避するよう、dns.cのPACKETSZではなく65535をいう数を使うようにしてある。この回避策も場当たりだなぁ........