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 あたりと共存できない問題
- 辞書変換のメンテナスクリプト追加