この文書は gt4f90io debian パッケージ作成の手引である.
なお, 既に一度 debian パッケージ化が行なわれているものに 関しては, 簡単に更新可能なスクリプトを用意しているものもある. gtool4/debian 領域編集の手引き目次 -- 個々のパッケージの管理の手引き を参照せよ.
<URL:http://www.gfd-dennou.org/library/gtool4/gt4f90io/gt4f90io_current.tgz>
使用したコンパイラ毎にライブラリを用意するため, インストール先のディレクトリは /usr/lib/gt4f90io-(コンパイラ名) とする. コンパイラ名は
ffcN Fujitsu Fortran90 compiler ver. N (N はバージョン名) ifcN Intel fortran ver. N
とする. GNU のコンパイラ (g95 など) を用いた場合は /usr/lib 以下に インストールする.
以下では ffc Ver.5 と ifc ver.8 を用いることを想定する.
パッケージ情報に引用される環境変数 DEBFULLNAME, DEBEMAIL, EMAIL, を設定する. (DEBEMAIL さえ設定しておけば EMAIL は 必要ないが念のため)
$ export DEBFULLNAME="Masatsugu ODAKA" $ export DEBEMAIL=odakker(at)gfd-dennou.org $ export EMAIL=odakker(at)gfd-dennou.org
事前に以下のパッケージが実行環境にインストールされているか確認する.
dh-make dpkg-dev fakeroot netcdf-(コンパイラ名)
ソースをダウンロードして展開後, ソースのディレクトリ名を
<パッケージ名> - <バージョン名>
に変更する. 名前に使える文字列は "a-z0-9","+","-" である. 大文字は使えないことに注意. 今回の場合ソースツリー名が
gt4f90io-20050207
となっているので,
gt4f90io-(コンパイラ名)-20050207
パッケージ情報の作成
次にパッケージ情報の雛型を作成する.
$ dh_make -s
これにより, ソースアーカイブトップディレクトリに debian ディレクトリ が作成される.
編集するファイルは以下の通り
control
パッケージ名などのパッケージ情報を記載する. コンパイラ毎に拡張子 をつけて別ファイルとして管理する.
セクションを指定.
Section: math
依存関係
ffc の場合
Depends : netcdf-ffc5 Recommneds: Suggests: netcdf-bin, ffc(>=5.0)| ffcpara(>=5.0)
ifc の場合
Depends : netcdf-ifc8 Recommneds: Suggests: netcdf-bin
依存パッケージのバージョン名パッケージ作成環境にあわせて適宜変更 する.
copyright
ライセンス規定を記述する. 詳細は実ファイルを参照.
changelog
パッケージの更新履歴を記述する. これも詳細は実ファイルを参照.
docs
パッケージに含めるドキュメントファイルを記述する. ここでは ソース直下の以下のファイルとディレクトリ名を記述する
COPYING.TXT INSTALL.ja INSTALL.en doc test
rules
パッケージ化を行うための Makefile. configure にオプションを加え, インストール時にシンボリックリンクを作成する.
環境変数の設定: 必要に応じコメントアウトを外す.
# for Fujitsu Fortran Compiler export EXT=ffc5 export FC=frt # for Intel Fortran Compiler #export EXT=ifc8 #export FC=ifort #export SYSFFLAGS="-O -Qoption,ld,-Bdynamic -w"
パッケージ名
package=gt4f90io-$(EXT)
config.status: configure
dh_testdir cp debian/control.$(EXT) debian/control # Add here commands to configure the package. ./configure --prefix=/usr/lib/gt4f90io-$(EXT) --with-netcdf=/usr/lib/libnetcdf-$(EXT).a
install: build
... # Add here commands to install the package into debian/gt4f90io. $(MAKE) install prefix=$(CURDIR)/debian/$(package)/usr/lib/$(package) $(MAKE) install-doc DEST_DOC=`pwd`/debian/$(package)/usr/share/doc/$(package)/html
パッケージ化
ソース直下のディレクトリにて
$ dpkg-buildpackage -rfakeroot
を実行する. その結果, 一つ上のディレクトリに
gt4f90io-ffc5_20050207-X.diff.gz gt4f90io-ffc5_20050207-X.dsc gt4f90io-ffc5_20050207-X_i386.changes gt4f90io-ffc5_20050207-X_i386.deb gt4f90io-ffc5_20050207.orig.tar.gz
が作成される.
既に作成したパッケージに不具合があり, 再パッケージ化する場合,
をダウンロードして
$ dpkg-source -x gt4f90io-ffc5_20050207-X.dsc
を実行する. または
$ apt-get source gt4f90io-ffc5
とする. これにより, debian ディレクトリを含むソースツリーが復元 できる.
ソース直下に移動後, 環境変数の設定 を行なってから,
$ dch -i
を行う. これによりエディタが changelog ファイルを時動的に読み込んで 起動する. 記載されるパッケージ番号も時動的に 1 つ繰り上がる. バージョンを明示したい場合は
$ dch -v <version>
とする. ここで指定するバージョンは
<ソースバージョン>-<debian パッケージバージョン>
のようにする.
あとは新規パッケージと同様の手順でパッケージ化する.
ソースが更新された場合(ここでは gt4f90io-20050405 がリリースされたとする), 古いソースディレクトリにて
$ uupdate -u gt4f90io-20050405.tar.gz
を実行する. これにより, 時動的にソースが更新される. 1 つ上のディレ クトリに新しいソースツリーが展開されているのでそちらへ移動し, あと は新規パッケージと同様の手順でパッケージ化する.
うまくいかないときは, 古いソースツリー内の debian ディレクトリを新 しいソースツリーの debian ディレクトリへコピーし, 新しいソースツリー 直下で,
$ dch -i
などとする.
あとは新規パッケージと同様の手順でパッケージ化する.