俺だけのために Ore! Tips!

qmail インストール後に localtime パッチを当てる

2001年10月29日 作業

qmail(MTA) は、MUA 側で Date をセットしなかった場合に UTC(世界標準時)で Date を補完してくれる。
そうすると、中にはお馬鹿なメールクライアントソフトがあって、それをそのまま送信時間として表示しちゃったりするんだよねえ。そしたら日本時間と比較して 9時間早い時間が表示されちゃうから、混乱しちゃう人もいるんだねえ。

これがいやな人は、qmail にローカルタイム(日本時間等)をセットするようパッチをあてるしかない。

日本時間(JST)での Date は↓こんな感じ。
Date: Mon, 29 Oct 2001 00:29:22 +0900
世界標準時(UTC)より 9時間遅れだから +0900 というのが付く。
これが、世界標準時だったら、
Date: Mon, 28 Oct 2001 15:29:22 +0000
となるわけ。

わざわざ +0000 とか +0900 って付いてるんだから、まともなメールクライアントなら時間を調整して(日本時間に統一するなどして)表示してくれるし、大概の MUA は自分で送信時間をセットするから(それも大概 JST で)、別にわざわざ qmail にパッチあてなくても・・・と個人的には思うのだが、中には MUA 側で Date をセットしないように出来るソフトを使っている人も居て(日付は MAT 側で付けるのが正当と思っている人たち)、で、素のヘッダ部に +0000 な時間がセットされていたら生理的に許せなかったり・・・ということもあるので、時には qmail の運用をスタートさせたあとで、改めてローカルタイムセット用のパッチをあてる必要が出てくるのだ。


1.qmail のソース展開先に移動し、パッチを当てる。

serv1# cd qmail-1.03
serv1# make clean ←まあ、しなくてもいいけど。
rm -f `cat TARGETS`

 ↓パッチ当て
serv1# cp ../qmail-date-localtime.patch .
serv1# patch < qmail-date-localtime.patch
Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|This patch causes the various qmail programs to generate date stamps in
|the local timezone. I find GMT too annoying to convert from/to. I make
|no warranties that it will work in your timezone, however it works for me.
|
|Works with qmail 1.01 to 1.03.
|
|To apply this patch, cd into the qmail source directory and type...
| patch -s -p1 < patch-to-patch-file
|
|--- qmail-1.03.orig/date822fmt.c Tue Apr 15 15:05:23 1997
|+++ qmail-1.03/date822fmt.c Fri Apr 18 00:39:41 1997
--------------------------
Patching file date822fmt.c using Plan A...
Hunk #1 succeeded at 1.
Hunk #2 succeeded at 13.
done



2.パッチの当たったソースで再 make

serv1# make
( cat warn-auto.sh; echo CC=\'`head -1 conf-cc`\'; echo LD=\'`head -1 conf-ld`\' ) > auto-ccld.sh
cat auto-ccld.sh make-load.sh > make-load
chmod 755 make-load
cat auto-ccld.sh find-systype.sh > find-systype
<略>
chmod 755 binm3
cat binm3+df.sh | sed s}QMAIL}"`head -1 conf-qmail`"}g > binm3+df
chmod 755 binm3+df

 ↓念のため、下の2つのプログラムを他の場所に保管
serv1# ls -la /usr/local/bin/pop3-record
-rwxr-xr-x 1 root wheel 169 Mar 10 2003 /usr/local/bin/pop3-record
serv1# ls -la /usr/local/bin/age-smtp
-rwxr-xr-x 1 root wheel 189 May 9 20:00 /usr/local/bin/age-smtp
serv1# cp /usr/local/bin/pop3-record ~shinoda
serv1# cp /usr/local/bin/age-smtp ~shinoda

インストールを行うが、
serv1# make setup check
nroff -man qmail-local.8 > qmail-local.0
nroff -man qmail-lspawn.8 > qmail-lspawn.0
<略>
nroff -man forgeries.7 >> forgeries.0
./install
install: fatal: unable to write .../bin/qmail-lspawn: text busy
*** Error code 111

Stop in /usr/local/src/qmail-1.03.

qmail を実行したままだと、ここで失敗する。
qmail を止めて、もう一度実行

serv1# ps -ax|grep qmail
141 con- I 4:58.89 qmail-send
143 con- IW 0:00.00 /usr/local/bin/tcpserver -R 0 pop3 /var/qmail/bin/qmail-popup serv1.chupe
146 con- I 1:43.58 splogger qmail
147 con- I 0:09.61 qmail-lspawn ./Maildir/
148 con- I 0:47.96 qmail-rspawn
149 con- I 0:21.65 qmail-clean
serv1# ps -ax|grep tcpserver
142 con- I 0:01.86 /usr/local/bin/tcpserver -R -x /etc/tcp.smtp.cdb -u 81 -g 81 0 smtp /var/
143 con- IW 0:00.00 /usr/local/bin/tcpserver -R 0 pop3 /var/qmail/bin/qmail-popup serv1.hogeh
serv1# make setup check
./install
./instcheck

OK!!

本来ならここで ./config を実行するのだが、既に作成しているコンフィグファイルをそのまま利用するので行わない。
なので、そのまま qmail 起動!


3.新しいプログラムを実行!

serv1# /var/qmail/rc
serv1# ps -ax|grep qmail
1771 p0 S 0:00.01 qmail-send
1773 p0 S 0:00.00 /usr/local/bin/tcpserver -R 0 pop3 /var/qmail/bin/qmail-popup serv1.hogeh
1774 p0 S 0:00.00 splogger qmail
1775 p0 S 0:00.00 qmail-lspawn ./Maildir/
1776 p0 S 0:00.00 qmail-rspawn
1777 p0 S 0:00.00 qmail-clean
serv1# ps -ax|grep tcpserver
1772 p0 S 0:00.00 /usr/local/bin/tcpserver -R -x /etc/tcp.smtp.cdb -u 81 -g 81 0 smtp /var/
1773 p0 S 0:00.00 /usr/local/bin/tcpserver -R 0 pop3 /var/qmail/bin/qmail-popup serv1.hogeh


前ページに戻る


Copyright (C) 2003-2004 S.Maaasamasa.