Wireshark-dev: Re: [Wireshark-dev] Windows uninstaller doesn't remove translations.
From: Guy Harris <gharris@xxxxxxxxx>
Date: Thu, 26 Mar 2020 01:01:34 -0700
On Mar 25, 2020, at 5:26 PM, Maynard, Chris via Wireshark-dev <wireshark-dev@xxxxxxxxxxxxx> wrote:

> I’m building Wireshark on Windows, but I’ve upgraded Qt to 5.12.7.  Everything is fine except when uninstalling Wireshark.  It seems that Wireshark now installs the translations in C:\Program Files\Wireshark\styles\translations, but this directory isn’t removed during the un-installation process.

Are they removed with, for example, one of the automated builds of the same branch you're building?

If not, then
 
> Well, for what it’s worth, in case anyone else encounters this, I modified packaging\nsis\uninstall.nsi as follows, which fixes this [for me]:
>  
> Delete "$INSTDIR\styles\*.*"
> Delete "$INSTDIR\styles\translations\*.*"
>  
> RMDir "$INSTDIR\share"
> RMDir "$INSTDIR\styles\translations"

perhaps that fix is a general fix.

Or perhaps what needs to be done is to get rid of all of the Delete commands that refer to $INSTDIR\styles and just do

	RMDir/r "$INSTDIR\styles"

to just completely blow away the "styles" directory?

	https://nsis.sourceforge.io/Docs/Chapter4.html#registry

"4.9.1.9 RMDir

[/r] [/REBOOTOK] directory_name

Remove the specified directory (fully qualified path with no wildcards). Without /r, the directory will only be removed if it is completely empty. If /r is specified the directory will be removed recursively, so all directories and files in the specified directory will be removed. If /REBOOTOK is specified, any file or directory which could not be removed during the process will be removed on reboot -- if any file or directory will be removed on a reboot, the reboot flag will be set. The error flag is set if any file or directory cannot be removed.

RMDir $INSTDIR
RMDir $INSTDIR\data
RMDir /r /REBOOTOK $INSTDIR
RMDir /REBOOTOK $INSTDIR\DLLs"

Or is the /r flag a new addition, and we still support versions of NSIS without it?