查看日志文件,我注意到以下内容:
make[1]: Entering directory '/<<PKGBUILDDIR>>'
if [ armv8l = 'x86_64' ]; then echo -e "1\n2\n" | ./configure; fi
if [ armv8l = 'i686' ]; then echo -e "1\n1\n" | ./configure; fi
if [ armv8l = 'armv6l' ]; then echo -e "1\n1\n" | ./configure; fi
if [ armv8l = 'armv5tel' ]; then echo -e "1\n1\n" | ./configure; fi
if [ armv8l = 'aarch64' ]; then echo -e "1\n2\n" | ./configure; fi
if [ armv8l = 'armv7l' ]; then echo -e "1\n1\n" | ./configure; fi
dh override_dh_auto_configure
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build -a
dh_auto_test -a
fakeroot debian/rules binary-arch
dh binary-arch
dh_testroot -a
dh_prep -a
rm -f -- debian/softether-vpnbridge.substvars debian/softether-vpnclient.substvars debian/softether-vpncmd.substvars debian/softether-vpnserver.substvars
rm -fr -- debian/.debhelper/generated/softether-vpnbridge/ debian/softether-vpnbridge/ debian/tmp/ debian/.debhelper/generated/softether-vpnclient/ debian/softether-vpnclient/ debian/.debhelper/generated/softether-vpncmd/ debian/softether-vpncmd/ debian/.debhelper/generated/softether-vpnserver/ debian/softether-vpnserver/
debian/rules override_dh_auto_install
make[1]: Entering directory '/<<PKGBUILDDIR>>'
patch -f < debian/makefile.patch
can't find file to patch at input line 3
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|--- Makefile 2014-02-04 21:20:33.422762017 +0000
|+++ Makefile.old 2014-02-04 21:20:10.298761727 +0000
--------------------------
No file to patch. Skipping patch.
1 out of 1 hunk ignored
debian/rules:16: recipe for target 'override_dh_auto_install' failed
make[1]: *** [override_dh_auto_install] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:8: recipe for target 'binary-arch' failed
make: *** [binary-arch] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary-arch gave error exit status 2
看起来它失败了,因为它找不到Makefile,这意味着它还没有生成,所以也许./configure has not been called at all
您是否认为添加以下行:
if [ armv8l = 'armvhfl' ]; then echo -e "1\n1\n" | ./configure; fi
会解决问题吗?
我仍在尝试在我的机器上的 qemu 上运行 armhf 进行测试
在 arm64 上:
dh build-arch
dh_update_autotools_config -a
debian/rules override_dh_auto_configure
make[1]: Entering directory '/<<PKGBUILDDIR>>'
if [ aarch64 = 'x86_64' ]; then echo -e "1\n2\n" | ./configure; fi
if [ aarch64 = 'i686' ]; then echo -e "1\n1\n" | ./configure; fi
if [ aarch64 = 'armv6l' ]; then echo -e "1\n1\n" | ./configure; fi
if [ aarch64 = 'armv5tel' ]; then echo -e "1\n1\n" | ./configure; fi
if [ aarch64 = 'aarch64' ]; then echo -e "1\n2\n" | ./configure; fi
---------------------------------------------------------------------
SoftEther VPN for Unix
Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan.
Copyright (c) Daiyuu Nobori. All Rights Reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
Read and understand README.TXT, LICENSE.TXT and WARNING.TXT before use.
---------------------------------------------------------------------
Welcome to the corner-cutting configure script !
The Makefile is generated. Run 'make' to build SoftEther VPN.
if [ aarch64 = 'armv7l' ]; then echo -e "1\n1\n" | ./configure; fi
dh override_dh_auto_configure
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
现在将其与 armhf 的输出进行比较:
make[1]: Entering directory '/<<PKGBUILDDIR>>'
if [ armv8l = 'x86_64' ]; then echo -e "1\n2\n" | ./configure; fi
if [ armv8l = 'i686' ]; then echo -e "1\n1\n" | ./configure; fi
if [ armv8l = 'armv6l' ]; then echo -e "1\n1\n" | ./configure; fi
if [ armv8l = 'armv5tel' ]; then echo -e "1\n1\n" | ./configure; fi
if [ armv8l = 'aarch64' ]; then echo -e "1\n2\n" | ./configure; fi
if [ armv8l = 'armv7l' ]; then echo -e "1\n1\n" | ./configure; fi
dh override_dh_auto_configure
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
在armhf的情况下很明显,没有满足任何if条件,因此没有调用configure脚本,因此没有生成Makefile,因此无法应用补丁文件,从而导致构建错误。 您能否以某种方式打印 armv8l 的值,因为我怀疑它与此列表中的任何值都不匹配
它是armv7l
,它突然开始工作。 解决这个问题。
PPA 中的构建仍然时不时地失败,可以通过 repo 访问的人联系我获取凭据以至少在 master 分支上启用徽章“构建成功\失败”? 在 PR 上创建测试构建是另一回事,我对此无能为力,但我肯定知道 master 何时损坏,我希望每个人都知道这一点。
嗨@paskal 。 您可以通过 gmail.com 上的 moataz dot elmasry2 与我联系
嗨@paskal我将加密的凭据添加到 travis-ci 并推送。
但这只会推送到您的存储库,您想如何在 github 上获得徽章? 或者你的意思是启动板上的徽章?
我想这应该从这一刻开始通知你错误。 然而,信用有问题:
Deploy failed! Launchpad credentials invalid. 401
https://travis-ci.org/SoftEtherVPN/SoftEtherVPN/jobs/350054996
更新了凭据。 仍然得到:
Deploy failed! Launchpad credentials invalid. 401
我不得不删除部署片段,以便它不会将 SE 显示为失败。 我更喜欢在一个单独的分支中处理这个问题
你能试试https://github.com/SoftEtherVPN/SoftEtherVPN/pull/462吗?
(我还没有弄清楚如何设置启动板,但是,它解决了 ubuntu 上的 deb magic,所以我添加了“dh build-arch”步骤)
Launchpad 部署并不是我所想的,并且没有构建徽章(因为有许多针对不同架构和操作系统版本的构建)。 关闭这个,检查 arm 构建在 #432 中讨论,当前情况的修复是 #462。