2001-04-04 04:50:05 +00:00
;
; ethereal.nsi
;
2004-06-10 10:12:30 +00:00
; $Id: ethereal.nsi,v 1.57 2004/06/10 10:12:30 guy Exp $
2004-02-03 01:06:21 +00:00
!ifdef MAKENSIS_MODERN_UI
; Set the compression mechanism first
SetCompressor lzma
!endif
2001-04-04 04:50:05 +00:00
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
2004-05-14 02:46:38 +00:00
InstType "Ethereal (GTK2 user interface)"
InstType "Ethereal (legacy GTK1 user interface)"
2004-02-18 20:45:54 +00:00
!endif
2004-06-10 10:12:30 +00:00
; Used to refresh the display of file association
!define SHCNE_ASSOCCHANGED 0x08000000
!define SHCNF_IDLIST 0
; Used to add associations between file extensions and Ethereal
!define ETHEREAL_ASSOC "ethereal-file"
2001-04-04 04:50:05 +00:00
; ============================================================================
; Header configuration
; ============================================================================
; The name of the installer
2004-02-06 18:47:45 +00:00
!define PROGRAM_NAME "Ethereal"
Name "${PROGRAM_NAME} ${VERSION}"
2001-04-04 04:50:05 +00:00
; The file to write
2004-01-26 21:12:41 +00:00
OutFile "${DEST}-setup-${VERSION}.exe"
2001-04-04 04:50:05 +00:00
2003-04-09 18:58:37 +00:00
; Icon of installer and uninstaller
2001-04-04 04:50:05 +00:00
Icon "..\..\image\ethereal.ico"
2003-04-09 18:58:37 +00:00
UninstallIcon "..\..\image\ethereal.ico"
2001-04-04 04:50:05 +00:00
2004-02-09 18:23:25 +00:00
; Uninstall stuff (this text isn't used with the MODERN_UI!)
2004-02-06 18:47:45 +00:00
UninstallText "This will uninstall Ethereal.\r\nBefore starting the uninstallation, make sure Ethereal is not running.\r\nClick 'Next' to continue."
2001-04-04 04:50:05 +00:00
2003-04-09 18:58:37 +00:00
XPStyle on
2003-12-26 12:27:47 +00:00
!ifdef MAKENSIS_MODERN_UI
; ============================================================================
; Modern UI
; ============================================================================
; The modern user interface will look much better than the common one.
; However, as the development of the modern UI is still going on, and the script
; syntax changes, you will need exactly that NSIS version, which this script is
; made for. This is the current (December 2003) latest version: V2.0b4
; If you are using a different version, it's not predictable what will happen.
!include "MUI.nsh"
!define MUI_ICON "..\..\image\ethereal.ico"
!define MUI_UNICON "..\..\image\ethereal.ico"
!define MUI_COMPONENTSPAGE_SMALLDESC
2004-02-06 18:47:45 +00:00
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Ethereal.\r\n\r\nBefore starting the installation, make sure Ethereal is not running.\r\n\r\nClick 'Next' to continue."
2003-12-26 12:27:47 +00:00
!define MUI_FINISHPAGE_LINK "Install WinPcap to be able to capture packets from a network!"
!define MUI_FINISHPAGE_LINK_LOCATION "http://winpcap.polito.it"
2004-02-06 18:47:45 +00:00
; show readme doesn't seem to work even with NSIS 2.0rc3
2003-12-26 12:27:47 +00:00
;!define MUI_FINISHPAGE_SHOWREADME "..\..\README.win32"
;!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
; ============================================================================
; MUI Pages
; ============================================================================
!insertmacro MUI_PAGE_WELCOME
2004-01-05 15:27:35 +00:00
!insertmacro MUI_PAGE_LICENSE "..\..\COPYING"
2003-12-26 12:27:47 +00:00
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
; ============================================================================
; MUI Languages
; ============================================================================
!insertmacro MUI_LANGUAGE "English"
!endif ; MAKENSIS_MODERN_UI
2001-04-04 04:50:05 +00:00
; ============================================================================
; License page configuration
; ============================================================================
LicenseText "Ethereal is distributed under the GNU General Public License."
2004-01-05 15:27:35 +00:00
LicenseData "..\..\COPYING"
2001-04-04 04:50:05 +00:00
; ============================================================================
; Component page configuration
; ============================================================================
2001-04-05 05:36:47 +00:00
ComponentText "The following components are available for installation."
2001-04-04 04:50:05 +00:00
2002-04-08 02:18:14 +00:00
; Component check boxes
2003-04-09 18:58:37 +00:00
; Commented out for NSIS v 2.0
; EnabledBitmap "..\..\image\nsis-checked.bmp"
; DisabledBitmap "..\..\image\nsis-unchecked.bmp"
2002-04-08 02:18:14 +00:00
2001-04-04 04:50:05 +00:00
; ============================================================================
; Directory selection page configuration
; ============================================================================
; The text to prompt the user to enter a directory
DirText "Choose a directory in which to install Ethereal."
; The default installation directory
InstallDir $PROGRAMFILES\Ethereal\
; See if this is an upgrade; if so, use the old InstallDir as default
InstallDirRegKey HKEY_LOCAL_MACHINE SOFTWARE\Ethereal "InstallDir"
; ============================================================================
; Install page configuration
; ============================================================================
ShowInstDetails show
2004-06-10 10:12:30 +00:00
; ============================================================================
; Functions and macros
; ============================================================================
!macro UpdateIcons
Push $R0
Push $R1
Push $R2
!define UPDATEICONS_UNIQUE ${__LINE__}
IfFileExists "$SYSDIR\shell32.dll" UpdateIcons.next1_${UPDATEICONS_UNIQUE} UpdateIcons.error1_${UPDATEICONS_UNIQUE}
UpdateIcons.next1_${UPDATEICONS_UNIQUE}:
GetDllVersion "$SYSDIR\shell32.dll" $R0 $R1
IntOp $R2 $R0 / 0x00010000
IntCmp $R2 4 UpdateIcons.next2_${UPDATEICONS_UNIQUE} UpdateIcons.error2_${UPDATEICONS_UNIQUE}
UpdateIcons.next2_${UPDATEICONS_UNIQUE}:
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (${SHCNE_ASSOCCHANGED}, ${SHCNF_IDLIST}, 0, 0)'
Goto UpdateIcons.quit_${UPDATEICONS_UNIQUE}
UpdateIcons.error1_${UPDATEICONS_UNIQUE}:
MessageBox MB_OK|MB_ICONSTOP "Can't find 'shell32.dll' library. Impossible to update icons"
Goto UpdateIcons.quit_${UPDATEICONS_UNIQUE}
UpdateIcons.error2_${UPDATEICONS_UNIQUE}:
MessageBox MB_OK|MB_ICONINFORMATION "You should install the free 'Microsoft Layer for Unicode' to update Ethereal capture file icons"
Goto UpdateIcons.quit_${UPDATEICONS_UNIQUE}
UpdateIcons.quit_${UPDATEICONS_UNIQUE}:
!undef UPDATEICONS_UNIQUE
Pop $R2
Pop $R1
Pop $R0
!macroend
Function Associate
; $R0 should contain the prefix to associate to Ethereal
Push $R1
ReadRegStr $R1 HKCR $R0 ""
StrCmp $R1 "" Associate.doRegister
Goto Associate.end
Associate.doRegister:
;The extension is not associated to any program, we can do the link
WriteRegStr HKCR $R0 "" ${ETHEREAL_ASSOC}
Associate.end:
pop $R1
FunctionEnd
Function un.unlink
; $R0 should contain the prefix to unlink
Push $R1
ReadRegStr $R1 HKCR $R0 ""
StrCmp $R1 ${ETHEREAL_ASSOC} un.unlink.doUnlink
Goto un.unlink.end
un.unlink.doUnlink:
; The extension is associated with Ethereal so, we must destroy this!
DeleteRegKey HKCR $R0
un.unlink.end:
pop $R1
FunctionEnd
2002-08-19 15:48:28 +00:00
2001-04-04 04:50:05 +00:00
; ============================================================================
; Installation execution commands
; ============================================================================
Section "-Required"
;-------------------------------------------
2002-08-19 15:48:28 +00:00
;
; Install for every user
;
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2 RO
!endif
2002-08-19 15:48:28 +00:00
SetShellVarContext all
2001-04-04 04:50:05 +00:00
SetOutPath $INSTDIR
2002-08-19 15:48:28 +00:00
File "..\..\wiretap\wiretap-${WTAP_VERSION}.dll"
2004-05-09 10:03:41 +00:00
!ifdef ENABLE_LIBETHEREAL
File "..\..\epan\libethereal.dll"
!endif
2003-12-22 21:41:40 +00:00
File "${GLIB_DIR}\bin\libglib-2.0-0.dll"
File "${GLIB_DIR}\bin\libgmodule-2.0-0.dll"
File "${GLIB_DIR}\bin\libgobject-2.0-0.dll"
File "${ICONV_DIR}\bin\iconv.dll"
File "${GETTEXT_DIR}\bin\intl.dll"
!ifdef ZLIB_DIR
File "${ZLIB_DIR}\zlib1.dll"
!endif
!ifdef ADNS_DIR
File "${ADNS_DIR}\adns_win32\LIB\adns_dll.dll"
!endif
!ifdef PCRE_DIR
File "${PCRE_DIR}\bin\pcre.dll"
File "${PCRE_DIR}\man\cat3\pcrepattern.3.txt"
!endif
2002-08-20 00:59:42 +00:00
File "..\..\FAQ"
2001-04-04 04:50:05 +00:00
File "..\..\README"
File "..\..\README.win32"
2004-05-21 17:31:16 +00:00
File "..\..\AUTHORS-SHORT"
File "..\..\COPYING"
2001-10-11 01:04:19 +00:00
File "..\..\manuf"
2004-02-18 20:45:54 +00:00
File "..\..\doc\ethereal.html"
File "..\..\doc\ethereal-filter.html"
2002-06-01 22:17:22 +00:00
;
; Install the Diameter DTD and XML files in the "diameter" subdirectory
; of the installation directory.
;
SetOutPath $INSTDIR\diameter
2001-11-01 21:55:08 +00:00
File "..\..\dictionary.dtd"
File "..\..\dictionary.xml"
File "..\..\mobileipv4.xml"
File "..\..\nasreq.xml"
File "..\..\sunping.xml"
2002-06-01 22:17:22 +00:00
SetOutPath $INSTDIR
2001-04-04 04:50:05 +00:00
2004-02-18 20:45:54 +00:00
SetOutPath $INSTDIR\help
File "..\..\help\toc"
File "..\..\help\overview.txt"
File "..\..\help\getting_started.txt"
File "..\..\help\capturing.txt"
File "..\..\help\capture_filters.txt"
File "..\..\help\display_filters.txt"
File "..\..\help\well_known.txt"
File "..\..\help\faq.txt"
2001-04-04 04:50:05 +00:00
; Write the uninstall keys for Windows
2003-12-10 19:05:06 +00:00
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "DisplayVersion" "${VERSION}"
2004-02-18 20:45:54 +00:00
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "DisplayName" "Ethereal ${VERSION}"
2001-04-04 04:50:05 +00:00
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "UninstallString" '"$INSTDIR\uninstall.exe"'
2003-12-16 06:25:56 +00:00
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "Publisher" "The Ethereal developer community, http://www.ethereal.com"
2003-12-19 23:25:05 +00:00
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "HelpLink" "mailto:ethereal-users@ethereal.com"
2003-12-10 19:05:06 +00:00
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "URLInfoAbout" "http://www.ethereal.com"
WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "URLUpdateInfo" "http://www.ethereal.com/distribution/win32/"
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "NoModify" 1
WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "NoRepair" 1
2002-01-04 06:57:10 +00:00
WriteUninstaller "uninstall.exe"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-04-04 04:50:05 +00:00
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR
Section "Ethereal GTK1" SecEtherealGTK1
2001-04-04 04:50:05 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
2004-05-14 02:46:38 +00:00
SectionIn 2 RO
2004-02-18 20:45:54 +00:00
!endif
2001-04-04 04:50:05 +00:00
SetOutPath $INSTDIR
2004-02-18 20:45:54 +00:00
File "..\..\ethereal.exe"
2004-02-06 18:47:45 +00:00
File "${GTK1_DIR}\lib\libgtk-0.dll"
File "${GTK1_DIR}\lib\libgdk-0.dll"
2004-02-18 20:45:54 +00:00
SectionEnd
!endif
!ifdef GTK2_DIR
Section "Ethereal GTK2" SecEtherealGTK2
;-------------------------------------------
!ifdef GTK1_DIR & GTK2_DIR
2004-05-14 02:46:38 +00:00
SectionIn 1 RO
2004-02-18 20:45:54 +00:00
!endif
SetOutPath $INSTDIR
File /oname=ethereal.exe "..\..\ethereal-gtk2.exe"
2004-02-06 18:47:45 +00:00
File "${GTK2_DIR}\bin\libgdk-win32-2.0-0.dll"
File "${GTK2_DIR}\bin\libgdk_pixbuf-2.0-0.dll"
File "${GTK2_DIR}\bin\libgtk-win32-2.0-0.dll"
File "${GTK2_DIR}\bin\libatk-1.0-0.dll"
File "${GTK2_DIR}\bin\libpango-1.0-0.dll"
File "${GTK2_DIR}\bin\libpangowin32-1.0-0.dll"
2003-07-22 22:00:38 +00:00
SetOutPath $INSTDIR\etc\gtk-2.0
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
File "${GTK2_DIR}\etc\gtk-2.0\*.*"
2003-07-22 22:00:38 +00:00
SetOutPath $INSTDIR\etc\pango
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
File "${GTK2_DIR}\etc\pango\pango.*"
SetOutPath $INSTDIR\lib\gtk-2.0\${GTK2_INST_VERSION}.0\loaders
File "${GTK2_DIR}\lib\gtk-2.0\${GTK2_INST_VERSION}.0\loaders\libpixbufloader-*.dll"
SetOutPath $INSTDIR\lib\gtk-2.0\${GTK2_INST_VERSION}.0\immodules
File "${GTK2_DIR}\lib\gtk-2.0\${GTK2_INST_VERSION}.0\immodules\im-*.dll"
SetOutPath $INSTDIR\lib\pango\${PANGO_INST_VERSION}.0\modules
File "${GTK2_DIR}\lib\pango\${PANGO_INST_VERSION}.0\modules\pango-*.dll"
2004-02-18 20:45:54 +00:00
2001-07-12 22:45:23 +00:00
SectionEnd
2004-02-18 20:45:54 +00:00
!endif
2001-04-04 04:50:05 +00:00
2004-02-24 18:51:40 +00:00
!ifdef GTK_WIMP_DIR
Section "GTK-Wimp" SecGTKWimp
;-------------------------------------------
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
SetOutPath $INSTDIR\lib\gtk-2.0\${GTK2_INST_VERSION}.0\engines
2004-02-24 18:51:40 +00:00
File "${GTK_WIMP_DIR}\libwimp.dll"
SetOutPath $INSTDIR\share\themes\Default\gtk-2.0
File "${GTK_WIMP_DIR}\Theme\gtk-2.0\gtkrc"
SectionEnd
!endif
2003-12-26 12:27:47 +00:00
Section "Tethereal" SecTethereal
2001-04-04 04:50:05 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2001-04-04 04:50:05 +00:00
SetOutPath $INSTDIR
File "..\..\tethereal.exe"
File "..\..\doc\tethereal.html"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-04-04 04:50:05 +00:00
2003-12-26 12:27:47 +00:00
Section "Editcap" SecEditcap
2001-04-04 04:50:05 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2001-04-04 04:50:05 +00:00
SetOutPath $INSTDIR
File "..\..\editcap.exe"
File "..\..\doc\editcap.html"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-04-04 04:50:05 +00:00
2003-12-26 12:27:47 +00:00
Section "Text2Pcap" SecText2Pcap
2001-05-22 16:19:45 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2001-05-22 16:19:45 +00:00
SetOutPath $INSTDIR
File "..\..\text2pcap.exe"
File "..\..\doc\text2pcap.html"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-05-22 16:19:45 +00:00
2003-12-26 12:27:47 +00:00
Section "Mergecap" SecMergecap
2001-07-12 22:45:23 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2001-07-12 22:45:23 +00:00
SetOutPath $INSTDIR
File "..\..\mergecap.exe"
File "..\..\doc\mergecap.html"
SectionEnd
2001-05-22 16:19:45 +00:00
2001-04-04 04:50:05 +00:00
2003-12-26 12:27:47 +00:00
Section "Plugins" SecPlugins
2001-04-04 04:50:05 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2002-08-19 15:48:28 +00:00
SetOutPath $INSTDIR\plugins\${VERSION}
2003-10-14 01:18:11 +00:00
File "..\..\plugins\acn\acn.dll"
2003-04-21 21:28:39 +00:00
File "..\..\plugins\artnet\artnet.dll"
2003-10-28 07:02:38 +00:00
File "..\..\plugins\asn1\asn1.dll"
2004-03-25 11:21:07 +00:00
File "..\..\plugins\ciscosm\ciscosm.dll"
2002-07-12 22:52:43 +00:00
File "..\..\plugins\docsis\docsis.dll"
2003-11-17 20:57:14 +00:00
File "..\..\plugins\enttec\enttec.dll"
2002-07-12 22:52:43 +00:00
File "..\..\plugins\giop\coseventcomm.dll"
File "..\..\plugins\giop\cosnaming.dll"
2001-04-04 04:50:05 +00:00
File "..\..\plugins\gryphon\gryphon.dll"
2003-12-18 19:07:14 +00:00
File "..\..\plugins\irda\irda.dll"
2003-08-05 05:09:37 +00:00
File "..\..\plugins\lwres\lwres.dll"
2003-01-28 22:18:06 +00:00
File "..\..\plugins\megaco\megaco.dll"
2001-04-04 04:50:05 +00:00
File "..\..\plugins\mgcp\mgcp.dll"
2003-01-28 22:18:06 +00:00
File "..\..\plugins\pcli\pcli.dll"
2003-11-17 20:57:14 +00:00
File "..\..\plugins\rdm\rdm.dll"
2004-03-25 11:21:07 +00:00
File "..\..\plugins\rlm\rlm.dll"
2003-06-11 09:17:03 +00:00
File "..\..\plugins\rtnet\rtnet.dll"
2004-03-25 11:21:07 +00:00
File "..\..\plugins\rudp\rudp.dll"
2003-12-17 05:16:21 +00:00
File "..\..\plugins\v5ua\v5ua.dll"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-04-04 04:50:05 +00:00
2003-12-26 12:27:47 +00:00
Section "SNMP MIBs" SecMIBs
2002-12-07 21:10:22 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2002-12-07 21:10:22 +00:00
SetOutPath $INSTDIR\snmp\mibs
2003-04-18 04:46:38 +00:00
File "${NET_SNMP_DIR}\mibs\*.txt"
2002-12-07 21:10:22 +00:00
SectionEnd
2003-04-09 18:58:37 +00:00
; SectionDivider
2001-04-05 05:36:47 +00:00
;-------------------------------------------
2003-12-26 12:27:47 +00:00
Section "Start Menu Shortcuts" SecShortcuts
2001-04-04 04:50:05 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2004-02-01 03:35:05 +00:00
SetOutPath $PROFILE
2001-04-04 04:50:05 +00:00
CreateDirectory "$SMPROGRAMS\Ethereal"
2002-09-29 18:16:42 +00:00
Delete "$SMPROGRAMS\Ethereal\Ethereal Web Site.lnk"
WriteINIStr "$SMPROGRAMS\Ethereal\Ethereal Web Site.url" \
2002-08-30 15:32:27 +00:00
"InternetShortcut" "URL" "http://www.ethereal.com/"
2004-02-07 21:47:25 +00:00
CreateShortCut "$SMPROGRAMS\Ethereal\Ethereal.lnk" "$INSTDIR\ethereal.exe"
2003-10-02 22:28:04 +00:00
CreateShortCut "$SMPROGRAMS\Ethereal\Ethereal Manual.lnk" "$INSTDIR\ethereal.html"
2003-11-04 01:08:03 +00:00
CreateShortCut "$SMPROGRAMS\Ethereal\Display Filters Manual.lnk" "$INSTDIR\ethereal-filter.html"
2002-08-30 15:32:27 +00:00
CreateShortCut "$SMPROGRAMS\Ethereal\Ethereal Program Directory.lnk" \
"$INSTDIR"
2004-05-14 02:46:38 +00:00
CreateShortCut "$SMPROGRAMS\Ethereal\Uninstall Ethereal.lnk" "$INSTDIR\uninstall.exe"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-04-05 05:36:47 +00:00
2003-12-26 12:27:47 +00:00
Section "Desktop Icon" SecDesktopIcon
2001-04-05 05:36:47 +00:00
;-------------------------------------------
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
2004-02-07 21:47:25 +00:00
CreateShortCut "$DESKTOP\Ethereal.lnk" "$INSTDIR\ethereal.exe"
2001-07-12 22:45:23 +00:00
SectionEnd
2001-04-04 04:50:05 +00:00
2004-06-10 10:12:30 +00:00
Section "Associate file extensions to Ethereal" SecFileExtensions
;-------------------------------------------
!ifdef GTK1_DIR & GTK2_DIR
SectionIn 1 2
!endif
WriteRegStr HKCR ${ETHEREAL_ASSOC} "" "Ethereal file"
WriteRegStr HKCR "${ETHEREAL_ASSOC}\Shell\open\command" "" '"$INSTDIR\ethereal.exe" "%1"'
WriteRegStr HKCR "${ETHEREAL_ASSOC}\DefaultIcon" "" '"$INSTDIR\ethereal.exe",0'
push $R0
StrCpy $R0 ".5vw"
Call Associate
StrCpy $R0 ".acp"
Call Associate
StrCpy $R0 ".apc"
Call Associate
StrCpy $R0 ".atc"
Call Associate
StrCpy $R0 ".bfr"
Call Associate
StrCpy $R0 ".cap"
Call Associate
StrCpy $R0 ".enc"
Call Associate
StrCpy $R0 ".erf"
Call Associate
StrCpy $R0 ".fdc"
Call Associate
StrCpy $R0 ".pcap"
Call Associate
StrCpy $R0 ".pkt"
Call Associate
StrCpy $R0 ".snoop"
Call Associate
StrCpy $R0 ".syc"
Call Associate
StrCpy $R0 ".tpc"
Call Associate
StrCpy $R0 ".tr1"
Call Associate
StrCpy $R0 ".trace"
Call Associate
StrCpy $R0 ".trc"
Call Associate
StrCpy $R0 ".wpc"
Call Associate
StrCpy $R0 ".wpz"
Call Associate
pop $R0
!insertmacro UpdateIcons
SectionEnd
2001-04-04 04:50:05 +00:00
Section "Uninstall"
;-------------------------------------------
2003-04-09 18:58:37 +00:00
2003-06-03 02:32:56 +00:00
;
; UnInstall for every user
;
SetShellVarContext all
2004-02-03 20:03:40 +00:00
Delete "$INSTDIR\tethereal.exe"
IfErrors 0 NoTetherealErrorMsg
MessageBox MB_OK "Note: Tethereal could not be removed! Probably in use!" IDOK 0 ;skipped if tethereal.exe removed
Abort "Note: tethereal.exe could not be removed! Probably in use! Abort unistall!"
NoTetherealErrorMsg:
2004-02-06 18:47:45 +00:00
Delete "$INSTDIR\ethereal.exe"
2004-02-03 20:03:40 +00:00
IfErrors 0 NoEtherealErrorMsg
MessageBox MB_OK "Note: Ethereal could not be removed! Probably in use!" IDOK 0 ;skipped if ethereal.exe removed
2004-02-06 18:47:45 +00:00
Abort "Note: ethereal.exe could not be removed! Probably in use! Abort uninstall!"
2004-02-03 20:03:40 +00:00
NoEtherealErrorMsg:
DeleteRegKey HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal"
DeleteRegKey HKEY_LOCAL_MACHINE SOFTWARE\Ethereal
2004-06-10 10:12:30 +00:00
push $R0
StrCpy $R0 ".5vw"
Call un.unlink
StrCpy $R0 ".acp"
Call un.unlink
StrCpy $R0 ".apc"
Call un.unlink
StrCpy $R0 ".atc"
Call un.unlink
StrCpy $R0 ".bfr"
Call un.unlink
StrCpy $R0 ".cap"
Call un.unlink
StrCpy $R0 ".enc"
Call un.unlink
StrCpy $R0 ".erf"
Call un.unlink
StrCpy $R0 ".fdc"
Call un.unlink
StrCpy $R0 ".pcap"
Call un.unlink
StrCpy $R0 ".pkt"
Call un.unlink
StrCpy $R0 ".snoop"
Call un.unlink
StrCpy $R0 ".syc"
Call un.unlink
StrCpy $R0 ".tpc"
Call un.unlink
StrCpy $R0 ".tr1"
Call un.unlink
StrCpy $R0 ".trace"
Call un.unlink
StrCpy $R0 ".trc"
Call un.unlink
StrCpy $R0 ".wpc"
Call un.unlink
StrCpy $R0 ".wpz"
Call un.unlink
pop $R0
DeleteRegKey HKCR ${ETHEREAL_ASSOC}
DeleteRegKey HKCR "${ETHEREAL_ASSOC}\Shell\open\command"
DeleteRegKey HKCR "${ETHEREAL_ASSOC}\DefaultIcon"
!insertmacro UpdateIcons
2004-02-06 18:47:45 +00:00
; regardless if we currently installed GTK1 or 2, try to uninstall GTK2 files too
2003-07-22 22:00:38 +00:00
Delete "$INSTDIR\etc\gtk-2.0\*.*"
Delete "$INSTDIR\etc\pango\*.*"
2004-02-24 18:51:40 +00:00
Delete "$INSTDIR\lib\gtk-2.0\2.2.0\engines\*.*"
2003-07-22 22:00:38 +00:00
Delete "$INSTDIR\lib\gtk-2.0\2.2.0\loaders\*.*"
Delete "$INSTDIR\lib\gtk-2.0\2.2.0\immodules\*.*"
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
Delete "$INSTDIR\lib\gtk-2.0\2.4.0\engines\*.*"
Delete "$INSTDIR\lib\gtk-2.0\2.4.0\loaders\*.*"
Delete "$INSTDIR\lib\gtk-2.0\2.4.0\immodules\*.*"
2003-07-22 22:00:38 +00:00
Delete "$INSTDIR\lib\pango\1.2.0\modules\*.*"
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
Delete "$INSTDIR\lib\pango\1.4.0\modules\*.*"
2004-02-24 18:51:40 +00:00
Delete "$INSTDIR\share\themes\Default\gtk-2.0\*.*"
2003-12-26 11:36:43 +00:00
Delete "$INSTDIR\help\*.*"
2002-09-30 14:43:18 +00:00
Delete "$INSTDIR\plugins\${VERSION}\*.*"
Delete "$INSTDIR\plugins\*.*"
Delete "$INSTDIR\diameter\*.*"
2002-12-07 21:10:22 +00:00
Delete "$INSTDIR\snmp\mibs\*.*"
Delete "$INSTDIR\snmp\*.*"
2004-02-18 20:45:54 +00:00
Delete "$INSTDIR\*.exe"
Delete "$INSTDIR\*.dll"
Delete "$INSTDIR\*.html"
2004-05-21 17:31:16 +00:00
Delete "$INSTDIR\COPYING"
Delete "$INSTDIR\AUTHORS-SHORT"
2004-02-18 20:45:54 +00:00
Delete "$INSTDIR\README*"
Delete "$INSTDIR\FAQ"
Delete "$INSTDIR\manuf"
Delete "$INSTDIR\pcrepattern.3.txt"
2001-04-04 04:50:05 +00:00
Delete "$SMPROGRAMS\Ethereal\*.*"
2001-04-05 05:36:47 +00:00
Delete "$DESKTOP\Ethereal.lnk"
2001-04-04 04:50:05 +00:00
2003-07-22 22:00:38 +00:00
RMDir "$INSTDIR\etc\gtk-2.0"
RMDir "$INSTDIR\etc\pango"
RMDir "$INSTDIR\etc"
2004-02-24 18:51:40 +00:00
RMDir "$INSTDIR\lib\gtk-2.0\2.2.0\engines"
2003-07-22 22:00:38 +00:00
RMDir "$INSTDIR\lib\gtk-2.0\2.2.0\loaders"
RMDir "$INSTDIR\lib\gtk-2.0\2.2.0\immodules"
RMDir "$INSTDIR\lib\gtk-2.0\2.2.0"
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
RMDir "$INSTDIR\lib\gtk-2.0\2.4.0\engines"
RMDir "$INSTDIR\lib\gtk-2.0\2.4.0\loaders"
RMDir "$INSTDIR\lib\gtk-2.0\2.4.0\immodules"
RMDir "$INSTDIR\lib\gtk-2.0\2.4.0"
2003-07-22 22:00:38 +00:00
RMDir "$INSTDIR\lib\gtk-2.0"
RMDir "$INSTDIR\lib\pango\1.2.0\modules"
RMDir "$INSTDIR\lib\pango\1.2.0"
From Lars Roland: define an "installation" version of GTK+ 2.x and Pango
in "config.nmake", and use that in the NSIS script when generating the
NSIS installer, so it puts GTK+ and Pango in the appropriate
subdirectories. Also, when uninstalling, remove both of the sets of
subdirectories.
As per his suggestion, get rid of the "GTK1_VERSION" and "GTK2_VERSION"
macros, and just directly insert the values where those macros were used
- "GTK1_VERSION" wasn't used at all, and "GTK2_VERSION" was only used
immediately below where it was defined, and stuff elsewhere, such as in
the NSIS script, didn't use them and would break if you changed them
anyway.
svn path=/trunk/; revision=10976
2004-05-23 22:21:30 +00:00
RMDir "$INSTDIR\lib\pango\1.4.0\modules"
RMDir "$INSTDIR\lib\pango\1.4.0"
2003-07-22 22:00:38 +00:00
RMDir "$INSTDIR\lib\pango"
RMDir "$INSTDIR\lib"
2004-02-24 18:51:40 +00:00
RMDir "$INSTDIR\share\themes\Default\gtk-2.0"
RMDir "$INSTDIR\share\themes\Default"
RMDir "$INSTDIR\share\themes"
RMDir "$INSTDIR\share"
2001-04-04 04:50:05 +00:00
RMDir "$SMPROGRAMS\Ethereal"
2003-12-26 11:36:43 +00:00
RMDir "$INSTDIR\help"
2002-08-19 15:48:28 +00:00
RMDir "$INSTDIR\plugins\${VERSION}"
2001-04-04 04:50:05 +00:00
RMDir "$INSTDIR\plugins"
2002-09-30 14:43:18 +00:00
RMDir "$INSTDIR\diameter"
2002-12-07 21:10:22 +00:00
RMDir "$INSTDIR\snmp\mibs"
RMDir "$INSTDIR\snmp"
2001-04-04 04:50:05 +00:00
RMDir "$INSTDIR"
2004-02-03 20:03:40 +00:00
IfFileExists "$INSTDIR" 0 NoFinalErrorMsg
MessageBox MB_OK "Note: $INSTDIR could not be removed!" IDOK 0 ; skipped if file doesn't exist
NoFinalErrorMsg:
2002-01-04 06:57:10 +00:00
SectionEnd
2003-12-26 12:27:47 +00:00
!ifdef MAKENSIS_MODERN_UI
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
2004-02-18 20:45:54 +00:00
!ifdef GTK1_DIR
!insertmacro MUI_DESCRIPTION_TEXT ${SecEtherealGTK1} "${PROGRAM_NAME} is a GUI network protocol analyzer."
!endif
!ifdef GTK2_DIR
!insertmacro MUI_DESCRIPTION_TEXT ${SecEtherealGTK2} "${PROGRAM_NAME} is a GUI network protocol analyzer (using the modern GTK2 GUI toolkit)."
!endif
2004-03-22 22:37:41 +00:00
!ifdef GTK_WIMP_DIR
2004-02-24 18:51:40 +00:00
!insertmacro MUI_DESCRIPTION_TEXT ${SecGTKWimp} "GTKWimp is the GTK2 windows impersonator (native Win32 look and feel)."
2004-03-22 22:37:41 +00:00
!endif
2003-12-26 12:27:47 +00:00
!insertmacro MUI_DESCRIPTION_TEXT ${SecTethereal} "Tethereal is a network protocol analyzer."
!insertmacro MUI_DESCRIPTION_TEXT ${SecEditCap} "Editcap is a program that reads a capture file and writes some or all of the packets into another capture file."
!insertmacro MUI_DESCRIPTION_TEXT ${SecText2Pcap} "Text2pcap is a program that reads in an ASCII hex dump and writes the data into a libpcap-style capture file."
!insertmacro MUI_DESCRIPTION_TEXT ${SecMergecap} "Mergecap is a program that combines multiple saved capture files into a single output file."
!insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins} "Plugins with some extended dissections."
!insertmacro MUI_DESCRIPTION_TEXT ${SecMIBs} "SNMP MIBs for better SNMP dissection."
!insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Start menu shortcuts."
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopIcon} "Ethereal desktop icon."
2004-06-10 10:12:30 +00:00
!insertmacro MUI_DESCRIPTION_TEXT ${SecFileExtensions} "Associate standard network trace files to ${PROGRAM_NAME}"
2003-12-26 12:27:47 +00:00
!insertmacro MUI_FUNCTION_DESCRIPTION_END
!endif ; MAKENSIS_MODERN_UI
2004-06-10 10:12:30 +00:00
; ============================================================================
; Callback functions
; ============================================================================
Function .onSelChange
Push $0
!ifdef GTK1_DIR
SectionGetFlags ${SecEtherealGTK1} $0
IntOp $0 $0 & 1
IntCmp $0 0 onSelChange.unselect
Goto onSelChange.end
!endif
!ifdef GTK2_DIR
SectionGetFlags ${SecEtherealGTK2} $0
IntOp $0 $0 & 1
IntCmp $0 0 onSelChange.unselect
Goto onSelChange.end
!endif
onSelChange.unselect:
SectionGetFlags ${SecFileExtensions} $0
IntOp $0 $0 & 0xFFFFFFFE
SectionSetFlags ${SecFileExtensions} $0
onSelChange.end:
Pop $0
FunctionEnd