非標準オプションで Debian パッケージをビルドする

非標準オプションで Debian パッケージをビルドする

を使用してソースからDebianパッケージをビルドしたいと思いますdpkg-buildpackage。パッケージソースをダウンロードしました。

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

どちらを編集する必要がありますか?

正しいアプローチは何ですか?

答え1

gnucash-2.6.9/packaging/gnucash.specgnucash-2.6.9/packaging/gnucash.spec.inDebianパッケージの一部ではありません。これは、RPM形式でgnucashをパッケージ化するためのプロジェクト独自の仕様ファイル(2番目はテンプレート)です。

gnucash-2.6.9/configure.acまた、アップストリームの一部です。これはビルドに使用されるAutoconfファイルですgnucash-2.6.9/configure。このautoconf.acファイルは Debian パッケージで使用されますが、パッケージの一部ではありません。

debian/すべてのDebianパッケージはこのサブディレクトリにあります。

実際のビルドスクリプト(実際にはMakefile)がdebian/rulesここで興味を持っているはずです。ほとんどの Debian パッケージはdebhelperプログラム。このパッケージdhdebhelper

簡単に言えば、「伝統的な」作業方法は、debhelper最初からすべての作業を実行するのではなく、パッケージを構築するために使用できる標準のコマンドセットを提供することです。各標準ステップには、必要に応じてオーバーライドできるデフォルト値を持つdh最新のバリエーションです。debhelperこれはAPが言ったことに関連しています。この場合、ルール・ファイルはデフォルトの構成ステップをオーバーライドします。だから。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./configureconfigure--enable-aqbanking

以下はdhに関するスライドです。おじいちゃんのデブヘルパーじゃない。オンラインに追加情報があります。

答え2

さて、一度見てくださいgnucash-2.6.x/debian/rules

表示された行override_dh_auto_configure:(私の場合は23行)を見つけて、その下に上書きを追加します。

あなたの場合は--enable-aqbankingすでに存在しているので(少なくともwheezeバックポートの場合)、削除してください。

詳細は以下で確認できます。マニュアルページ

修正する:また、ファイルrulesにカスタムコンテンツをconfigureDEB_CONFIGURE_EXTRA_FLAGS

関連情報