我正在尝试构建一个经过修改的 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 中,其中一个测试运行失败,导致构建失败。实际测试输出未写入构建日志:
我该如何解决这个问题?
这可能归结为更紧密地重现 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)
答案1
查看日志时会发现一些警告,您可能应该查看,特别是如果您没有在本地机器上收到它们,但我认为关于正在发生的事情的最大提示是失败测试的名称:glib-events。
事件几乎总是与 I/O 相关,因此尝试强制在本地计算机上发生错误,取消设置 XAUTHORITY 和 DISPLAY,关闭标准输入或将其重定向到 /dev/null,并将标准输出和错误重定向到文件。nohup 将为您执行重定向,但不会触及环境,或者您可以使用 at 或 batch 代替 nohup,这也提供了更改会话领导者的优势。