web-dev-qa-db-ja.com

非標準オプションを使用したDebianパッケージの構築

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

編集する必要があるのはどれですか?

それを行う適切な方法は何ですか?

6
Martin Vegter

OK、gnucash-2.6.x/debian/rulesを見てください。

override_dh_auto_configure:という行(私の場合は23行目)を見つけて、その下にオーバーライドを追加します。

あなたの場合、--enable-aqbankingはすでに存在しているので(少なくともwheezy-backportsの場合)、単に削除してください。

詳細については、 manページ を参照してください。

更新:さらに、カスタムのものをrulesに渡す役割を担う変数がconfigureファイルにある場合があります。通常はファイルの先頭にあり、DEB_CONFIGURE_EXTRA_FLAGSと呼ばれます。

5
A.P.

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_configuredebhelperターゲットをオーバーライドします。そのターゲットの詳細については、man dh_auto_configureをご覧ください。

この場合、デフォルトのdh_auto_configureは引数なしでconfigureを実行します。つまり、./configureです。オーバーライドは、指定された引数/オプションを使用してconfigureを実行するだけです。したがって、ここで--enable-aqbanking引数/オプションを削除する必要があります。

Dhに関するスライドは次のとおりです。 おじいちゃんのDebhelperではありません 。ネット上には他にも情報があります。

5
Faheem Mitha