Launchpadビルド環境以外では再現できないビルドの失敗をデバッグする方法は?


8

変更されたlibdbusmenuパッケージをビルドしようとしています。ローカルでビルドすると、正しくビルドされます。

sudo apt-get build-dep libdbusmenu
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1.diff.gz
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1.dsc
wget https://launchpad.net/~a-j-buxton/+archive/dbusmenu/+files/libdbusmenu_12.10.3%2B13.10.20130913.orig.tar.gz
dpkg-source -x libdbusmenu*.dsc
cd libdbusmenu*
dpkg-buildpackage

ただし、PPAでは、テストの1つが実行されず、ビルドが失敗します。実際のテスト出力はビルドログに書き込まれません:

https://launchpadlibrarian.net/155471644/buildlog_ubuntu-saucy-amd64.libdbusmenu_12.10.3%2B13.10.20130913-0ubuntu2.1_FAILEDTOBUILD.txt.gz

この問題を解決するにはどうすればよいですか?

これは、PPAビルダーが使用するビルド環境をより厳密に再現することになるかもしれません。もしそうなら、どうすればいいですか?

私はpbuilder chrootを使用してビルドを試みました-これは私のローカルシステムで正しく動作します。

Lintianはパッケージに対して次の警告を生成します。

W: libdbusmenu source: quilt-build-dep-but-no-series-file
W: libdbusmenu source: patch-system-but-no-source-readme
W: libdbusmenu source: ancient-standards-version 3.9.2 (current is 3.9.4)

はい、lintianはパッケージに多くのエラーを生成します。しかし、これは実質的に変更されていないUbuntuパッケージ(changelogバンプのみ)であり、PPAを除くすべての場所でビルドされるため、問題であるとは確信していません。
Alistair Buxton

これが答えになるかどうかはわかりませんが、ビルドログを公式のUbuntuパッケージのビルドログと比較できます。を追加export VERBOSE=1debian/rulesて、失敗したときにテストスイートの出力全体をビルドログに強制的に書き込むことができます。pbuilderの代わりにsbuildを使用してみることができます。wiki.ubuntu.com / SimpleSbuildを参照してください。
Mike Miller、

回答:


1

ログを見ると、特にローカルマシンに表示されない場合は、注意すべき警告がいくつかありますが、何が起こっているかについての大きなヒントは、失敗したテストの名前だと思います:glib -イベント。

イベントはほとんど常にI / Oに関連しているため、ローカルマシンのエラーを強制的に解除するには、XAUTHORITYおよびDISPLAYの設定を解除し、標準入力を閉じるか、/ dev / nullにリダイレクトして、標準出力とエラーをファイルにリダイレクトします。nohupはリダイレクトを行いますが、環境に影響を与えません。または、nohupの代わりにatまたはbatchを使用して、セッションリーダーを変更することの利点も提供します。


良いアイデアですが、残念ながらうまくいきませんでした。すべてのテストは、pbuilderが環境なしでatから実行された場合でもパスします。
Alistair Buxton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.