いけむランド

はてダからやってきました

Subversion でチェックアウトしたソースから直接 cygport でパッケージをつくる方法

残念なことに V8 の話題に完全に乗り遅れたので、せめて V8 を例に Subversion からソースをチェックアウトして、直接 cygport でパッケージをつくる方法を紹介する。


cygport には /usr/lib/cygport/lib 配下に cygclass ファイルというパッケージ作成を補助するスクリプト群がある。

% ls /usr/lib/cygport/lib/
R.cygclass            gnome.org.cygclass        perl.cygclass
apache.cygclass       gnome2.cygclass           php.cygclass
apache1.cygclass      gst-plugins.cygclass      pygtk.cygclass
apache2.cygclass      gst-plugins0.10.cygclass  python.cygclass
aspell-dict.cygclass  gst-plugins0.8.cygclass   qt3.cygclass
berkdb.cygclass       gstreamer.cygclass        qt4-cmake.cygclass
bzr.cygclass          gtk2-perl.cygclass        qt4-qmake.cygclass
claws-mail.cygclass   gtkmm.cygclass            qt4.cygclass
cross.cygclass        hg.cygclass               ruby-gnome2.cygclass
cvs.cygclass          java.cygclass             ruby.cygclass
distutils.cygclass    kde3.cygclass             svn.cygclass
docbook.cygclass      kde4.cygclass             tcl.cygclass
ebook.cygclass        lua.cygclass              utils.cygclass
emacs.cygclass        mono.cygclass             wxwidgets.cygclass
font.cygclass         mtn.cygclass              xfce4.cygclass
fox.cygclass          ocaml.cygclass            xorg.cygclass
ggz.cygclass          octave.cygclass           zope.cygclass
git.cygclass          opensync.cygclass


今回は subversion からソースをチェックアウトして tarball をつくるために svn.cygclass のお世話になる。

cygport ファイルの先頭で必要な変数の宣言して、svn.cygclass を inherit する。

SVN_URI="http://v8.googlecode.com/svn/"
SVN_MODULE="v8"
inherit svn


これで fetch サブコマンドを実行すると、subversion からソース群をチェックアウトして、tarball をつくる。

% ls
v8-0.3.0-1bl1.cygport
% cygport v8-0.3.0-1bl1.cygport fetch
svn checkout http://v8.googlecode.com/svn/trunk v8
A    v8/test
A    v8/test/cctest
A    v8/test/cctest/test-spaces.cc
A    v8/test/cctest/test-mark-compact.cc
A    v8/test/cctest/test-platform-linux.cc
    :
  (snip)
    :
A    v8/benchmarks/README.txt
A    v8/benchmarks/crypto.js
A    v8/benchmarks/deltablue.js
A    v8/benchmarks/v8-logo.png
Checked out revision 166.
% ls
v8-0.3.0-1bl1  v8-0.3.0-1bl1.cygport  v8-0.3.0.tar.bz2


作業ディレクトリの temp 配下にチェックアウトして、それを tar.bz2 に固めることで tarball をダウンロードしてきたように見えるため、後続のフェーズに変更はない。
また、cygport では subversion 以外にも git や cvs がサポートされているため、既存のプロジェクトにも簡単に適用することが可能となっている。