[ English | Japanese ] [ 地球流体電脳倶楽部 / SPMODEL プロジェクト / Debian パッケージ / SIGEN ]

spml の deb パッケージ作成・管理の手引


  1. この文書について
  2. ソースダウンロード先
  3. パッケージ命名規則
  4. 環境変数の設定
  5. deb パッケージ化: 初めての場合
  6. パッケージの修正
  7. ソースが更新された場合.
  8. 参考文献

この文書について

この文書は spml の debian パッケージ作成の手引である.

ソースダウンロード先

パッケージ命名規則

使用するオプショナルライブラリと使用したコンパイラ毎に ライブラリを用意するので, 名前を

spml-[(オプショナルライブラリ名)-]*-(コンパイラ名)

とする.

コンパイラ名は

ffcN    Fujitsu Fortran90 compiler ver. N (N はバージョン名)
ifcN    Intel fortran ver. N

以下では ffc Ver.5 を用いることを想定する.

オプショナルライブラリとして想定されるものは

lapack, ssl2  :  行列計算(固有値)用ライブラリ
fftw2         :  FFT 用ライブラリ

の 2 種類である. 生成されるパッケージ名はそれぞれ

spml-ffcN               Fujitsu Fortran 使用
spml-lapack-ffcN        Fujitsu Fortran, lapack 使用
spml-ssl2-ffcN          Fujitsu Fortran, ssl2 使用
spml-fftw2-ffcN         Fujitsu Fortran, fftw2 使用
spml-fftw2-lapack-ffcN  Fujitsu Fortran, fftw2, lapack 使用
spml-fftw2-ssl2-ffcN    Fujitsu Fortran, fftw2, ssl2 使用
spml-doc                ドキュメント,サンプルプログラム

である.

またソース名は

spml-<コンパイラ名>

もしくは

spml-doc

としている(単一のソースから複数のパッケージを生成している).

環境変数の設定

パッケージ作成, 更新作業の前にパッケージ情報に引用される環境変数 EMAIL と DEBFULLNAE を適切に設定しておくこと. 例えば

$ export EMAIL=uwabami(at)gfd-dennou.org # (at) は @ に置きかえる.
$ export DEBFULLNAE="Youhei SASAKI"

EMAIL, DEBFULLNAME は適宜各人の情報に合わせる.

deb パッケージ化: 初めての場合

事前インストールパッケージ

事前に以下のパッケージが実行環境にインストールされているか確認する.

dh-make
debhelper
build-essential
fakeroot
cdbs

また, FFC を使用する場合には

ffc(>= N) もしくは ffcpara(>= N)
ispack-ffcN
ispack-fftw2-ffcN
fftw-no2underscore
netcdf-ffcN
gt4f90io-ffcN
lapack-dev

ifc を使用する場合には

ifcN
ispack-ifcN
ispack-fftw2-ifcN
fftw-no2underscore
netcdf-ifcN
gt4f90io-ifcN
lapack-dev

をインストールしておく.

パッケージ情報ディレクトリの作成

ソースをダウンロードして展開後, パッケージ情報を作成する. 例えば, ソー スを展開して生成されるディレクトリが spml-4.2 であり, 作成するソースパッ ケージが spml-ffcN-4.2 の場合,

$ tar xvzf spml.tar.gz
$ mv spml-4.2 spml-ffcN-4.2
$ cd spml-ffcN-4.2
$ dh_make -m -b -f ../spml.tar.gz

とする. dh_make のオプションとして,

-m: シングルバイナリの生成
-f: オリジナルソースアーカイブを指定
-b: パッケージ作成に cdbs を使用する.

を指定した.

パッケージ情報の編集

今回は不要なので, debian ディレクトリ内の *.ex, *.EX のついた雛形ファイ ルは削除しておく.

control の編集

以下では使うコンパイラが ffcN(Nはバージョン番号) の場合について記述する. Source セクションは次の通りである.

Source: spml-ffcN
Section: math
Priority: optional
Maintainer: Youhei Sasaki <uwabami(at)gfd-dennou.org>
Build-Depends: cdbs, debhelper (>= 5), autotools-dev, ffc(>=N)|ffcpara(>=N), 
	       netcdf-ffcN, netcdfg-dev, gt4f90io-ffcN, ispack-ffcN, 
	       ispack-fftw2-ffcN, fftw-no2underscore, lapack3-dev
Standards-Version: 3.7.2

また, Package セクションはパッケージ毎に記述する. 例えば作成するパッケージが

spml-fftw2-lapack-ffcN

の場合には

Package: spml-fftw2-lapack-ffcN
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
	       netcdf-ffcN, netcdfg-dev, gt4f90io-ffcN,
	       ispack-fftw2-ffcN, fftw-no2underscore, lapack3-dev
Description: SPML is Fortran90 module library for solveing fundamental GFD problems
 SPML (a SPectral Model Library) is a Fortran90 module library for
 constructing spectral models for fundamental geophysical fluid
 dynamic problems. Fortran90 modules of this library are based on
 ISPACK (http://www.gfd-dennou.org/arch/ispack), which is also library
 for spectral models but written in Fortran77. This package provides
 module binary files built with Fujitsu Fortran Compiler ver. 5, using
 fftw2 library, include lapack interface. GFD-Dennu Club spmodel
 project web site is http://www.gfd-dennou.org/arch/spmodel.

である. 詳細は実ファイルを参照されたい.

copyright

ソースを落とした URL, Upstream Author を修正する. Copyright, License セ クションは ソースの COPYRIGHT を参照する様に記述しておく.

docs, postinst, prerm

これらのファイルは pre-build.sh によって, rules から生成される. 詳細は pre-build.sh を参照されたい.

rules

パッケージ化には cdbs を用いる. 詳細は実ファイルを参照されたい.

パッケージ作成

バイナリとソースの両方を更新したい場合にはソース直下において

$ debuild -rfakeroot -uc -us

を実行する. その結果, 一つ上のディレクトリに

spml-ffcN_<version>_i386.deb
spml-lapack-ffcN_<version>_i386.deb
spml-ssl2-ffcN_<version>_i386.deb
spml-fftw2-ffcN_<version>_i386.deb
spml-fftw2-lapack-ffcN_<version>_i386.deb
spml-fftw2-ssl2-ffcN_<version>_i386.deb
spml-ffcN_<version>.diff.gz
spml-ffcN_<version>.dsc
spml-ffcN_<version>_i386.build
spml-ffcN_<version>_i386.changes
spml-ffcN_<version>.orig.tar.gz

が生成される. また, バイナリだけを更新したい場合にはソース直下において

$ fakeroot ./debian/rules binary

とする.

パッケージの修正

ソースの展開

既に作成したパッケージに不具合があった場合, もしくは更新する場合には,

spml-ffcN_<version>.diff.gz
spml-ffcN_<version>.dsc
spml-ffcN_3.6.2.orig.tar.gz

をダウンロードしてきて

$ dpkg-source -x spml-ffcN_<version>.dsc

を実行する. もしくは,

$ apt-get source spml-ffcN

とする. これにより, debian ディレクトリを含むソースツリーが展開される.

使用するコンパイラを変える場合

変更すべき点は

を行なう. changelog の更新には

$ dch -i

を行うと良い. これによりエディタが changelog ファイルを時動的に読み込ん で起動する. この場合, 記載されるパッケージ番号が自動的に一つ上るが,コン パイラの違いによる新パッケージ生成であるから, パッケージ名とバージョン を適切に修正する.

バージョンを明示したい場合は

$ dch -v <version>

とする. ここで指定するバージョンは <ソースバージョン>-<debian パッケー ジバージョン> のようにする.

後はパッケージ作成と手順は同じである.

パッケージの不具合

ソースに修正を加え changelog を更新した後は新規パッケージと同様の手順 でパッケージを生成する.

ソースが更新された場合.

ソースが更新された場合(ここでは spml-0.4.3 がリリースされたとする), 古いソースディレクトリにて

$ uupdate -u ../spml.tar.gz -v 0.4.3

を実行する. これにより, 時動的にソースが更新される. 1 つ上のディレ クトリに新しいソースツリーが展開されているのでそちらへ移動し, あと は新規パッケージと同様の手順でパッケージ化する.

参考文献


SPMODEL Development Group / GFD Dennou Staff dcstaff@gfd-dennou.org
Last Updated: 2007/10/27, Since: 2007/10/12