トップ 最新 追記 RDF

雄也の?日坊主日記


2005-08-02

_ [Debian] svn-buildpackage使用時のupstreamソースを分離するバージョン管理方法

以前,svn-buildpackageを使ったときの疑問点として,orig.tar.gzをtarballs/に突っ込むことを挙げている. trunk/にはupstreamのソースもあるし,branches/upstream/current/以下にもオリジナルのソースがあるにも関わらずである.

svn-buildpackageを使うにしてもmergeWithUpstreamモードであれば,orig.tar.gzを別に置いてtrunk/にはパッケージングに必要なファイルのみにできた. しかし,orig.tar.gzをリポジトリと別に管理するのは面倒である.

そこで,branches/upstream/<UPSTREAM-VERSION>/以下に置いたファイルからorig.tar.gzを自動生成するスクリプトを書いた. これにより,upstreamのファイルとパッケージングに必要なファイルを分離した上で,ファイルの重複といった無駄がないリポジトリができた.

本日記エントリではそのやりかたを紹介する.

必要なもの

リポジトリに作ったパッケージを突っ込む

svn-injectに-oオプションをつけて実行する.

% svn-inject -o -c0 ../rast_0.1.1-0.2.dsc svn+ssh://kusanagi.j96.org/home/yuya/SVNRepositories/debian-packages

こうすることで,trunk/debian/にmergeWithUpstreamという属性が値1でつく. svn propget で確認できる.

% svn propget mergeWithUpstream svn+ssh://kusanagi.j96.org/home/yuya/SVNRepositories/debian-packages/rast/trunk/debian
1

未確認だが手動でtrunk/debian/にmergeWithUpstream属性を付与すれば,既存のリポジトリが移行できるはずだ.

upstreamファイルをリポジトリに突っ込む

branches/upstream/<UPSTREAM-VERSION>へorig.tar.gzに入れるファイルを準備する.

upstreamのtarballを中に入れるパッケージングをする場合は以下のようになる.

% svn checkout svn+ssh://kusanagi.j96.org/home/yuya/SVNRepositories/debian-packages/rast/branches/upstream/0.1.1 upstream
% cd upstream
% cp path/to/rast-0.1.1.tar.bz2 path/to/rast-0.1.1.tar.bz2.asc .
% svn add rast-0.1.1.tar.bz2 rast-0.1.1.tar.bz2.asc
% svn commit -m "add upstream source."

リポジトリからtrunkを取得してdebパッケージ作成

trunk/を取得して,setup-orig-tarballを実行し,svn-buildpackageを実行する.

% svn checkout svn+ssh://kusanagi.j96.org/home/yuya/SVNRepositories/debian-packages/rast/trunk
% cd trunk
% setup-orig-tarball
% svn-buildpackage -rfakeroot --svn-lintian (--svn-ignore-new)

../build-area/直下に.debパッケージができている.

リリースするとき

パッケージを作ってさらにタグ打ちする場合は

% svn-buildpackage -rfakeroot --svn-lintian --svn-tag

単にタグ打ちだけする場合は

% svn-buildpackage --svn-tag-only

New upstream release

orig.tar.gzに入れるファイルを以下のように準備する.

% cp path/to/rast-0.2.0.tar.bz2 path/to/rast-0.2.0.tar.bz2.asc tmp-dir
% svn import -m "new upstream release." tmp-dir svn+ssh://kusanagi.j96.org/home/yuya/SVNRepositories/debian-packages/rast/branches/upstream/0.2.0

trunkで普通に

% dch -i

などして修正し

% setup-orig-tarball
% svn-buildpackage -rfakeroot --svn-lintian

としてdebパッケージを作る.

参考文献


2005-08-03

_ [Rast] BSD makeでRastをビルドするパッチ

前田さんからBSD makeでRastがビルドできないことをまた聞きして,BSD makeでもビルドできるようにするパッチを書いた. プロジェクトページにはインストールの項で

make には GNU make を使用してください.

と示していたけど,GNU makeが使えない状況なら必要かもしれない. (とはいえ,そんな環境の方なら自力でビルドできるようにしてしまいそうだけど...)

RastのtarballがBSD makeオンリーでよければ.forとか使って楽に書けるけど,そういうわけにはいかないだろうなあ.

ただ,これでわかった一番の問題は,Makefile.am中に$<で置き換えている部分とそうでない部分が中途半端に両方あった点だと思う. GNU makeオンリーにするならするで全部$<で置き換えるように書くべきだった.

指摘をいただいた方に感謝です.


2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|
2006|05|
2007|04|05|09|10|11|
2008|04|05|08|10|11|
2009|02|03|04|05|06|07|08|09|10|11|
2010|02|03|04|07|10|
2011|04|08|
2012|02|10|
2014|05|06|08|
2018|03|
楽天で探す
楽天市場
キーワードから探す
楽天トラベル