Repository navigation
installer: replace InstallOrSkip and md5dll with clean uninstall and direct File extraction - #968
Merged
Merged
Conversation
…direct File extraction In-use binary replacement during upgrade does not benefit from MD5 comparison against candidate files because code signing and Authenticode timestamping yield differing file hashes even when source code is unchanged. Furthermore, when uninstallOldVersion performs SafeDeleteFile, target binary paths on disk are guaranteed to be vacant (renamed to <temp>.deleted if in-use), allowing standard native NSIS File commands to write candidates directly with zero write errors. - Update SafeDeleteFile in macros.nsh to restore RebootFlag when rename succeeds, so temporary file cleanup on reboot does not trigger premature reboot prompts or installation failures. - Add CleanOldBinaries macro in macros.nsh to centralize safe deletion/renaming of PIME DLLs and launcher in across x86, x64, and ARM64. - In installer.nsi, run CleanOldBinaries during uninstallOldVersion, SecMain, and uninstallation to ensure target paths are free before installation. - Remove candidate file extraction into in .onInit, InstallOrSkip macro, and CheckFileMD5Equal macro. - Replace InstallOrSkip calls with standard NSIS File commands directly in sections. - Remove the obsolete md5dll plugin directory and its plugin registration. Generated with assistance from Antigravity (Gemini 3.8 Flash).
PCMan
force-pushed
the
feature-nsis-arm64x
branch
from
October 19, 2026 04:59
6d42ff1 to
c72678e
Compare
AppVeyor CI failed during environment setup because downloading CMake 4.3.0 from cmake.org timed out with 'Unable to connect to the remote server'. - Switch the download source for CMake 4.3.0 to the official Kitware GitHub Releases asset URL. - Fix a typo in the comment referencing VS 2026. Generated with assistance from Antigravity (Gemini 3.8 Flash).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In-use binary replacement during upgrade does not benefit from MD5 comparison against candidate files because code signing and Authenticode timestamping yield differing file hashes even when source code is unchanged. Furthermore, when
uninstallOldVersionperformsSafeDeleteFile, target binary paths on disk are guaranteed to be vacant (renamed to<temp>.deletedif in-use), allowing standard native NSISFilecommands to write candidates directly with zero write errors.Summary of Changes
SafeDeleteFile: RestoresRebootFlagwhen rename succeeds, so temporary file cleanup scheduled on reboot does not trigger false reboot prompts or installation failures. Only true hard-locks (rename failure) setRebootFlag true.CleanOldBinaries: Centralizes safe removal/renaming of all PIME DLLs andPIMELauncher.exein$INSTDIRacross x86, x64, and ARM64.uninstallOldVersion,SecMain, andSection "Uninstall".InstallOrSkipwith standard NSISFilecommands inSecMainand the text service registration sections..onInitextraction of candidate binaries to$PLUGINSDIRand theCopyFilesmechanism.md5dllplugin directory (installer/md5dll) and its plugin directory registration.Verification
installer/installer.nsiusing NSIS 3.12 (makensis.exe) intoPIME-2.0.0-beta3-setup.exe(44.0 MB, whole LZMA solid compression, exit code 0).Note
This branch builds upon #965 (
feature-nsis-arm64x).Generated with assistance from Antigravity (Gemini 3.8 Flash).