この文書は ftp/arch/dcpam/ ディレクトリのメンテナンスの手引である.
ftp/arch/dcpam/ には, 主に以下の情報が置かれている.
各ディレクトリの詳細については, SIGEN.htm を参照のこと.
原則的に HTML ファイルは RD 形式のテキスト (以下 RD ファイルと呼ぶ) から自動生成するようにする. Makefile.rd2html を RD ファイルと同じディレクトリに置くことで, 以下のコマンドで自動的に htm, htm.en が生成される. RD の文法については, 地球流体電脳倶楽部 dcmodel プロジェクト: モデルプロジェクトのための最低限 rd -- rd ファイルの作成 を参照のこと.
$ make -f Makefile.rd2html
ただし, カレントディレクトリ などでは, Makefile から Makefile.rd2html が呼び出されるようになっているため, 以下のコマンドで HTML 文書が生成される.
$ make
ソースツリーのタグは, 日付を表すタグ (日付タグと呼ぶ) と, バージョン名を表すタグ (バージョン名タグと呼ぶ) の両方を付けることとする. バージョン名タグは必須ではない *1.
日付タグ バージョン名タグ
----------------------------------------
dcpam0-20040125
dcpam1-20040320 dcpam1-0_1
dcpam1-20040429
dcpam1-20040630 dcpam1-1_0
dcpam2-20040901 dcpam2-1_0
dcpam2-20050901 dcpam2-2_0
dcpam2-20050901-1 dcpam2-2_1 # 一日に複数回, 日付タグを設定する
# 場合には, 接尾詞として "-1", "-2"
# といったものを付記すること.
タグの付ける際には, CVS 作業コピーのトップディレクトリで,
$ cvs tag dcpam2-20030901
^^^^^^^^^^^^^^^ ← これがタグ名となる.
等とする.
ソース展開の手順として, まず手動での展開の手順を示す. Makefile を用いて自動化された展開の手順は, その後の ソース展開の手順 (自動) で示す.
展開のため, グループユーザと umask を設定する.
$ sg dcpam $ umask 002 ! group writable にする
展開するタグを確認する. cvs の作業コピー内で, 以下のように コマンドした際, 以下のように表示されるのがタグである.
$ cvs log ファイル
symbolic names:
dcpam2-20050530: 1.8
dcpam2-20050207-1: 1.4
:
cvs export コマンドにより, 展開を行う. まず CVS リポジトリと同名のディレクトリに移動する.
$ cd /GFD_Dennou_Club/ftp/arch/dcpam/dcpam5
日付タグの場合には以下のように展開する.
$ cvs -d /GFD_Dennou_Club/ftp/arch/dcpam/cvsroot export -r "dcpam5-20090325" dcpam2
バージョン名タグの場合は以下のようになる.
$ cvs -d /GFD_Dennou_Club/ftp/arch/dcpam/cvsroot export -r "dcpam5-1_1" dcpam2
ソースは, 今回の例であれば dcpam5 ディレクトリ以下に展開される. その後, ディレクトリ名をタグ名 (dcpam5-20090325 等) に変更し, SIGEN ファイルを作成する.
展開したソースツリー以下でドキュメント等の生成を行う. 一度 configure したのち (ソースコードをコンパイルするわけでは ないので, 指定するライブラリは存在さえしていれば良い), make でドキュメント等を生成し, 最後に distclean で configure のキャッシュファイルなどを削除する.
$ cd dcpam5-20090325
$ ./configure \
--with-netcdf=/usr/lib/libnetcdf-ffc5.a \
--with-gtool5=/usr/lib/gtool5-ffc5/lib/libgtool5.a \
--with-ispack=/usr/lib/libisp-ffc5.a \
--with-spml=/usr/lib/spml-ssl2-ffc5/lib/libspml-ssl2.a \
$ make doc
$ make depend
$ make tags
$ make distclean
tgz を作成する.
$ cd .. $ tar cvzf dcpam5-20090325.tgz dcpam5-20090325
古いシンボリックリンクを削除し, 新しいシンボリックリンクを作成.
$ rm dcpam5_current ! 古いリンクを一旦削除 $ rm dcpam5_current.tgz $ ln -s dcpam5-20090325 dcpam5_current $ ln -s dcpam5-20090325.tgz dcpam5_current.tgz
$ vi index.htm (書き換え作業) $ vi index.htm.en (書き換え作業)
$ cd .. $ vi index.rd (書き換え作業) $ make
Makefile を用いて, 上記作業の一部を自動化した際の方法を以下に示す.
※ 現在はこの自動化をオフにしてあります, 使用する場合には /ftp/arch/dcpam/dcpam5/Makefile を編集してください.
展開のため, グループユーザと umask を設定する.
$ sg dcpam $ umask 002 ! group writable にする
展開するタグを確認する. cvs の作業コピー内で, 以下のように コマンドした際, 以下のように表示されるのがタグである.
$ cvs log ファイル
symbolic names:
dcpam2-20050530: 1.8
dcpam2-20050207-1: 1.4
:
<URL:Current_CVS_Tag.mk> の DCPAM5TAG を展開する版のタグに変更する.
$ vi Current_CVS_Tag.mk DCPAM5PROJ = dcpam5 DCPAM5TAG = $(DCPAM5PROJ)-20090325
CVS プロジェクト名ディレクトリ (例: dcpam5/ ) に移動し, 以下のようにコマンドする.
$ make export
ソースコードの展開, およびソースコード内部でのドキュメント等の生成, tgz パッケージの作成とシンボリックリンクの張替え, SIGEN ファイルの作成, トップページのバージョン情報の置きかえが行われる.
これは上記手動での更新における ソース展開の手順, ドキュメント, 依存関係ファイル, emacs tags ファイルの生成, tgz 作成の手順, シンボリックリンクの貼り換え, 過去版アーカイブリストの更新, dcpam トップページに記載される dcpam の最新バージョンの書き換え の作業に相当する.
CVS プロジェクト名ディレクトリ (例: dcpam5/ ) 以下に, CVS タグ名 のディレクトリと <CVSタグ名>.tgz の TGZ パッケージが作成され, そのディレクトリに <CVSプロジェクト名>_current, その TGZ パッケージに <CVSプロジェクト名>_current.tgz というシンボリックリンクが貼られていることを確認する.
また CVS プロジェクト名ディレクトリ (例: dcpam5/ ) 中の index.htm, index.htm.en のアーカイブリストが更新されている ことを確認する.
最後に dcpam トップページ の以下の "******" の部分が Current_CVS_Tag.mk の編集 で 変更した値になっていることを確認する.
(Version: *****)
*1
(2005/04/05 石渡) バージョン名タグとして "dcpam2-1.0" と付けようと思ったら
cvs [tag aborted]: tag `dcpam2-1.0' must not contain the characters `$,.:;@'
と言われたよ! どうやら "$", ",", ".", ":", ";", "@"
といった文字は含めてはいけないらしい!