
5.5.2 パッケージをリポジトリに追加する
一度適当なパッケージを作成してみましょう。 ここでは GNU hello のパッケージが作成できたとします。横着したい
人は apt-get source hello でも良いでしょう。
テストのために簡単なリポジトリを作成します。ここでは /Work/svn/ 以下にリポジトリを作成します。
% svnadmin create ~/Work/svn/
% svn mkdir file:///home/uwabami/Work/svn/trunk -m "create trunk"
% svn mkdir file:///home/uwabami/Work/svn/tags -m "create tags"
% svn mkdir file:///home/uwabami/Work/svn/branches -m "create branches"
% svn ls file:///home/uwabami/Work/svn
branches/
tags/
trunk/
次に、作成したパッケージをリポジトリに追加します。追加するコマンドは svn-inject です。
% svn-inject -l 2 -o -c 0 hello_2.7-1.dsc file:///home/uwabami/Work/svn
svn-inject のオプションの詳細は man を見てもらうとして、ここでは
-l
Layout type.
1 (default) means package/{trunk,tags,branches,...} scheme,
2 means the {trunk,tags,branches,...}/package scheme.
-o
Only keep modified files under SVN control (including the debian/ directory),
track only parts of upstream branch
-c number
Checkout nothing (0), trunk directory (1) or everything (2) when
the work is done.
を用いています. 単一のパッケージを単一のリポジトリで管理する場合には -l 1 が良いでしょう.
5.5.3 パッケージのビルド
svn-inject が終わったので、リポジトリからファイルを取得してみます。
% svn checkout file:///home/uwabami/Work/svn/trunk svn-work
A trunk/hello
A trunk/hello/debian
A trunk/hello/debian/control
A trunk/hello/debian/source
A trunk/hello/debian/source/format
...
ここでは svn-work にファイルをチェックアウトしました。実際に svn-work/trunk/hello に移動して、パッケー
ジを作成してみます。
% cd svn-work/trunk/hello
% sudo apt-get build-dep hello
% svn-buildpackage
Complete layout information:
trunkDir=/home/uwabami/svn-work/trunk/hello
trunkUrl=file:///home/uwabami/Work/svn/trunk/hello
dpkg-checkbuilddeps
Orig tarball not found (expected ../tarballs/hello_2.7.orig.tar.gz)
mergeWithUpstream mode detected, looking for ../tarballs/hello_2.7.orig.tar.gz
I: mergeWithUpstream property set, looking for upstream source tarball...
E: Could not find the upstream source file! (should be ../tarballs/hello_2.7.orig.tar.gz)
... 転びました。 svn-buildpackage では、パッケージ作成時の一時ディレクトリ (build-area) と upstream のソー
スの保管場所 (tarballs) の存在を仮定しています。これを準備しましょう (ちなみに svn-buildpackage は失敗しまし
た時点で、これらのディレクトリが既に作成されています)。
% cd ..
% ls
build-area/ hello/ tarballs/
% cd hello
% uscan --download-current-version --destdir=../tarballs/
watch ファイルがきちんと書かれている/書けていると、 uscan 一発で良いので楽です。ではもう一度パッケージをビ
25