# 表題 libnc-dap の deb パッケージ作成の手引 # # 履歴 2005/07/24 小高正嗣 # 2006/03/10 小高正嗣: libncdap-3.5.2 # 2006/06/08 小高正嗣: libncdap-3.6.0 # 2007/06/14 佐々木洋平: libncdap-3.7.0 ■ この文書について この文書は libnc-dap (netCDF with OPeNDAP URLs textension) の debian パッケージ作成の手引である. ■ ソースダウンロード先 http://opendap.org/download/nc-dods.html (ftp://ftp.unidata.ucar.edu/pub/opendap/source/libnc-dap-3.7.0.tar.gz ) ■ 環境変数の設定 パッケージ情報に引用される環境変数 EMAIL と DEBFULLNAE を設定する. $ export EMAIL=your_account(at)gfd-dennou.org $ export DEBFULLNAE="Your Name" ■ 事前インストールパッケージ 事前に以下のパッケージが実行環境にインストールされているか確認する. dh-make fakeroot devscripts cdbs gfortran dejagnu libcppunit-dev また libnc-dap の依存する以下のパッケージが必要となる (ソースツリーの INSTALL を参照). libxml2-dev libcurl3-dev libdap (ver 3.7.3 以上) ■ deb パッケージ化: 初めての場合 1) ソースをダウンロードして展開後, ソースのディレクトリ名を <パッケージ名> - <バージョン名> に変更する. 名前に使える文字列は "a-z0-9","+","-" である. 大文字は 使えないことに注意. 今回の場合, 展開したソースツリーは libnc-dap-3.7.0 なので, そのまま利用する. 2) パッケージ情報の作成 次にパッケージ情報の雛型を作成する. ソースツリーのトップディレクトリで $ dh_make -s -b を実行する. これにより, ソースアーカイブトップディレクトリに debian ディレクトリが作成される. 編集するファイルは以下の通り ・control パッケージ名などのパッケージ情報を記載する. セクションを指定. Section: science 依存関係は以下のように記述する. Depends : ${shlibs:Depends}, libdap (>=3.7.3) Build-Depends: build-essential, cdbs, debhelper (>=5), gfortran, libcurl3-dev, libxml2-dev, dejagnu, cppunit, libdap (>=3.7.3) 依存パッケージのバージョン名パッケージ作成環境にあわせて適宜変更 する. ・copyright ライセンス規定を記述する. 詳細は実ファイルを参照. ・changelog パッケージの更新履歴を記述する. これも詳細は実ファイルを参照. ・docs パッケージに含めるドキュメントファイルを記述する. ここでは ソース直下の以下のファイルとディレクトリ名を記述する NEWS README README.AIS README.dodsrc INSTALL ・rules cdbs を用いるので -------------------------------ここから------------------------------- #!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk -------------------------------ここまで------------------------------- ・ preinst, postrm netcdf-bin パッケージの提供する ncdump を ncdump.netcdf-bin として 退避する. dpkg-divert を使用. 詳細は実ファイルを参照. 3) パッケージ化 ソース直下のディレクトリにて $ debuild -rfakeroot -uc -us を実行する. その結果, 一つ上のディレクトリに libnc-dap_3.7.0-X.diff.gz libnc-dap_3.7.0-X.dsc libnc-dap_3.7.0-X_i386.changes libnc-dap_3.7.0-X_i386.deb libnc-dap_3.7.0-X.orig.tar.gz が作成される. 4) テスト 作成したライブラリのテストを行う. トップディレクトリで $ make check とする. ■ deb パッケージ化: 再パッケージ化する場合 既に作成したパッケージに不具合があり, 再パッケージ化する場合, libnc-dap_3.7.0-X.diff.gz libnc-dap_3.7.0-X.dsc libnc-dap_3.7.0-X.orig.tar.gz をダウンロードして $ dpkg-source -x libnc-dap_3.7.0-X.dsc を実行する. これにより, debian ディレクトリを含むソースツリーが復元 できる. ソース直下に移動後, $ dch -i を行う. これによりエディタが changelog ファイルを時動的に読み込んで 起動する. 記載されるパッケージ番号も時動的に 1 つ繰り上がる. あとは新規パッケージと同様の手順でパッケージ化する. ■ deb パッケージ化: ソースが更新された場合. ソースが更新された場合(ここでは libnc-dap-3.7.X がリリースされたとする), 古いソースディレクトリにて $ uupdate -u libnc-dap-3.7.X.tar.gz を実行する. これにより, 時動的にソースが更新される. 1 つ上のディレ クトリに新しいソースツリーが展開されているのでそちらへ移動し, あと は新規パッケージと同様の手順でパッケージ化する.