パケジ作成

どうもでびあんパケジを作らねば、な話になってきつつあるのでそちら方面の調査をナニ。材料としては 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 な記述使うけんね、という理解で良いのかな。