君にもできる PPA - パッケージを作ろう

前回までの作業で PPA にパッケージを put する準備は整っているはずです。*1
それでは早速パッケージを作りましょう。都合よく昨日 Sylpheed の 2.6.0 beta1 が SVN trunk に入りましたので、こいつをパッケージングしたいと思います。パッケージの作り方はやまねさんのページに、先日の ylug での資料があるのでこちらを参考にするといいでしょう。


ビルドできることを確認します。
$ sudo apt-get build-dep sylpheed
$ svn checkout svn://sylpheed.sraoss.jp/sylpheed/trunk sylpheed
$ cd sylpheed
$ ./autogen.sh
$ make
一行目で、既存の Sylpheed パッケージの情報を利用して、ビルド時に依存しているパッケージを導入しています。二行目で SylpheedSVN からソースのチェックアウトを行い、四行目で configure を行っています。SVN 版の Sylpheed は、そのままでは configure できないのです。
バイナリの動作が確認できたら、一旦 make clean しておきます。そして debian ディレクトリ以下を作成、編集して debuild です。今回の場合は前回パッケージングした Sylpheed SVN 2029 からコピーしてきて Changelog を編集するだけです。バージョンは 2.6.0~beta1-0ubuntu1~ppa1 としました。ここらへんは Debian パッケージの作り方の話になるので詳細は省略します。

パッケージを作成します。
$ debuild
debuild を実行すると sylpheed_2.6.0~beta1-0ubuntu1~ppa1_i386.debsylpheed-i18n_2.6.0~beta1-0ubuntu1~ppa1_all.deb という二つのバイナリが出来上がります。なお途中で署名のため PGP 鍵のパスフレーズを聞かれますので、間違えずに入力してください。当然 Launcphad に登録した鍵を使いますよ。

バイナリのビルドが完了したら、dpkg -i でインストールして動作を確認しましょう。Sylpheed の二つのバイナリは相互に依存しているので同時にインストールする必要があります。こういう点を見ても apt は便利ですね。


$ sudo dpkg -i sylpheed_2.6.0~beta1-0ubuntu1~ppa1_i386.deb sylpheed-i18n_2.6.0~beta1-0ubuntu1~ppa1_all.deb
GUI でパッケージをダブルクリックしてインストールする場合、二つのパッケージを同時に導入するのってどうやるんでしょう? 私はやり方を知らないのでいつも CLI です。

インストールしてアプリケーションの動作が確認できたらソースパッケージを作成します。Launchpad はバイナリをアップロードするのではなく、ソースパッケージを put して Launchpad 上でビルドするようになっています。これによって i386amd64 のパッケージが同時に作成できます。便利ですね。


オリジナルのソースアーカイブを添付してソースパッケージをビルドします。
$ debuild -S -sa
以下のファイルが作成されていれば成功です。

sylpheed_2.6.0~beta1-0ubuntu1~ppa1.tar.gz
sylpheed_2.6.0~beta1-0ubuntu1~ppa1.dsc
sylpheed_2.6.0~beta1-0ubuntu1~ppa1_source.changes
sylpheed_2.6.0~beta1-0ubuntu1~ppa1_source.build

*1:多分。できなかったら教えてください