yaskkserv の deb 化(1)

まずは配布元の文書をざっと眺める。ビルド時には perl, g++ (>=3.3), make が必要で、辞書の変換用に skkdic も必要になる (skkdic-extra は recommends か suggests でよさそう)。

手ほどきを見ながら、

$ wget http://umiushi.org/~wac/yaskkserv/yaskkserv-0.3.5_SKK_ML_TEST_20070814_0.tar.bz2
$ sudo aptitude install dpkg-dev debhelper build-essential dh-make
$ sudo aptitude install perl gcc make skkdic skkdic-extra
$ tar jxvf yaskk*
$ mv yaskkserv-0.3.6_* yaskkserv-0.3.6
$ cd yaskkserv-0.3.6
$ dh_make -c gpl -e mail@ddress -f ../yaskkserv-0.3.6_*.bz2

これで、debian/ ディレクトリが出来た。は make できるように変更をするはずだけど、yaskkserv は独自の (GNU autoなんちゃらではない) configure と make を使っていて、特にいじるところはなさそうなので何もしない。

続けて一番パッケージ作成、な匂いのする debian/control やら debian/rules の修正。解説見てると、fhs の文書が debian-policy に含まれてたりするようなのでパッケージを追加。

$ sudo aptitude install debian-policy
$ vi debian/control
$ vi debian/changelog
$ vi debian/copyright
$ vi debian/rules

上で調べた依存関係やら、独自 configure/make を加味してそれっぽく修正していく。

その他は主にドキュメントまわり。yaskkserv には man が付属しないので、自分で作る必要があるようだ。しかも英語で。groff とか知らんし……。nori1 さんから help2man という素敵ツールがあることを教えてもらったけど、期待通りに動かず。原因は yaskkserv が stderr に --help を出力していることだった (help2man は stderr を捨てている)。うーん困った。

ひとまず man はダサい方法で無理矢理 help2man した。edition 毎の違いをどうするかも含めて後で手直しがいるけど、現状はこれでいいでしょ。他の雛形ファイルもいらなさげなのを消したり、適当にそれっぽく修正。

では、お待ちかねのビルド。dpkg-buildpackages を使うように書いてるけど、lintian もやってくれる debuild で:

$ sudo aptitude install lintian
$ debuild

いくつかエラーがあったのを直して完成。lintian がいくつか W: を出してるけど、これはちょっと時間がいるな。

W: が全部消せたら、devel@jp でスポンサーをお願いしてみるか。

残りの課題

  • 3種類あるバイナリをどう使いわけるか
  • 3種類あって少しずつオプションが違うバイナリそれぞれに man ページを?
  • dbskkd-cdb あたりと共存できない問題
  • 辞書変換のメンテナスクリプト追加