Sj3
FreeBSD 5.3以降(と4.11以降)のportsでインストールしたsj3のsj3serv
は動作しません(原因はそのうちに説明します)。そのため、次のバージョンのsj3はアンインストールしましょう。
ja-sj3-2.0.1.20_2
ja-sj3-2.0.1.20_3
FreeBSDで最後に動いたsj3のports
FreeBSD 4.10でリリースされたsj3のportsはここから取得できます。amd64とia64ではビルドできないようですが、少なくてもi386では動作しています。
一応4.10-RELEASEのパッケージja-sj3-2.0.1.20_1.tgz
のコピーをおいておきます。
FreeBSD 6.2でビルドしたsj3
ここのところFreeBSD 4.11を6.2に更新することが多く、その度にパッチをあててビルドするのも面倒なので、6.2でsj3のパッケージをビルドしました。portsのmake package
で作ったja-sj3-2.0.1.20_99.tbz
と、そのportsのsj3.tar.gzです。
Linuxでsj3をビルド
次のファイルをダウンロードしておきます。
最後のパッチsj3-2.0.1.20_1-linux-1.patch
は以下の内容を変更します。
sj3serv
の所有者と所有グループをFreeBSDと同じくbinに変更sj3serv
のポート番号をFreeBSDと同じく3086に変更- portsのパッチが
strlcpy(3)
を使うように変更するが、Linuxにはstrlcpy
がないので追加
つぎのようにビルドします。
% tar zxf anywhere/sj3.tar.gz
% tar zxf anywhere/sj3-2.0.1.20.tar.gz
% cd sj3-2.0.1.20/
% cat ../sj3/files/patch-* | patch -s -p0
% cat anywhere/sj3-2.0.1.20_1-linux-1.patch | patch -s -p1
% xmkmf
% make Makefiles
% make
% su
# make install
# exit
サーバを走らせます。
% su
# /usr/local/bin/sj3serv
Kana-Kanji Conversion Server Version 2.08C
Copyright (c) 1990-1995 Sony Corporation
Created at Mon Mar 23 16:42:59 JST 1998
Can't open "/dev/console"
終了しました
# exit
デモで動作を確認します。
% cd anywhere/sj3-2.0.1.20/demo
% ./sample -H localhost
*--------------------------------------------*
* Sample Program for *
* New Japanese Convert Library *
* SJ3LIB *
* *
* Terminator of Input : Newline-code *
* *
* If you want to end this process, *
* input Newline-code or Control-D. *
*--------------------------------------------*
[Input Alphabet] hoge
[Output Yomi ]:[ほげ]
[Output Kanji]:[帆下]
[Input Alphabet]
FreeBSDの最新のportsでsj3servが動かない原因
正確には、sj3serv
は走りますが、クライアントは漢字に変換できません。
原因とその修正方法もわかってますが、そのうちにまとめます。
それよりもコミッタがちゃんと動作確認してないことに疑問に感じます。sj3ではなくapacheだったら、ビルド後にapachectl start
でプロセスが走るだけで動作確認を済ませますか? そのあとウェブブラウザで接続して、テストページが表示されるかを調べませんか? sj3は誰も使ってないから、クライアントから変換できるか試す必要がない、と思われているかもしれませんが。