2004-03-17 (Wed)
_ [comp] kernel 2.6.5-rc1-mm1
2.6.5-rc1 & -mm1 が出たので早速確認。fbdev-char-drawing-enhancement.patch は linus tree には入らなかったようだ。でも mm tree にはまだあるので、これを外さないと。
- fbdev-char-drawing-enhancement.patch (patch -R で当てる)
- vd_unicon-kernel-2.6-20040219.patch.bz2 &
-mm 対応 patch - longbeep-linux-2.6.0.patch (console.c を vt.c に変更)
- vd_kernel-2.4.21-tuner-ntscjp.patch
で作成。boot はしたが、X を上げようとしたら、nvidia ロゴが出る前に刺さるなぁ。 どうやらこれっぽい。> NVIDIA and 2.6.4? mm patch 中の 4k-stacks-always-on.patch を外せばよいようだ。nvidia driver の binary 部分が問題らしい。外して作成したら OK だった。
_ [comp] UP マシンに SMP kernel を乗っけたら?
答え:原因不明のフリーズに悩まされる。先の講座 server の kernel 更新の際の出来事なのだが、
- ついいつものクセで、SMP な kernel を作ってしまった。それも MPENTIUMIII=y で。
- Pentium II Deschutes だと知らずにそのマシンに乗っけたところ、1時間も立たないうちにフリーズ。
- Deschutes と気付いて、M686=y で作り直す。でも SMP はそのまま。やっぱりフリーズする。
- nosmp という kernel parameter を知る。けど効果がない。
- 仕方ないので、SMP=n で作り直す。というか順番が逆。
lm-sensors のせいにしたり、NFSD_TCPD=n のせいにしたりしたけど、単純な問題だったなぁ。
2004-03-16 (Tue)
_ [comp] mozilla history.dat どうにかして
mozilla の history は netscape 時代から 9999 日保存する設定になっているので、現在 50M 近くある。このため、mozilla を起動した後、history の処理に膨大な時間がかかってしまう。で、常々ダイエットしなければと思っているのだけれども、mozilla の history.dat に使われている mork とかいう format はひどすぎる。さっぱり理解できない。 で、ここのところ mork に関する文献やらプログラムやらを探していたが、ようやく見つけた。when the database worms eat into your brain に mork.pl という perl script が置いてあるので、食わせてみた。めっちゃスラッシングして OOM Killer に perl が殺された。さすがに 50M 近くは無謀だったか…。とりあえず足掛りは見つけたので、自分で何とか作ってみるか…。 あと直接関係ないけど、そこの weblog の BBS では、mork とその作者について下品な 4 文字言葉を用いてボロクソに書いてあるなぁ。当たり前か。
_ [debian] timidity 2.13.0-rc1-CVS20040221-1
これになって libgtk1.2 を要求しなくなったので、あれ?いつの間にか GTK+2 対応になってた?と思ったら、timidity-interfaces-extra のほうで libgtk1.2 を持つようになってただけだった。ちぇ。
_ [debian] lm-sensors 2.8.5-3vd1
とりあえず CVS から引っ張ってきて作成。CVS source に lm-sensors_2.8.5-3.diff.gz を当てると、2.8.5 と CVS の差分が一部含まれているようで rej が出るが無視して OK。
_ [debian] include/linux/version.h 消滅問題
2.6.4-mm1 and -mm2: include/linux/version.h missing (vanilla ok) によると、2.6.4-mm* では make clean で include/linux/version.h を消すようになっていて、make-kpkg がコンパイル完了後に make clean を実行するから、ということのようだ。ということで、書かれている通り、/etc/kernel-pkg.conf に
do_clean := NO
を追加してみた。
_ [debian] tdiary 1.5.6+20040315-0vd1
作成。 ついでにレイアウトとかちょっと変えてみる。カテゴリ一覧を出力できるようになったので早速追加。ん、debain って何だ… typo 発見、ということで修正。
_ [comp] timidity GTK+2 対応
結構大変だ…。まずは gtk-config を pkg-config gtk+-x11-2.0 に交換しただけで make し、コンパイルエラーやら警告やらを潰す。よくわからない部分は、他の GTK+1 アプリに対する GTK+2 移行 patch とか、GTK+2 なアプリのコードを参考に手探りで。
- GTK_SIGNAL_FUNC を G_CALLBACK に変更。
- gtk_accel_group_get_default を gtk_accel_group_new に変更。
- gtk_tooltips_set_colors は消滅したので削除。
- GtkText は depracated につき、GtkTextView に変更。
と、他にもまだまだあるんだろうけど、ここで GtkTextView にはまる。うまいこと描画できなかったり、自動でスクロールしてくれなかったり。いいもの見つけた。> Scroll to the end of a TextView ここで例示されているコードをそのままぶち込んだら一部おかしいようだが、スクロールはするようになった。あとできちんとチェックすることにして次。コメントとかに含まれてる日本語を表示しようとする際に、
(<unknown>:14614): Gtk-CRITICAL **: file gtktextbuffer.c: line 543 (gtk_text_buffer_emit_insert):
assertion `g_utf8_validate (text, len, NULL)' failed
とか出るし、日本語部分も表示されない。g_utf8_validate について調べてみると、文字列が UTF-8 かどうかを調べる関数のようだ。GTK+2 のウィジェットに渡す際は UTF-8 じゃないと駄目ってことらしい。MIDI に含まれてる日本語は(多分) Shift-JIS ばっかりだろうなー。ということで、変換してやる。
gchar *message_u8;
:
message_u8 = g_locale_to_utf8( message, -1, NULL, NULL, NULL );
:
gtk_text_buffer_insert(textbuf, &end_iter, message_u8, -1);
:
g_free( message_u8 );
こんな感じ。Gtk-CRITICAL も出なくなったし、日本語も表示されるようになった。 でもまだまだ終わらない。
2004-03-15 (Mon)
_ [comp] kernel 2.6.4-mm2
-mm1 が危険だったので -mm2 にしてみようと思ったが、drivers/video/fbcon.c から accel_putc が消え去っていることを確認。問題の patch は fbdev-char-drawing-enhancement.patch のようだ。
From: James Simmons This patch merges two of the drawing functions. The patch uses aligned transfers when possible even on displays where the characters are not byte align. Tested on my my laptop for 12 bit width fonts and 8 bit wide fonts. It works very nicely.
fbdev の core な人からの patch か。でも UNICON に影響が大きいのでこの patch は今のところ外す。2.6.5 にこれが merge されたら…考えよう。しばらく動向を注視せねば。
- vd_unicon-kernel-2.6-20040219.patch.bz2 &
-mm 対応 patch - longbeep-linux-2.6.0.patch (console.c を vt.c に変更)
- vd_kernel-2.4.21-tuner-ntscjp.patch
- “Parallel build fix” fix
を当てて作成。-mm 対応手 patch は、毎回面倒なので patch を作成した。従前の UNICON patch を当てた後に、vt.c.rej を無視して当てる。 nvidia-kernel の make の前に make include/linux/version.h を忘れずに。どうも CLEAN 時に include/linux/version.h が削除されてるっぽい。LKML にも出たようだ。 > 2.6.4-mm1 and -mm2: include/linux/version.h missing (vanilla ok)
_ [comp] subversion repo 壊れる
rime をいじって commit しようとしたら、
svn: Commit failed (details follow):
svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///XXXXXXX/SVN/repo/trunk/rime/plugins'
svn: Berkeley DB error while opening environment for filesystem /XXXXXXXX/SVN/repo/db:
DB_RUNRECOVERY: Fatal error, run database recovery
svn: Your commit message was left in a temporary file:
svn: '/XXXXXXXX/svn/rime/svn-commit.2.tmp'
すわ repo 崩壊か、ということで
svnadmin recover /XXXXXXXX/SVN/repo
ということで何とか復旧。
_ [comp] PostgreSQL 7.2.1 → 7.4.2
woody から sid へ。さて、version をまたぐときには DB 移行をしないといけないが、Debian では pg_dumpall を使わずともいいようだ。/usr/share/doc/postgresql/README.Debian.migration.gz によると、postgresql-dump という専用の command があるらしい。ということで使ってみた。
# su - postgres
$ postgresql-dump -t db.out -dcivlp $PGDATA/../data.save
これだけで backup、dump、restore 全てやってくれた。便利だ。
_ [debian] sylpheed 0.9.10-0vd1
CVS から sylpheed-gtk2 0.9.10 対応版を引っ張ってきて作成。
_ [comp] いくつか ML に subscribe
sf.jp とか sf.net にある ML に subscribe してみた。 sf.jp のことだけど、Pipermail (Mailman) の生成する ML archive って、何で通し番号があるのに URI 中に datestr を埋め込むかな。一方、sf.net の ML archive は使い勝手悪すぎ。