Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / packaging / nsis / stratoshark.nsi
blob0671bf58b42bf76298af6ce6bc06976a702cab76
2 ; stratoshark.nsi
5 ; Set the compression mechanism first.
6 ; As of NSIS 2.07, solid compression which makes installer about 1MB smaller
7 ; is no longer the default, so use the /SOLID switch.
8 ; This unfortunately is unknown to NSIS prior to 2.07 and creates an error.
9 ; So if you get an error here, please update to at least NSIS 2.07!
10 SetCompressor /SOLID lzma
11 SetCompressorDictSize 64 ; MB
13 !include "stratoshark-common.nsh"
14 !include 'LogicLib.nsh'
15 !include "StrFunc.nsh"
16 !include "WordFunc.nsh"
18 ; See https://nsis.sourceforge.io/Check_if_a_file_exists_at_compile_time for documentation
19 !macro !defineifexist _VAR_NAME _FILE_NAME
20 !tempfile _TEMPFILE
21 !ifdef NSIS_WIN32_MAKENSIS
22 ; Windows - cmd.exe
23 !system 'if exist "${_FILE_NAME}" echo !define ${_VAR_NAME} > "${_TEMPFILE}"'
24 !else
25 ; Posix - sh
26 !system 'if [ -e "${_FILE_NAME}" ]; then echo "!define ${_VAR_NAME}" > "${_TEMPFILE}"; fi'
27 !endif
28 !include '${_TEMPFILE}'
29 !delfile '${_TEMPFILE}'
30 !undef _TEMPFILE
31 !macroend
32 !define !defineifexist "!insertmacro !defineifexist"
34 ; ============================================================================
35 ; Header configuration
36 ; ============================================================================
38 ; The file to write
39 OutFile "${OUTFILE_DIR}\${PROGRAM_NAME}-${VERSION}-${WIRESHARK_TARGET_PLATFORM}.exe"
40 ; Installer icon
41 Icon "${TOP_SRC_DIR}\resources\icons\stratosharkinst.ico"
43 ; ============================================================================
44 ; Modern UI
45 ; ============================================================================
46 ; The modern user interface will look much better than the common one.
47 ; However, as the development of the modern UI is still going on, and the script
48 ; syntax changes, you will need exactly that NSIS version, which this script is
49 ; made for. This is the current (December 2003) latest version: V2.0b4
50 ; If you are using a different version, it's not predictable what will happen.
52 !include "MUI2.nsh"
53 !include "InstallOptions.nsh"
54 ;!addplugindir ".\Plugins"
56 !define MUI_ICON "${TOP_SRC_DIR}\resources\icons\stratosharkinst.ico"
57 !define MUI_UNICON "${TOP_SRC_DIR}\resources\icons\stratosharkinst.ico"
58 BrandingText "Stratoshark${U+00ae} Installer"
60 !define MUI_COMPONENTSPAGE_SMALLDESC
61 !define MUI_FINISHPAGE_NOAUTOCLOSE
62 !define MUI_WELCOMEPAGE_TITLE_3LINES
63 !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${PROGRAM_NAME}.$\r$\n$\r$\nBefore starting the installation, make sure ${PROGRAM_NAME} is not running.$\r$\n$\r$\nClick 'Next' to continue."
65 ; NSIS shows Readme files by opening the Readme file with the default application for
66 ; the file's extension. "README.win32" won't work in most cases, because extension "win32"
67 ; is usually not associated with an appropriate text editor. We should use extension "txt"
68 ; for a text file or "html" for an html README file.
69 !define MUI_FINISHPAGE_TITLE_3LINES
70 ; !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\NEWS.txt"
71 ; !define MUI_FINISHPAGE_SHOWREADME_TEXT "Show News"
72 ; !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
73 ; NSIS runs as Administrator and will run Stratoshark as Administrator
74 ; if these are enabled.
75 ;!define MUI_FINISHPAGE_RUN "$INSTDIR\${PROGRAM_NAME_PATH}"
76 ;!define MUI_FINISHPAGE_RUN_NOTCHECKED
78 ; ============================================================================
79 ; MUI Pages
80 ; ============================================================================
82 !insertmacro MUI_PAGE_WELCOME
84 !define MUI_LICENSEPAGE_TEXT_TOP "Stratoshark is distributed under the GNU General Public License."
85 !define MUI_LICENSEPAGE_TEXT_BOTTOM "This is not an end user license agreement (EULA). It is provided here for informational purposes only."
86 !define MUI_LICENSEPAGE_BUTTON "Noted"
87 !insertmacro MUI_PAGE_LICENSE "${STAGING_DIR}\COPYING.txt"
89 !insertmacro MUI_PAGE_COMPONENTS
90 !ifdef QT_DIR
91 Page custom DisplayAdditionalTasksPage LeaveAdditionalTasksPage
92 !endif
93 !insertmacro MUI_PAGE_DIRECTORY
94 !insertmacro MUI_PAGE_INSTFILES
95 !insertmacro MUI_PAGE_FINISH
97 ; ============================================================================
98 ; MUI Languages
99 ; ============================================================================
101 !insertmacro MUI_LANGUAGE "English"
103 ; ============================================================================
104 ; Reserve Files
105 ; ============================================================================
107 ;Things that need to be extracted on first (keep these lines before any File command!)
108 ;Only useful for BZIP2 compression
110 ; Old Modern 1 UI: https://nsis.sourceforge.io/Docs/Modern%20UI/Readme.html
111 ; To do: Upgrade to the Modern 2 UI:
112 ;ReserveFile "AdditionalTasksPage.ini"
113 ;ReserveFile "DonatePage.ini"
114 ReserveFile /plugin InstallOptions.dll
116 ; Modern UI 2 / nsDialog pages.
117 ; https://nsis.sourceforge.io/Docs/Modern%20UI%202/Readme.html
118 ; https://nsis.sourceforge.io/Docs/nsDialogs/Readme.html
119 !ifdef QT_DIR
120 !include "stratoshark-additional-tasks.nsdinc"
121 !endif
123 ; ============================================================================
124 ; Section macros
125 ; ============================================================================
126 !include "Sections.nsh"
128 ; ============================================================================
129 ; Command Line
130 ; ============================================================================
131 !include "FileFunc.nsh"
133 !insertmacro GetParameters
134 !insertmacro GetOptions
136 ; ========= Install extcap binary and help file =========
137 !macro InstallExtcap EXTCAP_NAME
139 SetOutPath $INSTDIR
140 File "${STAGING_DIR}\${EXTCAP_NAME}.html"
141 SetOutPath $INSTDIR\extcap
142 File "${STAGING_DIR}\extcap\stratoshark\${EXTCAP_NAME}.exe"
144 !macroend
146 ; ========= Check if silent mode install of /EXTRACOMPONENTS =========
147 !macro CheckExtrasFlag EXTRAS_NAME
148 !define EXTRAS_FLAG ${__LINE__}
149 Section
150 IfSilent +1 skip_${EXTRAS_FLAG}
151 push $R0
152 push $R1
153 push $R2
154 ${GetParameters} $R0
155 ${GetOptions} $R0 "/EXTRACOMPONENTS=" $R1
156 IfErrors popreg_${EXTRAS_FLAG}
157 ${WordFind} $R1 "," "E+1" $R0
159 ; No delimiters found - check for single word match
160 ${If} $R0 = 1
161 StrCmp $R1 ${EXTRAS_NAME} install_${EXTRAS_FLAG} popreg_${EXTRAS_FLAG}
162 ${ENDIF}
164 ; Loop through all delimited words checking for match
165 IntOp $R2 0 + 1
166 ${While} $R0 != 2
167 StrCmp $R0 ${EXTRAS_NAME} install_${EXTRAS_FLAG} 0
168 IntOp $R2 $R2 + 1
169 ${WordFind} $R1 "," "E+$R2" $R0
170 ${EndWhile}
171 Goto popreg_${EXTRAS_FLAG}
173 install_${EXTRAS_FLAG}:
174 !insertmacro InstallExtcap ${EXTRAS_NAME}
175 popreg_${EXTRAS_FLAG}:
176 pop $R2
177 pop $R1
178 pop $R0
179 skip_${EXTRAS_FLAG}:
180 !undef EXTRAS_FLAG
181 SectionEnd
182 !macroend
184 ; ============================================================================
185 ; Component page configuration
186 ; ============================================================================
187 ComponentText "The following components are available for installation."
189 ; ============================================================================
190 ; Directory selection page configuration
191 ; ============================================================================
192 ; The text to prompt the user to enter a directory
193 DirText "Choose a directory in which to install ${PROGRAM_NAME}."
195 ; The default installation directory
196 InstallDir $PROGRAMFILES64\${PROGRAM_NAME}
198 ; See if this is an upgrade; if so, use the old InstallDir as default
199 InstallDirRegKey HKEY_LOCAL_MACHINE SOFTWARE\${PROGRAM_NAME} InstallDir
202 ; ============================================================================
203 ; Install page configuration
204 ; ============================================================================
205 ShowInstDetails show
207 ; ============================================================================
208 ; Functions and macros
209 ; ============================================================================
211 Var EXTENSION
212 ; https://docs.microsoft.com/en-us/windows/win32/shell/fa-file-types
213 Function Associate
214 Push $R0
215 !insertmacro PushFileExtensions
217 Pop $EXTENSION
219 ${DoUntil} $EXTENSION == ${FILE_EXTENSION_MARKER}
220 ReadRegStr $R0 HKCR $EXTENSION ""
221 StrCmp $R0 "" Associate.doRegister
222 Goto Associate.end
224 Associate.doRegister:
225 ;The extension is not associated to any program, we can do the link
226 WriteRegStr HKCR $EXTENSION "" ${STRATOSHARK_ASSOC}
227 DetailPrint "Registered file type: $EXTENSION"
229 Associate.end:
230 Pop $EXTENSION
231 ${Loop}
233 Pop $R0
234 FunctionEnd
236 ; Control states
237 Var START_MENU_STATE
238 Var DESKTOP_ICON_STATE
239 Var FILE_ASSOCIATE_STATE
241 ; NSIS
242 Var OLD_UNINSTALLER
243 Var OLD_INSTDIR
244 Var OLD_DISPLAYNAME
245 Var TMP_UNINSTALLER
247 ; WiX - XXX - Remove?
248 Var REGISTRY_BITS
249 Var TMP_PRODUCT_GUID
250 Var WIX_DISPLAYNAME
251 Var WIX_DISPLAYVERSION
252 Var WIX_UNINSTALLSTRING
254 ; ============================================================================
255 ; Platform and OS version checks
256 ; ============================================================================
258 !include x64.nsh
259 !include WinVer.nsh
260 !include WinMessages.nsh
262 Function .onInit
263 !if ${WIRESHARK_TARGET_PLATFORM} == "x64"
264 ; http://forums.winamp.com/printthread.php?s=16ffcdd04a8c8d52bee90c0cae273ac5&threadid=262873
265 ${IfNot} ${RunningX64}
266 MessageBox MB_OK "Stratoshark only runs on 64-bit machines." /SD IDOK
267 Abort
268 ${EndIf}
269 !endif
271 !if ${WIRESHARK_TARGET_PLATFORM} == "arm64"
272 ${IfNot} ${IsNativeARM64}
273 MessageBox MB_OK "You're trying to install the Arm64 version of Stratoshark on an x64 system.$\nTry the native x64 installer instead." /SD IDOK
274 Abort
275 ${EndIf}
276 !endif
278 ; This should match the following:
279 ; - The NTDDI_VERSION and _WIN32_WINNT parts of cmakeconfig.h.in
280 ; - The <compatibility><application> section in image\wireshark.exe.manifest.in
281 ; - The VersionNT parts of packaging\wix\Prerequisites.wxi
283 ; Uncomment to test.
284 ; MessageBox MB_OK "You're running Windows $R0."
286 ${If} ${AtMostWin8.1}
287 ${OrIf} ${AtMostWin2012R2}
288 MessageBox MB_OK \
289 "Windows 10, Server 2016, and later are required." /SD IDOK
290 Quit
291 ${EndIf}
293 !insertmacro IsStratosharkRunning
295 ; Default control values.
296 StrCpy $START_MENU_STATE ${BST_CHECKED}
297 StrCpy $DESKTOP_ICON_STATE ${BST_UNCHECKED}
298 StrCpy $FILE_ASSOCIATE_STATE ${BST_CHECKED}
300 ; Copied from https://nsis.sourceforge.io/Auto-uninstall_old_before_installing_new
301 ReadRegStr $OLD_UNINSTALLER HKLM \
302 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}" \
303 "UninstallString"
304 StrCmp $OLD_UNINSTALLER "" check_wix
306 ReadRegStr $OLD_INSTDIR HKLM \
307 "Software\Microsoft\Windows\CurrentVersion\App Paths\${PROGRAM_NAME}.exe" \
308 "Path"
309 StrCmp $OLD_INSTDIR "" check_wix
311 ReadRegStr $OLD_DISPLAYNAME HKLM \
312 "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}" \
313 "DisplayName"
314 StrCmp $OLD_DISPLAYNAME "" done
316 ; We're reinstalling. Flip our control states according to what the
317 ; user chose before.
318 ; (we use the "all users" start menu, so select it first)
319 SetShellVarContext all
320 ; MessageBox MB_OK|MB_ICONINFORMATION "oninit 1 sm $START_MENU_STATE di $DESKTOP_ICON_STATE"
321 ${IfNot} ${FileExists} $SMPROGRAMS\${PROGRAM_NAME}.lnk
322 StrCpy $START_MENU_STATE ${BST_UNCHECKED}
323 ${Endif}
324 ${If} ${FileExists} $DESKTOP\${PROGRAM_NAME}.lnk
325 StrCpy $DESKTOP_ICON_STATE ${BST_CHECKED}
326 ${Endif}
327 ; Leave FILE_ASSOCIATE_STATE checked.
328 ; MessageBox MB_OK|MB_ICONINFORMATION "oninit 2 sm $START_MENU_STATE $SMPROGRAMS\${PROGRAM_NAME}\${PROGRAM_NAME}.lnk \
329 ; $\ndi $DESKTOP_ICON_STATE $DESKTOP\${PROGRAM_NAME}.lnk
331 MessageBox MB_YESNOCANCEL|MB_ICONQUESTION \
332 "$OLD_DISPLAYNAME is already installed.\
333 $\n$\nWould you like to uninstall it first?" \
334 /SD IDYES \
335 IDYES prep_nsis_uninstaller \
336 IDNO done
337 Abort
339 ; Copy the uninstaller to $TEMP and run it.
340 ; The uninstaller normally does this by itself, but doesn't wait around
341 ; for the executable to finish, which means ExecWait won't work correctly.
342 prep_nsis_uninstaller:
343 ClearErrors
344 StrCpy $TMP_UNINSTALLER "$TEMP\${PROGRAM_NAME}_uninstaller.exe"
345 ; ...because we surround UninstallString in quotes.
346 StrCpy $0 $OLD_UNINSTALLER -1 1
347 StrCpy $1 "$TEMP\${PROGRAM_NAME}_uninstaller.exe"
348 StrCpy $2 1
349 System::Call 'kernel32::CopyFile(t r0, t r1, b r2) 1'
350 ExecWait "$TMP_UNINSTALLER /S _?=$OLD_INSTDIR"
352 Delete "$TMP_UNINSTALLER"
354 ; Look for a WiX-installed package.
356 check_wix:
357 StrCpy $REGISTRY_BITS 64
358 SetRegView 64
359 check_wix_restart:
360 StrCpy $0 0
361 wix_reg_enum_loop:
362 EnumRegKey $TMP_PRODUCT_GUID HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" $0
363 StrCmp $TMP_PRODUCT_GUID "" wix_enum_reg_done
364 IntOp $0 $0 + 1
365 ReadRegStr $WIX_DISPLAYNAME HKLM \
366 "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$TMP_PRODUCT_GUID" \
367 "DisplayName"
368 ; MessageBox MB_OK|MB_ICONINFORMATION "Reading HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$1 DisplayName = $2"
369 ; Look for "Stratoshark".
370 StrCmp $WIX_DISPLAYNAME "${PROGRAM_NAME}" wix_found wix_reg_enum_loop
372 wix_found:
373 ReadRegStr $WIX_DISPLAYVERSION HKLM \
374 "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$TMP_PRODUCT_GUID" \
375 "DisplayVersion"
376 ReadRegStr $WIX_UNINSTALLSTRING HKLM \
377 "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$TMP_PRODUCT_GUID" \
378 "UninstallString"
379 StrCmp $WIX_UNINSTALLSTRING "" done
380 MessageBox MB_YESNOCANCEL|MB_ICONQUESTION \
381 "$WIX_DISPLAYNAME $WIX_DISPLAYVERSION (msi) is already installed.\
382 $\n$\nWould you like to uninstall it first?" \
383 /SD IDYES \
384 IDYES prep_wix_uninstaller \
385 IDNO done
386 Abort
388 ; Run the WiX-provided UninstallString.
389 prep_wix_uninstaller:
390 ClearErrors
391 ExecWait "$WIX_UNINSTALLSTRING"
393 Goto done
395 wix_enum_reg_done:
396 ; MessageBox MB_OK|MB_ICONINFORMATION "Checked $0 $REGISTRY_BITS bit keys"
397 IntCmp $REGISTRY_BITS 32 done
398 StrCpy $REGISTRY_BITS 32
399 SetRegView 32
400 Goto check_wix_restart
402 done:
404 ; Command line parameters
405 ${GetParameters} $R0
407 ${GetOptions} $R0 "/desktopicon=" $R1
408 ${If} $R1 == "yes"
409 StrCpy $DESKTOP_ICON_STATE ${BST_CHECKED}
410 ${ElseIf} $R1 == "no"
411 StrCpy $DESKTOP_ICON_STATE ${BST_UNCHECKED}
412 ${Endif}
414 ;Extract InstallOptions INI files
415 ;!insertmacro INSTALLOPTIONS_EXTRACT "AdditionalTasksPage.ini"
416 FunctionEnd
418 !ifdef QT_DIR
419 Function DisplayAdditionalTasksPage
420 Call fnc_AdditionalTasksPage_Show
421 FunctionEnd
422 !endif
424 ; Function DisplayDonatePage
425 ; !insertmacro MUI_HEADER_TEXT "Your donations keep these releases coming" "Donate today"
426 ; !insertmacro INSTALLOPTIONS_DISPLAY "DonatePage.ini"
427 ; FunctionEnd
429 ; ============================================================================
430 ; Installation execution commands
431 ; ============================================================================
433 Section "-Required"
434 ;-------------------------------------------
437 ; Install for every user
439 SetShellVarContext all
441 SetOutPath $INSTDIR
442 WriteUninstaller "$INSTDIR\${UNINSTALLER_NAME}"
443 File "${STAGING_DIR}\libwiretap.dll"
444 File "${STAGING_DIR}\libwireshark.dll"
445 File "${STAGING_DIR}\libwsutil.dll"
447 !include stratoshark-manifest.nsh
449 File "${STAGING_DIR}\COPYING.txt"
450 ; File "${STAGING_DIR}\NEWS.txt"
451 File "${STAGING_DIR}\README.txt"
452 File "${STAGING_DIR}\wka"
453 File "${STAGING_DIR}\pdml2html.xsl"
454 File "${STAGING_DIR}\ws.css"
455 ;File "${STAGING_DIR}\stratoshark.html"
456 File "${STAGING_DIR}\wireshark-filter.html"
457 File "${STAGING_DIR}\dumpcap.exe"
458 File "${STAGING_DIR}\dumpcap.html"
459 File "${STAGING_DIR}\extcap.html"
460 File "${STAGING_DIR}\ipmap.html"
462 ; C-runtime redistributable
463 ; vc_redist.x64.exe or vc_redist.x86.exe - copy and execute the redistributable installer
464 File "${VCREDIST_DIR}\${VCREDIST_EXE}"
465 ; If the user already has the redistributable installed they will see a
466 ; Big Ugly Dialog by default, asking if they want to uninstall or repair.
467 ; Ideally we should add a checkbox for this somewhere. In the meantime,
468 ; just do a "quiet" install.
470 ; http://asawicki.info/news_1597_installing_visual_c_redistributable_package_from_command_line.html
471 ExecWait '"$INSTDIR\${VCREDIST_EXE}" /install /quiet /norestart' $0
472 DetailPrint "${VCREDIST_EXE} returned $0"
474 ; https://docs.microsoft.com/en-us/windows/desktop/Msi/error-codes
475 !define ERROR_SUCCESS 0
476 !define ERROR_SUCCESS_REBOOT_INITIATED 1641
477 !define ERROR_PRODUCT_VERSION 1638
478 !define ERROR_SUCCESS_REBOOT_REQUIRED 3010
479 ${Switch} $0
480 ${Case} ${ERROR_SUCCESS}
481 ${Case} ${ERROR_PRODUCT_VERSION}
482 ${Break}
483 ${Case} ${ERROR_SUCCESS_REBOOT_INITIATED} ; Shouldn't happen.
484 ${Case} ${ERROR_SUCCESS_REBOOT_REQUIRED}
485 SetRebootFlag true
486 ${Break}
487 ${Default}
488 MessageBox MB_OK "The Visual C++ Redistributable installer failed with error $0.$\nUnable to continue installation." /SD IDOK
489 Abort
490 ${Break}
491 ${EndSwitch}
493 Delete "$INSTDIR\${VCREDIST_EXE}"
496 ; Global config files
497 File "${TOP_SRC_DIR}\resources\share\stratoshark\colorfilters"
498 File "${TOP_SRC_DIR}\resources\share\stratoshark\dfilter_buttons"
499 ;File "${TOP_SRC_DIR}\resources\share\stratoshark\dfilters"
500 File "${STAGING_DIR}\smi_modules"
504 ; Install the Diameter DTD and XML files in the "diameter" subdirectory
505 ; of the installation directory.
507 SetOutPath $INSTDIR\diameter
508 File "${STAGING_DIR}\diameter\AlcatelLucent.xml"
509 File "${STAGING_DIR}\diameter\chargecontrol.xml"
510 File "${STAGING_DIR}\diameter\Cisco.xml"
511 File "${STAGING_DIR}\diameter\CiscoSystems.xml"
512 File "${STAGING_DIR}\diameter\Custom.xml"
513 File "${STAGING_DIR}\diameter\dictionary.dtd"
514 File "${STAGING_DIR}\diameter\dictionary.xml"
515 File "${STAGING_DIR}\diameter\eap.xml"
516 File "${STAGING_DIR}\diameter\Ericsson.xml"
517 File "${STAGING_DIR}\diameter\etsie2e4.xml"
518 File "${STAGING_DIR}\diameter\HP.xml"
519 File "${STAGING_DIR}\diameter\Huawei.xml"
520 File "${STAGING_DIR}\diameter\Inovar.xml"
521 File "${STAGING_DIR}\diameter\Juniper.xml"
522 File "${STAGING_DIR}\diameter\Metaswitch.xml"
523 File "${STAGING_DIR}\diameter\Microsoft.xml"
524 File "${STAGING_DIR}\diameter\mobileipv4.xml"
525 File "${STAGING_DIR}\diameter\mobileipv6.xml"
526 File "${STAGING_DIR}\diameter\nasreq.xml"
527 File "${STAGING_DIR}\diameter\Nokia.xml"
528 File "${STAGING_DIR}\diameter\NokiaSolutionsAndNetworks.xml"
529 File "${STAGING_DIR}\diameter\Oracle.xml"
530 File "${STAGING_DIR}\diameter\Siemens.xml"
531 File "${STAGING_DIR}\diameter\sip.xml"
532 File "${STAGING_DIR}\diameter\Starent.xml"
533 File "${STAGING_DIR}\diameter\sunping.xml"
534 File "${STAGING_DIR}\diameter\Telefonica.xml"
535 File "${STAGING_DIR}\diameter\TGPP.xml"
536 File "${STAGING_DIR}\diameter\TGPP2.xml"
537 File "${STAGING_DIR}\diameter\Travelping.xml"
538 File "${STAGING_DIR}\diameter\Vodafone.xml"
539 File "${STAGING_DIR}\diameter\VerizonWireless.xml"
540 !include "custom_diameter_xmls.txt"
541 SetOutPath $INSTDIR
544 ; Install the RADIUS directory files in the "radius" subdirectory
545 ; of the installation directory.
547 SetOutPath $INSTDIR\radius
548 File "${STAGING_DIR}\radius\README.radius_dictionary"
549 File "${STAGING_DIR}\radius\custom.includes"
550 File "${STAGING_DIR}\radius\dictionary"
551 File "${STAGING_DIR}\radius\dictionary.3com"
552 File "${STAGING_DIR}\radius\dictionary.3gpp"
553 File "${STAGING_DIR}\radius\dictionary.3gpp2"
554 File "${STAGING_DIR}\radius\dictionary.5x9"
555 File "${STAGING_DIR}\radius\dictionary.acc"
556 File "${STAGING_DIR}\radius\dictionary.acme"
557 File "${STAGING_DIR}\radius\dictionary.actelis"
558 File "${STAGING_DIR}\radius\dictionary.adtran"
559 File "${STAGING_DIR}\radius\dictionary.adva"
560 File "${STAGING_DIR}\radius\dictionary.aerohive"
561 File "${STAGING_DIR}\radius\dictionary.airespace"
562 File "${STAGING_DIR}\radius\dictionary.alcatel"
563 File "${STAGING_DIR}\radius\dictionary.alcatel-lucent.aaa"
564 File "${STAGING_DIR}\radius\dictionary.alcatel.esam"
565 File "${STAGING_DIR}\radius\dictionary.alcatel.sr"
566 File "${STAGING_DIR}\radius\dictionary.alphion"
567 File "${STAGING_DIR}\radius\dictionary.alteon"
568 File "${STAGING_DIR}\radius\dictionary.altiga"
569 File "${STAGING_DIR}\radius\dictionary.alvarion"
570 File "${STAGING_DIR}\radius\dictionary.alvarion.wimax.v2_2"
571 File "${STAGING_DIR}\radius\dictionary.apc"
572 File "${STAGING_DIR}\radius\dictionary.aptilo"
573 File "${STAGING_DIR}\radius\dictionary.aptis"
574 File "${STAGING_DIR}\radius\dictionary.arbor"
575 File "${STAGING_DIR}\radius\dictionary.arista"
576 File "${STAGING_DIR}\radius\dictionary.aruba"
577 File "${STAGING_DIR}\radius\dictionary.ascend"
578 File "${STAGING_DIR}\radius\dictionary.ascend.illegal"
579 File "${STAGING_DIR}\radius\dictionary.ascend.illegal.extended"
580 File "${STAGING_DIR}\radius\dictionary.asn"
581 File "${STAGING_DIR}\radius\dictionary.audiocodes"
582 File "${STAGING_DIR}\radius\dictionary.avaya"
583 File "${STAGING_DIR}\radius\dictionary.azaire"
584 File "${STAGING_DIR}\radius\dictionary.bay"
585 File "${STAGING_DIR}\radius\dictionary.bintec"
586 File "${STAGING_DIR}\radius\dictionary.bigswitch"
587 File "${STAGING_DIR}\radius\dictionary.bintec"
588 File "${STAGING_DIR}\radius\dictionary.bluecoat"
589 File "${STAGING_DIR}\radius\dictionary.boingo"
590 File "${STAGING_DIR}\radius\dictionary.bristol"
591 File "${STAGING_DIR}\radius\dictionary.broadsoft"
592 File "${STAGING_DIR}\radius\dictionary.brocade"
593 File "${STAGING_DIR}\radius\dictionary.bskyb"
594 File "${STAGING_DIR}\radius\dictionary.bt"
595 File "${STAGING_DIR}\radius\dictionary.cablelabs"
596 File "${STAGING_DIR}\radius\dictionary.cabletron"
597 File "${STAGING_DIR}\radius\dictionary.calix"
598 File "${STAGING_DIR}\radius\dictionary.cambium"
599 File "${STAGING_DIR}\radius\dictionary.camiant"
600 File "${STAGING_DIR}\radius\dictionary.centec"
601 File "${STAGING_DIR}\radius\dictionary.checkpoint"
602 File "${STAGING_DIR}\radius\dictionary.chillispot"
603 File "${STAGING_DIR}\radius\dictionary.ciena"
604 File "${STAGING_DIR}\radius\dictionary.cisco"
605 File "${STAGING_DIR}\radius\dictionary.cisco.asa"
606 File "${STAGING_DIR}\radius\dictionary.cisco.bbsm"
607 File "${STAGING_DIR}\radius\dictionary.cisco.vpn3000"
608 File "${STAGING_DIR}\radius\dictionary.cisco.vpn5000"
609 File "${STAGING_DIR}\radius\dictionary.citrix"
610 File "${STAGING_DIR}\radius\dictionary.ckey"
611 File "${STAGING_DIR}\radius\dictionary.clavister"
612 File "${STAGING_DIR}\radius\dictionary.cnergee"
613 File "${STAGING_DIR}\radius\dictionary.colubris"
614 File "${STAGING_DIR}\radius\dictionary.columbia_university"
615 File "${STAGING_DIR}\radius\dictionary.compat"
616 File "${STAGING_DIR}\radius\dictionary.compatible"
617 File "${STAGING_DIR}\radius\dictionary.cosine"
618 File "${STAGING_DIR}\radius\dictionary.covaro"
619 File "${STAGING_DIR}\radius\dictionary.dante"
620 File "${STAGING_DIR}\radius\dictionary.dellemc"
621 File "${STAGING_DIR}\radius\dictionary.digium"
622 File "${STAGING_DIR}\radius\dictionary.dlink"
623 File "${STAGING_DIR}\radius\dictionary.dragonwave"
624 File "${STAGING_DIR}\radius\dictionary.efficientip"
625 File "${STAGING_DIR}\radius\dictionary.eleven"
626 File "${STAGING_DIR}\radius\dictionary.eltex"
627 File "${STAGING_DIR}\radius\dictionary.enterasys"
628 File "${STAGING_DIR}\radius\dictionary.epygi"
629 File "${STAGING_DIR}\radius\dictionary.equallogic"
630 File "${STAGING_DIR}\radius\dictionary.ericsson"
631 File "${STAGING_DIR}\radius\dictionary.ericsson.ab"
632 File "${STAGING_DIR}\radius\dictionary.ericsson.packet.core.networks"
633 File "${STAGING_DIR}\radius\dictionary.erx"
634 File "${STAGING_DIR}\radius\dictionary.extreme"
635 File "${STAGING_DIR}\radius\dictionary.f5"
636 File "${STAGING_DIR}\radius\dictionary.fdxtended"
637 File "${STAGING_DIR}\radius\dictionary.force10"
638 File "${STAGING_DIR}\radius\dictionary.fortinet"
639 File "${STAGING_DIR}\radius\dictionary.foundry"
640 File "${STAGING_DIR}\radius\dictionary.freedhcp"
641 File "${STAGING_DIR}\radius\dictionary.freeradius"
642 File "${STAGING_DIR}\radius\dictionary.freeradius.evs5"
643 File "${STAGING_DIR}\radius\dictionary.freeradius.internal"
644 File "${STAGING_DIR}\radius\dictionary.freeswitch"
645 File "${STAGING_DIR}\radius\dictionary.gandalf"
646 File "${STAGING_DIR}\radius\dictionary.garderos"
647 File "${STAGING_DIR}\radius\dictionary.gemtek"
648 File "${STAGING_DIR}\radius\dictionary.h3c"
649 File "${STAGING_DIR}\radius\dictionary.hillstone"
650 File "${STAGING_DIR}\radius\dictionary.hp"
651 File "${STAGING_DIR}\radius\dictionary.huawei"
652 File "${STAGING_DIR}\radius\dictionary.iana"
653 File "${STAGING_DIR}\radius\dictionary.identity_engines"
654 File "${STAGING_DIR}\radius\dictionary.iea"
655 File "${STAGING_DIR}\radius\dictionary.infinera"
656 File "${STAGING_DIR}\radius\dictionary.infoblox"
657 File "${STAGING_DIR}\radius\dictionary.infonet"
658 File "${STAGING_DIR}\radius\dictionary.ingate"
659 File "${STAGING_DIR}\radius\dictionary.ipunplugged"
660 File "${STAGING_DIR}\radius\dictionary.issanni"
661 File "${STAGING_DIR}\radius\dictionary.itk"
662 File "${STAGING_DIR}\radius\dictionary.jradius"
663 File "${STAGING_DIR}\radius\dictionary.juniper"
664 File "${STAGING_DIR}\radius\dictionary.karlnet"
665 File "${STAGING_DIR}\radius\dictionary.kineto"
666 File "${STAGING_DIR}\radius\dictionary.lancom"
667 File "${STAGING_DIR}\radius\dictionary.lantronix"
668 File "${STAGING_DIR}\radius\dictionary.livingston"
669 File "${STAGING_DIR}\radius\dictionary.localweb"
670 File "${STAGING_DIR}\radius\dictionary.lucent"
671 File "${STAGING_DIR}\radius\dictionary.manzara"
672 File "${STAGING_DIR}\radius\dictionary.meinberg"
673 File "${STAGING_DIR}\radius\dictionary.mellanox"
674 File "${STAGING_DIR}\radius\dictionary.meraki"
675 File "${STAGING_DIR}\radius\dictionary.merit"
676 File "${STAGING_DIR}\radius\dictionary.meru"
677 File "${STAGING_DIR}\radius\dictionary.microsemi"
678 File "${STAGING_DIR}\radius\dictionary.microsoft"
679 File "${STAGING_DIR}\radius\dictionary.mikrotik"
680 File "${STAGING_DIR}\radius\dictionary.mimosa"
681 File "${STAGING_DIR}\radius\dictionary.motorola"
682 File "${STAGING_DIR}\radius\dictionary.motorola.illegal"
683 File "${STAGING_DIR}\radius\dictionary.motorola.wimax"
684 File "${STAGING_DIR}\radius\dictionary.navini"
685 File "${STAGING_DIR}\radius\dictionary.net"
686 File "${STAGING_DIR}\radius\dictionary.netelastic"
687 File "${STAGING_DIR}\radius\dictionary.netscreen"
688 File "${STAGING_DIR}\radius\dictionary.networkphysics"
689 File "${STAGING_DIR}\radius\dictionary.nexans"
690 File "${STAGING_DIR}\radius\dictionary.nile"
691 File "${STAGING_DIR}\radius\dictionary.nokia"
692 File "${STAGING_DIR}\radius\dictionary.nokia.conflict"
693 File "${STAGING_DIR}\radius\dictionary.nomadix"
694 File "${STAGING_DIR}\radius\dictionary.nortel"
695 File "${STAGING_DIR}\radius\dictionary.ntua"
696 File "${STAGING_DIR}\radius\dictionary.openser"
697 File "${STAGING_DIR}\radius\dictionary.openwifi"
698 File "${STAGING_DIR}\radius\dictionary.packeteer"
699 File "${STAGING_DIR}\radius\dictionary.paloalto"
700 File "${STAGING_DIR}\radius\dictionary.patton"
701 File "${STAGING_DIR}\radius\dictionary.perle"
702 File "${STAGING_DIR}\radius\dictionary.pfsense"
703 File "${STAGING_DIR}\radius\dictionary.pica8"
704 File "${STAGING_DIR}\radius\dictionary.propel"
705 File "${STAGING_DIR}\radius\dictionary.prosoft"
706 File "${STAGING_DIR}\radius\dictionary.proxim"
707 File "${STAGING_DIR}\radius\dictionary.purewave"
708 File "${STAGING_DIR}\radius\dictionary.quiconnect"
709 File "${STAGING_DIR}\radius\dictionary.quintum"
710 File "${STAGING_DIR}\radius\dictionary.rcntec"
711 File "${STAGING_DIR}\radius\dictionary.redcreek"
712 File "${STAGING_DIR}\radius\dictionary.rfc2865"
713 File "${STAGING_DIR}\radius\dictionary.rfc2866"
714 File "${STAGING_DIR}\radius\dictionary.rfc2867"
715 File "${STAGING_DIR}\radius\dictionary.rfc2868"
716 File "${STAGING_DIR}\radius\dictionary.rfc2869"
717 File "${STAGING_DIR}\radius\dictionary.rfc3162"
718 File "${STAGING_DIR}\radius\dictionary.rfc3576"
719 File "${STAGING_DIR}\radius\dictionary.rfc3580"
720 File "${STAGING_DIR}\radius\dictionary.rfc4072"
721 File "${STAGING_DIR}\radius\dictionary.rfc4372"
722 File "${STAGING_DIR}\radius\dictionary.rfc4603"
723 File "${STAGING_DIR}\radius\dictionary.rfc4675"
724 File "${STAGING_DIR}\radius\dictionary.rfc4679"
725 File "${STAGING_DIR}\radius\dictionary.rfc4818"
726 File "${STAGING_DIR}\radius\dictionary.rfc4849"
727 File "${STAGING_DIR}\radius\dictionary.rfc5090"
728 File "${STAGING_DIR}\radius\dictionary.rfc5176"
729 File "${STAGING_DIR}\radius\dictionary.rfc5447"
730 File "${STAGING_DIR}\radius\dictionary.rfc5580"
731 File "${STAGING_DIR}\radius\dictionary.rfc5607"
732 File "${STAGING_DIR}\radius\dictionary.rfc5904"
733 File "${STAGING_DIR}\radius\dictionary.rfc6519"
734 File "${STAGING_DIR}\radius\dictionary.rfc6572"
735 File "${STAGING_DIR}\radius\dictionary.rfc6677"
736 File "${STAGING_DIR}\radius\dictionary.rfc6911"
737 File "${STAGING_DIR}\radius\dictionary.rfc6929"
738 File "${STAGING_DIR}\radius\dictionary.rfc6930"
739 File "${STAGING_DIR}\radius\dictionary.rfc7055"
740 File "${STAGING_DIR}\radius\dictionary.rfc7155"
741 File "${STAGING_DIR}\radius\dictionary.rfc7268"
742 File "${STAGING_DIR}\radius\dictionary.rfc7499"
743 File "${STAGING_DIR}\radius\dictionary.rfc7930"
744 File "${STAGING_DIR}\radius\dictionary.rfc8045"
745 File "${STAGING_DIR}\radius\dictionary.rfc8559"
746 File "${STAGING_DIR}\radius\dictionary.riverbed"
747 File "${STAGING_DIR}\radius\dictionary.riverstone"
748 File "${STAGING_DIR}\radius\dictionary.roaringpenguin"
749 File "${STAGING_DIR}\radius\dictionary.ruckus"
750 File "${STAGING_DIR}\radius\dictionary.ruggedcom"
751 File "${STAGING_DIR}\radius\dictionary.sangoma"
752 File "${STAGING_DIR}\radius\dictionary.sg"
753 File "${STAGING_DIR}\radius\dictionary.shasta"
754 File "${STAGING_DIR}\radius\dictionary.shiva"
755 File "${STAGING_DIR}\radius\dictionary.siemens"
756 File "${STAGING_DIR}\radius\dictionary.slipstream"
757 File "${STAGING_DIR}\radius\dictionary.smartsharesystems"
758 File "${STAGING_DIR}\radius\dictionary.sofaware"
759 File "${STAGING_DIR}\radius\dictionary.softbank"
760 File "${STAGING_DIR}\radius\dictionary.sonicwall"
761 File "${STAGING_DIR}\radius\dictionary.springtide"
762 File "${STAGING_DIR}\radius\dictionary.starent"
763 File "${STAGING_DIR}\radius\dictionary.starent.vsa1"
764 File "${STAGING_DIR}\radius\dictionary.surfnet"
765 File "${STAGING_DIR}\radius\dictionary.symbol"
766 File "${STAGING_DIR}\radius\dictionary.t_systems_nova"
767 File "${STAGING_DIR}\radius\dictionary.telebit"
768 File "${STAGING_DIR}\radius\dictionary.telkom"
769 File "${STAGING_DIR}\radius\dictionary.telrad"
770 File "${STAGING_DIR}\radius\dictionary.terena"
771 File "${STAGING_DIR}\radius\dictionary.tplink"
772 File "${STAGING_DIR}\radius\dictionary.trapeze"
773 File "${STAGING_DIR}\radius\dictionary.travelping"
774 File "${STAGING_DIR}\radius\dictionary.tripplite"
775 File "${STAGING_DIR}\radius\dictionary.tropos"
776 File "${STAGING_DIR}\radius\dictionary.ukerna"
777 File "${STAGING_DIR}\radius\dictionary.unisphere"
778 File "${STAGING_DIR}\radius\dictionary.unix"
779 File "${STAGING_DIR}\radius\dictionary.usr"
780 File "${STAGING_DIR}\radius\dictionary.usr.illegal"
781 File "${STAGING_DIR}\radius\dictionary.utstarcom"
782 File "${STAGING_DIR}\radius\dictionary.valemount"
783 File "${STAGING_DIR}\radius\dictionary.vasexperts"
784 File "${STAGING_DIR}\radius\dictionary.verizon"
785 File "${STAGING_DIR}\radius\dictionary.versanet"
786 File "${STAGING_DIR}\radius\dictionary.walabi"
787 File "${STAGING_DIR}\radius\dictionary.waverider"
788 File "${STAGING_DIR}\radius\dictionary.wichorus"
789 File "${STAGING_DIR}\radius\dictionary.wifialliance"
790 File "${STAGING_DIR}\radius\dictionary.wimax"
791 File "${STAGING_DIR}\radius\dictionary.wimax.alvarion"
792 File "${STAGING_DIR}\radius\dictionary.wimax.wichorus"
793 File "${STAGING_DIR}\radius\dictionary.wispr"
794 File "${STAGING_DIR}\radius\dictionary.xedia"
795 File "${STAGING_DIR}\radius\dictionary.xylan"
796 File "${STAGING_DIR}\radius\dictionary.yubico"
797 File "${STAGING_DIR}\radius\dictionary.zeus"
798 File "${STAGING_DIR}\radius\dictionary.zte"
799 File "${STAGING_DIR}\radius\dictionary.zyxel"
800 !include "custom_radius_dict.txt"
801 SetOutPath $INSTDIR
804 ; install the dtds in the dtds subdirectory
806 SetOutPath $INSTDIR\dtds
807 File "${STAGING_DIR}\dtds\dc.dtd"
808 File "${STAGING_DIR}\dtds\itunes.dtd"
809 File "${STAGING_DIR}\dtds\mscml.dtd"
810 File "${STAGING_DIR}\dtds\pocsettings.dtd"
811 File "${STAGING_DIR}\dtds\presence.dtd"
812 File "${STAGING_DIR}\dtds\reginfo.dtd"
813 File "${STAGING_DIR}\dtds\rlmi.dtd"
814 File "${STAGING_DIR}\dtds\rss.dtd"
815 File "${STAGING_DIR}\dtds\smil.dtd"
816 File "${STAGING_DIR}\dtds\xcap-caps.dtd"
817 File "${STAGING_DIR}\dtds\xcap-error.dtd"
818 File "${STAGING_DIR}\dtds\watcherinfo.dtd"
819 SetOutPath $INSTDIR
821 ; Create the extcap directory
822 CreateDirectory $INSTDIR\extcap
825 ; install the protobuf .proto definitions in the protobuf subdirectory
827 SetOutPath $INSTDIR\protobuf
828 File "${STAGING_DIR}\protobuf\*.proto"
830 ; Install the TPNCP DAT file in the "tpncp" subdirectory
831 ; of the installation directory.
832 SetOutPath $INSTDIR\tpncp
833 File "${STAGING_DIR}\tpncp\tpncp.dat"
835 ; Write the installation path into the registry for InstallDirRegKey
836 WriteRegStr HKEY_LOCAL_MACHINE SOFTWARE\${PROGRAM_NAME} InstallDir "$INSTDIR"
838 ; Write the uninstall keys for Windows
839 ; https://nsis.sourceforge.io/Add_uninstall_information_to_Add/Remove_Programs
840 ; https://docs.microsoft.com/en-us/previous-versions/ms954376(v=msdn.10)
841 ; https://docs.microsoft.com/en-us/windows/win32/msi/uninstall-registry-key
842 !define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}"
844 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "Comments" "${DISPLAY_NAME}"
845 !ifdef QT_DIR
846 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${PROGRAM_NAME_PATH},0"
847 !endif
848 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "DisplayName" "${DISPLAY_NAME}"
849 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}"
850 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "HelpLink" "https://ask.wireshark.org/"
851 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "InstallLocation" "$INSTDIR"
852 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "Publisher" "The Stratoshark developer community, https://www.wireshark.org"
853 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "URLInfoAbout" "https://www.wireshark.org"
854 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "URLUpdateInfo" "https://www.wireshark.org/download.html"
856 WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "NoModify" 1
857 WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "NoRepair" 1
858 WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "VersionMajor" ${MAJOR_VERSION}
859 WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "VersionMinor" ${MINOR_VERSION}
861 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "UninstallString" '"$INSTDIR\${UNINSTALLER_NAME}"'
862 WriteRegStr HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "QuietUninstallString" '"$INSTDIR\${UNINSTALLER_NAME}" /S'
864 ; To quote https://web.archive.org/web/20150911221413/http://download.microsoft.com/download/0/4/6/046bbd36-0812-4c22-a870-41911c6487a6/WindowsUserExperience.pdf:
865 ; "Do not include Readme, Help, or Uninstall entries on the Programs menu."
866 Delete "$SMPROGRAMS\${PROGRAM_NAME}\Wireshark Web Site.lnk"
868 ; Create file extensions if the Associated Tasks page check box
869 ; is checked.
870 ${If} $FILE_ASSOCIATE_STATE == ${BST_CHECKED}
871 WriteRegStr HKCR ${STRATOSHARK_ASSOC} "" "Stratoshark log file"
872 WriteRegStr HKCR "${STRATOSHARK_ASSOC}\Shell\open\command" "" '"$INSTDIR\${PROGRAM_NAME_PATH}" "%1"'
873 WriteRegStr HKCR "${STRATOSHARK_ASSOC}\DefaultIcon" "" '"$INSTDIR\${PROGRAM_NAME_PATH}",1'
874 ; We refresh the icon cache down in -Finally.
875 Call Associate
876 ; If you add something here be sure to sync it with the uninstall section and the
877 ; AdditionalTasks page
878 ${Endif}
880 SectionEnd ; "Required"
882 !ifdef QT_DIR
883 Section "${PROGRAM_NAME}" SecStratosharkQt
884 ;-------------------------------------------
885 ; by default, Stratoshark.exe is installed
886 SetOutPath $INSTDIR
887 File "${QT_DIR}\${PROGRAM_NAME_PATH}"
888 File /r "${QT_DIR}\translations"
889 ; Write an entry for ShellExecute
890 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\App Paths\${PROGRAM_NAME_PATH}" "" '$INSTDIR\${PROGRAM_NAME_PATH}'
891 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\App Paths\${PROGRAM_NAME_PATH}" "Path" '$INSTDIR'
892 !include stratoshark-qt-manifest.nsh
894 ; Is the Start Menu check box checked?
895 ${If} $START_MENU_STATE == ${BST_CHECKED}
896 CreateShortCut "$SMPROGRAMS\${PROGRAM_NAME}.lnk" "$INSTDIR\${PROGRAM_NAME_PATH}" "" "$INSTDIR\${PROGRAM_NAME_PATH}" 0 "" "" "${PROGRAM_FULL_NAME}"
897 ${Endif}
899 ${If} $DESKTOP_ICON_STATE == ${BST_CHECKED}
900 CreateShortCut "$DESKTOP\${PROGRAM_NAME}.lnk" "$INSTDIR\${PROGRAM_NAME_PATH}" "" "$INSTDIR\${PROGRAM_NAME_PATH}" 0 "" "" "${PROGRAM_FULL_NAME}"
901 ${Endif}
903 SectionEnd ; "SecStratosharkQt"
904 !endif
907 Section "TShark" SecTShark
908 ;-------------------------------------------
909 SetOutPath $INSTDIR
910 File "${STAGING_DIR}\tshark.exe"
911 File "${STAGING_DIR}\tshark.html"
912 SectionEnd
914 Section "-Plugins & Extensions"
916 ;-------------------------------------------
917 SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
918 File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\falco-bridge.dll"
919 SetOutPath '$INSTDIR\plugins\falco'
920 File "${STAGING_DIR}\plugins\falco\cloudtrail.dll"
921 File "${STAGING_DIR}\plugins\falco\gcpaudit.dll"
922 !include "custom_plugins.txt"
924 ;-------------------------------------------
925 SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
926 File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\stats_tree.dll"
928 ;-------------------------------------------
929 SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
930 File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\mate.dll"
932 ;-------------------------------------------
933 ; This should be a function or macro
934 SetOutPath '$INSTDIR\profiles\CloudTrail'
935 File "${TOP_SRC_DIR}\resources\share\stratoshark\profiles\CloudTrail\colorfilters"
936 ; File "${TOP_SRC_DIR}\resources\share\stratoshark\profiles\CloudTrail\preferences"
937 ; SetOutPath '$INSTDIR\profiles\Classic'
938 ; File "${TOP_SRC_DIR}\resources\share\stratoshark\profiles\Classic\colorfilters"
939 ; SetOutPath '$INSTDIR\profiles\No Reassembly'
940 ; File "${TOP_SRC_DIR}\resources\share\stratoshark\profiles\No Reassembly\preferences"
943 !ifdef SMI_DIR
944 ;-------------------------------------------
945 SetOutPath '$INSTDIR\snmp\mibs'
946 File "${SMI_DIR}\share\mibs\iana\*"
947 File "${SMI_DIR}\share\mibs\ietf\*"
948 File "${SMI_DIR}\share\mibs\irtf\*"
949 File "${SMI_DIR}\share\mibs\tubs\*"
950 File "${SMI_DIR}\share\pibs\*"
951 File "${SMI_DIR}\share\yang\*.yang"
952 !include "custom_mibs.txt"
953 !endif
955 SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
956 File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\transum.dll"
958 SetOutPath '$INSTDIR\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan'
959 File "${STAGING_DIR}\plugins\${MAJOR_VERSION}.${MINOR_VERSION}\epan\stats_tree.dll"
961 SectionEnd ; "Plugins / Extensions"
963 Section "-Additional command line tools"
965 SetOutPath $INSTDIR
966 File "${STAGING_DIR}\capinfos.exe"
967 File "${STAGING_DIR}\capinfos.html"
969 File "${STAGING_DIR}\captype.exe"
970 File "${STAGING_DIR}\captype.html"
972 File "${STAGING_DIR}\editcap.exe"
973 File "${STAGING_DIR}\editcap.html"
975 File "${STAGING_DIR}\mergecap.exe"
976 File "${STAGING_DIR}\mergecap.html"
978 !ifdef MMDBRESOLVE_EXE
979 File "${STAGING_DIR}\mmdbresolve.html"
980 File "${STAGING_DIR}\mmdbresolve.exe"
981 !endif
983 File "${STAGING_DIR}\randpkt.exe"
984 File "${STAGING_DIR}\randpkt.html"
986 File "${STAGING_DIR}\rawshark.exe"
987 File "${STAGING_DIR}\rawshark.html"
989 File "${STAGING_DIR}\reordercap.exe"
990 File "${STAGING_DIR}\reordercap.html"
992 File "${STAGING_DIR}\sharkd.exe"
993 ;File "${STAGING_DIR}\sharkd.html"
995 File "${STAGING_DIR}\text2pcap.exe"
996 File "${STAGING_DIR}\text2pcap.html"
998 SectionEnd ; "Tools"
1000 SectionGroup /e "External capture tools (extcap)" SecExtcapGroup
1002 Section "Falcodump" SecFalcodump
1003 ;-------------------------------------------
1004 !insertmacro InstallExtcap "falcodump"
1005 SectionEnd
1006 !insertmacro CheckExtrasFlag "falcodump"
1008 !ifdef LIBSSH_FOUND
1009 Section "Sshdig" SecSshdig
1010 !insertmacro InstallExtcap "sshdig"
1011 SectionEnd
1012 !insertmacro CheckExtrasFlag "sshdig"
1013 !endif
1015 SectionGroupEnd ; "External Capture (extcap)"
1017 Section "-Clear Partial Selected"
1018 !insertmacro ClearSectionFlag ${SecExtcapGroup} ${SF_PSELECTED}
1019 SectionEnd
1021 !ifdef DOC_DIR
1022 Section "Documentation" SecDocumentation
1023 ;-------------------------------------------
1024 SetOutPath "$INSTDIR\Wireshark User's Guide"
1025 File /r "${DOC_DIR}\wsug_html_chunked\*.*"
1027 SetOutPath $INSTDIR
1028 File "${DOC_DIR}\faq.html"
1029 SectionEnd
1030 !endif
1032 Section "-Finally"
1034 !insertmacro UpdateIcons
1036 ; Compute and write the installation directory size
1037 ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
1038 IntFmt $0 "0x%08X" $0
1039 WriteRegDWORD HKEY_LOCAL_MACHINE "${UNINSTALL_PATH}" "EstimatedSize" "$0"
1041 SectionEnd
1043 ; ============================================================================
1044 ; Section macros
1045 ; ============================================================================
1046 !include "Sections.nsh"
1048 ; ============================================================================
1049 ; Uninstall page configuration
1050 ; ============================================================================
1051 ShowUninstDetails show
1053 ; ============================================================================
1054 ; Functions and macros
1055 ; ============================================================================
1057 Function un.Disassociate
1058 Push $R0
1059 !insertmacro PushFileExtensions
1061 Pop $EXTENSION
1062 ${DoUntil} $EXTENSION == ${FILE_EXTENSION_MARKER}
1063 ReadRegStr $R0 HKCR $EXTENSION ""
1064 StrCmp $R0 ${STRATOSHARK_ASSOC} un.Disassociate.doDeregister
1065 Goto un.Disassociate.end
1066 un.Disassociate.doDeregister:
1067 ; The extension is associated with Stratoshark so, we must destroy this!
1068 DeleteRegKey HKCR $EXTENSION
1069 DetailPrint "Deregistered file type: $EXTENSION"
1070 un.Disassociate.end:
1071 Pop $EXTENSION
1072 ${Loop}
1074 Pop $R0
1075 FunctionEnd
1077 Section "-Required"
1078 SectionEnd
1080 !define EXECUTABLE_MARKER "EXECUTABLE_MARKER"
1081 Var EXECUTABLE
1083 Section "Uninstall" un.SecUinstall
1084 ;-------------------------------------------
1086 ; UnInstall for every user
1088 SectionIn 1 2
1089 SetShellVarContext all
1091 !insertmacro IsStratosharkRunning
1093 Push "${EXECUTABLE_MARKER}"
1094 Push "${PROGRAM_NAME}"
1095 Push "capinfos"
1096 Push "captype"
1097 Push "dftest"
1098 Push "dumpcap"
1099 Push "editcap"
1100 Push "mergecap"
1101 Push "randpkt"
1102 Push "rawshark"
1103 Push "reordercap"
1104 Push "sharkd"
1105 Push "text2pcap"
1106 Push "tshark"
1108 !ifdef MMDBRESOLVE_EXE
1109 Push "mmdbresolve"
1110 !endif
1112 Pop $EXECUTABLE
1113 ${DoUntil} $EXECUTABLE == ${EXECUTABLE_MARKER}
1115 ; IsStratosharkRunning should make sure everything is closed down so we *shouldn't* run
1116 ; into any problems here.
1117 Delete "$INSTDIR\$EXECUTABLE.exe"
1118 IfErrors 0 deletionSuccess
1119 MessageBox MB_OK "$EXECUTABLE.exe could not be removed. Is it in use?" /SD IDOK IDOK 0
1120 Abort "$EXECUTABLE.exe could not be removed. Aborting the uninstall process."
1122 deletionSuccess:
1123 Pop $EXECUTABLE
1125 ${Loop}
1128 DeleteRegKey HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PROGRAM_NAME}"
1129 DeleteRegKey HKEY_LOCAL_MACHINE "Software\${PROGRAM_NAME}"
1130 DeleteRegKey HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\App Paths\${PROGRAM_NAME}.exe"
1132 Call un.Disassociate
1134 DeleteRegKey HKCR ${STRATOSHARK_ASSOC}
1135 DeleteRegKey HKCR "${STRATOSHARK_ASSOC}\Shell\open\command"
1136 DeleteRegKey HKCR "${STRATOSHARK_ASSOC}\DefaultIcon"
1138 Delete "$INSTDIR\*.dll"
1139 Delete "$INSTDIR\*.exe"
1140 Delete "$INSTDIR\*.html"
1141 Delete "$INSTDIR\*.qm"
1142 Delete "$INSTDIR\accessible\*.*"
1143 Delete "$INSTDIR\AUTHORS-SHORT"
1144 Delete "$INSTDIR\COPYING*"
1145 Delete "$INSTDIR\audio\*.*"
1146 Delete "$INSTDIR\bearer\*.*"
1147 Delete "$INSTDIR\diameter\*.*"
1148 Delete "$INSTDIR\extcap\falcodump.*"
1149 Delete "$INSTDIR\extcap\sshdig.*"
1150 Delete "$INSTDIR\gpl-2.0-standalone.html"
1151 Delete "$INSTDIR\Acknowledgements.md"
1152 Delete "$INSTDIR\generic\*.*"
1153 Delete "$INSTDIR\help\*.*"
1154 Delete "$INSTDIR\iconengines\*.*"
1155 Delete "$INSTDIR\imageformats\*.*"
1156 Delete "$INSTDIR\mediaservice\*.*"
1157 Delete "$INSTDIR\multimedia\*.*"
1158 Delete "$INSTDIR\networkinformation\*.*"
1159 Delete "$INSTDIR\platforms\*.*"
1160 Delete "$INSTDIR\playlistformats\*.*"
1161 Delete "$INSTDIR\printsupport\*.*"
1162 Delete "$INSTDIR\share\glib-2.0\schemas\*.*"
1163 Delete "$INSTDIR\snmp\*.*"
1164 Delete "$INSTDIR\snmp\mibs\*.*"
1165 Delete "$INSTDIR\styles\translations\*.*"
1166 Delete "$INSTDIR\styles\*.*"
1167 Delete "$INSTDIR\protobuf\*.*"
1168 Delete "$INSTDIR\tls\*.*"
1169 Delete "$INSTDIR\tpncp\*.*"
1170 Delete "$INSTDIR\translations\*.*"
1171 Delete "$INSTDIR\ui\*.*"
1172 Delete "$INSTDIR\wimaxasncp\*.*"
1173 Delete "$INSTDIR\ws.css"
1174 ; previous versions installed these files
1175 Delete "$INSTDIR\*.manifest"
1176 ; previous versions installed this file
1177 Delete "$INSTDIR\AUTHORS-SHORT-FORMAT"
1178 Delete "$INSTDIR\README*"
1179 Delete "$INSTDIR\manuf"
1180 Delete "$INSTDIR\wka"
1181 Delete "$INSTDIR\services"
1182 Delete "$INSTDIR\pdml2html.xsl"
1183 Delete "$INSTDIR\pcrepattern.3.txt"
1184 Delete "$INSTDIR\example_snmp_users_file"
1185 Delete "$INSTDIR\ipmap.html"
1186 Delete "$INSTDIR\radius\*.*"
1187 Delete "$INSTDIR\dtds\*.*"
1188 Delete "$INSTDIR\browser_sslkeylog.lua"
1189 Delete "$INSTDIR\console.lua"
1190 Delete "$INSTDIR\dtd_gen.lua"
1191 Delete "$INSTDIR\init.lua"
1192 Delete "$INSTDIR\release-notes.html"
1194 RMDir "$INSTDIR\accessible"
1195 RMDir "$INSTDIR\audio"
1196 RMDir "$INSTDIR\bearer"
1197 RMDir "$INSTDIR\extcap"
1198 RMDir "$INSTDIR\extcap"
1199 RMDir "$INSTDIR\iconengines"
1200 RMDir "$INSTDIR\imageformats"
1201 RMDir "$INSTDIR\mediaservice"
1202 RMDir "$INSTDIR\multimedia"
1203 RMDir "$INSTDIR\networkinformation"
1204 RMDir "$INSTDIR\platforms"
1205 RMDir "$INSTDIR\playlistformats"
1206 RMDir "$INSTDIR\printsupport"
1207 RMDir "$INSTDIR\styles\translations"
1208 RMDir "$INSTDIR\styles"
1209 RMDir "$SMPROGRAMS\${PROGRAM_NAME}"
1210 RMDir "$INSTDIR\help"
1211 RMDir "$INSTDIR\generic"
1212 RMDir /r "$INSTDIR\Wireshark User's Guide"
1213 RMDir "$INSTDIR\diameter"
1214 RMDir "$INSTDIR\snmp\mibs"
1215 RMDir "$INSTDIR\snmp"
1216 RMDir "$INSTDIR\radius"
1217 RMDir "$INSTDIR\dtds"
1218 RMDir "$INSTDIR\protobuf"
1219 RMDir "$INSTDIR\tls"
1220 RMDir "$INSTDIR\tpncp"
1221 RMDir "$INSTDIR\translations"
1222 RMDir "$INSTDIR\ui"
1223 RMDir "$INSTDIR\wimaxasncp"
1224 RMDir "$INSTDIR"
1226 SectionEnd ; "Uinstall"
1228 Section "Un.Plugins" un.SecPlugins
1229 ;-------------------------------------------
1230 SectionIn 1 2
1231 ;Delete "$INSTDIR\plugins\${VERSION}\*.*"
1232 ;Delete "$INSTDIR\plugins\*.*"
1233 ;RMDir "$INSTDIR\plugins\${VERSION}"
1234 ;RMDir "$INSTDIR\plugins"
1235 RMDir /r "$INSTDIR\plugins"
1236 SectionEnd
1238 Section "Un.Global Profiles" un.SecProfiles
1239 ;-------------------------------------------
1240 SectionIn 1 2
1241 RMDir /r "$INSTDIR\profiles"
1242 SectionEnd
1244 Section "Un.Global Settings" un.SecGlobalSettings
1245 ;-------------------------------------------
1246 SectionIn 1 2
1247 Delete "$INSTDIR\colorfilters"
1248 Delete "$INSTDIR\dfilter_buttons"
1249 Delete "$INSTDIR\dfilters"
1250 Delete "$INSTDIR\smi_modules"
1251 RMDir "$INSTDIR"
1252 SectionEnd
1254 Section /o "Un.Personal Settings" un.SecPersonalSettings
1255 ;-------------------------------------------
1256 SectionIn 2
1257 SetShellVarContext current
1258 Delete "$APPDATA\${PROGRAM_NAME}\*.*"
1259 RMDir "$APPDATA\${PROGRAM_NAME}"
1260 DeleteRegKey HKCU "Software\${PROGRAM_NAME}"
1261 SectionEnd
1263 Section "-Un.Finally"
1264 ;-------------------------------------------
1265 SectionIn 1 2
1267 !insertmacro UpdateIcons
1269 ; this test must be done after all other things uninstalled (e.g. Global Settings)
1270 IfFileExists "$INSTDIR" 0 NoFinalErrorMsg
1271 MessageBox MB_OK "Unable to remove $INSTDIR." /SD IDOK IDOK 0 ; skipped if dir doesn't exist
1272 NoFinalErrorMsg:
1273 SectionEnd
1275 ; Sign our installer and uninstaller during compilation.
1276 !ifdef ENABLE_SIGNED_NSIS
1277 !finalize 'sign-stratoshark.bat "%1"' = 0 ; %1 is replaced by the installer exe to be signed.
1278 !uninstfinalize 'sign-stratoshark.bat "%1"' = 0 ; %1 is replaced by the uninstaller exe to be signed.
1279 !endif
1281 ; ============================================================================
1282 ; PLEASE MAKE SURE, THAT THE DESCRIPTIVE TEXT FITS INTO THE DESCRIPTION FIELD!
1283 ; ============================================================================
1284 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
1285 !ifdef QT_DIR
1286 !insertmacro MUI_DESCRIPTION_TEXT ${SecStratosharkQt} "The main syscall and log analyzer application."
1287 !endif
1288 !insertmacro MUI_DESCRIPTION_TEXT ${SecTShark} "Text based network protocol analyzer."
1290 !insertmacro MUI_DESCRIPTION_TEXT ${SecExtcapGroup} "External Capture Interfaces"
1291 !insertmacro MUI_DESCRIPTION_TEXT ${SecFalcodump} "Provide capture interfaces from Falco plugins."
1292 !ifdef LIBSSH_FOUND
1293 !insertmacro MUI_DESCRIPTION_TEXT ${SecSshdig} "Provide remote capture through SSH. (sysdig)"
1294 !endif
1296 !insertmacro MUI_FUNCTION_DESCRIPTION_END
1298 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
1299 !insertmacro MUI_DESCRIPTION_TEXT ${un.SecUinstall} "Uninstall all ${PROGRAM_NAME} components."
1300 !insertmacro MUI_DESCRIPTION_TEXT ${un.SecPlugins} "Uninstall all Plugins (even from previous ${PROGRAM_NAME} versions)."
1301 !insertmacro MUI_DESCRIPTION_TEXT ${un.SecProfiles} "Uninstall all global configuration profiles."
1302 !insertmacro MUI_DESCRIPTION_TEXT ${un.SecGlobalSettings} "Uninstall global settings like: $INSTDIR\colorfilters"
1303 !insertmacro MUI_DESCRIPTION_TEXT ${un.SecPersonalSettings} "Uninstall personal settings like your preferences file from your profile: $PROFILE."
1304 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
1306 ; ============================================================================
1307 ; Callback functions
1308 ; ============================================================================
1309 !ifdef QT_DIR
1311 Var QT_SELECTED
1313 ; Called from fnc_AdditionalTasksPage_Create via DisplayAdditionalTasksPage.
1314 Function InitAdditionalTasksPage
1315 ; We've created the Additional tasks page. Update our control states
1316 ; before they are shown.
1317 ; We set XXX_STATE -> XxxCheckBox here and go the other direction below.
1318 ${NSD_SetState} $hCtl_AdditionalTasksPage_StartMenuCheckBox $START_MENU_STATE
1319 ${NSD_SetState} $hCtl_AdditionalTasksPage_DesktopIconCheckBox $DESKTOP_ICON_STATE
1320 ${NSD_SetState} $hCtl_AdditionalTasksPage_AssociateExtensionsCheckBox $FILE_ASSOCIATE_STATE
1322 StrCpy $QT_SELECTED 0
1323 ${If} ${SectionIsSelected} ${SecStratosharkQt}
1324 StrCpy $QT_SELECTED 1
1325 ${Endif}
1326 EnableWindow $hCtl_AdditionalTasksPage_CreateShortcutsLabel $QT_SELECTED
1327 EnableWindow $hCtl_AdditionalTasksPage_StartMenuCheckBox $QT_SELECTED
1328 EnableWindow $hCtl_AdditionalTasksPage_DesktopIconCheckBox $QT_SELECTED
1330 EnableWindow $hCtl_AdditionalTasksPage_ExtensionsLabel $QT_SELECTED
1331 EnableWindow $hCtl_AdditionalTasksPage_AssociateExtensionsCheckBox $QT_SELECTED
1332 EnableWindow $hCtl_AdditionalTasksPage_FileExtensionsLabel $QT_SELECTED
1333 FunctionEnd
1335 Function LeaveAdditionalTasksPage
1336 ; We're leaving the Additional tasks page. Get our control states
1337 ; before they're destroyed.
1338 ; We set XxxCheckBox -> XXX_STATE here and go the other direction above.
1339 ${NSD_GetState} $hCtl_AdditionalTasksPage_StartMenuCheckBox $START_MENU_STATE
1340 ${NSD_GetState} $hCtl_AdditionalTasksPage_DesktopIconCheckBox $DESKTOP_ICON_STATE
1341 ${NSD_GetState} $hCtl_AdditionalTasksPage_AssociateExtensionsCheckBox $FILE_ASSOCIATE_STATE
1342 FunctionEnd
1344 !endif ; QT_DIR