2006-09-23 02:18:18 +00:00
;tor.nsi - A basic win32 installer for Tor
; Originally written by J Doe.
; See LICENSE for licencing information
;-----------------------------------------
;
!include " MUI.nsh "
2006-10-09 02:10:00 +00:00
!define VERSION " 0.1.2.2-alpha "
2006-09-23 02:18:18 +00:00
!define INSTALLER " tor-${VERSION}-win32.exe "
!define WEBSITE " http://tor.eff.org/ "
2006-10-08 20:36:31 +00:00
!define LICENSE " LICENSE "
2006-10-20 00:25:03 +00:00
;BIN is where it expects to find tor.exe, tor-resolve.exe, libcrypto.a and libssl.a
2006-09-23 02:18:18 +00:00
!define BIN " ..\bin "
SetCompressor lzma
OutFile ${INSTALLER}
InstallDir $PROGRAMFILES \ Tor
SetOverWrite ifnewer
Name " Tor "
Caption " Tor ${VERSION} Setup "
BrandingText " The Onion Router "
CRCCheck on
2006-10-09 01:52:30 +00:00
XPStyle on
2006-10-09 02:10:00 +00:00
VIProductVersion " ${VERSION} "
VIAddVersionKey " ProductName " " The Onion Router: Tor "
VIAddVersionKey " Comments " " http://tor.eff.org "
VIAddVersionKey " LegalTrademarks " " Three line BSD "
VIAddVersionKey " LegalCopyright " " <EFBFBD> 2004-2006, Roger Dingledine, Nick Mathewson"
VIAddVersionKey " FileDescription " " Tor is an implementation of Onion Routing. You can read more at http://tor.eff.org/ "
VIAddVersionKey " FileVersion " " ${VERSION} "
2006-09-23 02:18:18 +00:00
!define MUI_WELCOMEPAGE_TITLE " Welcome to the Tor ${VERSION} Setup Wizard "
!define MUI_WELCOMEPAGE_TEXT " This wizard will guide you through the installation of Tor ${VERSION}.\r\n\r\nIf you have previously installed Tor and it is currently running, please exit Tor first before continuing this installation.\r\n\r\n$_CLICK "
!define MUI_ABORTWARNING
!define MUI_ICON " ${NSISDIR} \Contrib\Graphics\Icons\win-install.ico "
!define MUI_UNICON " ${NSISDIR} \Contrib\Graphics\Icons\win-uninstall.ico "
!define MUI_HEADERIMAGE_BITMAP " ${NSISDIR} \Contrib\Graphics\Header\win.bmp "
!define MUI_HEADERIMAGE
!define MUI_FINISHPAGE_RUN " $INSTDIR \tor.exe "
!define MUI_FINISHPAGE_LINK " Visit the Tor website for the latest updates. "
!define MUI_FINISHPAGE_LINK_LOCATION ${WEBSITE}
!insertmacro MUI_PAGE_WELCOME
; There's no point in having a clickthrough license: Our license adds
; certain rights, but doesn't remove them.
; !insertmacro MUI_PAGE_LICENSE "${LICENSE}"
!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
!insertmacro MUI_LANGUAGE " English "
Var configdir
Var configfile
;Sections
;--------
Section " Tor " Tor
;Files that have to be installed for tor to run and that the user
;cannot choose not to install
SectionIn RO
SetOutPath $INSTDIR
File " ${BIN}\tor.exe "
2006-10-08 20:36:31 +00:00
File " ${BIN}\tor-resolve.exe "
2006-10-09 01:52:30 +00:00
File " ${BIN}\tor.ico "
2006-09-23 02:18:18 +00:00
WriteIniStr " $INSTDIR \Tor Website.url " " InternetShortcut " " URL " ${WEBSITE}
StrCpy $configfile " torrc "
StrCpy $configdir $APPDATA \ Tor
; ;If $APPDATA isn't valid here (Early win95 releases with no updated
; ; shfolder.dll) then we put it in the program directory instead.
; StrCmp $APPDATA "" "" +2
; StrCpy $configdir $INSTDIR
SetOutPath $configdir
;If there's already a torrc config file, ask if they want to
;overwrite it with the new one.
IfFileExists " $configdir \torrc " " " endiftorrc
MessageBox MB_ICONQUESTION | MB_YESNO " You already have a Tor config file.$\r$\nDo you want to overwrite it with the default sample config file? " IDNO yesreplace
Delete $configdir \ torrc
Goto endiftorrc
yesreplace :
StrCpy $configfile " torrc.sample "
endiftorrc :
File /oname = $configfile " ..\src\config\torrc.sample "
SectionEnd
2006-10-17 02:17:20 +00:00
Section " OpenSSL 0.9.8d " OpenSSL
2006-09-23 02:18:18 +00:00
SetOutPath $INSTDIR
File " ${BIN}\libcrypto.a "
File " ${BIN}\libssl.a "
SectionEnd
Section " Documents " Docs
SetOutPath " $INSTDIR \Documents "
2006-10-08 20:36:31 +00:00
;File "doc\FAQ"
2006-09-23 02:18:18 +00:00
File " ..\doc\HACKING "
File " ..\doc\control-spec.txt "
File " ..\doc\dir-spec.txt "
File " ..\doc\rend-spec.txt "
File " ..\doc\socks-extensions.txt "
File " ..\doc\version-spec.txt "
;
; WEBSITE-FILES-HERE
;
File " ..\doc\tor-resolve.html "
File " ..\doc\tor-reference.html "
;
File " ..\doc\design-paper\tor-design.pdf "
;
File " ..\README "
File " ..\AUTHORS "
File " ..\ChangeLog "
File " ..\LICENSE "
SectionEnd
2006-10-18 03:31:13 +00:00
Section " TorButton for FireFox " Torbutton
SetOutPath $INSTDIR
File " ${BIN}\torbutton-1.0.4-fx+tb.xpi "
ReadRegStr $1 HKLM " SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe " " Path "
2006-10-20 00:25:03 +00:00
StrCmp $1 " " + 2 0 ; if Path is empty or null, then skip to an error, otherwise proceed
Exec '"$1firefox.exe" -install-global-extension "$INSTDIR\torbutton-1.0.4-fx+tb.xpi"'
DetailPrint " Torbutton installed "
2006-10-18 03:31:13 +00:00
Goto + 2
MessageBox MB_OK | MB_ICONSTOP " FireFox wasn't found on your system. Not installing Torbutton. "
2006-10-20 00:25:03 +00:00
DetailPrint " Firefox NOT found. "
2006-10-18 03:31:13 +00:00
SectionEnd
2006-09-23 02:18:18 +00:00
SubSection /e " Shortcuts " Shortcuts
Section " Start Menu " StartMenu
SetOutPath $INSTDIR
IfFileExists " $SMPROGRAMS \Tor\*.* " " " + 2
RMDir /r " $SMPROGRAMS \Tor "
CreateDirectory " $SMPROGRAMS \Tor "
2006-10-09 01:52:30 +00:00
CreateShortCut " $SMPROGRAMS \Tor\Tor.lnk " " $INSTDIR \tor.exe " " " " $INSTDIR \tor.ico "
2006-09-23 02:18:18 +00:00
CreateShortCut " $SMPROGRAMS \Tor\Torrc.lnk " " Notepad.exe " " $configdir \torrc "
CreateShortCut " $SMPROGRAMS \Tor\Tor Website.lnk " " $INSTDIR \Tor Website.url "
CreateShortCut " $SMPROGRAMS \Tor\Uninstall.lnk " " $INSTDIR \Uninstall.exe "
IfFileExists " $INSTDIR \Documents\*.* " " " endifdocs
CreateDirectory " $SMPROGRAMS \Tor\Documents "
CreateShortCut " $SMPROGRAMS \Tor\Documents\Tor Manual.lnk " " $INSTDIR \Documents\tor-doc.html "
CreateShortCut " $SMPROGRAMS \Tor\Documents\Tor Documentation.lnk " " $INSTDIR \Documents "
CreateShortCut " $SMPROGRAMS \Tor\Documents\Tor Specification.lnk " " $INSTDIR \Documents\tor-spec.txt "
endifdocs :
SectionEnd
Section " Desktop " Desktop
SetOutPath $INSTDIR
2006-10-09 01:52:30 +00:00
CreateShortCut " $DESKTOP \Tor.lnk " " $INSTDIR \tor.exe " " " " $INSTDIR \tor.ico "
2006-09-23 02:18:18 +00:00
SectionEnd
Section /o " Run at startup " Startup
SetOutPath $INSTDIR
2006-10-09 01:52:30 +00:00
CreateShortCut " $SMSTARTUP \Tor.lnk " " $INSTDIR \tor.exe " " " " $INSTDIR \tor.ico " " " SW_SHOWMINIMIZED
2006-09-23 02:18:18 +00:00
SectionEnd
SubSectionEnd
Section " Uninstall "
Delete " $DESKTOP \Tor.lnk "
Delete " $INSTDIR \libcrypto.a "
Delete " $INSTDIR \libssl.a "
Delete " $INSTDIR \tor.exe "
2006-10-08 20:36:31 +00:00
Delete " $INSTDIR \tor-resolve.exe "
2006-09-23 02:18:18 +00:00
Delete " $INSTDIR \Tor Website.url "
Delete " $INSTDIR \torrc "
Delete " $INSTDIR \torrc.sample "
2006-10-09 01:52:30 +00:00
Delete " $INSTDIR \tor.ico "
2006-09-23 02:18:18 +00:00
StrCmp $configdir $INSTDIR + 2 " "
RMDir /r $configdir
Delete " $INSTDIR \Uninstall.exe "
RMDir /r " $INSTDIR \Documents "
RMDir $INSTDIR
RMDir /r " $SMPROGRAMS \Tor "
2006-10-08 18:50:52 +00:00
RMDir /r " $APPDATA \Tor "
2006-09-23 02:18:18 +00:00
Delete " $SMSTARTUP \Tor.lnk "
DeleteRegKey HKLM " SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Tor "
SectionEnd
Section - End
WriteUninstaller " $INSTDIR \Uninstall.exe "
;The registry entries simply add the Tor uninstaller to the Windows
;uninstall list.
WriteRegStr HKLM " Software\Microsoft\Windows\CurrentVersion\Uninstall\Tor " " DisplayName " " Tor (remove only) "
WriteRegStr HKLM " Software\Microsoft\Windows\CurrentVersion\Uninstall\Tor " " UninstallString " '"$INSTDIR\Uninstall.exe"'
SectionEnd
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Tor} " The core executable and config files needed for Tor to run. "
!insertmacro MUI_DESCRIPTION_TEXT ${OpenSSL} " OpenSSL libraries required by Tor. "
!insertmacro MUI_DESCRIPTION_TEXT ${Docs} " Documentation about Tor. "
!insertmacro MUI_DESCRIPTION_TEXT ${ShortCuts} " Shortcuts to easily start Tor "
!insertmacro MUI_DESCRIPTION_TEXT ${StartMenu} " Shortcuts to access Tor and it's documentation from the Start Menu "
!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} " A shortcut to start Tor from the desktop "
!insertmacro MUI_DESCRIPTION_TEXT ${Startup} " Launches Tor automatically at startup in a minimized window "
!insertmacro MUI_FUNCTION_DESCRIPTION_END