Bagaimana cara men-debug kegagalan build yang tidak dapat direproduksi di luar lingkungan build Launchpad?

8

Saya mencoba membangun paket libdbusmenu yang dimodifikasi. Itu membangun dengan benar jika saya membangunnya secara lokal:

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

Namun, dalam PPA, salah satu tes gagal berjalan yang menyebabkan build gagal. Output tes yang sebenarnya tidak ditulis ke buildlog:

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

Bagaimana saya bisa mengatasi masalah ini?

Mungkin turun untuk lebih mereproduksi lingkungan build yang digunakan oleh pembangun PPA. Jika demikian, bagaimana saya melakukannya?

Saya telah mencoba membangun menggunakan chroot pbuilder - ini berfungsi dengan benar pada sistem lokal saya.

Lintian menghasilkan peringatan berikut pada paket:

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)
Alistair Buxton
sumber
Ya, lintian menghasilkan banyak kesalahan pada paket. Tapi ini adalah paket Ubuntu yang tidak dimodifikasi (hanya changelog bump) yang dibuat di mana-mana kecuali dalam PPA, jadi saya tidak yakin itu penting.
Alistair Buxton
Saya tidak yakin apakah ini memenuhi syarat sebagai jawaban, tetapi Anda dapat membandingkan build log Anda dengan build log dari paket resmi Ubuntu. Anda bisa menambahkan export VERBOSE=1untuk debian/rulesmemaksa seluruh output suite tes ditulis ke build log ketika gagal. Anda dapat mencoba menggunakan sbuild daripada pbuilder, lihat wiki.ubuntu.com/SimpleSbuild .
Mike Miller

Jawaban:

1

Dalam melihat-lihat log ada beberapa peringatan, yang mungkin harus Anda perhatikan, terutama jika Anda tidak mendapatkannya di mesin lokal, tapi saya pikir petunjuk besar tentang apa yang sedang terjadi adalah nama tes yang gagal: glib -events.

Peristiwa hampir selalu terkait dengan I / O, jadi untuk mencoba memaksa kesalahan pada mesin lokal unset XAUTHORITY dan DISPLAY, tutup input standar atau redirect ke / dev / null dan redirect keluar standar dan kesalahan ke file. nohup akan melakukan pengalihan untuk Anda, tetapi tidak akan menyentuh lingkungan, atau Anda bisa menggunakan pada atau batch bukan nohup yang juga menawarkan keuntungan mengubah pemimpin sesi.

Hildred
sumber
Ide yang bagus, tapi sayangnya itu tidak berhasil. Semua tes masih lulus ketika pbuilder dijalankan dari pada tanpa lingkungan.
Alistair Buxton