diff --git a/cmakeconfig.h.in b/cmakeconfig.h.in index 61f44adc1b..38cd494b4f 100644 --- a/cmakeconfig.h.in +++ b/cmakeconfig.h.in @@ -361,15 +361,15 @@ * for our needs. * This should match the following: * - The section in resources\wireshark.exe.manifest.in - * - The GetWindowsVersion parts of packaging\nsis\wireshark.nsi + * - The WinVer parts of packaging\nsis\wireshark.nsi * - The VersionNT parts of packaging\wix\Prerequisites.wxi */ # ifndef NTDDI_VERSION -# define NTDDI_VERSION NTDDI_WIN7 +# define NTDDI_VERSION NTDDI_WIN10 # endif # ifndef _WIN32_WINNT -# define _WIN32_WINNT _WIN32_WINNT_WIN7 +# define _WIN32_WINNT _WIN32_WINNT_WIN10 # endif #endif 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 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 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 $R0 is no longer supported.$\nPlease install Ethereal 0.99.0 instead." \ - /SD IDOK + "Windows 95, 98, and ME are no longer supported.$\nPlease install Ethereal 0.99.0 instead." \ + /SD IDOK Quit +${EndIf} -lbl_winversion_unsupported_nt4: +${If} ${IsWinNT4} MessageBox MB_OK \ - "Windows $R0 is no longer supported.$\nPlease install Wireshark 0.99.4 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_2000: +${If} ${IsWin2000} MessageBox MB_OK \ - "Windows $R0 is no longer supported.$\nPlease install Wireshark 1.2 or 1.0 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_xp_2003: +${If} ${IsWinXP} +${OrIf} ${IsWin2003} MessageBox MB_OK \ - "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 1.12 or 1.10 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_vista_2008: +${If} ${IsWinVista} +${OrIf} ${IsWin2008} MessageBox MB_OK \ - "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 2.2 instead." \ - /SD IDOK + "Windows Vista and Server 2008 are no longer supported.$\nPlease install ${PROGRAM_NAME} 2.2 instead." \ + /SD IDOK Quit +${EndIf} + +${If} ${AtMostWin8.1} +${OrIf} ${AtMostWin2012R2} + MessageBox MB_OK \ + "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. diff --git a/packaging/wix/Prerequisites.wxi b/packaging/wix/Prerequisites.wxi index 54e8416a9c..aa03a45fc5 100644 --- a/packaging/wix/Prerequisites.wxi +++ b/packaging/wix/Prerequisites.wxi @@ -17,7 +17,7 @@ 500)]]> @@ -35,8 +35,12 @@ 600)]]> - - = 601)]]> + + 602)]]> + + + + = 603)]]> - - - - - - diff --git a/resources/wireshark.exe.manifest.in b/resources/wireshark.exe.manifest.in index b1d932c831..0c49241529 100644 --- a/resources/wireshark.exe.manifest.in +++ b/resources/wireshark.exe.manifest.in @@ -33,15 +33,9 @@ - - - - - -