日本語ローカライズ

OpenInkpotの主要アプリのメッセージを日本語化しました:
http://l10n.openinkpot.org/languages/l/ja/collection/c/oi/r/trunk/
コンパイルhttp://openinkpot.org/wiki/Documentation/BuildEnvironmentに従ってビルド環境を作って

git clone http://git.openinkpot.org/gm.git src/gm
cd src/gm
git checkout -b master-l10n origin/master-l10n
dpkg-checkbuilddeps --arch=mipsel
sudo apt-get install libeoi-dev-mipsel-cross libkeys-dev-mipsel-cross liblops-dev-mipsel-cross libxcb-atom1-dev-mipsel-cross liblanguage-dev-mipsel-cross libchoicebox-dev-mipsel-cross libefreet-dev-mipsel-cross libedje-dev-mipsel-cross libevas-dev-mipsel-cross libecore-dev-mipsel-cross debhelper cdbs cdbs-embedded automake pkg-config
dpkg-buildpackage -amipsel

などとやればgm_0.3.2_mipsel.debができます。これをscpなどで電子ブックリーダーに送ってdpkg -iすればOK。
あとでmasterにも反映されると思います。

日本語優先漢字統合フォント

怪しい電子ブックリーダーでDroidSansFallbackフォントを使っていたんですが、中国語優先で漢字統合されているので日本語で使うには違和感があります。骨が┌じゃなくて┐になったり。
一方DroidSansJapaneseだと日本語はちゃんと出るんですが、中国語の漢字が足りません(中国語ロケールでメニューの漢字の一部が豆腐になります)。
fontforgeを使って日本語優先で漢字統合するこんなスクリプトを作ってみたら解決しました:

#!/usr/bin/fontforge
Open("DroidSansJapanese.ttf")
MergeFonts("DroidSansFallback.ttf")
Select(0uAC00,0uD7FF,0x11174e,0x111f65)
DetachAndRemoveGlyphs()
SetFontNames("DroidSansJC","Droid Sans Japanese Chinese","Droid Sans Japanese Chinese")
Generate("DroidSansJC.ttf")

容量を減らすためハングルは削ってあります。


補足: OpenInkpot 0.2では上記のスクリプトで作ったDroidSansJC.ttfを/home/user/.fonts/に置くだけでうまく文字が出てましたが、Daily buildだとフォント名の部分を

SetFontNames("DroidSansFallback","Droid Sans Fallback","Droid Sans Fallback")

に変更した上で、標準の/usr/share/fonts/truetype/droid-fallback/DroidSansFallback.ttfに上書きしないと出ないようです。どこからこういう違いが来るのか不明。

怪しい電子ブックリーダー


正月はamazon.com経由で買ったHanvon N516という電子ブックリーダーで遊んでました。
話題のKindle/nook/Sony Readerと同じくe-inkベースなので、目にやさしくバッテリーが(表示オンのままで)何日も持ちます。
Kindleやnookのような無線通信はできませんが、その分軽いです(170g)。
面白いのは、ファームウェアOpenInkpotという電子ブックリーダー用Linuxディストリビューションに入れ替えて好き勝手にいじれるところです。IP over USBでsshしたりできます。
言語設定を中国語にしてDroidSansFallbackフォントを入れたら日本語のepubファイルも表示できました。青空文庫読み中。

Fedora 12 で Pixus iP1500

まだ使ってるのかと言われそうですが、再びiP1500です。
http://fedorasolved.org/peripheral-solutions/canon-pixma-ip1500 で気づいたのですが、Canon Europeのドライバが更新されて、Fedora 12でもライブラリの細工なしで使えるようになりました。

http://www.canon-europe.com/Support/Software/Linux/2005/download.asp?ComponentID=369142&SourcePageID=312227#1 を展開して

yum --nogpgcheck localinstall bjfilter-common-2.50-2.i386.rpm bjfilter-pixmaip1500-2.50-2.i386.rpm
/etc/init.d/cups restart
/usr/sbin/lpadmin -p PIXMAIP1500 -m canonpixmaip1500.ppd -v usb:/dev/usb/lp0 -E
/usr/sbin/lpadmin -d PIXMAIP1500

でOK。

OpenSSL 1.0.0-beta4のTLS問題

出たばかりのFedora 12に上げたら、wanderlustPOP/IMAP over SSLが動きません。
調べてみると

$ openssl s_client -connect pop.gmail.com:995
CONNECTED(00000003)
3077785308:error:140920E3:SSL routines:SSL3_GET_SERVER_HELLO:parse tlsext:s3_clnt.c:927:

なんてエラーが出てます。
bugzillaのそれっぽいエントリによると、OpenSSLが1.0.0-beta4に上がってTLS1の挙動が変わったようです(バグと言えるかどうかは微妙)。
とりあえずSSL3は正常に動いてるので、.emacs

(setq ssl-program-arguments '("s_client" "-quiet" "-host" host "-port" service "-ssl3"))

とすると回避できました。

libofxにutfパッチ

gnucashで日本語が入ったofx(MS Money形式)ファイルをインポートすると文字化けして困っていたんですが、https://bugs.launchpad.net/ubuntu/+source/libofx/+bug/276379のパッチで直りました。
Fedoraだと

rpm -ivh http://kojipkgs.fedoraproject.org/packages/libofx/0.9.1/2.fc12/src/libofx-0.9.1-2.fc12.src.rpm
cd rpm/SOURCES
wget http://launchpadlibrarian.net/18087523/utf-8_fix.patch
cd ..

とした上で、SPECS/libofx.spec を

--- SPECS/libofx.spec.orig	2009-07-27 06:20:01.000000000 +0900
+++ SPECS/libofx.spec	2009-09-20 19:43:48.000000000 +0900
@@ -9,2 +9,3 @@
 Patch1: libofx-assorted-c++-fu.patch
+Patch2: utf-8_fix.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -44,2 +45,3 @@
 %patch1 -p1 -b .c++-fu
+%patch2 -p1
 

と変更して

rpmbuild -ba SPECS/libofx.spec
rpm -U --force RPMS/i586/libofx-0.9.1-2.fc11.i586.rpm

で更新。

追記: gcc-c++ が入ってないとわかりにくいエラーが出て configure できません。