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

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

TTA(The True Audio)のエンコーダ/デコーダttaencのUbuntu向けパッケージを作成

TTA(The True Audio)のエンコーダ/デコーダであるttaencDebian/Ubuntuでもパッケージがないため、Ubuntu向けのパッケージを作成して「milkjfフォントとut(内海氏)版AnthyのUbuntu向けパッケージを作成(2010/11/20現在)」で書いているPPAリポジトリに公開した。少しのテストの後で安定パッケージ扱いとする予定。
(2010/12/3)安定パッケージ扱いとして「stable」のPPAリポジトリにコピーした。
パッケージ作成上のメモとして、使用したソースの書庫ファイルはttaenc-3.4.1-src.tgzでこれをttaenc_3.4.1.orig.tar.gzと名前変更して(ソースディレクトリツリーのルートと同じ階層に)配置する必要があるのだが、これを展開したときに作成されるディレクトリがttaenc-3.4.1-srcという名前で「[名前]-[バージョン]」の形式に合わないため、ttaenc-3.4.1-srcディレクトリをttaenc-3.4.1に名前変更し、その中にDebianパッケージ作成に関するファイルを含んだディレクトdebianを配置することになった。

(元のレイアウト)
+-ttaenc-3.4.1-src.tgz
+-[ttaenc-3.4.1-src]-+-COPYING
                     +-ChangeLog-3.4.1
                     +-Makefile
                    ...

(変更後のレイアウト)
+-ttaenc_3.4.1.orig.tar.gz (ttaenc-3.4.1-src.tgzを名前変更)
+-[ttaenc-3.4.1]----+-[debian]---------+-changelog
(ttaenc-3.4.1-src   +-COPYING          +-compat
 を名前変更)          +-ChangeLog-3.4.1  +-control
                    +-Makefile        ...
                   ...

元のソースから生成されるディレクトリ名の形式が合わないからといってオリジナルのtarボールを展開して中のディレクトリ名を変更して固め直すというような作業は必要ない。
ソースパッケージ作成の処理(debuild -S)は名前変更後のディレクトttaenc-3.4.1内で行う。
アップロードしたソースパッケージを取得する際には、.orig.tar.gzファイルの中身が

$ lesspipe ttaenc_3.4.1.orig.tar.gz
drwxr-xr-x 501/users         0 2007-07-27 10:22 ttaenc-3.4.1-src/
-rw-r--r-- 501/users     15120 2007-07-26 17:19 ttaenc-3.4.1-src/COPYING
-rw-r--r-- root/root       596 2007-07-27 10:19 ttaenc-3.4.1-src/ChangeLog-3.4.1
-rw-r--r-- 501/users       506 2007-07-26 17:19 ttaenc-3.4.1-src/Makefile
-rw-r--r-- 501/users      2635 2007-07-26 17:19 ttaenc-3.4.1-src/README
-rw-r--r-- 501/users     44022 2007-07-27 10:02 ttaenc-3.4.1-src/ttaenc.c
-rw-r--r-- 501/users      3678 2007-07-27 10:20 ttaenc-3.4.1-src/ttaenc.h
-rw-r--r-- 501/users      2685 2007-07-26 17:19 ttaenc-3.4.1-src/ttaenc.vcproj

このようになっていても、展開したときに生成されるディレクトリはttaenc-3.4.1に名前変更され、その中にdebianディレクトリが配置される。
(2010/12/1)上ではdebianディレクトリを配置するソースのディレクトリ(上の例ではttaenc-3.4.1-src)を名前変更したが、これは名前変更しなくても、ソースファイルの名前を「[パッケージ名]_[バージョン].orig.tar.[gzなど]」のようにさえすればソース/バイナリのどちらのパッケージの作成にも影響はないようで、ソースツリー内に行った変更点がソースパッケージ作成時に記録されるdebian/patches/以下の自動生成パッチに書かれるディレクトリ名も「[パッケージ名]-[バージョン]」形式に調整されたものが書き出されるようだ。ただ、上にも書いたように、ソースパッケージを取得した場合にはソースのディレクトリは自動的に名前変更される。

関連記事: