如何调试无法在 Launchpad 构建环境之外重现的构建失败?

Ali*_*ton 8 launchpad ppa

我正在尝试构建一个修改过的 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
Run Code Online (Sandbox Code Playgroud)

但是,在 PPA 中,其中一个测试无法运行,从而导致构建失败。实际的测试输出不会写入构建日志:

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)
Run Code Online (Sandbox Code Playgroud)

小智 1

在查看日志时,您可能应该查看一些警告,特别是如果您没有在本地计算机上获取它们,但我认为有关正在发生的情况的重要提示是失败测试的名称:glib - 事件。

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