aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/nsis
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2024-01-04 19:08:07 -0800
committerJaap Keuter <jaap.keuter@xs4all.nl>2024-01-05 20:24:00 +0000
commit7afb54035fe475a346db21a7de577224741b8943 (patch)
treeb35fdd1ff8ad5c84b72cf0846de3988ab93962c8 /packaging/nsis
parent1a81a7cacf00ff0b14c57a444e36a80ee896107e (diff)
Windows: Update our minimum version
Update our minimum Windows version in various places, including the NSIS and WiX installers. Fixes #19569
Diffstat (limited to 'packaging/nsis')
-rw-r--r--packaging/nsis/CMakeLists.txt2
-rw-r--r--packaging/nsis/GetWindowsVersion.nsh190
-rw-r--r--packaging/nsis/logray.nsi29
-rw-r--r--packaging/nsis/wireshark.nsi67
4 files changed, 41 insertions, 247 deletions
diff --git a/packaging/nsis/CMakeLists.txt b/packaging/nsis/CMakeLists.txt
index 212c6a9ebf..a8925ecf3a 100644
--- a/packaging/nsis/CMakeLists.txt
+++ b/packaging/nsis/CMakeLists.txt
@@ -22,7 +22,6 @@ set(WIRESHARK_NSIS_GENERATED_FILES ${WIRESHARK_NSIS_GENERATED_FILES} PARENT_SCOP
set(WIRESHARK_NSIS_FILES
${CMAKE_CURRENT_SOURCE_DIR}/wireshark.nsi
${CMAKE_CURRENT_SOURCE_DIR}/wireshark-common.nsh
- ${CMAKE_CURRENT_SOURCE_DIR}/GetWindowsVersion.nsh
${CMAKE_CURRENT_SOURCE_DIR}/servicelib.nsh
${CMAKE_CURRENT_SOURCE_DIR}/NpcapPage.ini
${CMAKE_CURRENT_SOURCE_DIR}/USBPcapPage.ini
@@ -41,7 +40,6 @@ set(LOGRAY_NSIS_FILES
logray.nsi
uninstall-logray.nsi
logray-common.nsh
- GetWindowsVersion.nsh
servicelib.nsh
NpcapPage.ini
USBPcapPage.ini
diff --git a/packaging/nsis/GetWindowsVersion.nsh b/packaging/nsis/GetWindowsVersion.nsh
deleted file mode 100644
index d0201298f7..0000000000
--- a/packaging/nsis/GetWindowsVersion.nsh
+++ /dev/null
@@ -1,190 +0,0 @@
-; GetWindowsVersion 4.1.1 (2015-06-22) - alternate script with server versions
-;
-; https://nsis.sourceforge.io/Get_Windows_version
-;
-; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
-; Update by Joost Verburg
-; Update (Macro, Define, Windows 7 detection) - John T. Haller of PortableApps.com - 2008-01-07
-; Update (Windows 8 detection) - Marek Mizanin (Zanir) - 2013-02-07
-; Update (Windows 8.1 detection) - John T. Haller of PortableApps.com - 2014-04-04
-; Update (Windows 2008, 2008R2, 2012 and 2012R2 detection) - Francisco SimoƵes Filho franksimoes@gmail.com - 2014-08-25
-; Update (Windows 10 TP detection) - John T. Haller of PortableApps.com - 2014-10-01
-; Update (Windows 10 TP4 and 2016 detection, and added include guards) - Kairu - 2015-06-22
-;
-; Usage: ${GetWindowsVersion} $R0
-;
-; $R0 contains: 95, 98, ME, NT x.x, 2000, XP, 2003, Vista, 2008, 7, 2008R2,
-; 8, 2012, 8.1, 2012R2, 10.0, 2016 or '' (for unknown)
-
-!ifndef __GET_WINDOWS_VERSION_NSH
-!define __GET_WINDOWS_VERSION_NSH
-
-Function GetWindowsVersion
-
- Push $R0
- Push $R1
- Push $R2
-
- ClearErrors
-
- ; check if Windows NT family
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
-
- IfErrors 0 lbl_winnt
-
- ; we are not NT
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
-
- StrCpy $R1 $R0 1
- StrCmp $R1 '4' 0 lbl_error
-
- StrCpy $R1 $R0 3
-
- StrCmp $R1 '4.0' lbl_win32_95
- StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
-
- lbl_win32_95:
- StrCpy $R0 '95'
- Goto lbl_done
-
- lbl_win32_98:
- StrCpy $R0 '98'
- Goto lbl_done
-
- lbl_win32_ME:
- StrCpy $R0 'ME'
- Goto lbl_done
-
- lbl_winnt:
-
- ; check if Windows is Client or Server.
- ReadRegStr $R2 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" InstallationType
-
- StrCpy $R1 $R0 1
-
- StrCmp $R1 '3' lbl_winnt_x
- StrCmp $R1 '4' lbl_winnt_x
-
- StrCpy $R1 $R0 3
-
- StrCmp $R1 '5.0' lbl_winnt_2000
- StrCmp $R1 '5.1' lbl_winnt_XP
- StrCmp $R1 '5.2' lbl_winnt_2003
- StrCmp $R1 '6.0' lbl_winnt_vista_2008
- StrCmp $R1 '6.1' lbl_winnt_7_2008R2
- StrCmp $R1 '6.2' lbl_winnt_8_2012
- StrCmp $R1 '6.3' lbl_winnt_81_2012R2
- StrCmp $R1 '6.4' lbl_winnt_10_2016 ; the early Windows 10 tech previews used version 6.4
-
- StrCpy $R1 $R0 4
-
- StrCmp $R1 '10.0' lbl_winnt_10_2016
- Goto lbl_error
-
- lbl_winnt_x:
- StrCpy $R0 "NT $R0" 6
- Goto lbl_done
-
- lbl_winnt_2000:
- Strcpy $R0 '2000'
- Goto lbl_done
-
- lbl_winnt_XP:
- Strcpy $R0 'XP'
- Goto lbl_done
-
- lbl_winnt_2003:
- Strcpy $R0 '2003'
- Goto lbl_done
-
- ;----------------- Family - Vista / 2008 -------------
- lbl_winnt_vista_2008:
- StrCmp $R2 'Client' go_vista
- StrCmp $R2 'Server' go_2008
-
- go_vista:
- Strcpy $R0 'Vista'
- Goto lbl_done
-
- go_2008:
- Strcpy $R0 '2008'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 7 / 2008R2 -------------
- lbl_winnt_7_2008R2:
- StrCmp $R2 'Client' go_7
- StrCmp $R2 'Server' go_2008R2
-
- go_7:
- Strcpy $R0 '7'
- Goto lbl_done
-
- go_2008R2:
- Strcpy $R0 '2008R2'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 8 / 2012 -------------
- lbl_winnt_8_2012:
- StrCmp $R2 'Client' go_8
- StrCmp $R2 'Server' go_2012
-
- go_8:
- Strcpy $R0 '8'
- Goto lbl_done
-
- go_2012:
- Strcpy $R0 '2012'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 8.1 / 2012R2 -------------
- lbl_winnt_81_2012R2:
- StrCmp $R2 'Client' go_81
- StrCmp $R2 'Server' go_2012R2
-
- go_81:
- Strcpy $R0 '8.1'
- Goto lbl_done
-
- go_2012R2:
- Strcpy $R0 '2012R2'
- Goto lbl_done
- ;-----------------------------------------------------
-
- ;----------------- Family - 10 / 2016 -------------
- lbl_winnt_10_2016:
- StrCmp $R2 'Client' go_10
- StrCmp $R2 'Server' go_2016
-
- go_10:
- Strcpy $R0 '10.0'
- Goto lbl_done
-
- go_2016:
- Strcpy $R0 '2016'
- Goto lbl_done
- ;-----------------------------------------------------
-
- lbl_error:
- Strcpy $R0 ''
- lbl_done:
-
- Pop $R2
- Pop $R1
- Exch $R0
-
-FunctionEnd
-
-!macro GetWindowsVersion OUTPUT_VALUE
- Call GetWindowsVersion
- Pop `${OUTPUT_VALUE}`
-!macroend
-
-!define GetWindowsVersion '!insertmacro "GetWindowsVersion"'
-
-!endif
diff --git a/packaging/nsis/logray.nsi b/packaging/nsis/logray.nsi
index e59e1992d3..c102dfe11f 100644
--- a/packaging/nsis/logray.nsi
+++ b/packaging/nsis/logray.nsi
@@ -250,11 +250,11 @@ Var WIX_DISPLAYVERSION
Var WIX_UNINSTALLSTRING
; ============================================================================
-; 64-bit support
+; Platform and OS version checks
; ============================================================================
-!include x64.nsh
-!include "GetWindowsVersion.nsh"
+!include x64.nsh
+!include WinVer.nsh
!include WinMessages.nsh
Function .onInit
@@ -266,9 +266,6 @@ Function .onInit
${EndIf}
!endif
- ; Get the Windows version
- ${GetWindowsVersion} $R0
-
; This should match the following:
; - The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
; - The <compatibility><application> section in image\wireshark.exe.manifest.in
@@ -277,23 +274,13 @@ Function .onInit
; Uncomment to test.
; MessageBox MB_OK "You're running Windows $R0."
- ; Check if we're able to run with this version
- StrCmp $R0 '95' lbl_winversion_unsupported
- StrCmp $R0 '98' lbl_winversion_unsupported
- StrCmp $R0 'ME' lbl_winversion_unsupported
- StrCmp $R0 'NT 4.0' lbl_winversion_unsupported
- StrCmp $R0 '2000' lbl_winversion_unsupported
- StrCmp $R0 'XP' lbl_winversion_unsupported
- StrCmp $R0 '2003' lbl_winversion_unsupported
- StrCmp $R0 'Vista' lbl_winversion_unsupported
- StrCmp $R0 '2008' lbl_winversion_unsupported
- Goto lbl_winversion_supported
-
-lbl_winversion_unsupported:
+
+${If} ${AtMostWin8.1}
+${OrIf} ${AtMostWin2012R2}
MessageBox MB_OK \
- "Windows $R0 is not supported." \
- /SD IDOK
+ "Windows 10, Server 2016, and later are required." /SD IDOK
Quit
+${EndIf}
lbl_winversion_supported:
!insertmacro IsLograyRunning
diff --git a/packaging/nsis/wireshark.nsi b/packaging/nsis/wireshark.nsi
index abbe7ea39c..926a1a39ae 100644
--- a/packaging/nsis/wireshark.nsi
+++ b/packaging/nsis/wireshark.nsi
@@ -282,11 +282,11 @@ Var WIX_DISPLAYVERSION
Var WIX_UNINSTALLSTRING
; ============================================================================
-; 64-bit support
+; Platform and OS version checks
; ============================================================================
-!include x64.nsh
-!include "GetWindowsVersion.nsh"
+!include x64.nsh
+!include WinVer.nsh
!include WinMessages.nsh
Function .onInit
@@ -309,9 +309,6 @@ Function .onInit
${EndIf}
!endif
- ; Get the Windows version
- ${GetWindowsVersion} $R0
-
; This should match the following:
; - The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
; - The <compatibility><application> section in image\wireshark.exe.manifest.in
@@ -320,49 +317,51 @@ Function .onInit
; Uncomment to test.
; MessageBox MB_OK "You're running Windows $R0."
- ; Check if we're able to run with this version
- StrCmp $R0 '95' lbl_winversion_unsupported
- StrCmp $R0 '98' lbl_winversion_unsupported
- StrCmp $R0 'ME' lbl_winversion_unsupported
- StrCmp $R0 'NT 4.0' lbl_winversion_unsupported_nt4
- StrCmp $R0 '2000' lbl_winversion_unsupported_2000
- StrCmp $R0 'XP' lbl_winversion_unsupported_xp_2003
- StrCmp $R0 '2003' lbl_winversion_unsupported_xp_2003
- StrCmp $R0 'Vista' lbl_winversion_unsupported_vista_2008
- StrCmp $R0 '2008' lbl_winversion_unsupported_vista_2008
- Goto lbl_winversion_supported
-
-lbl_winversion_unsupported:
+${If} ${AtMostWinME}
+ MessageBox MB_OK \
+ "Windows 95, 98, and ME are no longer supported.$\nPlease install Ethereal 0.99.0 instead." \
+ /SD IDOK
+ Quit
+${EndIf}
+
+${If} ${IsWinNT4}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install Ethereal 0.99.0 instead." \
- /SD IDOK
+ "Windows NT 4.0 is no longer supported.$\nPlease install Wireshark 0.99.4 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_nt4:
+${If} ${IsWin2000}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install Wireshark 0.99.4 instead." \
- /SD IDOK
+ "Windows 2000 is no longer supported.$\nPlease install Wireshark 1.2 or 1.0 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_2000:
+${If} ${IsWinXP}
+${OrIf} ${IsWin2003}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install Wireshark 1.2 or 1.0 instead." \
- /SD IDOK
+ "Windows XP and Server 2003 are no longer supported.$\nPlease install ${PROGRAM_NAME} 1.12 or 1.10 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_xp_2003:
+${If} ${IsWinVista}
+${OrIf} ${IsWin2008}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 1.12 or 1.10 instead." \
- /SD IDOK
+ "Windows Vista and Server 2008 are no longer supported.$\nPlease install ${PROGRAM_NAME} 2.2 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_unsupported_vista_2008:
+${If} ${AtMostWin8.1}
+${OrIf} ${AtMostWin2012R2}
MessageBox MB_OK \
- "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 2.2 instead." \
- /SD IDOK
+ "Windows 7, 8, 8.1, Server 2008R2, and Server 2012 are no longer supported.$\nPlease install ${PROGRAM_NAME} 4.0 instead." \
+ /SD IDOK
Quit
+${EndIf}
-lbl_winversion_supported:
!insertmacro IsWiresharkRunning
; Default control values.