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