logo
code:Haemophilus influenzae

ここに書かれていることは無保証です。同じことを行って問題が発生しても、 龍義は責任をとりません。
 2003年9月 
 2003年10月 
 2003年11月 
 2003年12月 
 2004年1月  2004年7月 
 2004年2月  2004年8月 
 2004年3月  2004年9月 
 2004年4月  2004年10月 
 2004年5月  2004年11月 
 2004年6月  2004年12月 
 2005年1月  2005年7月 
 2005年2月  2005年8月 
 2005年3月  2005年9月 
 2005年4月  2005年10月 
 2005年5月  2005年11月 
 2005年6月  2005年12月 
 2006年1月 
 2006年2月 
 2006年3月 
 2006年4月 
 2006年5月 
アイコンの説明

6/1
Other
原付の前輪のベアリングなんかを替えようかと思って、作業をしたのだけど、
まわらないネジと格闘したり、買ってあったベアリングが中に入っていたものと
違っていたりと、素人丸出し。まわらないネジは、バイク屋に壊してもらって、
ベアリングは、近所のベアリング屋でなんとか調達して。明日からお出かけなのに
間に合うかなぁ…。

6/2
Other
ベアリング交換とか、ブレーキディスクの切削作業とか。バタバタ。
明日から、しばらく更新はありません。

6/13
Network
久しぶりに帰ってきた。で、いつものように、溜まったメールを読んで、いくつか
返事を書いてメールを送信したら、

512 ybbsmtp.mail.yahoo.co.jp closing transmission channel. This email
address must be verified first before you can use it for Sender/From field.

だそうだ。手作業で smtp サーバとお話してみたら、 Mail from のところで、
このエラーが帰ってきてしまう。なんだか、面倒な時代になったなぁ…。

6/14
WWW
去年の 8/24 、とあるページに仕掛けておいた、罠のメールアドレス、

<a href="mailto:spatest00@tatsuyoshi.net"></a>
spatest01@tatsuyoshi.net
spatest02@tatsuyoshi.net
spatest03<!---->@tatsuyoshi.net
spatest04 at tatsuyoshi.net

この5番目のアドレスにメールが来ていた。(実際は spatest じゃないのだけど)。
よく、メーリングリストを公開しているところでは、この変換を行っているのを
見かけるので、もう少し早くつかまるのかと思ったけど、結局10ヶ月かかって
拾われたことになった。上記のアドレスにこれまで届いた spam メールの数は、
以下の通り。

sptest00 898通
sptest01 441通
sptest02 0通
sptest03 28通
sptest04 1通

6/15
WWW
他人様がインストールした RHEL4 の設定とかしてて、 apache をインストールして
動作させようとしたのだけど、最近は SELinux だの Firewall(iptables) だのが
勝手に入ってしまっているようで、デーモン1つ動作させるのに苦労してしまった。
なんだか、便利なのか、そうじゃないのか、わからなくなってきた。元気があれば、
その作業内容を書いたのだけど、元気がないので…。
あ、 dovecot のバージョンがあがってる。中身のチェックしないと。

6/16
Network
ssldump なるものを使ってみた。テストするために apache 2.2.2 を SSL 設定に
してインストールして、中が覗けるかやってみた。が、 IE のやりとりは見えるけど
Firefox とか w3m の通信は見えない。何でかな、と思って表示を良く見てみた。

  cipher suites
  SSL2_CK_RC4
  SSL2_CK_RC2
  SSL2_CK_3DES
  SSL2_CK_DES
  SSL2_CK_RC4_EXPORT40
  SSL2_CK_RC2_EXPORT40
  Unknown value 0x39
  Unknown value 0x38
  Unknown value 0x35
  Unknown value 0x33
  Unknown value 0x32
  TLS_RSA_WITH_RC4_128_MD5
  TLS_RSA_WITH_RC4_128_SHA
  Unknown value 0x2f
  TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
  TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
  Unknown value 0xfeff
  TLS_RSA_WITH_3DES_EDE_CBC_SHA
  TLS_DHE_RSA_WITH_DES_CBC_SHA
  TLS_DHE_DSS_WITH_DES_CBC_SHA
  Unknown value 0xfefe
  TLS_RSA_WITH_DES_CBC_SHA
  TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
  TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
  TLS_RSA_EXPORT_WITH_RC4_40_MD5
  TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5

が Firefox が送っている使用可能な cipher suite の種類で、apache はこの中の
Unknown value 0x39
というのを選択したようである。この値は何か調べてみた。どうやらこの値は、
AES 暗号の番号で、 RFC3268 に記述されている。この RFC3268 は 2002年6月の
発行、 ssldump の最新版の 0.9b3 は 2002年10月のものだから、間に合わなかった
のかもしれない。なんで、この RFC3268 の部分を改造しよう、としたのだけど、
世の中に誰かやっているだろうと思って調べてみたら、 FreeBSD の Ports に
含まれているようである。これを取ってくることにした。この辺から。
http://people.freebsd.org/‾tmclaugh/files/ssldump-aes.diff
これで実行してみた。が、うまく動かない。さらにまだ unknown な cipher suite
があるみたいなので、ついでなので追加してみた。

  Unknown value 0xfeff
  Unknown value 0xfefe

追加したいのはこの2つ。どこかに参考になるものがないかと調べたら、 ethereal
が対応しているようだったので、その部分をごっそりとってきた。でも、なんだか
RFC 4132 の Camellia が追加されているけど、 RFC 4162 の SEED とか RFC 4492
の ECC とかは ethereal には取り込まれてない気がする。気にしないことにした。
このとってきたコードを ssldump に突っ込んだ。もちろん、 ssldump で解読させる
コードまでは入れてないけど。で、表示の unknown は消えた。依然として、解読
されていない状況だけど。

6/17
Network
結局昨日解読できなかったのは、 TLS_DHE_RSA_WITH_AES_256_CBC_SHA が選択された
ため、 DH だから解読できなかったようである。 ssldump のページには、

PROBLEM 2: decryption doesn't work
This is probably the most common problem that people have with
ssldump. First, it's important to realize that ssldump cannot decrypt
all connections because of the way that SSL works. There's nothing we
can do about this but learn to recognize and avoid shose cases.
〜snip〜
Case 3: Ephemeral keying
If SSL is using one of the ephemeral keying modes then ssldump cannot
decrypt the data. These modes include essentially all of the DH cipher
suites as well as the RSA_EXPORT cipher suites (though not the
RSA_EXPORT1024) cipher suites. A sure sign of this case is when
the server is sending the ServerKeyExchange message. 

ってあるし。ま、鍵が前部揃っているので、解読できないことはないのだろうけど。

6/18
FIVA 206VL
最近、ここのネタにはあまり出てこない FIVA 。火曜日までの旅行にも持って行った
のだけど、起動できなくなるは、雨で濡れてしまうはで、大変だった。そろそろ、
寿命なのかもしれないけど、耐用期間が3年というのも短い気がする。とりあえず、
なんとか起動はできないかやってみたけど、数十回電源を入れてみて、やっと起動
するような感じで、起動しても動作中に固まってしまうことが多い。ちょっと分解
してみたけど、おかしなところはないようで、やっぱり駄目みたいである。さっさと
あきらめて Libretto に乗り換え。データのコピーは、結構時間がかかるなぁ。

6/19
Other
たまには時事ネタでも。日本がサッカー観戦で沸いている頃、フランスではルマン
24時間耐久レースが行われていて(私もすっかり忘れていた)、優勝がアウディの
チーム。そこまでは、良くある話なのだけど、なんとディーゼルエンジンを積んだ
車両が優勝したのである。これは、ルマンの歴史に残るものだと思う。そんな日、
新燃料とかで一時期騒がれたガイアックスの課税について、最高裁判所の判決が
出た。どこのニュースも、アルコールを主原料とした自動車燃料に、軽油引取税を
課すことができる、という判決だったと書かれていたのだけど、一部には、気に
なることが書かれていた。

1、2審は「軽油引取税の課税は適法だが、対象は自動車の燃料に限られる」
として、バイクへの販売分に対する課税約1600万円だけを取り消しており、
最高裁もこれを支持した。

つまり、バイクに対しては軽油取引税を課さない、ということである。バイクを
良く知っている人なら、ピンと来るでしょう。ロイヤルエンフィールドには、
ディーゼルエンジンを搭載したバイクがあることを。私も、数年前にバイク雑誌の
片隅に載っていたのを見たことがあるのだけど、100万円以上してた記憶がある。
もし、それに乗っていた場合、給油したとき軽油取引税を払わなくて済むので
ある。灯油並みの価格でバイクに乗れるとは、夢のようである。多分、ものすごく
遅いのだろうけど。それに、ガソリンスタンドでそんなことできないだろうし。

6/20
Network
17日の続きで DH なるものを調べてみた。DH は Diffie-Hellman の略で、暗号
方式に良くある頭文字をとったもの、発表は 1976年と30年前のことなのだけど、
RFC では RFC2631 で規定されている。公開鍵方式ではないのだけど、鍵の交換に
用いられるもののようで、 RFC には

         ya is party a's public key; ya = g ^ xa mod p
         yb is party b's public key; yb = g ^ xb mod p
         xa is party a's private key
         xb is party b's private key
         p is a large prime
         q is a large prime

が登場している。簡単に xa は a 側の秘密鍵、 xb は b 側の秘密鍵、同様に
ya は a 側の公開鍵、 yb は b 側の公開鍵、 p と q が公開された素数値で、
ya は

g ^ xa mod p

なので、「 g の xa 乗の数値を p で割った余りの数」、同様に yb は

g ^ xb mod p

である。この ya と yb の値をお互いで交換する。なので、実際の計算の元と
なる数は xa, xb, p, q の4つ。ただし、お互いは相手の xa と xb は知らない。
これから両者は秘密の数字 zz が作れる。

ZZ = (yb ^ xa) mod p = (ya ^ xb) mod p

だからである。で、 apache では p と q がどうなっているのか調べてみた。
apache 2.2.2 の modules/ssl/ssl_engine_dh.c より。

** Diffie-Hellman-Parameters: (512 bit)
**     prime:
**         00:9f:db:8b:8a:00:45:44:f0:04:5f:17:37:d0:ba:
**         2e:0b:27:4c:df:1a:9f:58:82:18:fb:43:53:16:a1:
**         6e:37:41:71:fd:19:d8:d8:f3:7c:39:bf:86:3f:d6:
**         0e:3e:30:06:80:a3:03:0c:6e:4c:37:57:d0:8f:70:
**         e6:aa:87:10:33
**     generator: 2 (0x2)
** Diffie-Hellman-Parameters: (1024 bit)
**     prime:
**         00:d6:7d:e4:40:cb:bb:dc:19:36:d6:93:d3:4a:fd:
**         0a:d5:0c:84:d2:39:a4:5f:52:0b:b8:81:74:cb:98:
**         bc:e9:51:84:9f:91:2e:63:9c:72:fb:13:b4:b4:d7:
**         17:7e:16:d5:5a:c1:79:ba:42:0b:2a:29:fe:32:4a:
**         46:7a:63:5e:81:ff:59:01:37:7b:ed:dc:fd:33:16:
**         8a:46:1a:ad:3b:72:da:e8:86:00:78:04:5b:07:a7:
**         db:ca:78:74:08:7d:15:10:ea:9f:cc:9d:dd:33:05:
**         07:dd:62:db:88:ae:aa:74:7d:e0:f4:d6:e2:bd:68:
**         b0:e7:39:3e:0f:24:21:8e:b3
**     generator: 2 (0x2)

だそうである。 prime はそのまま RFC での p で generator は q に当てはまる。
「q is a large prime」なんて書いてあるが、実際には 2 なので、気にしなくて
良いみたいである。これを使って、毎回 xa, xb を作るので、 ssldump が解読
できないのも、納得した。毎回、秘密鍵が変わるんだから。

6/21
LAN-iCN2 Terminator K7-DDR
Dovecot を sh4 用にクロスコンパイルしてみた。まずは、ダウンロードと展開から。

[toyota@kashyyyk]% wget http://www.dovecot.org/releases/dovecot-1.0.beta9.tar.gz
[toyota@kashyyyk]% tar xvfz dovecot-1.0.beta9.tar.gz
[toyota@kashyyyk]% cd dovecot-1.0.beta9

configure オプションを確認してから、適当にオプションをつけて、 configure
の実行。

[toyota@kashyyyk]% ./configure --help
[toyota@kashyyyk]% ./configure --host=sh4-linux CC=sh4-linux-gcc --without-sqlit
e --without-mysql --without-gssapi --disable-ipv6
〜snip〜
checking type of off_t... long long
checking whether size_t is signed... configure: error: cannot run test program w
hile cross compiling
See `config.log' for more details.

だそうで。 configure をゴニョゴニョいじって、エラーが出ないようにしたけど、
結局同じエラーを出すところがあと6箇所あって、それも修正。これで、 configure
は通った。クロスコンパイルオプション --host=sh4-linux CC=sh4-linux-gcc を
つけなかったときとの、 config.h の比較をしてみた。

[toyota@kashyyyk]% diff config.h config.h.org
149c149
< /* #undef HAVE_PAM_SETCRED */
---
> #define HAVE_PAM_SETCRED
173c173
< /* #undef HAVE_SECURITY_PAM_APPL_H */
---
> #define HAVE_SECURITY_PAM_APPL_H
323c323
< /* #undef IOLOOP_NOTIFY_DNOTIFY */
---
> #define IOLOOP_NOTIFY_DNOTIFY
332c332
< #define IOLOOP_NOTIFY_NONE
---
> /* #undef IOLOOP_NOTIFY_NONE */
350c350
< #define MMAP_CONFLICTS_WRITE
---
> /* #undef MMAP_CONFLICTS_WRITE */
383c383
< /* #undef PASSDB_PAM */
---
> #define PASSDB_PAM
428c428
< #define TIME_T_MAX_BITS 31
---
> #define TIME_T_MAX_BITS 32
467c467
< /* #undef VA_COPY */
---
> #define VA_COPY va_copy
470c470
< #define VA_COPY_AS_ARRAY 1
---
> /* #undef VA_COPY_AS_ARRAY */

PAM 以外の部分をこれに合わせて、修正。これで make 。

if sh4-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../..     -std=gnu99 -g -O2 -Wall -W 
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -W
format=2 -Wbad-function-cast -I/usr/kerberos/include    -MT ioloop-notify-dn.o -
MD -MP -MF ".deps/ioloop-notify-dn.Tpo" -c -o ioloop-notify-dn.o ioloop-notify-d
n.c; ¥
then mv -f ".deps/ioloop-notify-dn.Tpo" ".deps/ioloop-notify-dn.Po"; else rm -f 
".deps/ioloop-notify-dn.Tpo"; exit 1; fi
ioloop-notify-dn.c: 関数 `io_loop_notify_add' 内:
ioloop-notify-dn.c:96: `F_NOTIFY' が宣言されていません (この関数内で最初に利用)
ioloop-notify-dn.c:96: (未宣言の各変数については、それが最初に現われたそれぞれの
関数
ioloop-notify-dn.c:96:  に対して一度だけ報告されます。)
ioloop-notify-dn.c:96: `DN_CREATE' が宣言されていません (この関数内で最初に利用)
ioloop-notify-dn.c:96: `DN_DELETE' が宣言されていません (この関数内で最初に利用)
ioloop-notify-dn.c:96: `DN_RENAME' が宣言されていません (この関数内で最初に利用)
ioloop-notify-dn.c:97: `DN_MULTISHOT' が宣言されていません (この関数内で最初に利
用)
ioloop-notify-dn.c: 関数 `io_loop_notify_remove' 内:
ioloop-notify-dn.c:126: `F_NOTIFY' が宣言されていません (この関数内で最初に利用)
make[3]: *** [ioloop-notify-dn.o] エラー 1
make[3]: 出ます ディレクトリ `/home/toyota/src/dovecot/dovecot-1.0.beta9/src/lib
'
make[2]: *** [all-recursive] エラー 1
make[2]: 出ます ディレクトリ `/home/toyota/src/dovecot/dovecot-1.0.beta9/src'
make[1]: *** [all-recursive] エラー 1
make[1]: 出ます ディレクトリ `/home/toyota/src/dovecot/dovecot-1.0.beta9'
make: *** [all] エラー 2

F_NOTIFY なんかを使っているのは ioloop-notify-dn.c だけだったので、この
辺りを部分をごっそり /usr/include/bits/fcntl.h から差し込む。

# define F_NOTIFY     1026
# define DN_ACCESS  0x00000001  /* File accessed.  */
# define DN_MODIFY  0x00000002  /* File modified.  */
# define DN_CREATE  0x00000004  /* File created.  */
# define DN_DELETE  0x00000008  /* File removed.  */
# define DN_RENAME  0x00000010  /* File renamed.  */
# define DN_ATTRIB  0x00000020  /* File changed attibutes.  */
# define DN_MULTISHOT   0x80000000  /* Don't remove notifier.  */

make の続き。

if sh4-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../../../..  -I../../../../src/lib -I
../../../../src/lib-mail -I../../../../src/lib-imap -I../../../../src/lib-index 
-I../../../../src/lib-storage -I../../../../src/lib-storage/index   -std=gnu99 -
g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wcha
r-subscripts -Wformat=2 -Wbad-function-cast -I/usr/kerberos/include    -MT maild
ir-storage.o -MD -MP -MF ".deps/maildir-storage.Tpo" -c -o maildir-storage.o mai
ldir-storage.c; ¥
then mv -f ".deps/maildir-storage.Tpo" ".deps/maildir-storage.Po"; else rm -f ".
deps/maildir-storage.Tpo"; exit 1; fi
maildir-storage.c: 関数 `maildir_is_valid_create_name' 内:
maildir-storage.c:194: `PATH_MAX' が宣言されていません (この関数内で最初に利用)
maildir-storage.c:194: (未宣言の各変数については、それが最初に現われたそれぞれの
関数
maildir-storage.c:194:  に対して一度だけ報告されます。)
make[5]: *** [maildir-storage.o] エラー 1
make[5]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9/src
/lib-storage/index/maildir'
make[4]: *** [all-recursive] エラー 1
make[4]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9/src
/lib-storage/index'
make[3]: *** [all-recursive] エラー 1
make[3]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9/src
/lib-storage'
make[2]: *** [all-recursive] エラー 1
make[2]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9/src
'
make[1]: *** [all-recursive] エラー 1
make[1]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9'
make: *** [all] エラー 2

PATH_MAX を使っている場所は結構あったので、 config.h の最後に

#define PATH_MAX 4096

を追加。さらに make 。

sh4-linux-gcc -std=gnu99 -g -O2 -Wall -W -Wmissing-prototypes -Wmissing-declarat
ions -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -I/usr/ker
beros/include -o ssl-build-param ssl-init-main.o ssl-init-openssl.o ssl-init-gnu
tls.o  ../lib/liblib.a -L/usr/kerberos/lib -lssl -lcrypto -lresolv -lgssapi_krb5
 -lkrb5 -lk5crypto -lcom_err -ldl -lz
/usr/lib/gcc-lib/sh-linux/3.2.3/../../../../sh-linux/bin/ld: cannot find -lssl
collect2: ld returned 1 exit status
make[3]: *** [ssl-build-param] エラー 1
make[3]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9/src
/master'
make[2]: *** [all-recursive] エラー 1
make[2]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9/src
'
make[1]: *** [all-recursive] エラー 1
make[1]: 出ます ディレクトリ `/home/toyota/src/dovecot/tmp/dovecot-1.0.beta9'
make: *** [all] エラー 2

ライブラリが見つからないらしい。それに、良く見ると
-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
なんてついているので、 Makefile の確認。

SSL_CFLAGS = -I/usr/kerberos/include
SSL_LIBS = -L/usr/kerberos/lib -lssl -lcrypto -lresolv -lgssapi_krb5 -lkrb5 -lk5
crypto -lcom_err -ldl -lz

になっていたので、以下に修正。

SSL_CFLAGS = 
SSL_LIBS = -L/usr/sh4-linux/lib -lssl -lcrypto -lresolv -ldl -lz

同様のエラーが、あと2、3箇所で出たので修正。これは、 configure か make の
オプションで対応できたかもな。これで、 make が最後まで進んで完了した。
時間があったら、ちゃんと動くかテストしてみよう。

6/22
Network
HTTPS の接続テストのとき、毎回 w3m か lynx で接続していたのだけど、 openssl
でもきることを見つけた。

openssl s_client -connect localhost:443

だそうで。知らなかった。今度、使ってみよう。

6/23
Network WWW
とあるページにアクセスする必要があって、 IE でアクセスしたら、

ページを表示できません。 
検索中のページは現在、利用できません。Web サイトに技術的な問題が発生してい
るか、ブラウザの設定を調整する必要があります。 
〜snip〜
サーバーが見つからないか、DNS エラーです。

だそうで。「サーバーが見つからないか、DNS エラーです。」って言われたので、
てっきりサーバが死んでるもんだと思っていたのだけど、 Firefox で接続すると
問題なく表示された。急ぎだったので、 Firefox で済ませたのだけど、気分が
少し悪いので、設定を色々見てみたら SSL3.0 が無効になっていて TLS1.0 が
有効になっていた。どっちも問題ないのだけど、 SSL3.0 を有効にしたら、サーバ
に接続できたので、暗号強度の問題のようであった。別に、それならそれで、
全く問題ないのだけど、上記のメッセージじゃ、どう考えてもおかしいでしょ。
IE が IE たる所以である。

6/24
FIVA 206VL
FIVA から Libretto への移行。FIVA の HDD を引っこ抜いて Libretto に USB で
繋いでコピー。問題が2つ。 FIVA に入っていた HDD は 30GB で、 Libretto のは
20GB 。なんで、全部コピーすると溢れてしまう。これは、コピーする内容物を厳選
すれば良いのだけど。もう1つは、コピー中に Libretto が落ちてしまうこと。
コピーしてしばらくほっとくと、青画面になって、 pfn_list_corrupt で落ちて
しまう。これには、しばらく閉口してしまった。私はノート PC との運が悪いのか、
と考えてしまったぐらい。細切れにコピーしたりして、なんとか対処。結構時間が
かかって、大変だった。

6/25
FIVA 206VL
昨日の続き。pfn_list_corrupt で青画面になるのが気になったので、 google で
調べてみたら、トップに Microsoft のページが出てきた。Windows 2000 のだけど。
で、原因は
「この現象は、ドライバまたはその他の問題により、入出力 (I/O) ドライバの
構造体が破損したために発生します。」
と書いてある。なんだか致命的なものじゃない気がして、少し安心したような
気がしたけど、結局詳しい原因が不明だしなぁ…。困ったもんだ。
あ、Libretto のバナーを作らなきゃ。

6/26
Network
ethereal でキャプチャしたパケットを眺めていた。で、変なパケットがあった。

[TCP Out-Of-Order] GET /test.html HTTP/1.0

なんだか、よくわからない。詳細を見てみたら、 TCP オプションの後で、なにやら
変な表示が。

[SEQ/ACK analysis]
  [TCP Analysis Flags]
    [This frame is a (suspected) out-of-order segment]

だそうで。で、ちょっと source とかを見たり、 web で調べてみたのだけど、
どうやらシーケンスナンバーを ethreal が勝手に追っていて、それが一致して
いないことが原因らしい。とうことで、 ethereal のオプションを変更してみた。
Edit → Preferences → Protocols → TCP
の
Analyze TCP sequence numbers: 
のチェックを外した。これで、上記のエラーがなくなった。それと、分割された
パケットが、勝手に1つにまとめられてしまうので、
Allow subdissector to reassemble TCP streams: 
のチェックも外しといた。これで、少し快適になった。

6/27
Network
朝、 heart beat 用に動かしているスクリプトから、エラーのメールが来てた。
どうやら、ネットワークがおかしい感じ。 google とかに繋がらない。何故か
Yahoo には繋がる。原因不明。モデムを再起動したけど、あまり様子は変わらない。
原因がわからないと、これからの暑い時期は心配だなぁ…。

6/28
Other
いきなり crontab -e を crontab -r というオペレーションミス。なんだか、
「本当に消してよい?」ぐらいのメッセージを出しても良いと思うのに。結局、
cron のログからこれまで実行されていたであろうプログラムを拾ってきて、
再度 crontab -e で追加。で、やっぱりちょっと間違えたようで、とある人から
「いつも1日1回来るメールが1時間おきに…」なんて苦情が。やれやれである。

6/29
Network
あ、Dovecot 1.0-rc1 が出てた。ダウンロードして、使ってみよ、と思うのだが、
最近そんな時間がとれないんだよなぁ…。

6/30
Other
某所で新しい Windows XP の環境になったので、とりあえず cygwin なんかを
インストールした。で、ファイルを編集をしようとしたら、

$ vi ‾/dovecot.conf
bash: vi: command not found

と嫌な感じのメッセージが。cygwin の setup.exe からインストールできるの
だけど、この際だから、自分で vim の日本語版をインストールすることにした。

$ wget ftp://ftp.vim.org/pub/vim/unix/vim-6.4.tar.bz2
$ wget http://www.kaoriya.net/dist/vim-6.4-difj.tar.bz2
$ tar xvfj vim-6.4.tar.bz2
$ tar xvfj vim-6.4-difj.tar.bz2
$ cd vim64
$ cp ../vim-6.4-difj/kaoriya.configure ./
$ cp ../vim-6.4-difj/vimrc ./

ここまでは順調。問題は patch 。なんだかインストールされていない様子だった
ので、 cygwin の setup.exe からインストール。なんだか、ちょっと負けたような
気がした。で、エラーが大量に出たけど、これは unix 版でも同じだったので、
想定の範囲内。

$ patch -p1 < ../vim-6.4-difj/diffs/kaoriya.diff
patching file runtime/doc/options.txt
patching file runtime/keymap/azik_cp932.vim
patching file runtime/keymap/japanese_cp932.vim
patching file runtime/keymap/tcode_cp932.vim
patching file runtime/keymap/tutcode_cp932.vim
patching file runtime/lang/menu_ja_jp.euc-jp.vim
patching file runtime/lang/menu_ja_jp.utf-8.vim
patching file runtime/lang/menu_japanese_japan.932.vim
patching file runtime/plugin/autodate.vim
patching file runtime/plugin/cmdex.vim
patching file runtime/plugin/dicwin.vim
patching file runtime/plugin/format.vim
patching file runtime/plugin/hz_ja.vim
patching file runtime/plugin/scrnmode.vim
patching file runtime/plugin/verifyenc.vim
patching file runtime/syntax/2html.vim
patching file runtime/syntax/memo.vim
can't find file to patch at input line 8005
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/GvimExt/gvimext.cpp ./src/GvimExt/gvimext.cpp
|*** ../vim-6.4/src/GvimExt/gvimext.cpp Sun May 25 00:40:33 2003
|--- ./src/GvimExt/gvimext.cpp  Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 8041
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/Make_mvc.mak ./src/Make_mvc.mak
|*** ../vim-6.4/src/Make_mvc.mak        Sun Oct  9 21:37:00 2005
|--- ./src/Make_mvc.mak Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
3 out of 3 hunks ignored
patching file src/Makefile
patching file src/auto/configure
patching file src/buffer.c
patching file src/config.h.in
patching file src/configure.in
patching file src/edit.c
patching file src/eval.c
patching file src/ex_cmds2.c
patching file src/ex_getln.c
patching file src/feature.h
patching file src/fileio.c
patching file src/getchar.c
patching file src/globals.h
patching file src/grep.exe.stackdump
patching file src/gui.c
can't find file to patch at input line 9089
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/gui_mac.c ./src/gui_mac.c
|*** ../vim-6.4/src/gui_mac.c   Thu Dec  9 05:48:12 2004
|--- ./src/gui_mac.c    Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
24 out of 24 hunks ignored
can't find file to patch at input line 9648
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/gui_w16.c ./src/gui_w16.c
|*** ../vim-6.4/src/gui_w16.c   Wed May 12 05:19:49 2004
|--- ./src/gui_w16.c    Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 9679
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/gui_w32.c ./src/gui_w32.c
|*** ../vim-6.4/src/gui_w32.c   Sat May 29 04:46:57 2004
|--- ./src/gui_w32.c    Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
13 out of 13 hunks ignored
can't find file to patch at input line 9977
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/gui_w48.c ./src/gui_w48.c
|*** ../vim-6.4/src/gui_w48.c   Sun May 22 19:06:07 2005
|--- ./src/gui_w48.c    Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
5 out of 5 hunks ignored
patching file src/main.c
patching file src/mbyte.c
patching file src/misc2.c
patching file src/move.c
patching file src/normal.c
patching file src/option.c
patching file src/option.h
can't find file to patch at input line 10917
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_mac.c ./src/os_mac.c
|*** ../vim-6.4/src/os_mac.c    Wed May 12 03:09:15 2004
|--- ./src/os_mac.c     Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 10933
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_mac.h ./src/os_mac.h
|*** ../vim-6.4/src/os_mac.h    Mon Feb  2 05:40:30 2004
|--- ./src/os_mac.h     Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 10960
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_macosx.c ./src/os_macosx.c
|*** ../vim-6.4/src/os_macosx.c Thu Mar 18 22:07:31 2004
|--- ./src/os_macosx.c  Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
12 out of 12 hunks ignored
can't find file to patch at input line 11326
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_mswin.c ./src/os_mswin.c
|*** ../vim-6.4/src/os_mswin.c  Sat Jul  2 20:07:35 2005
|--- ./src/os_mswin.c   Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 11372
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_w32exe.c ./src/os_w32exe.c
|*** ../vim-6.4/src/os_w32exe.c Sun May 11 21:41:23 2003
|--- ./src/os_w32exe.c  Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 11418
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_win32.c ./src/os_win32.c
|*** ../vim-6.4/src/os_win32.c  Wed Dec 15 23:35:41 2004
|--- ./src/os_win32.c   Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 11431
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/os_win32.h ./src/os_win32.h
|*** ../vim-6.4/src/os_win32.h  Mon Feb  2 01:49:34 2004
|--- ./src/os_win32.h   Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
patching file src/po/Make_osx.pl
patching file src/po/ascii2ucs.pl
can't find file to patch at input line 11689
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/po/ja.po ./src/po/ja.po
|*** ../vim-6.4/src/po/ja.po    Thu Apr 29 18:37:29 2004
|--- ./src/po/ja.po     Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
3 out of 3 hunks ignored
can't find file to patch at input line 11750
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/po/ja.sjis.po ./src/po/ja.sjis.po
|*** ../vim-6.4/src/po/ja.sjis.po       Sat Oct 15 23:31:50 2005
|--- ./src/po/ja.sjis.po        Sun Oct 16 09:46:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
3 out of 3 hunks ignored
can't find file to patch at input line 11811
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/proto/gui_mac.pro ./src/proto/gui_mac.pro
|*** ../vim-6.4/src/proto/gui_mac.pro   Mon Sep  8 06:42:13 2003
|--- ./src/proto/gui_mac.pro    Sun Oct 16 09:46:05 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 11825
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -cNr ../vim-6.4/src/proto/gui_w32.pro ./src/proto/gui_w32.pro
|*** ../vim-6.4/src/proto/gui_w32.pro   Sat Oct 15 20:28:03 2005
|--- ./src/proto/gui_w32.pro    Sun Oct 16 09:51:04 2005
--------------------------
File to patch:
Skip this patch? [y] y
Skipping patch.
1 out of 1 hunk ignored
patching file src/proto/mbyte.pro
patching file src/proto/search.pro
patching file src/screen.c
patching file src/search.c
patching file src/structs.h
patching file src/term.c
patching file src/ui.c
patching file src/version.c
patching file src/vim.h

こんなんだったら、最初から patch に -f オプションをつければ良かったと
後悔するぐらいの量。次は configure 。

$ ./configure --help
$ ./configure --without-x --disable-gui

で、続き。

$ make
$ make install

どっかで止まると思っていたので、あっさり通ったのにはびっくり。早速起動を
してみた。

$ vim ‾/dovecot.conf

文字化けしている。 vimrc がないからでしょう。

$ cp vimrc ‾/.vimrc

これで実行。

$ vi ‾/dovecot.conf
Error detected while processing /home/htoyota/.vimrc:
line  108:
E197: Cannot set language to "ja_JP.eucJP"
Press ENTER or type command to continue

108行目あたりの if を削除して、エラーが出ないようにした。それと、白背景に
している環境では、非常に見づらいので、
set background=light
を追加した。しかし、漢字の判定がうまくいかない。仕方がないが、解決方法と
して、ファイルを開いたら

:e ++enc=iso-2022-jp

とやって、ごまかしている。と言うか、このページ iso-2022-jp なんだよねぇ…。



21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi
since 2003