diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-01-28 20:04:59 +0200 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-01-31 16:59:35 +0200 | 
| commit | 94daedaaedd3eceb8cf41a2238ee10fe6280f37c (patch) | |
| tree | b7c3abc3ce3f5a5a9eecc9ce955c3c404da79723 /indra/newview | |
| parent | fff0dd3f1db4112ee79f5bd25711198d8db7eb72 (diff) | |
SL-16681 Better handling of locked files by NSIS Installer
1. When SL window closes it doesn't mean that process died so gave it a bit more time to terminate
2. Added a retry logic in case first run happened too early for some reason
3. Replaced ok/cancel on locked file with abort/retry/ignorei
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/installers/windows/installer_template.nsi | 32 | ||||
| -rw-r--r-- | indra/newview/installers/windows/lang_da.nsi | bin | 12128 -> 11992 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_de.nsi | 2 | ||||
| -rw-r--r-- | indra/newview/installers/windows/lang_en-us.nsi | bin | 11802 -> 11666 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_es.nsi | bin | 13112 -> 12976 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_fr.nsi | bin | 13628 -> 13492 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_it.nsi | bin | 12850 -> 12714 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_ja.nsi | bin | 10016 -> 9880 bytes | |||
| -rw-r--r-- | indra/newview/installers/windows/lang_pl.nsi | bin | 12448 -> 12312 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_pt-br.nsi | bin | 13272 -> 13136 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_ru.nsi | bin | 12586 -> 12450 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_tr.nsi | bin | 12496 -> 12360 bytes | |||
| -rwxr-xr-x | indra/newview/installers/windows/lang_zh.nsi | bin | 9460 -> 9324 bytes | 
13 files changed, 27 insertions, 7 deletions
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 668a8025bd..7513908cb4 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -561,10 +561,17 @@ Function CloseSecondLife    LOOP:
  	  FindWindow $0 "Second Life" ""
 -	  IntCmp $0 0 DONE
 +	  IntCmp $0 0 SLEEP
  	  Sleep 500
  	  Goto LOOP
 -
 +	  
 +  SLEEP:
 +    # Second life window just closed, but program might not be fully done yet
 +    # and OS might have not released some locks, wait a bit more to make sure
 +    # all file handles were released.
 +	# If something still isn't unlocked, it will trigger a notification from
 +	# RemoveProgFilesOnInst
 +    Sleep 1000
    DONE:
      Pop $0
      Return
 @@ -611,6 +618,12 @@ Function RemoveProgFilesOnInst  # RMDir /r $INSTDIR is especially unsafe if user installed somewhere
  # like Program Files
 +# Set retry counter. All integers are strings.
 +Push $0
 +StrCpy $0 0
 +
 +PREINSTALLREMOVE:
 +
  # Remove old SecondLife.exe to invalidate any old shortcuts to it that may be in non-standard locations. See MAINT-3575
  Delete "$INSTDIR\$INSTEXE"
  Delete "$INSTDIR\$VIEWER_EXE"
 @@ -627,19 +640,26 @@ RMDir /r "$INSTDIR\vmp_icons"  # find modules from different versions
  RMDir /r "$INSTDIR\llplugin"
 -IfErrors 0 PREINSTALLCLEAN
 -  StrCmp $SKIP_DIALOGS "true" PREINSTALLCLEAN
 -    MessageBox MB_OKCANCEL $(CloseSecondLifeInstRM) IDOK PREINSTALLCLEAN IDCANCEL PREINSTALLFAIL
 +IntOp $0 $0 + 1
 +
 +IfErrors 0 PREINSTALLDONE
 +  IntCmp $0 1 PREINSTALLREMOVE #try again once
 +    StrCmp $SKIP_DIALOGS "true" PREINSTALLDONE
 +      MessageBox MB_ABORTRETRYIGNORE $(CloseSecondLifeInstRM) IDABORT PREINSTALLFAIL IDRETRY PREINSTALLREMOVE
 +      # MB_ABORTRETRYIGNORE does not accept IDIGNORE
 +      Goto PREINSTALLDONE
  PREINSTALLFAIL:
      Quit
 -PREINSTALLCLEAN:
 +PREINSTALLDONE:
  # We are no longer including release notes with the viewer, so remove them.
  Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk"
  Delete "$INSTDIR\releasenotes.txt"
 +Pop $0
 +
  FunctionEnd
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 diff --git a/indra/newview/installers/windows/lang_da.nsi b/indra/newview/installers/windows/lang_da.nsi Binary files differindex 0b5ae2b714..648ddbfb85 100644 --- a/indra/newview/installers/windows/lang_da.nsi +++ b/indra/newview/installers/windows/lang_da.nsi diff --git a/indra/newview/installers/windows/lang_de.nsi b/indra/newview/installers/windows/lang_de.nsi index e67bc9e22c..188c30197a 100755 --- a/indra/newview/installers/windows/lang_de.nsi +++ b/indra/newview/installers/windows/lang_de.nsi @@ -64,7 +64,7 @@ LangString MissingSSE2 ${LANG_GERMAN} "Dieses Gerät verfügt möglicherweise ni  ; closesecondlife function (install)
  LangString CloseSecondLifeInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Second Life ..."
  LangString CloseSecondLifeInstMB ${LANG_GERMAN} "Second Life kann nicht installiert oder ersetzt werden, wenn es bereits läuft.$\n$\nBeenden Sie, was Sie gerade tun und klicken Sie OK, um Second Life zu beenden.$\nKlicken Sie CANCEL, um die Installation abzubrechen."
 -LangString CloseSecondLifeInstRM ${LANG_GERMAN} "Second Life failed to remove some files from a previous install.$\n$\nSelect OK to continue.$\nSelect CANCEL to cancel installation."
 +LangString CloseSecondLifeInstRM ${LANG_GERMAN} "Second Life failed to remove some files from a previous install."
  ; closesecondlife function (uninstall)
  LangString CloseSecondLifeUnInstDP ${LANG_GERMAN} "Warten auf die Beendigung von Second Life ..."
 diff --git a/indra/newview/installers/windows/lang_en-us.nsi b/indra/newview/installers/windows/lang_en-us.nsi Binary files differindex f75ecfaf08..0639d51e10 100644 --- a/indra/newview/installers/windows/lang_en-us.nsi +++ b/indra/newview/installers/windows/lang_en-us.nsi diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi Binary files differindex 2b9fa61199..ee30651a38 100755 --- a/indra/newview/installers/windows/lang_es.nsi +++ b/indra/newview/installers/windows/lang_es.nsi diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi Binary files differindex 4e256a3af9..7cd90ec314 100755 --- a/indra/newview/installers/windows/lang_fr.nsi +++ b/indra/newview/installers/windows/lang_fr.nsi diff --git a/indra/newview/installers/windows/lang_it.nsi b/indra/newview/installers/windows/lang_it.nsi Binary files differindex bf4f51e326..194062da9a 100755 --- a/indra/newview/installers/windows/lang_it.nsi +++ b/indra/newview/installers/windows/lang_it.nsi diff --git a/indra/newview/installers/windows/lang_ja.nsi b/indra/newview/installers/windows/lang_ja.nsi Binary files differindex 02d9ae2b40..a54005ba14 100755 --- a/indra/newview/installers/windows/lang_ja.nsi +++ b/indra/newview/installers/windows/lang_ja.nsi diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi Binary files differindex 4c254b4b2c..355d806866 100644 --- a/indra/newview/installers/windows/lang_pl.nsi +++ b/indra/newview/installers/windows/lang_pl.nsi diff --git a/indra/newview/installers/windows/lang_pt-br.nsi b/indra/newview/installers/windows/lang_pt-br.nsi Binary files differindex 1e9e0b07d2..97f5d2b44a 100755 --- a/indra/newview/installers/windows/lang_pt-br.nsi +++ b/indra/newview/installers/windows/lang_pt-br.nsi diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi Binary files differindex 8ca1fc3d14..65a9f4846d 100755 --- a/indra/newview/installers/windows/lang_ru.nsi +++ b/indra/newview/installers/windows/lang_ru.nsi diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi Binary files differindex db6f417fc2..e71886cc66 100755 --- a/indra/newview/installers/windows/lang_tr.nsi +++ b/indra/newview/installers/windows/lang_tr.nsi diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi Binary files differindex fad714e83b..f5f0c6cbdf 100755 --- a/indra/newview/installers/windows/lang_zh.nsi +++ b/indra/newview/installers/windows/lang_zh.nsi  | 
