パケジ作成
どうもでびあんパケジを作らねば、な話になってきつつあるのでそちら方面の調査をナニ。材料としては rails なパケジということで redmine のソースパケジを手元に取得したのですが、とりあえず debian/rules を確認した方が良いのかな。
debian/rules
redmine は cdbs 使ってる模様。rules に以下な記述があります。
include /usr/share/cdbs/1/rules/debhelper.mk
ファイル開こうとしたら存在しないとの事。これは dpkg-dev パケジに、なのかどうか。入っていないので導入してみるか、と言いつつ dpkg-dev じゃなくて cdbs パケジになるのかな。両方とも導入してみます。
と思ったら dpkg-dev は導入済みでした。そして cdbs パケジ導入で上記 Makefile は存在している状態になりました。とりあえず開いてみるも必須なターゲットの記述が無いな。include を探してみたら以下な記述がありました。
_cdbs_scripts_path ?= /usr/lib/cdbs _cdbs_rules_path ?= /usr/share/cdbs/1/rules _cdbs_class_path ?= /usr/share/cdbs/1/class ifndef _cdbs_rules_debhelper _cdbs_rules_debhelper = 1 include $(_cdbs_rules_path)/buildcore.mk$(_cdbs_makefile_suffix)
同じディレクトリに buildcore.mk がありますのでこれでアタリでしょう。とは言え Makefile な記述がアレ杉て大変。とりあえずググッてみたら以下なドキュメントを見つけました。
曰く
CDBS の実体は普通の Makefile の集まりで,その中身を読めば CDBS の仕組みを理解することが できます.
Debian パッケージ作成法より引用
とのこと。最近こんなの多いな。以下を参考にしつつこつこつ読む方向ス。
buildvars.mk と buildcore.mk が一般的なビルドの手順のフレームワーク を提供,debhelper.mk はそのフレームワークを利用して dh_* コマンドを 実行,debian/rules でパッケージ作成に必要だが dh_* コマンド では対応できない個別の処理を追加,という仕組みです.
Debian パッケージ作成法より引用
例えば redmine な例であれば rules には binary-install/redmine なターゲットな記述しかないので、基本的には debhelper.mk にあるルールを使うけど、binary-install/redmine だけはデフォ以外に rules な記述使うけんね、という理解で良いのかな。