Jak debugować błąd kompilacji, którego nie można odtworzyć poza środowiskiem kompilacji Launchpad?


8

Próbuję zbudować zmodyfikowany pakiet libdbusmenu. Buduje się poprawnie, jeśli zbuduję go lokalnie:

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

Jednak w PPA jeden z testów nie działa, co powoduje niepowodzenie kompilacji. Rzeczywiste dane wyjściowe testu nie są zapisywane w dzienniku kompilacji:

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

Jak mogę rozwiązać ten problem?

Może sprowadzać się do dokładniejszego odtworzenia środowiska kompilacji używanego przez konstruktorów PPA. Jeśli tak, jak to zrobić?

Próbowałem budować przy użyciu chroota pbuildera - działa to poprawnie w moim systemie lokalnym.

Lintian wyświetla następujące ostrzeżenia na opakowaniu:

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)

Tak, lintian produkuje wiele błędów na pakiecie. Ale w rzeczywistości jest to niezmodyfikowany pakiet Ubuntu (tylko guz dziennika zmian), który buduje się wszędzie oprócz PPA, więc nie jestem przekonany, że to ma znaczenie.
Alistair Buxton

Nie jestem pewien, czy kwalifikuje się to jako odpowiedź, ale możesz porównać dziennik kompilacji z dziennikiem kompilacji z oficjalnego pakietu Ubuntu. Możesz dodać export VERBOSE=1do, debian/rulesaby wymusić zapisywanie całego wyjścia zestawu testów w dzienniku kompilacji, gdy się nie powiedzie. Możesz spróbować użyć sbuild zamiast pbuilder, zobacz wiki.ubuntu.com/SimpleSbuild .
Mike Miller

Odpowiedzi:


1

Przeglądając dziennik, jest kilka ostrzeżeń, na które prawdopodobnie powinieneś spojrzeć, szczególnie jeśli nie dostaniesz ich na lokalną maszynę, ale myślę, że dużą wskazówką dotyczącą tego, co się dzieje, jest nazwa nieudanego testu: glib -wydarzenia.

zdarzenia prawie zawsze są związane z We / Wy, więc aby spróbować wymusić błąd na lokalnym komputerze, wyłącz XAUTHORITY i WYŚWIETLANIE, zamknij standardowe wejście lub przekieruj do / dev / null i przekieruj standardowe wyjście i błąd do pliku. nohup wykona przekierowanie za ciebie, ale nie dotknie środowiska, możesz też użyć at lub wsad zamiast nohup, co również oferuje przewagę polegającą na zmianie lidera sesji.


Dobry pomysł, ale niestety nie zadziałał. Wszystkie testy nadal przebiegają, gdy pbuilder jest uruchamiany z poziomu bez środowiska.
Alistair Buxton
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.