Come eseguire il debug di un errore di build che non può essere riprodotto al di fuori di un ambiente di build di Launchpad?


8

Sto tentando di creare un pacchetto libdbusmenu modificato. Si costruisce correttamente se lo costruisco localmente:

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

Tuttavia, in un PPA, uno dei test non viene eseguito e ciò provoca il fallimento della compilazione. L'output del test effettivo non viene scritto nel buildlog:

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

Come posso risolvere questo problema?

Potrebbe venire a riprodurre più da vicino l'ambiente di build utilizzato dai costruttori di PPA. In tal caso, come posso farlo?

Ho provato a costruire usando un chroot di pbuilder - questo funziona correttamente sul mio sistema locale.

Lintian produce i seguenti avvisi sul pacchetto:

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)

Sì, lintian produce molti errori sul pacchetto. Ma questo è effettivamente un pacchetto Ubuntu non modificato (solo bump del log delle modifiche) che si costruisce ovunque tranne che in un PPA, quindi non sono convinto che sia importante.
Alistair Buxton,

Non sono sicuro che ciò si qualifichi come una risposta, ma potresti confrontare il tuo registro di build con il registro di build del pacchetto Ubuntu ufficiale. È possibile aggiungere export VERBOSE=1a debian/rulesper forzare l'output dell'intera suite di test da scrivere nel registro di build in caso di errore. Puoi provare a usare sbuild invece di pbuilder, vedi wiki.ubuntu.com/SimpleSbuild .
Mike Miller,

Risposte:


1

Guardando nel registro ci sono alcuni avvertimenti che probabilmente dovresti guardare, in particolare se non li trovi sul computer locale, ma penso che il grande suggerimento su ciò che sta accadendo sia il nome del test fallito: glib -Eventi.

gli eventi sono quasi sempre correlati all'I / O, quindi per provare a forzare l'errore sul computer locale disinserire XAUTHORITY e DISPLAY, chiudere l'input standard o reindirizzarlo su / dev / null e reindirizzare lo standard fuori ed errore su un file. nohup farà il reindirizzamento per te, ma non toccherai l'ambiente, oppure potresti usare at o batch invece di nohup che offre anche il vantaggio di cambiare il leader della sessione.


Una buona idea, ma sfortunatamente non ha funzionato. Tutti i test continuano comunque quando pbuilder viene eseguito da senza ambiente.
Alistair Buxton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.