patch 9.1.0191: Installer does not remove all files Commit: https://github.com/vim/vim/commit/2680a074d4790abb372ecda658b0c455a6fe06cf Author: RestorerZ <resto...@mail2k.ru> Date: Wed Mar 20 20:15:51 2024 +0100
patch 9.1.0191: Installer does not remove all files Problem: Installer does not remove all files Solution: Update installer and delete all files on uninstall update Sodium library dependency, update Readme (RestorerZ) closes: #14214 Signed-off-by: RestorerZ <resto...@mail2k.ru> Signed-off-by: Christian Brabandt <c...@256bit.org> diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2148f7f1..bc76c4c2c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -408,7 +408,7 @@ jobs: # winpty WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip # libsodium - SODIUM_VER: '1.0.18' + SODIUM_VER: '1.0.19' SODIUM_MSVC_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-msvc.zip SODIUM_MSVC_VER: v143 SODIUM_MINGW_URL: https://download.libsodium.org/libsodium/releases/libsodium-%SODIUM_VER%-stable-mingw.tar.gz diff --git a/nsis/README.txt b/nsis/README.txt index e1abc4a95..a47201cc7 100644 --- a/nsis/README.txt +++ b/nsis/README.txt @@ -29,18 +29,26 @@ To build the installable .exe: 4. Get a "diff.exe" program. If you skip this the built-in diff will always be used (which is fine for most users). If you do have your own - "diff.exe" put it in the "../.." directory (above the "vim90" directory, + "diff.exe" put it in the "../.." directory (above the "vim91" directory, it's the same for all Vim versions). You can find one in previous Vim versions or in this archive: - http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz + http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz -5 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim90" +5. Also put "winpty32.dll" and "winpty-agent.exe" in "../.." (above the "vim91" directory). This is required for the terminal window. -6. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have +6. To use stronger encryption, add the Sodium library. You can get it here: + https://github.com/jedisct1/libsodium/releases/download/1.0.19-RELEASE/libsodium-1.0.19-msvc.zip + Unpack the archive. Put the "libsodium.dll" from + path/to/libsodium/Win32/Release/v143/dynamic for the 32窶臣it version or + path/to/libsodium/X64/Release/v143/dynamic for the 64窶臣it version in the + "../.." directory (above the "vim91" directory, where "diff.exe" and + "winpty32.dll"). + +7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have to do this on Unix. Make sure the file is in DOS file format! -7. Get gettext and iconv DLLs from the following site: +8. Get gettext and iconv DLLs from the following site: https://github.com/mlocati/gettext-iconv-windows/releases Both 64- and 32-bit versions are needed. Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi index 992d0501b..ec6536105 100644 --- a/nsis/gvim.nsi +++ b/nsis/gvim.nsi @@ -1,6 +1,6 @@ # NSIS file to create a self-installing exe for Vim. # It requires NSIS version 3.0 or later. -# Last Change: 2014 Nov 5 +# Last Change: 2024 Mar 17 Unicode true @@ -58,6 +58,37 @@ Unicode true !include "Sections.nsh" !include "x64.nsh" +# See https://nsis.sourceforge.io/LogicLib +;FileExists is already part of LogicLib, but returns true for directories +;as well as files +!macro _FileExists2 _a _b _t _f + !insertmacro _LOGICLIB_TEMP + StrCpy $_LOGICLIB_TEMP "0" +;if path is not blank, continue to next check + StrCmp `${_b}` `` +4 0 +;if path exists, continue to next check (IfFileExists returns true if this +;is a directory) + IfFileExists `${_b}` `0` +3 +;if path is not a directory, continue to confirm exists + IfFileExists `${_b}\*.*` +2 0 + StrCpy $_LOGICLIB_TEMP "1" ;file exists +;now we have a definitive value - the file exists or it does not + StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}` +!macroend +!undef FileExists +!define FileExists `"" FileExists2` +!macro _DirExists _a _b _t _f + !insertmacro _LOGICLIB_TEMP + StrCpy $_LOGICLIB_TEMP "0" +;if path is not blank, continue to next check + StrCmp `${_b}` `` +3 0 +;if directory exists, continue to confirm exists + IfFileExists `${_b}\*.*` 0 +2 + StrCpy $_LOGICLIB_TEMP "1" + StrCmp $_LOGICLIB_TEMP "1" `${_t}` `${_f}` +!macroend +!define DirExists `"" DirExists` + !define PRODUCT "Vim ${VER_MAJOR}.${VER_MINOR}" !define UNINST_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall" !define UNINST_REG_KEY_VIM "${UNINST_REG_KEY}\${PRODUCT}" @@ -365,9 +396,6 @@ Section "$(str_section_exe)" id_section_exe File /oname=gvim.exe ${VIMSRC}\gvim_ole.exe !if /FileExists "${VIMSRC} im${BIT}.dll" File ${VIMSRC} im${BIT}.dll -!endif -!if /FileExists "${VIMRT}\libsodium.dll" - File ${VIMRT}\libsodium.dll !endif File /oname=install.exe ${VIMSRC}\installw32.exe File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe @@ -379,9 +407,18 @@ Section "$(str_section_exe)" id_section_exe File ..\uninstall.txt File ${VIMRT}\*.vim +!if /FileExists "${VIMTOOLS}\diff.exe" File ${VIMTOOLS}\diff.exe +!endif +!if /FileExists "${VIMTOOLS}\winpty${BIT}.dll" File ${VIMTOOLS}\winpty${BIT}.dll +!endif +!if /FileExists "${VIMTOOLS}\winpty-agent.exe" File ${VIMTOOLS}\winpty-agent.exe +!endif +!if /FileExists "${VIMTOOLS}\libsodium.dll" + File ${VIMTOOLS}\libsodium.dll +!endif SetOutPath $0 -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/E1rn1dW-00DUXD-Au%40256bit.org.