=begin
= spml-lapack-g95 Debian パッケージ作成の手引き
#* 森川 靖大
# * 2007/12/02 (森川 靖大) 安定版と不安定版を別々にする
# * 2006/11/07 (森川 靖大) 作成
== 概要
以下では, スペクトル計算のための Fortran90 ライブラリ
(()) を
(()) の
G95 Fortran Compiler によってビルドしたライブラリを提供する
Debian パッケージを自動生成するための方法について記す.
== ディレクトリ構成
: etch
G95 version 0.9 (安定版) によって生成された Debian パッケージの置き場
: sarge, stable
etch へのシンボリックリンク
: sid
G95 最新版によって生成された Debian パッケージの置き場
: unstable
sid へのシンボリックリンク
: buildpackage-tools
Debian パッケージ生成ツール群
== ツール群の解説
buildpackage-tools ディレクトリ以下には以下のファイルが置かれている.
: spml-lapack-g95_debmake_main.sh
G95 最新版によって作成される
Debian パッケージアップデートのためのメインプログラム.
: spml-lapack-g95-v0.9_debmake_main.sh
G95 version 0.9 (安定版) によって作成される
Debian パッケージアップデートのためのメインプログラム.
: g95_version
現在 Debian パッケージ化に使用されている g95 の最新バージョンが
保持されている.
: spml_version
G95 最新版によって作成される Debian パッケージの
spml の最新バージョンが保持されている.
: spml_version_v0.9
G95 version 0.9 (安定版) によって作成される Debian パッケージの
spml の最新バージョンが保持されている.
プログラムが呼び出される際のプロセスの階層を以下に示す.
spml-lapack-g95_debmake_main.sh ダウンロード - Debian パッケージ作成
|
|-- g95_version バージョン比較
|
`-- spml_version バージョン比較
spml-lapack-g95-v0.9_debmake_main.sh Debian パッケージ作成
|
`-- spml_version_v0.9 バージョン比較
== 依存関係
spml-lapack-g95 パッケージは
(()),
(()),
(()),
(()),
に依存することから, 以下のファイル群に依存する.
* G95 最新版の場合
* G95 コンパイラ最新版
(../netcdf-g95/buildpackage-tools/g95-x86-linux.tgz:
(()) よりダウンロード)
* (())
* (())
* (())
* (())
* G95 version 0.9 (安定版) の場合
* G95 コンパイラ version 0.9 (安定版)
(../netcdf-g95/buildpackage-tools/g95-v0.9-x86-linux.tgz:
(()) よりダウンロード)
* (())
* (())
* (())
* (())
これらのファイルが生成されていない場合, spml-lapack-g95 パッケージが
自動生成できないため注意すること.
== spml-lapack-g95_debmake_main.sh の使い方
buildpackage-tools ディレクトリへ移動後, spml-lapack-g95_debmake_main.sh
を実行する.
その際, 環境変数 DEBEMAIL, DEBFULLNAME, MAILTO を設定して実行すること.
spml-lapack-g95-v0.9_debmake_main.sh も同様である.
DEBFULLNAME, DEBEMAIL で設定された値は Debian パッケージ内の changelog
に書き込まれる. MAILTO で設定されたメールアドレスへは, このプログラム
によるアップデートの結果が送られる.
$ cd buildpackage-tools
$ DEBEMAIL=morikawa@xxx.xxxx \
MAILTO=morikawa@xxx.xxxx \
DEBFULLNAME="Yasuhiro MORIKAWA" \
./spml-lapack-g95_debmake_main.sh -v
オプション -v によって動作の詳細が標準エラー出力に
表示される. 不要な場合は -v をはずすこと.
== cron を利用した自動更新
cron を利用することによって, 更新を自動化する.
$ crontab -e
以下に書き込む内容の例を示す. MAILTO, DEBEMAIL, DEBFULLNAME は
適宜変更せよ.
MAILTO=morikawa@xxx.xxxx
# spml-lapack-g95 Debian パッケージのアップデート (毎週月曜深夜にアップデート)
# ※ 実際には 1 行で記述すること
30 3 * * 1 umask 002;
cd /GFD_Dennou_Club/ftp/arch/cc-env/g95/spml-lapack-g95/buildpackage-tools ;
DEBEMAIL=morikawa@xxx.xxxx DEBFULLNAME="Yasuhiro MORIKAWA" ./spml-lapack-g95_debmake_main.sh
== g95 によるコンパイルがうまくいかない場合
g95 は頻繁に更新されるため, バージョンによっては spml-lapack の
コンパイルがうまくいかない場合がある. その場合, もし
(()) を行っていて毎回 cron からエラーメールが
来るのが鬱陶しい場合は, 一時的に (()) のバージョンを手動で
最新版に更新しておくと良い. こうすると再度 g95 がバージョンアップされる
までは spml-lapack-g95 パッケージの自動生成を行わないため, エラーが生じない.
ただし, g95 がバージョンアップした際には, 「一つ前の deb パッケージが
取得できない」というエラーを生じるため, (()) を元の (過去,
spml-lapack-g95 を正しく生成できた) バージョンに手動で戻す. もしも再度
バージョンアップされた g95 でも spml-lapack ライブラリが生成できない場合は
再び上記のように (()) を g95 の最新バージョンに手動で
変更すること.
=end