[OTR-dev] Pidgin-otr 3.2.1-2 (win32) - (Un)installer bug

Ian Goldberg ian at cypherpunks.ca
Thu Aug 16 08:28:44 EDT 2012


On Thu, Aug 16, 2012 at 01:22:53AM -0400, Ariel Poliak wrote:
> While preparing an MSI for enterprise deployment of pidgin-otr, I
> found that the (un)installer does not honor the NSIS "/S" switch for
> unattended (un)installation, causing the uninstall confirmation
> prompt to appear when running 'pidgin-otr-uninst.exe' and other
> prompts when performing upgrades or errors occur.
> 
> This does not cause issues during the initial installation of
> pidgin-otr, but subsequent updates will fail due to there being no
> user interface available when the MSI is uninstalled via Group
> Policy (after Windows boots, before users are given the ability to
> log on, MSIs for old versions are removed and the new versions' MSIs
> are then installed [no in-place updates are performed]).
> 
> The culprits lie on the following lines within
> 'packaging/windows/pidgin-otr.nsi':
> ======
> 127  MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully
> removed from your computer."
> 131  MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure
> you want to completely remove $(^Name) and all of its components?"
> IDYES +2
> 162  MessageBox MB_OK|MB_ICONINFORMATION "Could not find pidgin
> plugin directory, pidgin-otr.dll not uninstalled!" IDOK ok
> 180        MessageBox MB_OK|MB_ICONINFORMATION "pidgin-otr.dll is
> busy. Probably Pidgin is still running. Please delete
> $PidginDir\plugins\pidgin-otr.dll manually."
> 194  MessageBox MB_OK|MB_ICONINFORMATION "Failed to find Pidgin
> installation."
> 207        MessageBox MB_OK|MB_ICONEXCLAMATION  "pidgin-otr was
> already found on your system and will first be uninstalled"
> 216                MessageBox MB_OK|MB_ICONEXCLAMATION  "Uninstall
> failed or aborted"
> 238    MessageBox MB_RETRYCANCEL "pidgin-otr.dll is busy. Please
> close Pidgin (including tray icon) and try again" IDCANCEL cancel
> ======
> These are all the MessageBox calls that are not commented out within
> the .nsi file.
> 
> There are two ways to address this:
> 1) add the "/SD" value (see
> http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.4.15 ) to each
> MessageBox call, to specify what option to choose by default when
> the installer is running silently
> (This would be good for MessageBox-es that offer a choice that alter
> the script execution path, a safe default would be to choose the
> button which aborts the [un]installation process*)
> 
> and/or
> 
> 2) Put a IfSilent (see
> http://nsis.sourceforge.net/Docs/Chapter4.html#4.9.4.12 ) jump
> before each MessageBox call (with a proper jump value to preserve
> the execution path) to skip the display of the message and continue
> script execution.
> (This would be good for MessageBox-es that simply display
> information and make no script branching decisions)
> 
> * Alternatively the method described in
> http://nsis.sourceforge.net/Docs/Chapter4.html#4.12 can be used to
> provide the MessageBox answer desired by the user for each possible
> choice.

Ariel,

Thanks for the heads-up!

I'll look into this on Monday when I get back from SAC.  But I have no
way to test it.  Would you be willing to do some rounds of tests with
me?

Thanks,

   - Ian



More information about the OTR-dev mailing list