From 14acb2fd0f3bb08fe5f524e887c5c3c6dee1113f Mon Sep 17 00:00:00 2001 From: Tank_Master Date: Wed, 11 Feb 2015 14:26:54 -0800 Subject: Comments formatting changes, no behavior changes --- .../installers/windows/installer_template.nsi | 447 ++++++++++----------- 1 file changed, 221 insertions(+), 226 deletions(-) (limited to 'indra') diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index c07ba560a7..7e3cfe04d2 100755 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -1,6 +1,6 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; secondlife setup.nsi -;; Copyright 2004-2011, Linden Research, Inc. +;; Copyright 2004-2015, Linden Research, Inc. ;; ;; This library is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public @@ -18,7 +18,7 @@ ;; ;; Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA ;; -;; NSIS Unicode 2.38.1 or higher required +;; NSIS Unicode 2.46.5 or higher required ;; http://www.scratchpaper.com/ ;; ;; Author: James Cook, Don Kjer, Callum Prentice @@ -27,15 +27,15 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Compiler flags ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -SetOverwrite on ; Overwrite files -SetCompress auto ; Compress if saves space -SetCompressor /solid lzma ; Compress whole installer as one block -SetDatablockOptimize off ; Only saves us 0.1%, not worth it -XPStyle on ; Add an XP manifest to the installer -RequestExecutionLevel admin ; For when we write to Program Files +SetOverwrite on # Overwrite files +SetCompress auto # Compress if saves space +SetCompressor /solid lzma # Compress whole installer as one block +SetDatablockOptimize off # Only saves us 0.1%, not worth it +XPStyle on # Add an XP manifest to the installer +RequestExecutionLevel admin # For when we write to Program Files ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Project flags +;; Project flags ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; %%VERSION%% @@ -72,23 +72,23 @@ LangString LanguageCode ${LANG_RUSSIAN} "ru" LangString LanguageCode ${LANG_TURKISH} "tr" LangString LanguageCode ${LANG_TRADCHINESE} "zh" -;; this placeholder is replaced by viewer_manifest.py +# this placeholder is replaced by viewer_manifest.py %%INST_VARS%% Name ${INSTNAME} -SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text +SubCaption 0 $(LicenseSubTitleSetup) # Override "license agreement" text -BrandingText " " ; bottom of window text +BrandingText " " # Bottom of window text Icon %%SOURCE%%\installers\windows\install_icon.ico UninstallIcon %%SOURCE%%\installers\windows\uninstall_icon.ico -WindowIcon on ; show our icon in left corner -BGGradient off ; no big background window -CRCCheck on ; make sure CRC is OK -InstProgressFlags smooth colored ; new colored smooth look -ShowInstDetails nevershow ; no details, no "show" button -SetOverwrite on ; stomp files by default -AutoCloseWindow true ; after all files install, close window +WindowIcon on # Show our icon in left corner +BGGradient off # No big background window +CRCCheck on # Make sure CRC is OK +InstProgressFlags smooth colored # New colored smooth look +ShowInstDetails nevershow # No details, no "show" button +SetOverwrite on # Overwrite files by default +AutoCloseWindow true # After all files install, close window InstallDir "$PROGRAMFILES\${INSTNAME}" InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "" @@ -97,51 +97,53 @@ Page directory dirPre Page instfiles ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Variables +;; Variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Var INSTPROG Var INSTEXE Var INSTSHORTCUT -Var COMMANDLINE ; command line passed to this installer, set in .onInit -Var SHORTCUT_LANG_PARAM ; "--set InstallLanguage de", passes language to viewer -Var SKIP_DIALOGS ; set from command line in .onInit. autoinstall - ; GUI and the defaults. -Var SKIP_AUTORUN ; skip automatic launch of viewer after install -Var DO_UNINSTALL_V2 ; If non-null, path to a previous Viewer 2 installation that will be uninstalled. - -;;; Function definitions should go before file includes, because calls to -;;; DLLs like LangDLL trigger an implicit file include, so if that call is at -;;; the end of this script NSIS has to decompress the whole installer before -;;; it can call the DLL function. JC - -!include "FileFunc.nsh" ; For GetParameters, GetOptions +Var COMMANDLINE # Command line passed to this installer, set in .onInit +Var SHORTCUT_LANG_PARAM # "--set InstallLanguage de", Passes language to viewer +Var SKIP_DIALOGS # Set from command line in .onInit. autoinstall + # GUI and the defaults. +Var SKIP_AUTORUN # Skip automatic launch of viewer after install +Var DO_UNINSTALL_V2 # If non-null, path to a previous Viewer 2 installation that will be uninstalled. + +# Function definitions should go before file includes, because calls to +# DLLs like LangDLL trigger an implicit file include, so if that call is at +# the end of this script NSIS has to decompress the whole installer before +# it can call the DLL function. JC + +!include "FileFunc.nsh" # For GetParameters, GetOptions !insertmacro GetParameters !insertmacro GetOptions -!include WinVer.nsh ; For OS and SP detection +!include WinVer.nsh # For OS and SP detection ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; After install completes, launch app +;; After install completes, launch app ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function .onInstSuccess -Call CheckWindowsServPack ; Warn if not on the latest SP before asking to launch. - Push $R0 # Option value, unused +Call CheckWindowsServPack # Warn if not on the latest SP before asking to launch. + Push $R0 # Option value, unused StrCmp $SKIP_AUTORUN "true" +2; - # Assumes SetOutPath $INSTDIR +# Assumes SetOutPath $INSTDIR Exec '"$INSTDIR\$INSTEXE" $SHORTCUT_LANG_PARAM' Pop $R0 + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Pre-directory page callback +;; Pre-directory page callback ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function dirPre StrCmp $SKIP_DIALOGS "true" 0 +2 Abort + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Make sure this computer meets the minimum system requirements. -; Currently: Windows 32bit XP SP3, 64bit XP SP2 and Server 2003 SP2 +;; Make sure this computer meets the minimum system requirements. +;; Currently: Windows Vista SP2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckWindowsVersion ${If} ${AtMostWin2003} @@ -160,10 +162,11 @@ Function CheckWindowsVersion MessageBox MB_OK $(CheckWindowsVersionMB) Quit ${EndIf} + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;Recommend Upgrading Service Pack +;; Recommend Upgrading to Service Pack 1 for Windows 7, if not present ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckWindowsServPack ${If} ${IsWin7} @@ -179,10 +182,11 @@ Function CheckWindowsServPack DetailPrint $(UseLatestServPackDP) Return ${EndIf} + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Make sure the user can install/uninstall +;; Make sure the user can install ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckIfAdministrator DetailPrint $(CheckAdministratorInstDP) @@ -193,10 +197,11 @@ Function CheckIfAdministrator Quit lbl_is_admin: Return + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; +;; Make sure the user can uninstall ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function un.CheckIfAdministrator DetailPrint $(CheckAdministratorUnInstDP) @@ -207,11 +212,12 @@ Function un.CheckIfAdministrator Quit lbl_is_admin: Return + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Checks to see if the current version has already been installed (according to the registry). -; If it has, allow user to bail out of install process. +;; Checks to see if the current version has already been installed (according to the registry). +;; If it has, allow user to bail out of install process. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckIfAlreadyCurrent Push $0 @@ -223,10 +229,11 @@ Function CheckIfAlreadyCurrent continue_install: Pop $0 Return + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Checks for CPU valid (must have SSE2 support) +;; Checks for CPU valid (must have SSE2 support) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckCPUFlags Push $1 @@ -238,11 +245,12 @@ Function CheckCPUFlags OK_SSE2: Pop $1 Return + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Close the program, if running. Modifies no variables. -; Allows user to bail out of install process. +;; Close the program, if running. Modifies no variables. +;; Allows user to bail out of install process. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CloseSecondLife Push $0 @@ -268,50 +276,51 @@ Function CloseSecondLife DONE: Pop $0 Return + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Test our connection to secondlife.com -; Also allows us to count attempted installs by examining web logs. -; *TODO: Return current SL version info and have installer check -; if it is up to date. +;; Test our connection to secondlife.com +;; Also allows us to count attempted installs by examining web logs. +;; *TODO: Return current SL version info and have installer check +;; if it is up to date. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckNetworkConnection Push $0 Push $1 Push $2 # Option value for GetOptions DetailPrint $(CheckNetworkConnectionDP) - ; Look for a tag value from the stub installer, used for statistics - ; to correlate installs. Default to "" if not found on command line. +# Look for a tag value from the stub installer, used for statistics to correlate installs. +# Default to "" if not found on command line. StrCpy $2 "" ${GetOptions} $COMMANDLINE "/STUBTAG=" $2 GetTempFileName $0 - !define HTTP_TIMEOUT 5000 ; milliseconds - ; Don't show secondary progress bar, this will be quick. + !define HTTP_TIMEOUT 5000 # milliseconds +# Don't show secondary progress bar, this will be quick. NSISdl::download_quiet \ /TIMEOUT=${HTTP_TIMEOUT} \ "http://install.secondlife.com/check/?stubtag=$2&version=${VERSION_LONG}" \ $0 - Pop $1 ; Return value, either "success", "cancel" or an error message + Pop $1 # Return value, either "success", "cancel" or an error message ; MessageBox MB_OK "Download result: $1" ; Result ignored for now ; StrCmp $1 "success" +2 ; DetailPrint "Connection failed: $1" - Delete $0 ; temporary file + Delete $0 # temporary file Pop $2 Pop $1 Pop $0 Return + FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Function CheckOldExeName -; Viewer versions < 3.6.12 used the name 'SecondLife.exe' -; If that name is found in the install folder, delete it to invalidate any -; old shortcuts to it that may be in non-standard locations, so that the user -; does not end up running the old version (potentially getting caught in an -; infinite update loop). See MAINT-3575 -; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Function CheckOldExeName +;; Viewer versions < 3.6.12 used the name 'SecondLife.exe' +;; If that name is found in the install folder, delete it to invalidate any +;; old shortcuts to it that may be in non-standard locations. This is to prevent +;; the userpotentially getting caught in an infinite update loop). See MAINT-3575 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckOldExeName IfFileExists "$INSTDIR\SecondLife.exe" CHECKOLDEXE_FOUND CHECKOLDEXE_DONE @@ -319,23 +328,22 @@ Function CheckOldExeName CHECKOLDEXE_FOUND: Delete "$INSTDIR\SecondLife.exe" CHECKOLDEXE_DONE: -FunctionEnd +FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Function CheckWillUninstallV2 -; -; If we are being called through auto-update, we need to uninstall any -; existing V2 installation. Otherwise, we wind up with -; SecondLifeViewer2 and SecondLifeViewer installations existing side -; by side no indication which to use. -; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Function CheckWillUninstallV2 +;; +;; If called through auto-update, need to uninstall any existing V2 installation. +;; Don't want to end up with SecondLifeViewer2 and SecondLifeViewer installations +;; existing side by side with no indication on which to use. +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function CheckWillUninstallV2 StrCpy $DO_UNINSTALL_V2 "" StrCmp $SKIP_DIALOGS "true" 0 CHECKV2_DONE - StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" CHECKV2_DONE ; don't uninstall our own install dir. + StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" CHECKV2_DONE # Don't uninstall our own install dir. IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" CHECKV2_FOUND CHECKV2_DONE CHECKV2_FOUND: @@ -346,7 +354,7 @@ CHECKV2_DONE: FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Save user files to temp location +;; Save user files to temp location ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function PreserveUserFiles @@ -354,18 +362,18 @@ Push $0 Push $1 Push $2 - RMDir /r "$TEMP\SecondLifeSettingsBackup" + RMDir /r "$TEMP\SecondLifeSettingsBackup" # Clear out any old data that might be there CreateDirectory "$TEMP\SecondLifeSettingsBackup" - StrCpy $0 0 ; Index number used to iterate via EnumRegKey + StrCpy $0 0 # Index number used to iterate via EnumRegKey LOOP: EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 - StrCmp $1 "" DONE ; no more users + StrCmp $1 "" DONE # no more users ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" - StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + StrCmp $2 "" CONTINUE 0 # "ProfileImagePath" value is missing - ; Required since ProfileImagePath is of type REG_EXPAND_SZ +# Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0" @@ -380,7 +388,7 @@ Pop $2 Pop $1 Pop $0 -; Copy files in Documents and Settings\All Users\SecondLife +# Copy files in Documents and Settings\All Users\SecondLife Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 @@ -391,7 +399,7 @@ Pop $0 FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Restore user files from temp location +;; Restore user files from temp location ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function RestoreUserFiles @@ -399,16 +407,16 @@ Push $0 Push $1 Push $2 - StrCpy $0 0 ; Index number used to iterate via EnumRegKey + StrCpy $0 0 # Index number used to iterate via EnumRegKey LOOP: EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 - StrCmp $1 "" DONE ; no more users + StrCmp $1 "" DONE # no more users ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" - StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + StrCmp $2 "" CONTINUE 0 # "ProfileImagePath" value is missing - ; Required since ProfileImagePath is of type REG_EXPAND_SZ +# Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 CreateDirectory "$2\Application Data\SecondLife\" @@ -423,7 +431,7 @@ Pop $2 Pop $1 Pop $0 -; Copy files in Documents and Settings\All Users\SecondLife +# Copy files in Documents and Settings\All Users\SecondLife Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 @@ -434,7 +442,7 @@ Pop $0 FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Remove temp dirs +;; Remove temp directories ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function RemoveTempUserFiles @@ -442,16 +450,16 @@ Push $0 Push $1 Push $2 - StrCpy $0 0 ; Index number used to iterate via EnumRegKey + StrCpy $0 0 # Index number used to iterate via EnumRegKey LOOP: EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 - StrCmp $1 "" DONE ; no more users + StrCmp $1 "" DONE # no more users ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" - StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + StrCmp $2 "" CONTINUE 0 # "ProfileImagePath" value is missing - ; Required since ProfileImagePath is of type REG_EXPAND_SZ +# Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 RMDir /r "$TEMP\SecondLifeSettingsBackup\$0\*" @@ -465,7 +473,7 @@ Pop $2 Pop $1 Pop $0 -; Copy files in Documents and Settings\All Users\SecondLife +# Copy files in Documents and Settings\All Users\SecondLife Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 @@ -474,10 +482,9 @@ Pop $0 FunctionEnd - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Clobber user files - TEST ONLY -; This is here for testing, generally not desirable to call it. +;; Clobber user files - TEST ONLY +;; This is here for testing, DO NOT USE UNLESS YOU KNOW WHAT YOU ARE TESTING FOR! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Function ClobberUserFilesTESTONLY @@ -485,16 +492,16 @@ FunctionEnd ;Push $1 ;Push $2 ; -; StrCpy $0 0 ; Index number used to iterate via EnumRegKey +; StrCpy $0 0 # Index number used to iterate via EnumRegKey ; ; LOOP: ; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 -; StrCmp $1 "" DONE ; no more users +; StrCmp $1 "" DONE # no more users ; ; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" -; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing +; StrCmp $2 "" CONTINUE 0 # "ProfileImagePath" value is missing ; -; ; Required since ProfileImagePath is of type REG_EXPAND_SZ +;# Required since ProfileImagePath is of type REG_EXPAND_SZ ; ExpandEnvStrings $2 $2 ; ; RMDir /r "$2\Application Data\SecondLife\" @@ -508,7 +515,7 @@ FunctionEnd ;Pop $1 ;Pop $0 ; -;; Copy files in Documents and Settings\All Users\SecondLife +;# Copy files in Documents and Settings\All Users\SecondLife ;Push $0 ; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" ; StrCmp $0 "" +2 @@ -518,10 +525,10 @@ FunctionEnd ;FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Delete the installed shader files -;;; Since shaders are in active development, we'll likely need to shuffle them -;;; around a bit from build to build. This ensures that shaders that we move -;;; or rename in the dev tree don't get left behind in the install. +;; Delete the installed shader files +;; Since shaders are in active development, we'll likely need to shuffle them +;; around a bit from build to build. This ensures that shaders that were removed +;; or renamed don't get left behind in the install directory. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function RemoveOldShaders @@ -531,14 +538,13 @@ RMDir /r "$INSTDIR\app_settings\shaders\*" FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Delete the installed XUI files -;;; We've changed the directory hierarchy for skins, putting all XUI and texture -;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed -;;; to skins/xui/en-us. Need to clean up the old path when upgrading +;; Delete the installed XUI files +;; We've changed the directory hierarchy for skins, putting all XUI and texture +;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed +;; to skins/xui/en-us. Need to clean up the old path when upgrading. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function RemoveOldXUI -;; remove old XUI and texture files RmDir /r "$INSTDIR\skins\html" RmDir /r "$INSTDIR\skins\xui" RmDir /r "$INSTDIR\skins\textures" @@ -547,47 +553,41 @@ Delete "$INSTDIR\skins\*.txt" FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Remove any releasenotes files. -;;; We are no longer including release notes with the viewer. This will delete -;;; any that were left behind by an older installer. Delete will not fail if -;;; the files do not exist +;; Remove any release notes files. +;; We are no longer including release notes with the viewer, so remove them. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function RemoveOldReleaseNotes -;; remove releasenotes.txt file from application directory, and the shortcut -;; from the start menu. Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk" Delete "$INSTDIR\releasenotes.txt" FunctionEnd - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Delete files in Documents and Settings\\SecondLife -; Delete files in Documents and Settings\All Users\SecondLife +;; Delete files in \Users\\AppData\Roaming\SecondLife ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function un.DocumentsAndSettingsFolder -; Delete files in Documents and Settings\\SecondLife +# Delete files in \Users\\AppData\Roaming\SecondLife Push $0 Push $1 Push $2 - DetailPrint "Deleting files in Documents and Settings folder" + DetailPrint "Deleting Second Life files" - StrCpy $0 0 ; Index number used to iterate via EnumRegKey + StrCpy $0 0 # Index number used to iterate via EnumRegKey LOOP: EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 - StrCmp $1 "" DONE ; no more users + StrCmp $1 "" DONE # no more users ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" - StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing + StrCmp $2 "" CONTINUE 0 # "ProfileImagePath" value is missing - ; Required since ProfileImagePath is of type REG_EXPAND_SZ +# Required since ProfileImagePath is of type REG_EXPAND_SZ ExpandEnvStrings $2 $2 - ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs +# Remove all settings files but leave any other .txt files to preserve the chat logs ; RMDir /r "$2\Application Data\SecondLife\logs" RMDir /r "$2\Application Data\SecondLife\browser_profile" RMDir /r "$2\Application Data\SecondLife\user_settings" @@ -606,23 +606,23 @@ Pop $2 Pop $1 Pop $0 -; Delete files in Documents and Settings\All Users\SecondLife +# Delete files in Program Data folder Push $0 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" StrCmp $0 "" +2 RMDir /r "$0\SecondLife" Pop $0 -; Delete files in C:\Windows\Application Data\SecondLife -; If the user is running on a pre-NT system, Application Data lives here instead of -; in Documents and Settings. +# Delete files in C:\Windows\Application Data\SecondLife +# If the user is running on a pre-NT system, Application Data lives here instead of +# in Documents and Settings. RMDir /r "$WINDIR\Application Data\SecondLife" FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Close the program, if running. Modifies no variables. -; Allows user to bail out of uninstall process. +;; Close the program, if running. Modifies no variables. +;; Allows user to bail out of uninstall process. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function un.CloseSecondLife Push $0 @@ -646,14 +646,13 @@ Function un.CloseSecondLife DONE: Pop $0 Return -FunctionEnd +FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; -; Delete the stored password for the current Windows user -; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled -; +;; Delete the stored password for the current Windows user +;; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function un.RemovePassword DetailPrint "Removing Second Life password" @@ -665,23 +664,21 @@ SetShellVarContext all FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Delete the installed files -;;; This deletes the uninstall executable, but it works -;;; because it is copied to temp directory before running -;;; -;;; Note: You must list all files here, because we only -;;; want to delete our files, not things users left in the -;;; application directories. +;; Delete the installed files +;; This deletes the uninstall executable, but it works because it is copied to temp directory before running +;; +;; Note: You must list all files here, because we only want to delete our files, +;; not things users left in the application directories. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function un.ProgramFiles -;; Remove mozilla file first so recursive directory deletion doesn't get hung up +# Remove mozilla file first so recursive directory deletion doesn't get hung up Delete "$INSTDIR\app_settings\mozilla\components" -;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py +# This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py %%DELETE_FILES%% -;; Optional/obsolete files. Delete won't fail if they don't exist. +# Optional/obsolete files. Delete won't fail if they don't exist. Delete "$INSTDIR\dronesettings.ini" Delete "$INSTDIR\message_template.msg" Delete "$INSTDIR\newview.pdb" @@ -694,9 +691,11 @@ Delete "$INSTDIR\motions\*.lla" Delete "$INSTDIR\trial\*.html" Delete "$INSTDIR\newview.exe" Delete "$INSTDIR\SecondLife.exe" -;; MAINT-3099 workaround - prevent these log files, if present, from causing a user alert + +# MAINT-3099 workaround - prevent these log files, if present, from causing a user alert Delete "$INSTDIR\VivoxVoiceService-*.log" -;; Remove entire help directory + +# Remove entire help directory Delete "$INSTDIR\help\Advanced\*" RMDir "$INSTDIR\help\Advanced" Delete "$INSTDIR\help\basics\*" @@ -714,7 +713,7 @@ RMDir "$INSTDIR" IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER FOLDERFOUND: - ; Silent uninstall always removes all files (/SD IDYES) +# Silent uninstall always removes all files (/SD IDYES) MessageBox MB_YESNO $(DeleteProgramFilesMB) /SD IDYES IDNO NOFOLDER RMDir /r "$INSTDIR" @@ -723,33 +722,35 @@ NOFOLDER: FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Uninstall settings +;; Uninstall settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; UninstallText $(UninstallTextMsg) ShowUninstDetails show ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Uninstall section +;; Uninstall Section ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Section Uninstall -; Start with some default values. +# Start with some default values. StrCpy $INSTPROG "${INSTNAME}" StrCpy $INSTEXE "${INSTEXE}" StrCpy $INSTSHORTCUT "${SHORTCUT}" -Call un.CheckIfAdministrator ; Make sure the user can install/uninstall -; uninstall for all users (if you change this, change it in the install as well) +# Make sure the user can install/uninstall +Call un.CheckIfAdministrator + +# uninstall for all users (if you change this, change it in the install as well) SetShellVarContext all -; Make sure we're not running +# Make sure we're not running Call un.CloseSecondLife -; Clean up registry keys and subkeys (these should all be !defines somewhere) +# Clean up registry keys and subkeys (these should all be !defines somewhere) DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" -; Clean up shortcuts +# Clean up shortcuts Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*" RMDir "$SMPROGRAMS\$INSTSHORTCUT" @@ -757,81 +758,85 @@ Delete "$DESKTOP\$INSTSHORTCUT.lnk" Delete "$INSTDIR\$INSTSHORTCUT.lnk" Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" -; Clean up cache and log files. -; Leave them in-place for non AGNI installs. +# Clean up cache and log files, but leave them in-place for non AGNI installs. !ifdef UNINSTALL_SETTINGS Call un.DocumentsAndSettingsFolder !endif -; remove stored password on uninstall +# Remove stored password on uninstall Call un.RemovePassword Call un.ProgramFiles -SectionEnd ; end of uninstall section +# End of uninstall section + +SectionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Note: to add new languages, add a language file include to the list -;; at the top of this file, add an entry to the menu and then add an -;; entry to the language ID selector below +;; Prep Installer Section +;; +;; Note: to add new languages, add a language file include to the list +;; at the top of this file, add an entry to the menu and then add an +;; entry to the language ID selector below ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function .onInit -Call CheckWindowsVersion ; Don't install On unsupported systems +Call CheckWindowsVersion # Don't install On unsupported systems Push $0 - ${GetParameters} $COMMANDLINE ; get our command line + ${GetParameters} $COMMANDLINE # Get our command line ${GetOptions} $COMMANDLINE "/SKIP_DIALOGS" $0 - IfErrors +2 0 ; If error jump past setting SKIP_DIALOGS + IfErrors +2 0 # If error jump past setting SKIP_DIALOGS StrCpy $SKIP_DIALOGS "true" ${GetOptions} $COMMANDLINE "/SKIP_AUTORUN" $0 - IfErrors +2 0 ; If error jump past setting SKIP_AUTORUN + IfErrors +2 0 # If error jump past setting SKIP_AUTORUN StrCpy $SKIP_AUTORUN "true" - ${GetOptions} $COMMANDLINE "/LANGID=" $0 ; /LANGID=1033 implies US English + ${GetOptions} $COMMANDLINE "/LANGID=" $0 # /LANGID=1033 implies US English - ; If no language (error), then proceed +# If no language (error), then proceed IfErrors lbl_configure_default_lang - ; No error means we got a language, so use it +# No error means we got a language, so use it StrCpy $LANGUAGE $0 Goto lbl_return lbl_configure_default_lang: - ; If we currently have a version of SL installed, default to the language of that install - ; Otherwise don't change $LANGUAGE and it will default to the OS UI language. +# If we currently have a version of SL installed, default to the language of that install +# Otherwise don't change $LANGUAGE and it will default to the OS UI language. ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" - IfErrors +2 0 ; If error skip the copy instruction + IfErrors +2 0 # If error skip the copy instruction StrCpy $LANGUAGE $0 - ; For silent installs, no language prompt, use default +# For silent installs, no language prompt, use default IfSilent lbl_return StrCmp $SKIP_DIALOGS "true" lbl_return lbl_build_menu: Push "" - # Use separate file so labels can be UTF-16 but we can still merge changes - # into this ASCII file. JC +# Use separate file so labels can be UTF-16 but we can still merge changes into this ASCII file. JC !include "%%SOURCE%%\installers\windows\language_menu.nsi" - Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain + Push A # A means auto count languages for the auto count to work the first empty push (Push "") must remain LangDLL::LangDialog $(InstallerLanguageTitle) $(SelectInstallerLanguage) Pop $0 StrCmp $0 "cancel" 0 +2 Abort StrCpy $LANGUAGE $0 - ; save language in registry +# save language in registry WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE lbl_return: Pop $0 Return + FunctionEnd +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Prep Uninstaller Section ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Function un.onInit - ; read language from registry and set for uninstaller - ; Key will be removed on successful uninstall +# Read language from registry and set for uninstaller. Key will be removed on successful uninstall ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" IfErrors lbl_end StrCpy $LANGUAGE $0 @@ -840,56 +845,50 @@ lbl_end: FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; MAIN SECTION +;; Default Section ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -Section "" ; (default section) +Section "" # (default section) -SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well) +SetShellVarContext all # install for all users (if you change this, change it in the uninstall as well) -; Start with some default values. +# Start with some default values. StrCpy $INSTPROG "${INSTNAME}" StrCpy $INSTEXE "${INSTEXE}" StrCpy $INSTSHORTCUT "${SHORTCUT}" -Call CheckCPUFlags ; Make sure we have SSE2 support -Call CheckIfAdministrator ; Make sure the user can install/uninstall -Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version -Call CloseSecondLife ; Make sure we're not running -Call CheckNetworkConnection ; ping secondlife.com -Call CheckWillUninstallV2 ; See if a V2 install exists and will be removed. -Call CheckOldExeName ; Clean up a previous version of the exe +Call CheckCPUFlags # Make sure we have SSE2 support +Call CheckIfAdministrator # Make sure the user can install/uninstall +Call CheckIfAlreadyCurrent # Make sure that we haven't already installed this version +Call CloseSecondLife # Make sure we're not running +Call CheckNetworkConnection # ping secondlife.com +Call CheckWillUninstallV2 # See if a V2 install exists and will be removed. +Call CheckOldExeName # Clean up a previous version of the exe -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; StrCmp $DO_UNINSTALL_V2 "" PRESERVE_DONE Call PreserveUserFiles PRESERVE_DONE: -;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. -;Call RemoveCacheFiles ; Installing over removes potentially corrupted - ; VFS and cache files. -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Need to clean out shader files from previous installs to fix DEV-5663 +# Don't remove cache files during a regular install, +# removing the inventory cache on upgrades results in lots of damage to the servers. +;Call RemoveCacheFiles # Installing over removes potentially corrupted + # VFS and cache files. + +# Need to clean out shader files from previous installs to fix DEV-5663 Call RemoveOldShaders -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Need to clean out old XUI files that predate skinning +# Need to clean out old XUI files that predate skinning Call RemoveOldXUI -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Clear out old releasenotes.txt files. These are now on the public wiki. +# Clear out old releasenotes.txt files. These are now on the public wiki. Call RemoveOldReleaseNotes -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Files -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py +# This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py %%INSTALL_FILES%% # Pass the installer's language to the client to use as a default StrCpy $SHORTCUT_LANG_PARAM "--set InstallLanguage $(LanguageCode)" -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Shortcuts in start menu +# Shortcuts in start menu CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT" SetOutPath "$INSTDIR" CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \ @@ -908,8 +907,7 @@ WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.url" \ CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \ '"$INSTDIR\uninst.exe"' '' -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Other shortcuts +# Other shortcuts SetOutPath "$INSTDIR" CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" \ "$INSTDIR\$INSTEXE" "$SHORTCUT_LANG_PARAM" @@ -918,9 +916,7 @@ CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" \ CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \ '"$INSTDIR\uninst.exe"' '' - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Write registry +# Write registry WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR" WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}" WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT" @@ -928,35 +924,34 @@ WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)" WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe"' -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Write URL registry info +# Write URL registry info WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life" WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" "" WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"' -;; URL param must be last item passed to viewer, it ignores subsequent params -;; to avoid parameter injection attacks. + +# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks. WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"' WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info"(default)" "URL:Second Life" WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info" "URL Protocol" "" WriteRegStr HKEY_CLASSES_ROOT "x-grid-location-info\DefaultIcon" "" '"$INSTDIR\$INSTEXE"' -;; URL param must be last item passed to viewer, it ignores subsequent params -;; to avoid parameter injection attacks. + +# URL param must be last item passed to viewer, it ignores subsequent params to avoid parameter injection attacks. WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" "" '"$INSTDIR\$INSTEXE" -url "%1"' -; write out uninstaller +# write out uninstaller WriteUninstaller "$INSTDIR\uninst.exe" -; Uninstall existing "Second Life Viewer 2" install if needed. +# Uninstall existing "Second Life Viewer 2" install if needed. StrCmp $DO_UNINSTALL_V2 "" REMOVE_SLV2_DONE ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2' - Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind. - RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty. + Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" # with _? option above, uninst.exe will be left behind. + RMDir "$PROGRAMFILES\SecondLifeViewer2" # will remove only if empty. Call RestoreUserFiles Call RemoveTempUserFiles REMOVE_SLV2_DONE: -; end of default section +# end of default section SectionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -- cgit v1.2.3