2007-03-28 (Wed)

_ [comp] 続々々々々・rxvt-unicode ×問題再び

さらにコメントいただいた。返事は明日に。

2007-03-27 (Tue)

_ [comp] 続々々々・rxvt-unicode ×問題再び

コメントいただいた。手詰まりなんだろうか…。

_ [comp] uswsusp を試す

kernel 2.6.20.2 + suspend2 2.2.9.7 では相変わらず電源が切れないことがある。また、kernel 2.6.20.4 + suspend2 2.2.9.10 は kernel panic になって resume できなかった。というわけで、uswsusp を試してみることにした。いいらしいので。だいたいACPI Software Suspend の場合に書いてあることそのままで、

  1. 次を指定した kernel を作成 & install。
     CONFIG_SOFTWARE_SUSPEND=y
     CONFIG_BLK_DEV_INITRD=y
    
  2. uswsusp と initramfs-tools を install。
  3. /etc/initramfs-tools/conf.d/resume で /dev/ide/host0/bus0/target0/lun0/part2 を /dev/sda2 に変更。
     RESUME=/dev/sda2
    
  4. /etc/uswsusp.conf で /dev/ide/host0/bus0/target0/lun0/part2 を /dev/sda2 に変更。
     resume device = /dev/sda2
    
  5. initrd.img を作成。
     # update-initramfs -c -k 2.6.20.4-XXXXXXXX.2
     update-initramfs: Generating /boot/initrd.img-2.6.20.4-XXXXXXXX.2
     #
    
  6. /boot/grub/menu.lst を修正。
     title           Debian GNU/Linux, kernel 2.6.20.4-XXXXXXXX.2 (SATA)
     root            (hd0,0)
     kernel          /boot/vmlinuz-2.6.20.4-XXXXXXXX.2 root=/dev/sda1 ro apm=power-off video=vesafb vga=0x305
     initrd          /boot/initrd.img-2.6.20.4-XXXXXXXX.2
    
  7. s2ram -n を実行。
     # s2ram -n 
     Machine is unknown.
     This machine can be identified by:
         sys_vendor   = "MICRO-STAR INC."
         sys_product  = "MS-6758"
         sys_version  = "00C"
         bios_version = ""
     See http://en.opensuse.org/S2ram for details.
    	
     If you report a problem, please include the complete output above.
     #
    

    unknown だけど問題ないこともあるらしい。

  8. s2disk を実行。これで suspend して電源が切れる。今のところ、電源が復活してくることもない。
  9. 普通に同じ kernel で boot すると、そのまま resume する。

今のところ大きな問題は出てないし、suspend2 より安定してるかも?

2007-03-26 (Mon)

_ [comp] 続々々・rxvt-unicode ×問題再び

返事来た。まとめると、

  • rxvt-unicode は locale が指定した文字幅を尊重している。
    • プログラムは locale の指定に従うべきで、そうしないのはバグである。
  • libc ではなく、vim や xterm などあらゆるプログラム側で、locale の制限のためにこのような修正をしなければならないのはナンセンス。
  • 正しい locale を用いるか、locale を修正すべき。または libc が EastAsianWidth の文字幅のような、詳細を設定する手段を提供すべき。そうすれば locale を尊重している正しいプログラムはきちんと動作するようになる。
  • このような理由で Markus Kuhn’s wcwidth() 実装は buggy である。

ということのようで、この考えを変えるつもりはないそうだ。 確かにその通りかもしれないけど、不便なことには変わりないので、debian-devel@jp に救援を出してみた。本家じゃないところが日和ってるけど。> [debian-devel:16693] East Asian Width Problem at rxvt-unicode-ml

_ [debian] iceweasel 2.0.0.3-1vd2, w3m 0.5.1+cvs1.974-0vd4

間違って libc6 2.5-0exp6 でビルドされていたので、2.3.6.ds1-13 で作り直し。

_ [debian] acroread 7.0.9-0.1 変

久々に起動したら、

% acroread
expr: syntax error
expr: syntax error
expr: syntax error
        :

と永久に出続ける。何事かと思って sh -x で見てみると、

++ echo libgtk-x11-2.0.so.0.1000.11
++ sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'
++ return 0
+ version=
+ '[' 0 -ne 0 ']'
++ expr length
expr: syntax error

GTK+ 2.10 にしたので、0.「10」00.11 となってしまってマッチしなくなったようだ。

--- /usr/bin/acroread.orig      2007-03-26 19:36:13.000000000 +0900
+++ /usr/bin/acroread   2007-03-26 19:36:25.000000000 +0900
@@ -418,7 +418,7 @@
            return 1
         fi

-               echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'
+               echo $mfile| sed 's/libgtk-x11-\([0-9]*\).0.so.0.\([0-9]*\)00.\([0-9]*\)\|\(.*\)/\1\2\3/g'
         return 0
     fi

としてやると動作するようになった。