Wie kann ein Build-Fehler behoben werden, der außerhalb einer Launchpad-Build-Umgebung nicht reproduziert werden kann?


8

Ich versuche, ein modifiziertes libdbusmenu-Paket zu erstellen. Es wird korrekt erstellt, wenn ich es lokal erstelle:

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

In einer PPA kann jedoch einer der Tests nicht ausgeführt werden, wodurch der Build fehlschlägt. Die eigentliche Testausgabe wird nicht in das Buildlog geschrieben:

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

Wie kann ich dieses Problem lösen?

Es könnte darauf ankommen, die von den PPA-Buildern verwendete Build-Umgebung genauer zu reproduzieren. Wenn ja, wie mache ich das?

Ich habe versucht, mit einer pbuilder-Chroot zu erstellen - dies funktioniert auf meinem lokalen System ordnungsgemäß.

Lintian gibt die folgenden Warnungen auf der Verpackung aus:

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)

Ja, Lintian erzeugt viele Fehler auf der Verpackung. Aber dies ist effektiv ein unverändertes Ubuntu-Paket (nur Changelog-Bump), das überall außer in einer PPA erstellt wird, daher bin ich nicht davon überzeugt, dass dies wichtig ist.
Alistair Buxton

Ich bin nicht sicher, ob dies als Antwort qualifiziert ist, aber Sie können Ihr Build-Protokoll mit dem Build-Protokoll aus dem offiziellen Ubuntu-Paket vergleichen. Sie können hinzufügen, export VERBOSE=1um debian/ruleszu erzwingen, dass die gesamte Ausgabe der Testsuite in das Build-Protokoll geschrieben wird, wenn dies fehlschlägt. Sie können versuchen, sbuild anstelle von pbuilder zu verwenden (siehe wiki.ubuntu.com/SimpleSbuild) .
Mike Miller

Antworten:


1

Beim Durchsuchen des Protokolls gibt es einige Warnungen, die Sie wahrscheinlich beachten sollten, insbesondere wenn Sie sie nicht auf dem lokalen Computer erhalten, aber ich denke, der große Hinweis darauf, was gerade passiert, ist der Name des fehlgeschlagenen Tests: glib -Veranstaltungen.

Ereignisse beziehen sich fast immer auf E / A. Wenn Sie also versuchen möchten, den Fehler auf dem lokalen Computer zu erzwingen, deaktivieren Sie XAUTHORITY und DISPLAY, schließen Sie die Standardeingabe oder leiten Sie sie nach / dev / null um und leiten Sie den Standardausgang und den Fehler in eine Datei um. nohup übernimmt die Umleitung für Sie, berührt jedoch nicht die Umgebung, oder Sie können at oder batch anstelle von nohup verwenden, was auch den Vorteil bietet, den Sitzungsleiter zu wechseln.


Eine gute Idee, aber leider hat es nicht funktioniert. Alle Tests bestehen immer noch, wenn pbuilder von ohne Umgebung ausgeführt wird.
Alistair Buxton
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.