おとといの続きです。
libapache2-mod-auth-mysqlパッケージにRedmine1.2から導入されたsaltのパッチを適用します。
パッチの適用
dpatchでパッチを適用します。
debian/patches/00listで既存のパッチを確認します。
$ tail -1 debian/patches/00list 017-doc_persistent_conn.dpatch $
dpatch-edit-patchコマンドで既存パッチに依存して新規パッチを作成します。
$ dpatch-edit-patch 018-redmine-salt 017-doc_persistent_conn ... 中略 ... $ pwd /tmp/dpep-work.CinHvb/mod-auth-mysql-4.3.9
2つ目の引数に指定したパッチまであたった状態でソースのコピーができるので、パッチを適用したり、必要に応じてソースを修正します。
exitするとdebian/pachesに修正パッチが作成されます。
$ patch < ~/work/apt/mod_auth_mysql.patch patching file mod_auth_mysql.c $ exit dpatch-edit-patch: * Creating new patch ~/apt/auth-mysql-org/mod-auth-mysql-4.3.9/debian/patches/018-redmine-salt.dpatch dpatch-edit-patch: Warning: debian/patches/00template not exist, using hardcoded default. dpatch-edit-patch: ~/apt/auth-mysql-org/mod-auth-mysql-4.3.9/debian/patches/018-redmine-salt.dpatch created. $
changelogの作成
changelogに修正の概要を追加します。
バージョン番号は、プライベートなパッケージであることが分かるように適当な名称をつけます。
$ dch -i
エディタが開いてchangelogのひな形が表示されるので1行の概要説明とバージョンを修正します。
mod-auth-mysql (4.3.9-13private4) quantal; urgency=low * Change redmine salt ...
パッケージのビルド
プライベートなパッケージの場合には、オフションを指定して署名を省略します。
$ dpkg-buildpackage -us -uc
下記のようにパッケージが出来上がります。
$ ls ../*private*deb ../libapache2-mod-auth-mysql_4.3.9-13private4_amd64.deb $
dpkg -iでインストールすることができます。
$ dpkg -i ../libapache2-mod-auth-mysql_4.3.9-13private4_amd64.deb $ dpkg -l | grep ksaito ii libapache2-mod-auth-mysql 4.3.9-13private4 Apache 2 module for MySQL authentication $
これで、どんなパッケージにもパッチや実験用のコードを追加でき、本体のパッケージがバージョンアップした場合にもパッチ単位についていくことができます。