Как отладить ошибку сборки, которая не может быть воспроизведена вне среды сборки 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 один из тестов не выполняется, что приводит к сбою сборки. Фактический результат теста не записывается в buildlog:

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

Как я могу решить эту проблему?

Это может привести к более точному воспроизведению среды сборки, используемой сборщиками PPA. Если да, то как мне это сделать?

Я попытался собрать с помощью chroot pbuilder - это работает правильно в моей локальной системе.

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 (только bump changelog), который собирается везде, кроме PPA, поэтому я не уверен, что это важно.
Алистер Бакстон

Я не уверен, что это квалифицируется как ответ, но вы можете сравнить свой журнал сборки с журналом сборки из официального пакета Ubuntu. Вы можете добавить export VERBOSE=1к, debian/rulesчтобы заставить весь вывод набора тестов быть записанным в журнал сборки, когда он терпит неудачу. Вы можете попробовать использовать sbuild вместо pbuilder, см. Wiki.ubuntu.com/SimpleSbuild .
Майк Миллер

Ответы:


1

При просмотре журнала есть некоторые предупреждения, на которые вам, вероятно, стоит обратить внимание, особенно если вы не получаете их на локальном компьютере, но я думаю, что большая подсказка о том, что происходит, - это имя неудачного теста: glib -Мероприятия.

события почти всегда связаны с вводом / выводом, поэтому, чтобы попытаться принудительно вызвать ошибку на локальном компьютере, отключите XAUTHORITY и DISPLAY, закройте стандартный ввод или перенаправьте его в / dev / null и перенаправьте стандартный вывод и ошибку в файл. nohup сделает переадресацию за вас, но не затронет среду, или вы можете использовать пакет или пакет вместо nohup, что также дает преимущество смены лидера сеанса.


Хорошая идея, но, к сожалению, это не сработало. Все тесты все еще проходят, когда pbuilder запускается из среды без среды.
Алистер Бакстон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.