Home About
virtualbox, macos, freebsd, wnn

Wnn7 の FreeBSD 用アップデートを適用する

Wnn7 を macOS Catalina + emacs 26.3 nox で使う, VirtualBox + FreeBSD 10.4 を利用 では 製品版CDROM の内容でインストールを進めていましたが、 こちらから FreeBSD アップデートパッケージ が配布されていることが判明。 なるべく最新のものを使いたいので、このアップデートを適用してみます。

アップデート適用手順

Wnn7 を macOS Catalina + emacs 26.3 nox で使う, VirtualBox + FreeBSD 10.4 を利用 の手順に沿って FreeBSD 10.4 で Wnn7 環境が構築されていることが前提です。

アップデートファイルをダウンロードして差し換え

まず、FreeBSD アップデートパッケージ にある七個のファイルを全部ダウンロードしておきます。

そして CDROM の該当ディレクトリに配置

/path/to/cdrom/freebsd

dpkey7-fb5-1.01_1.tbz
ja-wnn7-elisp-1.02_1.tgz
ja-wnn7-maindic-1.01_2.tgz
ja-wnn7-optiondic-1.01_2.tgz
ja-wnn7-server-fb5-1.01_2.tbz
ja-wnn7-utils-fb5-1.01_1.tbz
ja-wnn7-xclients-fb5-1.03_2.tbz

もとのファイル名は以下

dpkey7-1.01_1.tgz
ja-wnn7-elisp-1.01_1.tgz
ja-wnn7-maindic-1.01_1.tgz
ja-wnn7-optiondic-1.01_1.tgz
ja-wnn7-server-1.01_1.tgz
ja-wnn7-utils-1.01_1.tgz
ja-wnn7-xclients-1.01_1.tgz

インストールスクリプトを書き換え

インストールスクリプトを書き換える必要があります。 といっても該当ファイル名を置き換えるだけです。

たとえば、こんな sed スクリプトを Install ファイルに適用する。

s/dpkey7-1.01_1.tgz/dpkey7-fb5-1.01_1.tbz/g
s/ja-wnn7-optiondic-1.01_1.tgz/ja-wnn7-optiondic-1.01_2.tgz/g
s/ja-wnn7-xclients-1.01_1.tgz/ja-wnn7-xclients-fb5-1.03_2.tbz/g
s/ja-wnn7-elisp-1.01_1.tgz/ja-wnn7-elisp-1.02_1.tgz/g
s/ja-wnn7-server-1.01_1.tgz/ja-wnn7-server-fb5-1.01_2.tbz/g
s/ja-wnn7-maindic-1.01_1.tgz/ja-wnn7-maindic-1.01_2.tgz/g
s/ja-wnn7-utils-1.01_1.tgz/ja-wnn7-utils-fb5-1.01_1.tbz/g

インストールを実行

インストールを実行する前に、Wnn7 関連サーバを停めます。

$ cd /usr/local/etc/rc.d/
$ sudo ./dpkey7.sh stop
$ sudo ./wnn7.sh stop

前回同様にインストールスクリプトを実行

$ cd /path/to/wnn7/cdrom
$ sudo ./Install

インストールはうまくいったようです。しかし、残念ながら dpkeyserv と jserver は libc.so.5, libxpg4.so.3 がない、とかで起動できなかったようです。 コンソールにはこんなエラーが出ていました。

Start dpkeyserv
Shared object "libc.so.5" not found, required by "dpkeyserv"
 dpkeyserv
Start jserver
Shared object "libxpg4.so.3" not found, required by "jserver"
 jserver(Wnn7)

事前のリサーチで、 compat5x-amd64 を入れる必要ありと書いてあったページがあったので入れます。

$ sudo pkg install compat5x-amd64

これで再度起動してみましょう。

$ cd /usr/local/etc/rc.d/
$ sudo ./dpkey7.sh start
$ sudo ./wnn7.sh start

今度は問題ないみたいです。

wnn7egg へのパッチ適用とコンパイル

パッチの適用は、これも前回同様に、該当ディレクトリに移動して、パッチするだけです。

$ cd /usr/local/lib
$ sudo patch < /path/to/patch/wnn7-elisp-el-1.02-1.patch

メッセージを良く見てみると emacs20 関連では パッチされたファイルは以下の5つです。

wnn7/elisp/emacs20/wnn7egg-cnv.el
wnn7/elisp/emacs20/wnn7egg-com.el
wnn7/elisp/emacs20/wnn7egg-jsymbol.el
wnn7/elisp/emacs20/wnn7egg-rpc.el
wnn7/elisp/emacs20/wnn7egg.el

もう面倒なので、この5つだけ emacs で M-x byte-compile-file しましょう。

まとめ

これで Wnn7 最新の状態で使えそうです。

追伸

Wnn8 は Debian Buster や Ubuntu 20.04 で普通にインストール&作動しました。 Wnn8 が最新の FreeBSD にインストールできるとのことで導入しました。