残念なことに 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 がサポートされているため、既存のプロジェクトにも簡単に適用することが可能となっている。