[Scim-imengine-dev 841] scim-skk で multiskkserv が動作するのを確認しました

アーカイブの一覧に戻る

UTUMI Hirosi utuhi****@yahoo*****
2005年 12月 20日 (火) 17:47:55 JST


// To: scim-imengine-dev
// ( http://lists.sourceforge.jp/mailman/listinfo/scim-imengine-dev )
// Cc: Takekawa-san

内海です。
(Takekawa さん、お久しぶりです。
このメールは scim-imengine-dev に送っています。
前後の投稿につきましてはこちらから参照していただけましたら幸いです。
http://lists.sourceforge.jp/mailman/archives/scim-imengine-dev/2005-December/000830.html )

scim-skk で multiskkserv が動作するのを確認しました。
Mandriva Cooker 用のパッケージはこちらです。
http://sourceforge.net/project/showfiles.php?group_id=109779&package_id=118621
インストールしたときに簡単な使いかたを
echo で表示するようにしています。

multiskkserv を選んだ理由は次のとおりです。
・README が丁寧で導入しやすい
・いまもメンテナンスされている
・SKKdic を CDB 形式に変換するためのツールが付属している
・複数の辞書を扱える
・作者の Takekawa さんには 以前 xmms-ja や enfle で大変お世話になった

導入するには、まず cdb0.75 をインストールしてください。
cdb0.75 のパッケージも上記の場所に置いています。

使いかた:
1. SKKServ を scim-skk に追加
$ scim-setup
"辞書関連" のタブを開く ->
既存の辞書を削除 (multiskkserv のみの動作を確認するため) -> 
次の辞書を追加する。
辞書の種類: SKKServ
サーバ名:   localhost

2. scim-skk のユーザ辞書を退避
$ mv .skk-scim-jisyo .skk-scim-jisyo.bak

3. multiskkserv を起動
$ su
# multiskkserv /usr/share/skk/SKK-JISYO.L.cdb &
(最後の '&' を忘れないこと)

4. Ctrl+Alt+Backspace (既存の SCIM プロセスを切る)

あとは通常どおりに scim-skk を起動してください。


scim-skk で気づいた点:
・cdb-0.75 形式の CDB ファイルは利用できない?
生成したファイルをじかに
辞書の種類: CDBFile
として追加しましたが、うまく変換できません。
(uim-skk でも利用できませんでした。ひょっとしたら辞書が
壊れているのかも。あるいは uim-skk も cdb-0.75 に対応していない?)

・サーバ名は "localhost" に決め打ちしておいたほうが良いかもしれません


multiskkserv/cdb0.75 のパッケージ作成にあたって困った点:
・cdb-0.55 と競合しない形で cdb-0.75 のパッケージを作る必要があった
・gcc-4.0.2 だと cdb-0.75 のビルドに失敗した
(Gentoo からパッチをいただきました。感謝) 
・cdb-0.75 には devel ファイルをインストールするスクリプトがなかった
・そもそも mecab-skkserv 以外の skkserv を使ったことがなかった :-p

これらは適当に解決したのですが、作成した multiskkserv の RPM を
インストールしてもまったく動きません。
困った挙句 手動で
$ skkdic-p2cdb SKK-JISYO.L.cdb < SKK-JISYO.L
とすると、バッファオーバーフローになることに気づきました。

ぐぐってみると、
http://aveiro.hp.infoseek.co.jp/skk/servers.html
> 2005/03時点で L 辞書の最長エントリである「こう」は
> 2286バイトありますが、 バッファサイズが足りていないサーバが
> 結構あります。適宜大きくしてビルドし直しましょう。
> # 大抵の場合、1024か 2048という値になっています。
> cdb 形式への変換に multiskkserv 附属の skkdic-p2cdb を
> 利用している場合、 skkdic-p2cdb.c の SKKSERV_RESULT_SIZE も
> 変更する必要があります。

"[2005/03時点] か...さすがに誰かが Takekawa さんに連絡してるだろう" と
思いつつコードを調べると、
> #define SKKSERV_RESULT_SIZE  2048

さっそくパッチを作ったところ、うまく動くようになりました...

//
Yukiko さん、mecab-skkserv の動作を追試してくださって
ありがとうございます。


--------------------------------------
STOP HIV/AIDS.
Yahoo! JAPAN Redribbon Campaign 2005
http://pr.mail.yahoo.co.jp/redribbon/
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: cdb-0.75-errno.patch.bz2
型:         application/octet-stream
サイズ:     194 バイト
説明:       cdb-0.75-errno.patch.bz2
ダウンロード 
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: multiskkserv_change_result_size.patch.bz2
型:         application/octet-stream
サイズ:     448 バイト
説明:       multiskkserv_change_result_size.patch.bz2
URL:        http://lists.sourceforge.jp/mailman/archives/scim-imengine-dev/attachments/20051220/311ad727/attachment-0001.obj 


Scim-imengine-dev メーリングリストの案内
アーカイブの一覧に戻る