From c15061547402276312a37d0c2ed5c8f43b7c3926 Mon Sep 17 00:00:00 2001 From: argszero Date: Wed, 5 Aug 2026 01:03:44 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20build-release=20=E4=B9=9D=E6=AC=A1?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E2=80=94=20Windows=20=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=94=B9=E6=96=87=E4=BB=B6=E7=B3=BB=E7=BB=9F=E6=8E=A2=E6=B5=8B?= =?UTF-8?q?=EF=BC=88uname=20=E8=BF=94=E5=9B=9E=20MINGW64=5FNT=20=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E9=9D=A0=EF=BC=89=EF=BC=88rant=20#13=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前次修复用 uname -s 检测 Windows 失败:Git Bash 返回 MINGW64_NT-*(≠ windows), 且 uv standalone python 的 python.exe/python3.13.exe 位于 python-dist 根目录(无 bin/), 导致 else 分支仍执行 ln -s(Git Bash 需管理员权限)而失败。 改用文件系统探测:ls python-dist 下 .exe(根 + bin/ 双位置),存在即复制分支。 POSIX 布局(bin/python3.13)探测为空 → 走软链分支。不依赖 uname,跨平台稳健。 --- packaging/build-runtime.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packaging/build-runtime.sh b/packaging/build-runtime.sh index fd229fa7..fd4acb39 100755 --- a/packaging/build-runtime.sh +++ b/packaging/build-runtime.sh @@ -35,13 +35,16 @@ fi # R45:整目录复制(只复制 bin/python3.13 会缺 lib/libpython3.13.dylib) cp -R "$PY_ROOT/." "$DIST/bin/python-dist/" -# ── 2. bin/python 软链(R82:相对软链;python-dist 与软链同在 bin/ 下)── +# ── 2. bin/python 软链/复制(R82:相对软链;python-dist 与软链同在 bin/ 下)── ( cd "$DIST/bin" - if [ "$(uname -s | tr '[:upper:]' '[:lower:]')" = "windows" ] || [ -f python-dist/bin/python3.13.exe ]; then + # Windows 检测:uname -s 在 Git Bash 返回 MINGW64_NT-*(≠ windows),不可靠; + # 改为文件系统探测——Windows standalone python 布局为 python.exe/python3.13.exe + # 在根目录(无 bin/),POSIX 布局为 bin/python3.13。探测到 .exe 即走复制分支。 + PYEXE="$(ls python-dist/python3.13.exe python-dist/python.exe \ + python-dist/bin/python3.13.exe python-dist/bin/python.exe 2>/dev/null | head -1)" + if [ -n "$PYEXE" ]; then # Windows:Git Bash 的 ln -s 需管理员权限(软链创建失败)→ 用复制替代 - # (python3.13.exe 在 python-dist 根或 bin/,跨版本差异兜底) - PYEXE="$(ls python-dist/bin/python3.13.exe python-dist/python3.13.exe 2>/dev/null | head -1)" cp "$PYEXE" python.exe cp "$PYEXE" python3.exe else