試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

ttaenc(TTAエンコード/デコード用コマンド)をドラッグ・アンド・ドロップで使うGUIツールgtk-ttaencのUbuntu向けパッケージを作成

TTAコーデックの音声のエンコード/デコードを行うツールttaencGUIファイルマネージャからのドラッグ・アンド・ドロップで簡単に使えるようにしたツールgtk-ttaenc(「ttaenc(TTAエンコード/デコード用コマンド)をドラッグ・アンド・ドロップで使うGUIツールを作成」で作成)のUbuntu向けのパッケージを作成して「milkjfフォントとut(内海氏)版AnthyのUbuntu向けパッケージを作成(2010/11/20現在)」で書いているPPAリポジトリに公開した。しばらくのテストの後で問題がなければ安定パッケージ扱いとする予定。
パッケージ作成上のメモとしては、Pythonのdistutilsを用いたsetup.pyから(パッケージ作成に用いる仮のインストール先への)インストール処理が行われる部分についてはdebian/rules

%:
	dh $@

の記述のみでよく非常に楽なのだが、パッケージ作成後に一時ファイルをbuildというディレクトリに残すために同じディレクトリツリーでビルドを繰り返すと不具合が出ており

override_dh_clean:
	dh_clean
	rm build/ -fr

の記述を追加して、掃除をする際に消す対象とした。
以下はパッケージの依存についてのメモ。

  • ソースパッケージの「Build-Depends-Indep」に「python」が必要
  • バイナリパッケージは当然アーキテクチャ非依存なので「Architecture: all」(アーキテクチャ依存のパッケージは「Architecture: any」)
  • バイナリパッケージの「Depends」にはPyGTKの「python-gtk2」があればPythonの依存の記述がなくても実質動作上の問題はないが、ポリシー的には「python」が必要らしい
  • importしているモジュールから自動的に依存パッケージを調べて追加してくれたりはしない(実行形式や共有オブジェクトのファイルなら「${shlibs:Depends}」を記述した部分に自動的に動的リンクされるパッケージ名が入る)*1

関連記事:

*1:RPMパッケージの場合も実行形式や共有オブジェクトのファイルは自動的に「Requires」に書かれるがPythonモジュールの依存パッケージは手動記述となる