パッケージのいじり方の勉強がてらいじってみた。
というか、X不要なのに依存してしまうのが気に入らなかったのが本音
関連してそうなMLログ
http://lists.debian.or.jp/debian-users/199907/msg00024.html
$apt-get source jvim-canna
以下をいじる
$ diff -uNr jvim-canna.org/jvim-3.0-2.1a/debian/control jvim-canna/jvim-3.0-2.1a/debian/control --- jvim-canna.org/jvim-3.0-2.1a/debian/control 2005-09-27 00:00:00.000000000 +0900 +++ jvim-canna/jvim-3.0-2.1a/debian/control 2005-09-27 00:00:00.000000000 +0900 @@ -2,7 +2,7 @@ Section: editors Priority: optional Maintainer: Teruyuki Morimura <terubou@sandalwood.net> -Build-Depends: debhelper (>> 2.0.0), libncurses5-dev, libcanna1g-dev, xlibs-dev +Build-Depends: debhelper (>> 2.0.0), libncurses5-dev, libcanna1g-dev Standards-Version: 3.2.1 Package: jvim-canna $ diff -uNr jvim-canna.org/jvim-3.0-2.1a/src/Makefile jvim-canna/jvim-3.0-2.1a/src/Makefile --- jvim-canna.org/jvim-3.0-2.1a/src/Makefile 2005-09-27 00:00:00.000000000 +0900 +++ jvim-canna/jvim-3.0-2.1a/src/Makefile 2005-09-27 00:00:00.000000000 +0900 @@ -222,9 +222,9 @@ #LIBS = -lncurses # Debian GNU/Linux 2.x -MACHINE = -DBSD_UNIX -DUSE_X11 -DDebian +MACHINE = -DBSD_UNIX -DDebian CC=gcc -O -LIBS = -lncurses -L$(X11LIBDIR) -lX11 +LIBS = -lncurses # Cygwin (TESTED 1.1-NetRelease) # Notes: Please check ../doc.j/cygwin.txt
最初依存性が明確に書かれていないので理解に苦しんだが、
結局 $(shlibs:Depends) 記述により必要なライブラリ群が
自動で依存性に追加されたということのようだ。
rpmのSPECの様に自分で書かなくて良いのは良し悪しだな...
参考資料
http://www.debian.org/doc/manuals/maint-guide/ch-dreq.ja.html
それは $(shlibs:Depends) です。パッケージを生成する際に、 その中身が一時的なディレクトリにインストールされた後、 そこに含まれるバイナリとライブラリによって利用されている 共有ライブラリと、それらの共有ライブラリを含むパッケージ の名前 (例えば libc6 や xlib6g など) が dh_shlibdeps(1) によって自動的に 調べられます。そしてその結果は dh_gencontrol(1) に渡され、control ファイル中の $(shlibs:Depends) と置換されます。 これを使えば、あなた自身が自分で共有ライブラリを調べて記述する 必要はありません。
http://lists.debian.or.jp/debian-devel/199702/msg00042.html
"Depends" は、そのパッケージがどのパッケージに依存関係を持つかを
表すための属性です。ここをきちんと書かないと Debian の特徴ともいえる
パッケージの依存チェック機能が正しく動作しません。shared library パッ
ケージとの依存関係は "${shlib:Depends}" の部分があとで必要なパッケージ
名に変換されるので特に記述する必要がありませんが、ときどきパッケージを
作成してみると依存しているはずの shared library が含まれているパッケー
ジの名前が入っていないことがあります。そのばあい、debian/shlibs.local
ファイルを作成してローカルに依存関係を追加するようにします。
パッケージ作成
$dpkg-buildpackage -rfakeroot
で出来たパッケージからX依存が抜けている事を確認
$dpkg -I ../jvim-canna_3.0-2.1a-5_i386.deb