Mutt 1.4.2.1i-ja.1 を Debian GNU/Linux 用のパッケージにしました。
Mutt の一般的な情報は、本家(www.mutt.org) や、ja パッチ配布元(www.emaillab.org) から辿ってください。
安定版(Mutt 1.4.x) を使う場合は、以下のapt line を/etc/apt/sources.list に追加してください。
# for mutt-j 1.4.x deb http://www001.upp.so-net.ne.jp/mab-jp mutt14/ #deb-src http://www001.upp.so-net.ne.jp/mab-jp mutt14/
開発版(Mutt 1.5.x) を使う場合は、以下のapt line を/etc/apt/sources.list に追加してください。
# for mutt-j 1.5.x deb http://www001.upp.so-net.ne.jp/mab-jp mutt15/ #deb-src http://www001.upp.so-net.ne.jp/mab-jp mutt15/
その後、「apt-get update && apt-get install mutt-j」 を実行すれば、 必要なライブラリと共にインストールできます。
なお、source パッケージをapt-get するには、「deb-src」の行を有効にしてください。
個々のファイルが必要な場合は、ファイルの一覧からダウンロードできます。
環境変数 LANG、$HOME/.signature の文字コード、エディタの文字コードは、とりあえずeuc
で統一しておきましょう。
環境変数 COLORFGBG="default;default"
を設定しておいたほうがよいでしょう。
「mkdir $HOME/tmp」しておく必要があります。(muttrc で設定してある場合)
個人の設定ファイルは、$HOME/.mutt/muttrc がよいでしょう。 最初は、/usr/share/doc/mutt-j/examples/sample.muttrc-tt 等を元に修正を加えていくと楽だと思います。
POP のパスワードを書いたファイルやアドレス帳は、別ファイルにして
「chmod 600」としておくべきです。
この場合、$HOME/.mutt/muttrc に「source $HOME/.mutt/aliases」
のように書いておきます。
個々の設定については /usr/share/doc/mutt-j/ 内の文書を参照してください。 日本語のマニュアルもあります。 まずは、/usr/share/doc/mutt-j/html/usage-japanese.ja.html に目を通しておきましょう。
自分の使っているmuttrc も参考にまでに。
以下は、パッケージを再構築する場合や自分でMutt をコンパイルする場合の関連情報です。 バイナリパッケージを使用する場合には気にする必要はないでしょう
ソースパッケージの3つのファイルを同一のディレクトリに置いて、 以下のようなコマンドを実行します。
% dpkg-source -x mutt-j_1.4.2.1-2.dsc % cd mutt-j-1.4.2.1 % dpkg-buildpackage -rfakeroot -us -uc
修正が必要な場合は、dpkg-buildpackage の前にやっておきます。
"-rfakeroot" のかわりに"-rsudo" とかでもOKです。
1つ上のディレクトリにdeb ファイルができているはずです。
参考:Debian 便利ワザ集
「5. とりあえずやってみよう - カスタムパッケージ作成」
( http://www.linux.or.jp/JF/JFdocs/debiantips.html#s5 )
mutt-j_1.4-2 からの主な変更点。
slang1-ja でなく、slang1-utf8 を使うようにした。 debian/rules で、./configure のオプションを修正し、 その後にMakefile、config.h を修正する処理を追加した。
slang1-ja を使う場合はパッケージの再構築が必要。
その際、debian/rules で、変数SLANG_NAME を「SLANG_NAME = slang-ja」
に設定する。
debian/control で、"Build-Depends: slang1-utf8-dev"、"Provides: mutt" を追加。
なお、Build-Depends の指定が不十分なため、必要なライブラリがインストールされていなくてもbuild できてしまうかもしれない。
/usr/bin/{pgpewrap,pgpring,smime_keys} を/usr/lib/mutt/ へ移動した。
$HOME/.mutt/muttrc でpgp 関連の変数を修正する必要があるかもしれない。
UTF-8 な環境でMutt を使ってみようと思って、slang1-utf8-dev パッケージを使ってMutt をコンパイルしてみましたが、若干苦労したので、注意点等を載せておきます。
なお、以下の修正は、mutt-j_1.5.x のdebian/rules に含まれています。
共有ライブラリ(libslang.so) の利用に関しては、問題はない。
slang1-utf8-dev パッケージをインストールし、./configure のオプション
"--with-slang" を指定すれば、/usr/lib/libslang.so
にリンクしてくれる。
ヘッダファイル /usr/include/slang.h の使い方には、少し工夫が必要。
2-a. 症状 :
slang1-utf8-dev とslang1-ja-dev の両方がインストールされたシステムで、 slang1-utf8-dev を使いたくてもslang1-ja-dev のslang.h をインクルードしてしまう
2-b. 原因 :
configure スクリプトは、(詳細な条件分岐を省略すれば、)/usr/include/slang/slang.h を見て、存在しなければ、/usr/include/slang.h を使うようになっている (たぶん)。
これに対して、debian では、slang1-utf8-dev は/usr/include/slang.h をインストールし、slang1-ja-dev は/usr/include/slang/slang.h をインストールする。
その結果、configure は、先に見つかった、/usr/include/slang/slang.h を使おうとしてしまう。
2-c. 対処法 :
make 時に「make "CPPFLAGS=-Iほげ -Iふが"」のようにするとか、あらかじめconfigure.in を修正してautoconf を実行するとか、いろんな方法が考えられるが、ここでは安直にMakefile を直接修正してみる。
CPPFLAGS、XCPPFLAGS
の「-I/usr/include/slang」を削除する。ソースツリー直下のMakefile を例にすれば、以下のような修正になる。
--- mutt-1.5.2.old/Makefile Sun Dec 22 21:46:27 2002 +++ mutt-1.5.2.new/Makefile Sun Dec 22 21:59:13 2002 @@ -146,7 +146,7 @@ -CPPFLAGS = -I/usr/include/slang -I$(top_srcdir)/intl -I$(includedir) +CPPFLAGS = -I$(top_srcdir)/intl -I$(includedir)
woody では、上記の修正をしても、make 途中でエラーで終了する。 これは、/usr/include/slang.h 使うためには、UTF8 をdefine しておく必要があるため。
この点についても、CFLAGS に"-DUTF8" を追加してmake
するとか、いろいろな方法で回避できるが、ここでは、config.h を直接修正してみる。
config.h に「#define UTF8 1」を追加すればよいので、以下のようなコマンドを実行すればOK。
% echo "#define UTF8 1" >>config.h
なお、sarge のslang1-utf8-dev に含まれるslang.h はUTF8 をdefine していなくても利用できるので、この修正は不要。
以上で修正はおしまい。あとは普通に、make、make install ができるはず。
上記の方法では、configure を実行するたびに、手作業でこれらの修正をしなければならない。 それが面倒な人は、以下のようなスクリプトを使えばよいだろう。
#!/bin/bash
for f in `find . -name Makefile -exec grep -l "include/slang" {} \;`
do
echo -n "fixing $f ..."
mv $f $f.bak
cat $f.bak | sed "s# -I/usr/include/slang##" >$f
rm -f $f.bak
echo "done."
done
echo -n "fixing config.h ..."
echo "#define UTF8 1" >>config.h
echo "done."