diff options
author | Gerald Combs <gerald@wireshark.org> | 2015-11-19 14:34:39 -0800 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2015-11-26 08:39:50 +0000 |
commit | a92137d46a00d9b3066ba8b59ce2eecd9bb77647 (patch) | |
tree | 6615da044ad8894185ddfbff2f351738dca756de /packaging | |
parent | a9b4be98e90521e6c741eaf38716b3dc33192e11 (diff) | |
download | wireshark-a92137d46a00d9b3066ba8b59ce2eecd9bb77647.tar.gz wireshark-a92137d46a00d9b3066ba8b59ce2eecd9bb77647.tar.bz2 wireshark-a92137d46a00d9b3066ba8b59ce2eecd9bb77647.zip |
NSIS: refuse to install on Windows XP or Server 2003
Warn the user when installing on Windows Server 2003 along with XP.
CMake builds are not targeting them, and their support was officially
dropped with Wireshark 1.12.
Update our copy of GetWindowsVersion.nsh with "Alternate Script With
Server Versions" from http://nsis.sourceforge.net/Get_Windows_version.
Change-Id: I762859ea13e1ecd91757eeab360a39d1e6116144
Reviewed-on: https://code.wireshark.org/review/11972
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
(cherry picked from commit a9f5d8503f85704bd6facc2de3f51f5d83f4862c)
Reviewed-on: https://code.wireshark.org/review/12173
Diffstat (limited to 'packaging')
-rw-r--r-- | packaging/nsis/GetWindowsVersion.nsh | 176 | ||||
-rw-r--r-- | packaging/nsis/wireshark.nsi | 17 |
2 files changed, 146 insertions, 47 deletions
diff --git a/packaging/nsis/GetWindowsVersion.nsh b/packaging/nsis/GetWindowsVersion.nsh index 49e9e95a63..a0106ed015 100644 --- a/packaging/nsis/GetWindowsVersion.nsh +++ b/packaging/nsis/GetWindowsVersion.nsh @@ -1,94 +1,190 @@ -; GetWindowsVersion +; GetWindowsVersion 4.1.1 (2015-06-22) - alternate script with server versions ; -; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/ -; Updated by Joost Verburg +; http://nsis.sourceforge.net/Get_Windows_version ; -; Returns on top of stack +; 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 ; -; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003, Vista, Windows 7) -; or -; '' (Unknown Windows Version) +; Usage: ${GetWindowsVersion} $R0 ; -; Usage: -; Call GetWindowsVersion -; Pop $R0 -; ; at this point $R0 is "NT 4.0" or whatnot - +; $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 lbl_error - + 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 - - lbl_winnt_vista: - Strcpy $R0 'Vista' - 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/wireshark.nsi b/packaging/nsis/wireshark.nsi index 2d37a77d3c..d48ce15c53 100644 --- a/packaging/nsis/wireshark.nsi +++ b/packaging/nsis/wireshark.nsi @@ -228,8 +228,10 @@ Function .onInit !endif ; Get the Windows version - Call GetWindowsVersion - Pop $R0 ; Windows Version + ${GetWindowsVersion} $R0 + + ; 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 @@ -237,7 +239,8 @@ Function .onInit 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_warn_xp + StrCmp $R0 'XP' lbl_winversion_unsupported_xp_2003 + StrCmp $R0 '2003' lbl_winversion_unsupported_xp_2003 Goto lbl_winversion_supported lbl_winversion_unsupported: @@ -258,10 +261,10 @@ lbl_winversion_unsupported_2000: /SD IDOK Quit -lbl_winversion_warn_xp: - MessageBox MB_YESNO|MB_ICONINFORMATION \ - "This version of ${PROGRAM_NAME} may not work on Windows $R0.$\nWe recommend ${PROGRAM_NAME} 1.10 instead.$\nDo you want to continue?" \ - /SD IDYES IDYES lbl_winversion_supported +lbl_winversion_unsupported_xp_2003: + MessageBox MB_OK \ + "Windows $R0 is no longer supported.$\nPlease install ${PROGRAM_NAME} 1.12 or 1.10 instead." \ + /SD IDOK Quit lbl_winversion_supported: |