From 0e4bff61e079baa9a80844fbf52a61e73c27f37e Mon Sep 17 00:00:00 2001 From: rustdesk Date: Wed, 5 Aug 2026 21:37:58 +0800 Subject: [PATCH] ci: use an 8.3-safe placeholder for the msi template WiX derives a short name for any name that is not valid 8.3, and a patch cannot rewrite a truncated placeholder, so a long placeholder would leave the package's short names pointing at it. RDAPPNAM is eight characters like "RustDesk" and needs no short name, keeping the template as close to the shipped package as the mechanism allows. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01Q7fBdTwziR5BHTkSz7Tzcm --- .github/workflows/flutter-build.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/flutter-build.yml b/.github/workflows/flutter-build.yml index da03231a0..abaf63ba1 100644 --- a/.github/workflows/flutter-build.yml +++ b/.github/workflows/flutter-build.yml @@ -396,6 +396,15 @@ jobs: # tree is reset around this second variant; and it locates the app as # .exe inside the dist, so the dist copy is renamed to match. # + # The placeholder is chosen to keep this template as close to the shipped msi as + # possible: eight characters like "RustDesk", and a valid 8.3 name, so WiX + # derives no short name for it. A longer placeholder would get one, and a patch + # cannot rewrite a truncated placeholder, leaving short names pointing at it. + # + # It still has to be unique, which is why "RustDesk" itself cannot be used: + # it also names payload that must never be renamed, such as librustdesk.dll + # and drivers\RustDeskPrinterDriver. + # # Building the arm64 template on the native arm64 runner is what makes ARM # custom clients possible at all: the build agents are x64 and cannot run # preprocess.py against an ARM exe. @@ -403,9 +412,9 @@ jobs: run: | git checkout -- res/msi cp -r ./rustdesk ./rustdesk-msi-template - mv ./rustdesk-msi-template/rustdesk.exe ./rustdesk-msi-template/__RDAPPNAME__.exe + mv ./rustdesk-msi-template/rustdesk.exe ./rustdesk-msi-template/RDAPPNAM.exe pushd ./res/msi - python preprocess.py --arp -d ../../rustdesk-msi-template --app-name __RDAPPNAME__ + python preprocess.py --arp -d ../../rustdesk-msi-template --app-name RDAPPNAM $msiPlatform = if ('${{ matrix.job.arch }}' -eq 'aarch64') { 'ARM64' } else { 'x64' } msbuild msi.sln -t:clean -p:Configuration=Release -p:Platform=$msiPlatform msbuild msi.sln -p:Configuration=Release -p:Platform=$msiPlatform /p:TargetVersion=Windows10