如何调试无法在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构建器使用的构建环境。如果是这样,我该怎么做?

我尝试使用pbuilder chroot进行构建-在我的本地系统上可以正常工作。

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软件包(仅更改日志变更),除了在PPA中之外,它都可以在任何地方构建,因此我不认为这很重要。
阿利斯泰尔·巴克斯顿

我不确定这是否可以作为答案,但是您可以将构建日志与官方Ubuntu软件包中的构建日志进行比较。你可以添加export VERBOSE=1debian/rules迫使整个测试套件输出时,它不能被写入生成日志。您可以尝试使用sbuild代替pbuilder,请参见wiki.ubuntu.com/SimpleSbuild
Mike Miller

Answers:


1

在查看日志时,您可能应该查看一些警告,尤其是如果您没有将它们放在本地计算机上时,但我认为有关正在进行的最大提示是失败测试的名称:glib事件。

事件几乎总是与I / O有关,因此要尝试在未设置XAUTHORITY和DISPLAY的本地计算机上强制错误,请关闭标准输入或将其重定向到/ dev / null,然后将标准输出和错误重定向到文件。nohup将为您执行重定向,但不会涉及环境,或者您可以使用at或批处理代替nohup,这也提供了更改会话领导者的优势。


一个好主意,但不幸的是它没有用。在没有环境的情况下从pbuilder运行时,所有测试仍然通过。
阿利斯泰尔·巴克斯顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.