Como depurar uma falha de construção que não pode ser reproduzida fora de um ambiente de construção da Barra de Ativação?


8

Estou tentando criar um pacote libdbusmenu modificado. Ele cria corretamente se eu o criar 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

No entanto, em um PPA, um dos testes falha ao executar, causando falha na compilação. A saída real do teste não é gravada no buildlog:

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

Como posso resolver este problema?

Pode ser que reproduza mais de perto o ambiente de construção usado pelos construtores do PPA. Se sim, como faço isso?

Eu tentei criar usando um chroot pbuilder - isso funciona corretamente no meu sistema local.

O Lintian produz os seguintes avisos na embalagem:

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)

Sim, o lintian produz muitos erros no pacote. Mas este é efetivamente um pacote Ubuntu não modificado (apenas alteração no log de alterações) que é criado em todos os lugares, exceto em um PPA, então não estou convencido de que isso importe.
— Alistair Buxton

Não tenho certeza se isso se qualifica como resposta, mas você pode comparar seu log de compilação com o log de compilação do pacote oficial do Ubuntu. Você pode adicionar export VERBOSE=1a debian/rulespara forçar toda a saída do conjunto de testes a ser gravada no log de compilação quando ela falhar. Você pode tentar usar o sbuild em vez do pbuilder, consulte wiki.ubuntu.com/SimpleSbuild .
— Mike Miller

Respostas:


1

Ao examinar o log, existem alguns avisos que você provavelmente deve observar, principalmente se não os colocar na máquina local, mas acho que a grande dica sobre o que está acontecendo é o nome do teste que falhou: glib -eventos.

os eventos quase sempre estão relacionados à E / S; portanto, para tentar forçar o erro na máquina local, desconfigure XAUTHORITY e DISPLAY, feche a entrada padrão ou redirecione-a para / dev / null e redirecione a saída padrão e o erro para um arquivo. o nohup fará o redirecionamento para você, mas não tocará no ambiente, ou você poderá usar at ou batch em vez de nohup, o que também oferece a vantagem de alterar o líder da sessão.


Uma boa ideia, mas infelizmente não funcionou. Todos os testes ainda passam quando o pbuilder é executado no ambiente sem.
— Alistair Buxton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.