B47: fix FastFlowLM installer chain for the exe->msi asset switch - #40
Conversation
Upstream FastFlowLM moved FastFlowLM/FastFlowLM -> ROCm/FastFlowLM and, as of v1.0.1, replaced flm-setup.exe with flm-setup.msi, which broke release-installer.yml's -BundleFlm download step with a 404. - build.ps1 / install.ps1: fetch flm-setup.msi, install via msiexec /quiet /norestart instead of the old Inno-Setup /VERYSILENT flags. - installer.iss: [Files]/[Run] chain flm-setup.msi via msiexec. - Flagged (not fixed, unverifiable without a real machine): NeedsFLM/ FlmUninstallCmd detect an existing FLM install by uninstall-subkey NAME PREFIX, which the old .exe installer set; an MSI install typically registers under a product-code GUID instead, so detection/uninstall chaining may silently no-op until validated on real hardware. - Docs updated (README.md, installer/README.md, vendor/README.md). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4f483ebe8c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Filename: "msiexec.exe"; \ | ||
| Parameters: "/i ""{tmp}\flm-setup.msi"" /quiet /norestart /l*v ""{tmp}\flm-install.log"""; \ |
There was a problem hiding this comment.
Uninstall the MSI through its product-code registration
When Flowkey installs the new MSI on a clean machine, the later uninstall chain cannot find it: FlmUninstallCmd still searches only for the old Inno Setup subkey prefix flm version and reads QuietUninstallString, whereas an MSI is registered under its product-code key and may require msiexec /x. Consequently, even when .flm_installed_by_us exists, uninstalling Flowkey executes the fallback echo FLM not registered and leaves the bundled FastFlowLM runtime installed; update the lookup/uninstall command as part of this installer switch.
Useful? React with 👍 / 👎.
Summary
The v2.5.0 tag build (release-installer.yml run 31716528809) failed:
build.ps1 -BundleFlmdownloadsflm-setup.exefrom FastFlowLM's "latest" release, but upstream moved orgs (FastFlowLM/FastFlowLM->ROCm/FastFlowLM) and, as of v1.0.1 ("Windows Installer Switch"), replaced that asset withflm-setup.msi. The old filename 404s.Changes
build.ps1/install.ps1: fetchflm-setup.msi; install viamsiexec /i ... /quiet /norestartinstead of the old Inno-Setup/VERYSILENTflag set (which has no MSI equivalent).installer.iss:[Files]/[Run]chainflm-setup.msiviamsiexec.exe.README.md,installer/README.md,vendor/README.md).NeedsFLM()/FlmUninstallCmd()ininstaller.issdetect an existing FLM install by matching an uninstall-registry SUBKEY NAME starting with"flm version "-- that's how FastFlowLM's old Inno-Setup .exe named its own entry. An MSI-based install typically registers under a product-code GUID instead, so this detection/uninstall-chaining may silently no-op on the new installer until validated on real hardware. Recorded as SPEC.md B47, tied to the existing T8 clean-VM smoke-test gap.Test plan
ruff check .clean, full pytest suite green (536 tests, unaffected -- this is installer/PowerShell only).ps1files parse cleanly ([System.Management.Automation.Language.Parser]::ParseFile)release-installer.ymlsucceeds on the nextv2.5.0tag push🤖 Generated with Claude Code