# 表題 dcl-c の deb パッケージ作成の手引 # # 履歴 2004/03/11 小高正嗣 # 2005/07/24 小高正嗣: dcl-5.3.1 用に改訂 ■ この文書について この文書は C 版地球流体電脳倶楽部ライブラリ DCL (dcl-5.X-c) の debian パッケージ作成の手引である. ■ ソースダウンロード先 http://www.gfd-dennou.org/arch/ruby/products/ruby-dcl/dcl-C/dcl-5.3.1-C.tar.gz ■ 注意 ruby-dcl は dcl-c に含まれる cdclconfig コマンドの出力を利用してい る. dcl-c_*.deb パッケージのインストールディレクトリ, ライブラリの 置場などを変更した場合は, ruby-dcl も再度コンパイルしなおすこと. これをサボると ruby-dcl スクリプト実行時にカラーマップがない, など エラーを表示して実行できないことがある. ■ インストール先ディレクトリ構成 /usr/lib/dcl-5.3.1-c/lib/ libcdcl52.a 置場 f2clib/ libf2c4dcl.a 置場 dclbase/ カラーマップ等の置場 include/ *.h の置場 bin/ cdclcc などのコマンド置場 /usr/lib/libcdcl531.a --> /usr/lib/dcl-5.3.1-c/lib/libcdcl52.a libf2c4dcl.a --> /usr/lib/dcl-5.3.1-c/f2clib/libf2c4dcl.a /usr/bin/cdclcc --> /usr/lib/dcl-5.3.1-c/bin/cdclcc cdclconfig --> /usr/lib/dcl-5.3.1-c/bin/cdclconfig cdclconfig531 --> /usr/lib/dcl-5.3.1-c/bin/cdclconfig52 /usr/include/cdcl.h --> /usr/lib/dcl-5.3.1-c/include/cdcl.h ■ 環境変数の設定 パッケージ情報に引用される環境変数 EMAIL と DEBFULLNAE を設定する. $ export EMAIL=odakker(at)gfd-dennou.org $ export DEBFULLNAE="Masatsugu Odaka" ■ 事前インストールパッケージ 事前に以下のパッケージが実行環境にインストールされているか確認する. dh-make dpkg-dev fakeroot devscripts ■ deb パッケージ化: 初めての場合 1) ソースをダウンロードして展開後, ソースのディレクトリ名を <パッケージ名> - <バージョン名> に変更する. 名前に使える文字列は "a-z0-9","+","-" である. 大文字は 使えないことに注意. 今回の場合は $ mv dcl-5.3.1-C dcl-c-5.3.1 とする. 2) パッケージ情報の作成 次にパッケージ情報の雛型を作成する. $ dh_make -l これにより, ソースアーカイブトップディレクトリに debian ディレクトリ が作成される. 編集するファイルは以下の通り ・control パッケージ名などのパッケージ情報を記載する. セクションを指定. Section: math 依存関係は以下のように記述する. Depends : ${shlibs:Depends} Suggests : f2c (>= 20010821-3) Conflicts: dcl-c-gtk, dcl-c-gtk2 (それぞれ gtk, gtk2 パッチがあてられている. インストール先, ライブラリ名が同じなため) 依存パッケージのバージョン名パッケージ作成環境にあわせて適宜変更 する. ・copyright ライセンス規定を記述する. 詳細は実ファイルを参照. ・changelog パッケージの更新履歴を記述する. これも詳細は実ファイルを参照. ・dirs パッケージのインストール先ディレクトリ. usr/include を追加する. ・docs パッケージに含めるドキュメントファイルを記述する. ここでは ソース直下の以下のファイルとディレクトリ名を記述する README README_clrmap README_gt2dlib README_itr51 README_pslib README_umfmap CREDITS HISTORY INSTALL NOTE IMG_dclclr.png IMG_g2pk01.png IMG_g2pk02.png IMG_umpack.png demo dvlop ・rules パッケージ化を行うための Makefile. configure にオプションを加え, インストール時にシンボリックリンクを作成する. - ヘッダ部 PREFIXLIB = dcl-5.3.1-c - config.status: ./configure --prefix=/usr/lib/$(PREFIXLIB) - install dh_installdirs usr/lib/$(PREFIXLIB)/bin usr/lib/$(PREFIXLIB)/lib usr/lib/$(PREFIXLIB)/include ... $(MAKE) install prefix=$(CURDIR)/debian/dcl-c/usr/lib/$(PREFIXLIB) - install: ... dh_link usr/lib/$(PREFIXLIB)/lib/libcdcl531.a usr/lib/libcdcl531.a \ usr/lib/$(PREFIXLIB)/lib/libf2c4dcl.a usr/lib/libf2c4dcl.a \ usr/lib/$(PREFIXLIB)/include/cdcl.h usr/include/cdcl.h \ usr/lib/$(PREFIXLIB)/bin/cdclcc usr/bin/cdclcc \ usr/lib/$(PREFIXLIB)/bin/cdclconfig531 usr/bin/cdclconfig531 \ usr/lib/$(PREFIXLIB)/bin/cdclconfig usr/bin/cdclconfig \ usr/lib/$(PREFIXLIB)/bin/cdcldate usr/bin/cdcldate \ usr/lib/$(PREFIXLIB)/bin/cdcldbs usr/bin/cdcldbs \ usr/lib/$(PREFIXLIB)/bin/cdclexec usr/bin/cdclexec \ usr/lib/$(PREFIXLIB)/bin/cdclfont usr/bin/cdclfont \ usr/lib/$(PREFIXLIB)/bin/cdclpara usr/bin/cdclpara \ usr/lib/$(PREFIXLIB)/bin/cdcltone usr/bin/cdcltone \ usr/lib/$(PREFIXLIB)/bin/cdcltrf usr/bin/cdcltrf \ usr/lib/$(PREFIXLIB)/bin/cdclver usr/bin/cdclver \ usr/lib/$(PREFIXLIB)/bin/cdclps2kdraw usr/bin/cdclps2kdraw \ usr/lib/$(PREFIXLIB)/bin/cdclpscat usr/bin/cdclpscat \ usr/lib/$(PREFIXLIB)/bin/cdclpsfix usr/bin/cdclpsfix \ usr/lib/$(PREFIXLIB)/bin/cdclpsfont usr/bin/cdclpsfont \ usr/lib/$(PREFIXLIB)/bin/cdclpsmargin usr/bin/cdclpsmargin \ usr/lib/$(PREFIXLIB)/bin/cdclpsmerge usr/bin/cdclpsmerge \ usr/lib/$(PREFIXLIB)/bin/cdclpsnup usr/bin/cdclpsnup \ usr/lib/$(PREFIXLIB)/bin/cdclpsrmcm usr/bin/cdclpsrmcm \ usr/lib/$(PREFIXLIB)/bin/cdclpsrot usr/bin/cdclpsrot \ usr/lib/$(PREFIXLIB)/bin/cdclpsselect usr/bin/cdclpsselect \ usr/lib/$(PREFIXLIB)/bin/cdclpsseperate usr/bin/cdclpsseperate \ usr/lib/$(PREFIXLIB)/bin/cdclpsunrot usr/bin/cdclpsunrot \ usr/lib/$(PREFIXLIB)/bin/cdclpsline usr/bin/cdclpsline ... 3) 後処理スクリプト dcl-c.postinst, dcl-c.prerm pslib のコマンドを Fortran77 版 dcl と切替えできるように, update-alternatives コマンドの設定を行う. 詳細は実ファイルを参照. 4) パッケージ化 ソース直下のディレクトリにて $ dpkg-buildpackage -rfakeroot を実行する. その結果, 一つ上のディレクトリに dcl-c_5.3.1-X.diff.gz dcl-c_5.3.1-X.dsc dcl-c_5.3.1-X_i386.changes dcl-c_5.3.1-X_i386.deb dcl-c_5.3.1.orig.tar.gz が作成される. ■ deb パッケージ化: 再パッケージ化する場合 既に作成したパッケージに不具合があり, 再パッケージ化する場合, dcl-c_5.3.1-X.diff.gz dcl-c_5.3.1-X.dsc dcl-c_5.3.1.orig.tar.gz をダウンロードして $ dpkg-source -x dcl-c_5.3.1-X.dsc を実行する. これにより, debian ディレクトリを含むソースツリーが復元 できる. ソース直下に移動後, $ dch -i を行う. これによりエディタが changelog ファイルを時動的に読み込んで 起動する. 記載されるパッケージ番号も時動的に 1 つ繰り上がる. あとは新規パッケージと同様の手順でパッケージ化する. ■ deb パッケージ化: ソースが更新された場合. ソースが更新された場合(ここでは dcl-c-5.3.2 がリリースされたとする), 古いソースディレクトリにて $ uupdate -u dcl-c-5.3.2.tgz を実行する. これにより, 時動的にソースが更新される. 1 つ上のディレ クトリに新しいソースツリーが展開されているのでそちらへ移動し, あと は新規パッケージと同様の手順でパッケージ化する.