actions在线编译只添加luci-app-passwall编译错误
下面是错误日志 make[3] -C feeds/small/sing-box compile make[3] -C package/kernel/button-hotplug compile make[3] -C package/kernel/r8125 compile make[3] -C package/kernel/r8126 compile make[3] -C package/kernel/r8168 compile ERROR: package/feeds/small/sing-box failed to build. make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 1 WARNING: Makefile 'package/feeds/luci/luci-app-alist/Makefile' has a dependency on 'alist', which does not exist WARNING: Makefile 'package/feeds/small/luci-app-bypass/Makefile' has a dependency on 'smartdns', which does not exist WARNING: Makefile 'package/feeds/luci/luci-app-openlist/Makefile' has a dependency on 'openlist', which does not exist WARNING: Makefile 'package/feeds/luci/luci-app-smartdns/Makefile' has a dependency on 'smartdns', which does not exist WARNING: Makefile 'package/feeds/small/luci-app-ssr-plus/Makefile' has a dependency on 'dns2socks-rust', which does not exist make[2]: Entering directory '/home/runner/work/lede/lede/scripts/config' make[2]: 'conf' is up to date. make[2]: Leaving directory '/home/runner/work/lede/lede/scripts/config' make[1]: Entering directory '/home/runner/work/lede/lede' make[2]: Entering directory '/home/runner/work/lede/lede' make[2]: Entering directory '/home/runner/work/lede/lede' rm -rf /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/root-x86 make[3]: Entering directory '/home/runner/work/lede/lede/target/linux' make[4]: Entering directory '/home/runner/work/lede/lede/target/linux/x86'
SHELL= flock /home/runner/work/lede/lede/tmp/.root-copy.flock -c 'cp -fpR /home/runner/work/lede/lede/build_dir/target-x86_64_musl/linux-x86_64/packages/.pkgdir/kmod-drm-i915/. /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/root-x86/' touch /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/root-x86/stamp/.kmod-drm-i915_installed echo "kmod-drm-i915" >> /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/pkginfo/linux.default.install mkdir -p /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/root-x86/stamp
SHELL= flock /home/runner/work/lede/lede/tmp/.root-copy.flock -c 'cp -fpR /home/runner/work/lede/lede/build_dir/target-x86_64_musl/linux-x86_64/packages/.pkgdir/kmod-amd-xgbe/. /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/root-x86/' touch /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/root-x86/stamp/.kmod-amd-xgbe_installed echo "kmod-amd-xgbe" >> /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/pkginfo/linux.default.install make[3]: Leaving directory '/home/runner/work/lede/lede/package/kernel/linux' time: package/kernel/linux/compile#4.13#1.27#5.76 make[2]: Leaving directory '/home/runner/work/lede/lede' make[1]: *** [package/Makefile:110: /home/runner/work/lede/lede/staging_dir/target-x86_64_musl/stamp/.package_compile] Error 2 make[1]: Leaving directory '/home/runner/work/lede/lede' make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 2 Error: Process completed with exit code 2.
上游是做了什么调整吗?
with_ech显式禁用
with_ech显式禁用
大佬,没看懂,请问是什么原因?
with_ech显式禁用
大佬,没看懂,请问是什么原因?
想知道原因你J1跑就知道了
with_ech显式禁用
大佬,没看懂,请问是什么原因?
想知道原因你J1跑就知道了
请问是这里吗 - name: Compile firmware run: | make -j$(nproc) || make -j1 V=s
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash
# fix_singbox_ech_stub.sh
# 自动查找并修补所有 ech_tag_stub.go 编译错误
# 查找所有 ech_tag_stub.go
TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null)
if [ -z "$TARGET_FILES" ]; then
echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:"
echo " make package/feeds/small/sing-box/prepare V=s"
exit 1
fi
echo "✅ 找到以下文件:"
echo "$TARGET_FILES"
# 逐个修补
for file in $TARGET_FILES; do
cp "$file" "$file.bak"
sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file"
echo "🔧 已修补 $file"
done
echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:"
echo " make package/feeds/small/sing-box/compile V=s"
可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
怎么没看到其他小伙伴有同样编译错误呢?
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
你试试这个,在你的流水线里,找到这一行make -j$(nproc) || make -j1 || make -j1 V=s,并注释掉,然后分拆执行如下:
#make -j$(nproc) || make -j1 || make -j1 V=s
make -j$(nproc)
bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh)
make package/feeds/small/sing-box/compile V=s
make package/feeds/packages/geoview/{clean,compile}
make -j$(nproc)
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
你试试这个,在你的流水线里,找到这一行
make -j$(nproc) || make -j1 || make -j1 V=s,并注释掉,然后分拆执行如下:#make -j$(nproc) || make -j1 || make -j1 V=s make -j$(nproc) bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) make package/feeds/small/sing-box/compile V=s make package/feeds/packages/geoview/{clean,compile} make -j$(nproc)
大佬 报错了 make[3] -C package/libs/libubox compile make[3] -C package/kernel/linux compile make[3] -C package/libs/ncurses compile make[3] -C package/libs/libbpf compile make[3] -C package/boot/grub2 compile make[3] -C feeds/packages/libs/glib2 compile make[3] -C feeds/openlist2/openlist2 compile make[3] -C feeds/packages/utils/fuse3 compile make[3] -C feeds/packages/utils/pciutils compile make[3] -C package/network/utils/ipset compile make[3] -C feeds/small/sing-box compile make[3] -C package/kernel/button-hotplug compile make[3] -C package/kernel/r8125 compile make[3] -C package/kernel/r8126 compile ERROR: package/feeds/small/sing-box failed to build. make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 1
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
你试试这个,在你的流水线里,找到这一行
make -j$(nproc) || make -j1 || make -j1 V=s,并注释掉,然后分拆执行如下:#make -j$(nproc) || make -j1 || make -j1 V=s make -j$(nproc) bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) make package/feeds/small/sing-box/compile V=s make package/feeds/packages/geoview/{clean,compile} make -j$(nproc)大佬 报错了 make[3] -C package/libs/libubox compile make[3] -C package/kernel/linux compile make[3] -C package/libs/ncurses compile make[3] -C package/libs/libbpf compile make[3] -C package/boot/grub2 compile make[3] -C feeds/packages/libs/glib2 compile make[3] -C feeds/openlist2/openlist2 compile make[3] -C feeds/packages/utils/fuse3 compile make[3] -C feeds/packages/utils/pciutils compile make[3] -C package/network/utils/ipset compile make[3] -C feeds/small/sing-box compile make[3] -C package/kernel/button-hotplug compile make[3] -C package/kernel/r8125 compile make[3] -C package/kernel/r8126 compile ERROR: package/feeds/small/sing-box failed to build. make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 1
1.重点是make -j$(nproc) || true,后面的true,就是先不管报错,让它完成第一次编译;
2.然后在运行修改注释fix_singbox_ech_stub.sh脚本
具体内容:
- name: Compile the firmware
id: compile
run: |
cd openwrt
echo -e "$(nproc) thread compile"
#make -j$(nproc) || make -j1 || make -j1 V=s
bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh)
make -j$(nproc) || true
bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true
make package/feeds/small/sing-box/compile || true
make package/feeds/packages/geoview/compile || true
make -j$(nproc)
echo "status=success" >> $GITHUB_OUTPUT
grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME
[ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV
echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
你试试这个,在你的流水线里,找到这一行
make -j$(nproc) || make -j1 || make -j1 V=s,并注释掉,然后分拆执行如下:#make -j$(nproc) || make -j1 || make -j1 V=s make -j$(nproc) bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) make package/feeds/small/sing-box/compile V=s make package/feeds/packages/geoview/{clean,compile} make -j$(nproc)大佬 报错了 make[3] -C package/libs/libubox compile make[3] -C package/kernel/linux compile make[3] -C package/libs/ncurses compile make[3] -C package/libs/libbpf compile make[3] -C package/boot/grub2 compile make[3] -C feeds/packages/libs/glib2 compile make[3] -C feeds/openlist2/openlist2 compile make[3] -C feeds/packages/utils/fuse3 compile make[3] -C feeds/packages/utils/pciutils compile make[3] -C package/network/utils/ipset compile make[3] -C feeds/small/sing-box compile make[3] -C package/kernel/button-hotplug compile make[3] -C package/kernel/r8125 compile make[3] -C package/kernel/r8126 compile ERROR: package/feeds/small/sing-box failed to build. make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 1
1.重点是
make -j$(nproc) || true,后面的true,就是先不管报错,让它完成第一次编译; 2.然后在运行修改注释fix_singbox_ech_stub.sh脚本 具体内容:- name: Compile the firmware id: compile run: | cd openwrt echo -e "$(nproc) thread compile" #make -j$(nproc) || make -j1 || make -j1 V=s bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh) make -j$(nproc) || true bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true make package/feeds/small/sing-box/compile || true make package/feeds/packages/geoview/compile || true make -j$(nproc) echo "status=success" >> $GITHUB_OUTPUT grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME [ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
还是没跑完整 Run cd openwrt cd openwrt echo -e "$(nproc) thread compile" #make -j$(nproc) || make -j1 || make -j1 V=s bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh) make -j$(nproc) || true bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true make package/feeds/small/sing-box/compile || true make package/feeds/packages/geoview/compile || true make -j$(nproc) echo "status=success" >> $GITHUB_OUTPUT grep '^CONFIG_TARGET.DEVICE.=y' .config | sed -r 's/.DEVICE_(.)=y/\1/' > DEVICE_NAME [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV echo "FILE_DATE=$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV shell: /usr/bin/bash -e {0} /home/runner/work/_temp/93781eab-fe76-4952-a415-eb05d3d76cef.sh: line 1: cd: openwrt: No such file or directory Error: Process completed with exit code 1.
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
你试试这个,在你的流水线里,找到这一行
make -j$(nproc) || make -j1 || make -j1 V=s,并注释掉,然后分拆执行如下:#make -j$(nproc) || make -j1 || make -j1 V=s make -j$(nproc) bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) make package/feeds/small/sing-box/compile V=s make package/feeds/packages/geoview/{clean,compile} make -j$(nproc)大佬 报错了 make[3] -C package/libs/libubox compile make[3] -C package/kernel/linux compile make[3] -C package/libs/ncurses compile make[3] -C package/libs/libbpf compile make[3] -C package/boot/grub2 compile make[3] -C feeds/packages/libs/glib2 compile make[3] -C feeds/openlist2/openlist2 compile make[3] -C feeds/packages/utils/fuse3 compile make[3] -C feeds/packages/utils/pciutils compile make[3] -C package/network/utils/ipset compile make[3] -C feeds/small/sing-box compile make[3] -C package/kernel/button-hotplug compile make[3] -C package/kernel/r8125 compile make[3] -C package/kernel/r8126 compile ERROR: package/feeds/small/sing-box failed to build. make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 1
1.重点是
make -j$(nproc) || true,后面的true,就是先不管报错,让它完成第一次编译; 2.然后在运行修改注释fix_singbox_ech_stub.sh脚本 具体内容:- name: Compile the firmware id: compile run: | cd openwrt echo -e "$(nproc) thread compile" #make -j$(nproc) || make -j1 || make -j1 V=s bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh) make -j$(nproc) || true bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true make package/feeds/small/sing-box/compile || true make package/feeds/packages/geoview/compile || true make -j$(nproc) echo "status=success" >> $GITHUB_OUTPUT grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME [ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV还是没跑完整 Run cd openwrt cd openwrt echo -e "$(nproc) thread compile" #make -j$(nproc) || make -j1 || make -j1 V=s bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh) make -j$(nproc) || true bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true make package/feeds/small/sing-box/compile || true make package/feeds/packages/geoview/compile || true make -j$(nproc) echo "status=success" >> $GITHUB_OUTPUT grep '^CONFIG_TARGET.DEVICE.=y' .config | sed -r 's/.DEVICE(.)=y/\1/' > DEVICE_NAME [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> $GITHUB_ENV echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV shell: /usr/bin/bash -e {0} /home/runner/work/_temp/93781eab-fe76-4952-a415-eb05d3d76cef.sh: line 1: cd: openwrt: No such file or directory Error: Process completed with exit code 1.
直接在config禁用tag最省事
CONFIG_SING_BOX_WITH_ECH is not set
FILE_DATE
好的 我试试
/home/runner/work/_temp/93781eab-fe76-4952-a415-eb05d3d76cef.sh: line 1: cd: openwrt: No such file or directory
你也不能完全照抄我的路径,感觉你的路径是lede,而非我给出的openwrt,所以报错了。
具体路径是什么,你看你的流水线其他part,它也会有一个cd 路径的写法,你抄那个才对。
你可以还想弄的话,去fork我这个Actions,这是成功的。
你试试这样,万一解决了呢:
cd /home/runner/work/lede/lede ## 搞不懂你为何lede有两层目录 然后用以下脚本fix_singbox_ech_stub.sh临时打个补丁。
#!/bin/bash # fix_singbox_ech_stub.sh # 自动查找并修补所有 ech_tag_stub.go 编译错误 # 查找所有 ech_tag_stub.go TARGET_FILES=$(find build_dir -type f -name ech_tag_stub.go 2>/dev/null) if [ -z "$TARGET_FILES" ]; then echo "❌ 没找到 ech_tag_stub.go 文件,请先运行 prepare 解压源码:" echo " make package/feeds/small/sing-box/prepare V=s" exit 1 fi echo "✅ 找到以下文件:" echo "$TARGET_FILES" # 逐个修补 for file in $TARGET_FILES; do cp "$file" "$file.bak" sed -i '/Due to the migration to stdlib/ s/^/\/\/ /' "$file" echo "🔧 已修补 $file" done echo "✅ 所有 ech_tag_stub.go 已修补完成,现在可以编译:" echo " make package/feeds/small/sing-box/compile V=s"可能得原因:
sing-box 近期在 common/tls 里对 ECH(Encrypted ClientHello) 的构建标签做了清理: 原本需要 -tags with_ech 编译,现在改成直接用 Go 1.23+ 标准库的 ECH 支持,不再单独维护 with_ech 标签。
大佬你好。我是actions在线编译,要怎么使用这个脚本呢?
你试试这个,在你的流水线里,找到这一行
make -j$(nproc) || make -j1 || make -j1 V=s,并注释掉,然后分拆执行如下:#make -j$(nproc) || make -j1 || make -j1 V=s make -j$(nproc) bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) make package/feeds/small/sing-box/compile V=s make package/feeds/packages/geoview/{clean,compile} make -j$(nproc)大佬 报错了 make[3] -C package/libs/libubox compile make[3] -C package/kernel/linux compile make[3] -C package/libs/ncurses compile make[3] -C package/libs/libbpf compile make[3] -C package/boot/grub2 compile make[3] -C feeds/packages/libs/glib2 compile make[3] -C feeds/openlist2/openlist2 compile make[3] -C feeds/packages/utils/fuse3 compile make[3] -C feeds/packages/utils/pciutils compile make[3] -C package/network/utils/ipset compile make[3] -C feeds/small/sing-box compile make[3] -C package/kernel/button-hotplug compile make[3] -C package/kernel/r8125 compile make[3] -C package/kernel/r8126 compile ERROR: package/feeds/small/sing-box failed to build. make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on make: *** [/home/runner/work/lede/lede/include/toplevel.mk:231: world] Error 1
1.重点是
make -j$(nproc) || true,后面的true,就是先不管报错,让它完成第一次编译; 2.然后在运行修改注释fix_singbox_ech_stub.sh脚本 具体内容:- name: Compile the firmware id: compile run: | cd openwrt echo -e "$(nproc) thread compile" #make -j$(nproc) || make -j1 || make -j1 V=s bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh) make -j$(nproc) || true bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true make package/feeds/small/sing-box/compile || true make package/feeds/packages/geoview/compile || true make -j$(nproc) echo "status=success" >> $GITHUB_OUTPUT grep '^CONFIG_TARGET.*DEVICE.*=y' .config | sed -r 's/.*DEVICE_(.*)=y/\1/' > DEVICE_NAME [ -s DEVICE_NAME ] && echo "DEVICE_NAME=_$(cat DEVICE_NAME)" >> $GITHUB_ENV echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV还是没跑完整 Run cd openwrt cd openwrt echo -e "$(nproc) thread compile" #make -j$(nproc) || make -j1 || make -j1 V=s bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_init.sh) make -j$(nproc) || true bash <(curl -Ls https://raw.githubusercontent.com/szdosar/ish/refs/heads/master/fix_singbox_ech_stub.sh) || true make package/feeds/small/sing-box/compile || true make package/feeds/packages/geoview/compile || true make -j$(nproc) echo "status=success" >> $GITHUB_OUTPUT grep '^CONFIG_TARGET.DEVICE.=y' .config | sed -r 's/.DEVICE(.)=y/\1/' > DEVICE_NAME [ -s DEVICE_NAME ] && echo "DEVICE_NAME=$(cat DEVICE_NAME)" >> Missing superscript or subscript argument
$GITHUB_ENV echo "FILE_DATE=_$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV shell: /usr/bin/bash -e {0} /home/runner/work/_temp/93781eab-fe76-4952-a415-eb05d3d76cef.sh: line 1: cd: openwrt: No such file or directory Error: Process completed with exit code 1.直接在config禁用tag最省事
CONFIG_SING_BOX_WITH_ECH is not set
加了CONFIG_SING_BOX_WITH_ECH=n,可以正常编译,这样对梯子软件有影响吗?