dpkg-buildpackage
を使用して、ソースからDebianパッケージを構築したいと思います。パッケージソースをダウンロードしました:
apt-get -t wheezy-backports source gnucash
ファイルgnucash-2.6.9/configure
の中に、パッケージをビルドするときに選択/選択解除できるオプションがあることがわかります。
Debianのメンテナはすでに私のために決定を下しています。しかし、いくつかのオプションを無効にしたい場合は、どうすればよいですか?
たとえば、--enable-aqbanking
なしでパッケージをコンパイルしたいとします。このオプションは、いくつかの構成ファイルに表示されます。
$ grep -rl enable-aqbanking gnucash-2.6.9/
gnucash-2.6.9/packaging/gnucash.spec
gnucash-2.6.9/packaging/gnucash.spec.in
gnucash-2.6.9/configure.ac
gnucash-2.6.9/configure
編集する必要があるのはどれですか?
それを行う適切な方法は何ですか?
OK、gnucash-2.6.x/debian/rules
を見てください。
override_dh_auto_configure:
という行(私の場合は23行目)を見つけて、その下にオーバーライドを追加します。
あなたの場合、--enable-aqbanking
はすでに存在しているので(少なくともwheezy-backportsの場合)、単に削除してください。
詳細については、 manページ を参照してください。
更新:さらに、カスタムのものをrules
に渡す役割を担う変数がconfigure
ファイルにある場合があります。通常はファイルの先頭にあり、DEB_CONFIGURE_EXTRA_FLAGS
と呼ばれます。
gnucash-2.6.9/packaging/gnucash.spec
およびgnucash-2.6.9/packaging/gnucash.spec.in
は、Debianパッケージの一部ではありません。これらは、gnucashをRPM形式でパッケージ化するためのプロジェクト独自のスペックファイルです(2番目はテンプレートです)。
gnucash-2.6.9/configure.ac
もアップストリームの一部です。これは、gnucash-2.6.9/configure
の生成に使用されるAutoconfファイルです。このautoconf.ac
ファイルはDebianパッケージで使用されますが、その一部ではありません。
Debianパッケージはすべてdebian/
サブディレクトリにあります。
実際のビルドスクリプト(実際には単なるMakefile)はdebian/rules
であるため、ここで気にする必要があるのはこれだけです。ほとんどのDebianパッケージは debhelper
プログラムを使用します。このパッケージは、dh
の一部である最新のdebhelper
バリアントを使用しています。
簡単に言うと、「従来の」debhelper
が機能する方法は、すべてを最初から実行する必要はなく、パッケージの構築に使用できる標準コマンドのスイートを提供することです。 dh
は、すべての標準debhelper
ステップにデフォルトがあり、必要に応じてオーバーライドできる新しいバリアントです。 A.P.が言っていることにリンクしています。この場合、ルールファイルはデフォルトの設定手順を上書きします。したがって。このoverride_dh_auto_configure
ターゲットを変更して、構成ステップの機能を変更する必要があります。 override_dh_auto_configure
ターゲットは次のとおりです。
override_dh_auto_configure:
dh_auto_configure -- \
--libdir=/usr/lib/$(DEB_Host_MULTIARCH)/gnucash \
--infodir=/noinst \
--mandir=/noinst \
--docdir=/noinst \
--disable-static \
--enable-dbi \
--enable-ofx \
--enable-aqbanking \
--enable-locale-specific-tax \
--enable-python
したがって、これはdh_auto_configure
debhelper
ターゲットをオーバーライドします。そのターゲットの詳細については、man dh_auto_configure
をご覧ください。
この場合、デフォルトのdh_auto_configure
は引数なしでconfigure
を実行します。つまり、./configure
です。オーバーライドは、指定された引数/オプションを使用してconfigure
を実行するだけです。したがって、ここで--enable-aqbanking
引数/オプションを削除する必要があります。
Dhに関するスライドは次のとおりです。 おじいちゃんのDebhelperではありません 。ネット上には他にも情報があります。