#
Last-modified: Wednesday, 02-Apr-2003 02:11:59 JST
[
トップページ/
いとしの liza (SL-C700 のページ)/
Mutt と仲間たち/
ウクレレ日記
]
2003-04-01 ♪きむらかずし kimu*st.rim.or.jp
Mutt と仲間たちを公開し、 LinuxZaurus での Mutt ユーザが増えはじめたかな〜と思ったら、 mutt 1.4 のセキュリティ問題で zaurus-ja での公開がとりやめになってしまいました。 これを機会に、セキュリティ強化版 mutt 1.4.1 に、 日本語パッチ mutt-1.4.1i-ja.1 を当てた mutt を作ってみることに。 日本語パッチの拡張機能で、より文字化けに強くなったり、 添付ファイル名の日本語表示等が可能になるはず。
しかしこれがまたイバラの道だったのです……。
ふつーの UNIX っぽく /usr/local 以下につくりました。 なので zaurus-ja 版と平行運用も可能です。 ユーザ設定である ‾/.mutt/muttrc は共通で使えます。
mutt-1.4.1i-ja.1-liza-exec.tar.gz
-rwxr-xr-x root/root 737020 2003-03-31 23:33 usr/local/bin/mutt lrwxrwxrwx root/root 0 2003-03-29 14:15 usr/local/lib/libiconv.so -> libiconv.so.2.1.0 lrwxrwxrwx root/root 0 2003-03-29 14:15 usr/local/lib/libiconv.so.2 -> libiconv.so.2.1.0 -rw-r--r-- root/root 893852 2003-04-01 14:37 usr/local/lib/libiconv.so.2.1.0 -rw-r--r-- root/root 2476 2003-04-01 14:14 usr/local/etc/Muttrc -rw-r--r-- root/root 722 2003-03-29 05:53 usr/local/etc/mutt-ja.rc
すみません、 SL-C700 を 1 台しか持っていないので、これだけでインストール できるかどうか検証していません (^^;
$ su # cd / # tar zxvf mutt-1.4.1i-ja.1-liza-exec.tar.gz 以下は共有ライブラリ libiconv を認識させるおまじない。 # vi /etc/ld.so.conf /lib /usr/lib /home/QtPalmtop/lib /usr/local/lib ↑最後の一行を追加する。 # ldconfig -v
ちゃんとまとめる時間がないので、とりあえずメモだけ公開します。 かなり適当なので、恐いと思った人は自分で作り直した方がいいでせう。
*** gcc セルフ開発環境のマウント
$ vi /usr/local/bin/mountdev
#!/bin/sh
mount -o loop,rw -t cramfs /mnt/card/dskimg/dev_img-1.3 /usr/local/dev
$ su
# mountdev
*** swap
swap は合計 64MB 程度、用意したい。
*** 共有ライブラリの位置に /usr/local/lib を追加
# vi /etc/ld.so.conf
/usr/local/lib
↑追加
以降、ライブラリを追加したら、下記のを実行のこと。
# ldconfig -v
*** TMP を SD カードに設定
gcc が使う一時領域を SD カードにもってゆく。
$ mkdir /mnt/card/tmp
$ vi .bashrc
TMP=/mnt/card/tmp
export TMP
↑追加
*** /tmp を 3MB にする
gcc 以外のスクリプト等が /tmp を溢れさせることがあるので、
# cd /root/etc/rc.d
# mount -o remount,rw /
# cp rc.rofilesys rc.rofilesys-orig
# vi rc.rofilesys
:1,$s/1m/3m/
再起動すると...
/tmp が置かれる /dev/shm が 3072 KB になっている。
*** /usr/local/include を用意する
各種ライブラリの make install がうまくゆかないので、
include を外に。
# cd /usr/local
# rm include ←シンボリックリンクを削除
# cp -pr /usr/local/dev/include .
*** Mutt を救おう計画
317588 Mar 28 07:40 m4-1.4.tar.gz
549386 Mar 28 07:07 automake-1.7.3.tar.bz2 → automake-1.4-p6 入れ直し
811439 Mar 28 07:06 autoconf-2.57.tar.bz2
300461 Mar 28 01:10 mutt-manual_ja-1.4i-1.tar.gz
80251 Mar 28 01:10 mutt-1.4.1i-ja.1.tar.gz
2599487 Mar 28 01:10 mutt-1.4.1i.tar.gz
1092233 Mar 28 01:08 slang-1.4.5jp2.tar.gz
*** Mutt 依存関係
mutt -> automake -> autoconf -> GNU m4
*** GNU m4-1.4
./configure
make
make check した?
make install
strip /usr/local/bin/m4
*** GNU autoconf-2.57
$ ./configure
$ make
標準的な perl のモジュールが必要。
*** perl 5.6.1 の標準的なモジュールを追加
perl-5.6.1 の ipk をインストールすると、
/usr/lib/perl/5.6.1
/usr/share/perl/5.6.1
にモジュール群が入る。
サーチパスに含まれるのに、
/usr/local/lib/perl/5.6.1 は存在しない。
perl-5.6.1.tar.gz より lib/ だけをひっぱり出し、SD カード
/mnt/card/work/perl-5.6.1-lib
に置いた。
# mkdir /usr/local/lib/perl
# ln -s /mnt/card/work/perl-5.6.1-lib 5.6.1
*** autoconf つづき
$ make
$ make check
一部、エラーが出るが無視。。。
# make install
*** automake-1.7
$ ./configure
$ make
$ make check
...
PASS: autohdr2.test
PASS: auxdir.test
XFAIL: auxdir2.test
PASS: backsl.test
...
PASS: cond16.test
XFAIL: cond17.test
...
PASS: cond28.test
FAIL: condd.test
PASS: condinc.test
...
PASS: extra6.test
FAIL: extra7.test
PASS: flibs.test
と一部エラーが出るが無視。
# make install
*** aclocal-1.4
mutt の configure は automake-1.4 を要求するので...
*** automake-1.4-p6
$ ./configure
$ make
$ make check
...
FAIL: cond5.test
...
FAIL: error.test
...
=====================
2 of 194 tests failed
=====================
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory `/usr/mnt.rom/card/work/automake-1.4-p6/tests'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/usr/mnt.rom/card/work/automake-1.4-p6/tests'
make: *** [check-recursive] Error 1
テストでエラーは出るけど...
# make install
*** mutt-1.4.1
$ vi kimu
./configure --with-libiconv-prefix=/usr/local ¥
--without-wc-funcs ¥
--with-slang=../slang-1.4.5jp2 ¥
--enable-default-japanese
$ sh -f kimu
# mkdir /usr/local/etc
# cp Muttrc mutt-ja.rc /usr/local/etc
# vi /usr/local/etc/Muttrc
... mutt-ja.rc を読み込むように path を変更
... color 設定をコメントに。そのままだと画面がめちゃくちゃに。
*** S-Lang 1.4.5jp2
configure にて awk を使っているので mawk でごまかす。
# cd /usr/local/bin
# ln -s mawk awk
$ ./configure
$ make
# make install
$ pwd
/home/zaurus/wo/slang-1.4.5jp2/src/objs
$ ls -l *a
-rw-r--r-- 1 root root 3003546 Mar 29 18:06 libslang.a
# cd /usr/local/lib
# strip libslang.a
# ls -l libslang.a
-rw-r--r-- 1 root root 331756 Mar 29 21:26 libslang.a
*** libiconv-1.8
$ vi ABOUT-NLS
... autodetect するには、内蔵された GNU gettext を使う?
$ ./configure --with-included-gettext
...
...
hecking for string.h... yes
checking for setlocale... yes
test: Out of space ←これはいったい...
not updating unwritable cache /dev/null
configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating config.h
$ make check
# make install
...
...
if test -n "libiconv_plug.so"; then ../autoconf/install-sh -c -m 644 libiconv_plug.so /usr/local/lib/libiconv_plug.so.new && mv /usr/local/lib/libiconv_plug.so.new /usr/local/lib/libiconv_plug.so ; fi
/usr/local/lib/#inst.12467#: No such file or directory
make[1]: *** [install] Error 1
make[1]: Leaving directory `/usr/mnt.rom/card/work/libiconv-1.8/lib'
make: *** [install] Error 2
ここで止まるので、 iconv.h がインストールされなかった?!
*** mutt-1.4.1
こっちにも --with-included-gettext オプションを。
$ vi kimu
./configure --with-libiconv-prefix=/usr/local ¥
--without-wc-funcs ¥
--with-included-gettext ¥
--with-slang=../slang-1.4.5jp2 ¥
--enable-default-japanese
$ sh -f kimu
$ make
$ ./mutt -y
... だめだ...
ちなみに、
$ ls -l mutt
-rwxr-xr-x 1 zaurus qpe 2308307 Mar 30 00:20 mutt
$ ldd mutt
libm.so.6 => /lib/libm.so.6 (0x40022000)
libiconv.so.2 => /usr/local/lib/libiconv.so.2 (0x40050000)
libc.so.6 => /lib/libc.so.6 (0x40132000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
*** mutt と iconv
わかった!!
/usr/local/include/iconv.h が、 GNU libiconv-1.8 のものではなかった。
# cd /usr/local/include
# mv iconv.h iconv.h-old
# cp -p ‾/wo/libiconv-1.8/include/iconv.h .
$ cd ‾/wo/mutt-1.4.1
$ rm Makefile
$ cat kimu
./configure --with-libiconv-prefix=/usr/local ¥
--without-wc-funcs ¥
--with-included-gettext ¥
--with-slang=../slang-1.4.5jp2 ¥
--enable-default-japanese
$ sh -f kimu
$ make
$ ./mutt -y
*** mutt 仮インストール
# pwd
/usr/mnt.rom/card/work/mutt-1.4.1
# cp -p mutt /usr/local/bin
# cd /usr/local/bin
# ls -l mutt
-rwxr-xr-x 1 zaurus qpe 2311375 Mar 31 23:43 mutt
# strip mutt
# ls -l mutt
-rwxr-xr-x 1 zaurus qpe 737020 Apr 1 08:33 mutt
# chown root:root /usr/local/bin/mutt
*** zaurus-ja 版 mutt との比較
$ mutt -v
Mutt 1.4i (2002-05-29)
Copyright (C) 1996-2001 Michael R. Elkins and others.
Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'.
Mutt is free software, and you are welcome to redistribute it
under certain conditions; type `mutt -vv' for details.
System: Linux 2.4.18-rmk7-pxa3-embedix (armv5l) [using ncurses 4.2]
Compile options:
-DOMAIN
-DEBUG
-HOMESPOOL -USE_SETGID -USE_DOTLOCK -DL_STANDALONE
+USE_FCNTL -USE_FLOCK
+USE_POP +USE_IMAP -USE_GSS -USE_SSL -USE_GNUTLS -USE_SASL
+HAVE_REGCOMP +USE_GNU_REGEX
+HAVE_COLOR +HAVE_START_COLOR +HAVE_TYPEAHEAD +HAVE_BKGDSET
+HAVE_CURS_SET +HAVE_META +HAVE_RESIZETERM
-HAVE_PGP -BUFFY_SIZE -EXACT_ADDRESS -SUN_ATTACHMENT
+ENABLE_NLS -LOCALES_HACK -COMPRESSED -HAVE_WC_FUNCS +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_YESEXPR
+HAVE_ICONV -ICONV_NONTRANS +HAVE_GETSID +HAVE_GETADDRINFO
ISPELL="/usr/bin/ispell"
SENDMAIL="/usr/sbin/sendmail"
MAILPATH="/var/mail"
PKGDATADIR="/opt/QtPalmtop/mutt/share/mutt"
SYSCONFDIR="/opt/QtPalmtop/mutt/etc"
EXECSHELL="/bin/sh"
-MIXMASTER
To contact the developers, please mail to <mutt-dev@mutt.org>.
To report a bug, please use the flea(1) utility.
patch-1.3.28.cvs.indexsegfault
patch-1.3.27.bse.xtitles.1
patch-1.3.26.appoct.3
patch-1.3.15.sw.pgp-outlook.1
patch-1.4.admcd.gnutlsbuild.53d
patch-1.4.admcd.gnutlsdlopen.53d
patch-1.4.admcd.gnutls.53d
Md.use_editor
Md.paths_mutt.man
Md.muttbug_no_list
Md.use_etc_mailname
Md.muttbug_warning
Md.gpg_status_fd
patch-1.4.0.cd.edit_threads.9.2
patch-1.3.24.rr.compressed.1
patch-1.3.23.1.ametzler.pgp_good_sign
$ ./mutt -v
Mutt 1.4.1i-ja.1 (2003-03-19)
Copyright (C) 1996-2002 Michael R. Elkins and others.
Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'.
Mutt is free software, and you are welcome to redistribute it
under certain conditions; type `mutt -vv' for details.
System: Linux 2.4.18-rmk7-pxa3-embedix (armv5l) [using slang 10405]
Compile options:
-DOMAIN
-DEBUG
-HOMESPOOL -USE_SETGID -USE_DOTLOCK -DL_STANDALONE
+USE_FCNTL -USE_FLOCK
-USE_POP -USE_IMAP -USE_GSS -USE_SSL -USE_SASL
+HAVE_REGCOMP -USE_GNU_REGEX
+HAVE_COLOR -HAVE_START_COLOR -HAVE_TYPEAHEAD -HAVE_BKGDSET
-HAVE_CURS_SET -HAVE_META -HAVE_RESIZETERM
+HAVE_PGP -BUFFY_SIZE -EXACT_ADDRESS -SUN_ATTACHMENT
+ENABLE_NLS -LOCALES_HACK -HAVE_WC_FUNCS +HAVE_LANGINFO_CODESET +HAVE_LANGINFO_YESEXPR
+HAVE_ICONV -ICONV_NONTRANS +HAVE_GETSID -HAVE_GETADDRINFO
-ISPELL
SENDMAIL="/usr/sbin/sendmail"
MAILPATH="/var/mail"
PKGDATADIR="/usr/local/share/mutt"
SYSCONFDIR="/usr/local/etc"
EXECSHELL="/bin/sh"
-MIXMASTER
To contact the developers, please mail to <mutt-dev@mutt.org>.
To report a bug, please use the flea(1) utility.
patch-1.4.1.tt.ja.1