2007年3月7日水曜日

Mutt 1.5.14 のビルド [mutt]

私は家でも会社でも,Mutt というメールクライアントを愛用している.

今まで様々なメーラーを試したが,カスタマイズ性が非常に高く,痒い所に良く手が届く Mutt が,個人的には一番手に馴染む.というか,CUI 前提の Vimmer が大量の未読メールを毎日さばく効率を考えると,他に選択肢が無いのが現状だ.

ちなみに "mutt" というのは雑種犬のこと.その名の通り,他の様々な MUA を参考に良い所が取り込まれており,

All mail clients suck, this one just sucks less

という心憎いスローガンを打ち出している.

最近,Mutt の開発リーダーが交代し,長年拒否され続けていたパッチが取り込まれたり,新バージョンの 1.5.14 がリリースされるなど,動きが活発になっている模様.
ぞえ の戯れ言 - BrendanがMuttの開発リーダーに

実際に Mutt を初期導入する場合には,libiconv や glibc 2.2 以降などの iconv,S-Lang などの curses ライブラリ,さらに MTA などが必要になるが,今回はひとまず Mutt を 1.5.14 にアップデートした時の作業記録を残しておく.


まずは ここ からソースコードと日本語パッチを取得.

$ wget http://www.emaillab.org/mutt/1.5.14/mutt-1.5.14.tar.gz
$ wget http://www.emaillab.org/mutt/1.5.14/patch-1.5.14.mutt-j.ja.1.gz

さらに このあたり から好きなパッチを取得.既に header cache, mutt thread, attach count などの超便利パッチは本線に取り込まれている.私は maildir mtime,trash folder,purge message,pattern broken を組み込んでいる.
$ wget http://www.mutt.ca/patches/patch-1.5.6.dw.maildir-mtime.1
$ wget http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.trash_folder.3.4
$ wget http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.purge_message.3.4
$ wget http://cedricduval.free.fr/mutt/patches/download/patch-1.5.1.cd.pattern_broken.1

ソースコードを解凍して,パッチをあてる.
マニュアルに対して No file found となったものは全てスキップ,rej されたパッチは手で修正.
$ tar xzvf mutt-1.5.14.tar.gz
$ cd mutt-1.5.14
$ patch -p1 < ../patch-1.5.6.dw.maildir-mtime.1
$ patch -p1 < ../patch-1.5.5.1.cd.trash_folder.3.4
$ patch -p1 < ../patch-1.5.5.1.cd.purge_message.3.4
$ patch -p1 < ../patch-1.5.1.cd.pattern_broken.1
$ gzcat ../patch-1.5.14.mutt-j.ja.1.gz | patch -p1

configure して make して make install で終了.
$ CFLAGS="-O2 -I/usr/local/include -I/usr/pkg/include -I/usr/pkg/xorg/include -I/usr/include -I/usr/pkg/include/db4"
$ LDFLAGS="-L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/pkg/xorg/lib -Wl,-R/usr/pkg/xorg/lib -L/usr/lib -Wl,-R/usr/lib"
$ export CFLAGS LDFLAGS

$ ./prepare && ./configure \
--enable-pgp \
--with-regex \
--with-homespool=Maildir \
--enable-external-dotlock \
--enable-pop \
--enable-imap \
--with-ssl \
--enable-flock \
--disable-fcntl \
--enable-nfs-fix \
--enable-nls \
--without-wc-funcs \
--with-mixmaster \
--without-sasl \
--enable-default-japanese \
--enable-hcache \
--with-libiconv-prefix=/usr/pkg \
--with-slang

$ make && sudo make install
configure オプションはお好みで.
ちなみにこれは,NetBSD 3.0,(libslang 1.4.9nb5,libiconv 1.10nb3) という環境だが,Linux や Mac OS X の場合は CFLAGS,LDFLAGS の明示的な指定はおそらく不要.--with-libiconv-prefix の値は環境に合わせて変えること.


ところで私は,Mutt 1.5.11 からのアップデートだったが,その時はパッチとしてあてていた attach count が,本線に取り込まれて設定方法が変わったようだ.

muttrc の
set             attach_ignore_fundamental
set             attach_recurse
attach-allow    */.*
attach-exclude  text/x-vcard application/pgp.*
attach-exclude  application/x-pkcs7-.*
inline-allow    text/plain
attach-exclude  message/external-body
inline-exclude  message/external-body
という記述で起動時にエラーが吐かれていたが,
attachments     +A */.*
attachments     -A text/x-vcard application/pgp.*
attachments     -A application/x-pkcs7-.*
attachments     +I text/plain
attachments     -A message/external-body
attachments     -I message/external-body
みたいに書きかえたら動くようになった.


0 コメント: