間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

jvim-cannaからX依存を抜いてみる

パッケージのいじり方の勉強がてらいじってみた。
というか、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

インストール
#dpkg -i ../jvim-canna_3.0-2.1a-5_i386.deb

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。