fix: generate en_US.UTF-8 for makensis, C.UTF-8 needs glibc 2.35+
C.UTF-8 is a glibc built-in only from 2.35 (Debian 12+) onward; on an older Debian runner setlocale() silently falls back to POSIX, which is exactly the "main argv conversion failed!" crash from before. Install locales and generate en_US.UTF-8 explicitly instead, which works on any Debian version. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -62,7 +62,10 @@ jobs:
|
||||
run: |
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y jq wine
|
||||
sudo apt-get install -y jq wine locales
|
||||
# C.UTF-8 is glibc >=2.35 only (Debian 12+); en_US.UTF-8 works on any
|
||||
# Debian version and just needs generating once.
|
||||
sudo locale-gen en_US.UTF-8
|
||||
|
||||
- name: Ensure PowerShell
|
||||
# Debian ships no snapd by default, so this pulls Microsoft's portable
|
||||
@@ -83,12 +86,11 @@ jobs:
|
||||
shell: pwsh
|
||||
env:
|
||||
TAG: ${{ steps.vars.outputs.tag }}
|
||||
# Wine's argv conversion aborts with ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
|
||||
# makensis's argv conversion aborts with ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
|
||||
# / "main argv conversion failed!" under the C/POSIX locale that a
|
||||
# minimal Debian box defaults to. C.UTF-8 is a glibc built-in, no
|
||||
# locale-gen needed.
|
||||
LANG: C.UTF-8
|
||||
LC_ALL: C.UTF-8
|
||||
# minimal Debian box defaults to. en_US.UTF-8 is generated above.
|
||||
LANG: en_US.UTF-8
|
||||
LC_ALL: en_US.UTF-8
|
||||
run: ./scripts/build-release.ps1 -Targets win,linux-appimage -Tag $env:TAG
|
||||
|
||||
- name: Log in to git.azuze.fr
|
||||
|
||||
Reference in New Issue
Block a user