From dd9f6784ccc5d285ef50f0b8693ee92bb872d992 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed <nat@lindenlab.com> Date: Thu, 15 Nov 2018 12:06:30 -0500 Subject: [PATCH] SL-10010: Use c:\Program Files rather than c:\Program Files (x86) for 64-bit viewers. It seems there's a longstanding bug in NSIS: it fails to use $PROGRAMFILES64 rather than $PROGRAMFILES when performing an all-users install of a 64-bit program. Try to remedy that. Also pick up a few NSIS suggestions from Ansariel Hiller. --- .../installers/windows/installer_template.nsi | 22 +++++++++++++++++- .../newview/installers/windows/lang_en-us.nsi | Bin 11342 -> 11488 bytes 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index bd290b710b4..840203c1781 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -46,9 +46,13 @@ RequestExecutionLevel highest # match MULTIUSER_EXECUTIONLEVEL ;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the ;; application directory so we have to add a path to these include files) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Ansariel notes: "Under certain circumstances the installer will fall back +;; to the first defined (aka default) language version. So you want to include +;; en-us as first language file." +!include "%%SOURCE%%\installers\windows\lang_en-us.nsi" + !include "%%SOURCE%%\installers\windows\lang_da.nsi" !include "%%SOURCE%%\installers\windows\lang_de.nsi" -!include "%%SOURCE%%\installers\windows\lang_en-us.nsi" !include "%%SOURCE%%\installers\windows\lang_es.nsi" !include "%%SOURCE%%\installers\windows\lang_fr.nsi" !include "%%SOURCE%%\installers\windows\lang_ja.nsi" @@ -108,8 +112,22 @@ AutoCloseWindow true # After all files install, close window !define MULTIUSER_INSTALLMODE_COMMANDLINE # appended to $PROGRAMFILES, as affected by MULTIUSER_USE_PROGRAMFILES64 !define MULTIUSER_INSTALLMODE_INSTDIR "${INSTNAME}" + # expands to !define MULTIUSER_USE_PROGRAMFILES64 or nothing %%PROGRAMFILES%% +# Bug in MultiUser.nsh?! This reference: +# http://nsis.sourceforge.net/Docs/MultiUser/Readme.html +# says: +# MULTIUSER_USE_PROGRAMFILES64 Use $PROGRAMFILES64 instead of $PROGRAMFILES as the default all users directory. +# Yet as far as I can tell from: +# https://sourceforge.net/p/nsis/mailman/message/22246769/ +# (which contains a patch), that functionality has never been released with +# NSIS. Instead of applying a patch to each developer machine and each +# TeamCity build host, try overwriting $PROGRAMFILES with $PROGRAMFILES64?! +!ifdef MULTIUSER_USE_PROGRAMFILES64 + StrCpy $PROGRAMFILES $PROGRAMFILES64 +!endif + # should make MultiUser.nsh initialization read existing INSTDIR from registry !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "${INSTNAME_KEY}" !define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "" @@ -118,6 +136,8 @@ AutoCloseWindow true # After all files install, close window !define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "InstallMode" !include MultiUser.nsh !include MUI2.nsh +!define MUI_BGCOLOR FFFFFF +!insertmacro MUI_FUNCTION_GUIINIT UninstallText $(UninstallTextMsg) DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup) diff --git a/indra/newview/installers/windows/lang_en-us.nsi b/indra/newview/installers/windows/lang_en-us.nsi index 1e81c5294ac8b1ce576bd47c2fed0e61d76993bc..fd4d340816abc487166547c2ec01d4a9ac58cf88 100644 GIT binary patch delta 264 zcmXv|I}U<C6r2KVEUB!(!k|X!Z0t;om4%&}U}3-y2?znyc#ge@#>P{Scmeeac9zcb zlg-=RnKy6d6_dyGSZL~{UzD#mt7ELOzy=l$h_U6H@)n%46ChJ3)0m~idm`a1^xz{R z5>-NdfE_EO&x)0yMgH&RVgAv1oQ!!gD#S}t#chF9UCWiu*R4+M(8WQ6Di2+_7%?Fx um(nRBJNRW~u+&|%+crIAr-Y|ZP0n&L<cws8>@E2ZxwB+F4fC9oZnZb}{5d%Q delta 46 zcmV+}0MY;8S<YCn&IFV21i+KHD;|?d1`v~m2O0?=0B-<h03ZN#ldByWlg<RVvqA@+ ECA8NN%m4rY -- GitLab