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:
2026-08-28 15:19:32 +02:00
co-authored by Claude Sonnet 5
parent 52eb14b3c8
commit f5ad546c62
+8 -6
View File
@@ -62,7 +62,10 @@ jobs:
run: | run: |
sudo dpkg --add-architecture i386 sudo dpkg --add-architecture i386
sudo apt-get update 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 - name: Ensure PowerShell
# Debian ships no snapd by default, so this pulls Microsoft's portable # Debian ships no snapd by default, so this pulls Microsoft's portable
@@ -83,12 +86,11 @@ jobs:
shell: pwsh shell: pwsh
env: env:
TAG: ${{ steps.vars.outputs.tag }} 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 # / "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 # minimal Debian box defaults to. en_US.UTF-8 is generated above.
# locale-gen needed. LANG: en_US.UTF-8
LANG: C.UTF-8 LC_ALL: en_US.UTF-8
LC_ALL: C.UTF-8
run: ./scripts/build-release.ps1 -Targets win,linux-appimage -Tag $env:TAG run: ./scripts/build-release.ps1 -Targets win,linux-appimage -Tag $env:TAG
- name: Log in to git.azuze.fr - name: Log in to git.azuze.fr