summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-02-18 13:12:13 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-02-18 13:12:13 +0100
commit47b8c58d47bae45d723ef22665e8f13ecc66725f (patch)
treecf7047b8acb02ac5082f474e29fdc87ae79e36a5
parentb6c330e1ca4baff6c98bfa94b8c3855d5afbc7cb (diff)
downloaduxp-47b8c58d47bae45d723ef22665e8f13ecc66725f.tar.gz
Prevent installing stand-alone installers on unsupported environments.
- Prevent installers from installing on XP/Vista. - Prevent x64 installers from installing on x86.
-rw-r--r--browser/branding/official/branding.nsi2
-rwxr-xr-xbrowser/installer/windows/nsis/installer.nsi61
-rw-r--r--browser/installer/windows/nsis/maintenanceservice_installer.nsi5
-rw-r--r--toolkit/components/maintenanceservice/bootstrapinstaller/maintenanceservice_installer.nsi5
-rwxr-xr-xtoolkit/mozapps/installer/windows/nsis/common.nsh45
5 files changed, 24 insertions, 94 deletions
diff --git a/browser/branding/official/branding.nsi b/browser/branding/official/branding.nsi
index 24b0f4bba6..58d7554dfe 100644
--- a/browser/branding/official/branding.nsi
+++ b/browser/branding/official/branding.nsi
@@ -20,7 +20,7 @@
!define OFFICIAL
!define URLStubDownload ""
!define URLManualDownload ""
-!define URLSystemRequirements ""
+!define URLSystemRequirements "http://www.basilisk-browser.org/requirements.shtml"
!define Channel "release"
# The installer's certificate name and issuer expected by the stub installer
diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi
index aed5808cd2..994c092790 100755
--- a/browser/installer/windows/nsis/installer.nsi
+++ b/browser/installer/windows/nsis/installer.nsi
@@ -1139,13 +1139,11 @@ Function .onInit
; Don't install on systems that don't support SSE2. The parameter value of
; 10 is for PF_XMMI64_INSTRUCTIONS_AVAILABLE which will check whether the
- ; SSE2 instruction set is available.
+ ; SSE2 instruction set is available. Result returned in $R7.
System::Call "kernel32::IsProcessorFeaturePresent(i 10)i .R7"
-!ifdef HAVE_64BIT_BUILD
- ; Restrict x64 builds from being installed on x86 and pre Win7
- ${Unless} ${RunningX64}
- ${OrUnless} ${AtLeastWin7}
+ ; Windows NT 6.0 and lower are not supported on any architecture.
+ ${Unless} ${AtLeastWin7}
${If} "$R7" == "0"
strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)"
${Else}
@@ -1156,59 +1154,28 @@ Function .onInit
Quit
${EndUnless}
- SetRegView 64
-!else
- StrCpy $R8 "0"
- ${If} ${AtMostWin2000}
- StrCpy $R8 "1"
- ${EndIf}
-
- ${If} ${IsWinXP}
- ${AndIf} ${AtMostServicePack} 1
- StrCpy $R8 "1"
- ${EndIf}
-
- ${If} $R8 == "1"
- ; XXX-rstrong - some systems failed the AtLeastWin2000 test that we
- ; used to use for an unknown reason and likely fail the AtMostWin2000
- ; and possibly the IsWinXP test as well. To work around this also
- ; check if the Windows NT registry Key exists and if it does if the
- ; first char in CurrentVersion is equal to 3 (Windows NT 3.5 and
- ; 3.5.1), 4 (Windows NT 4), or 5 (Windows 2000 and Windows XP).
- StrCpy $R8 ""
- ClearErrors
- ReadRegStr $R8 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"
- StrCpy $R8 "$R8" 1
- ${If} ${Errors}
- ${OrIf} "$R8" == "3"
- ${OrIf} "$R8" == "4"
- ${OrIf} "$R8" == "5"
- ${If} "$R7" == "0"
- strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)"
- ${Else}
- strCpy $R7 "$(WARN_MIN_SUPPORTED_OSVER_MSG)"
- ${EndIf}
- MessageBox MB_OKCANCEL|MB_ICONSTOP "$R7" IDCANCEL +2
- ExecShell "open" "${URLSystemRequirements}"
- Quit
- ${EndIf}
- ${EndUnless}
-!endif
-
+ ; SSE2 support
${If} "$R7" == "0"
MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_CPU_MSG)" IDCANCEL +2
ExecShell "open" "${URLSystemRequirements}"
Quit
${EndIf}
+!ifdef HAVE_64BIT_BUILD
+ ${Unless} ${RunningX64}
+ MessageBox MB_OKCANCEL|MB_ICONSTOP "$(WARN_MIN_SUPPORTED_OSVER_MSG)" IDCANCEL +2
+ ExecShell "open" "${URLSystemRequirements}"
+ Quit
+ ${EndUnless}
+ SetRegView 64
+!endif
+
${InstallOnInitCommon} "$(WARN_MIN_SUPPORTED_OSVER_CPU_MSG)"
; The commands inside this ifndef are needed prior to NSIS 3.0a2 and can be
; removed after we require NSIS 3.0a2 or greater.
!ifndef NSIS_PACKEDVERSION
- ${If} ${AtLeastWinVista}
- System::Call 'user32::SetProcessDPIAware()'
- ${EndIf}
+ System::Call 'user32::SetProcessDPIAware()'
!endif
!insertmacro InitInstallOptionsFile "options.ini"
diff --git a/browser/installer/windows/nsis/maintenanceservice_installer.nsi b/browser/installer/windows/nsis/maintenanceservice_installer.nsi
index 4bc9d2bede..1f73bac6a0 100644
--- a/browser/installer/windows/nsis/maintenanceservice_installer.nsi
+++ b/browser/installer/windows/nsis/maintenanceservice_installer.nsi
@@ -120,10 +120,7 @@ Function .onInit
SetSilent silent
- ; On Windows 2000 we do not install the maintenance service.
- ; We won't run this installer from the parent installer, but just in case
- ; someone tries to execute it on Windows 2000...
- ${Unless} ${AtLeastWinXP}
+ ${Unless} ${AtLeastWin7}
Abort
${EndUnless}
FunctionEnd
diff --git a/toolkit/components/maintenanceservice/bootstrapinstaller/maintenanceservice_installer.nsi b/toolkit/components/maintenanceservice/bootstrapinstaller/maintenanceservice_installer.nsi
index 9e831dc9c7..d4d21e3777 100644
--- a/toolkit/components/maintenanceservice/bootstrapinstaller/maintenanceservice_installer.nsi
+++ b/toolkit/components/maintenanceservice/bootstrapinstaller/maintenanceservice_installer.nsi
@@ -117,10 +117,7 @@ Function .onInit
System::Call 'kernel32::SetDllDirectoryW(w "")'
SetSilent silent
- ; On Windows 2000 we do not install the maintenance service.
- ; We won't run this installer from the parent installer, but just in case
- ; someone tries to execute it on Windows 2000...
- ${Unless} ${AtLeastWinXP}
+ ${Unless} ${AtLeastWin7}
Abort
${EndUnless}
FunctionEnd
diff --git a/toolkit/mozapps/installer/windows/nsis/common.nsh b/toolkit/mozapps/installer/windows/nsis/common.nsh
index ac7607449d..846718dabd 100755
--- a/toolkit/mozapps/installer/windows/nsis/common.nsh
+++ b/toolkit/mozapps/installer/windows/nsis/common.nsh
@@ -5107,46 +5107,15 @@
Quit
${EndIf}
- !ifdef HAVE_64BIT_BUILD
- ${Unless} ${RunningX64}
- ${OrUnless} ${AtLeastWin7}
- MessageBox MB_OK|MB_ICONSTOP "$R9"
- ; Nothing initialized so no need to call OnEndCommon
- Quit
- ${EndUnless}
+ ; Windows NT 6.0 (Vista/Server 2008) and lower are not supported.
+ ${Unless} ${AtLeastWin7}
+ MessageBox MB_OK|MB_ICONSTOP "$R9"
+ ; Nothing initialized so no need to call OnEndCommon
+ Quit
+ ${EndUnless}
+ !ifdef HAVE_64BIT_BUILD
SetRegView 64
- !else
- StrCpy $R8 "0"
- ${If} ${AtMostWin2000}
- StrCpy $R8 "1"
- ${EndIf}
-
- ${If} ${IsWinXP}
- ${AndIf} ${AtMostServicePack} 1
- StrCpy $R8 "1"
- ${EndIf}
-
- ${If} $R8 == "1"
- ; XXX-rstrong - some systems failed the AtLeastWin2000 test that we
- ; used to use for an unknown reason and likely fail the AtMostWin2000
- ; and possibly the IsWinXP test as well. To work around this also
- ; check if the Windows NT registry Key exists and if it does if the
- ; first char in CurrentVersion is equal to 3 (Windows NT 3.5 and
- ; 3.5.1), to 4 (Windows NT 4) or 5 (Windows 2000 and Windows XP).
- StrCpy $R8 ""
- ClearErrors
- ReadRegStr $R8 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"
- StrCpy $R8 "$R8" 1
- ${If} ${Errors}
- ${OrIf} "$R8" == "3"
- ${OrIf} "$R8" == "4"
- ${OrIf} "$R8" == "5"
- MessageBox MB_OK|MB_ICONSTOP "$R9"
- ; Nothing initialized so no need to call OnEndCommon
- Quit
- ${EndIf}
- ${EndUnless}
!endif
${GetParameters} $R8