mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
updates from steve topletz
svn:r12803
This commit is contained in:
parent
408a4fa9b4
commit
7e327380a9
@ -1,23 +1,26 @@
|
||||
;tor.nsi - A basic win32 installer for Tor
|
||||
; Originally written by J Doe.
|
||||
; Modified by Steve Topletz
|
||||
; See LICENSE for licensing information
|
||||
;-----------------------------------------
|
||||
;
|
||||
!include "MUI.nsh"
|
||||
!include "LogicLib.nsh"
|
||||
!include "FileFunc.nsh"
|
||||
!insertmacro GetParameters
|
||||
|
||||
!define VERSION "0.2.0.12-alpha-dev"
|
||||
!define INSTALLER "tor-${VERSION}-win32.exe"
|
||||
!define WEBSITE "https://www.torproject.org/"
|
||||
|
||||
!define LICENSE "LICENSE"
|
||||
;BIN is where it expects to find tor.exe and tor-resolve.exe
|
||||
!define BIN "..\bin"
|
||||
!define BIN "..\bin" ;BIN is where it expects to find tor.exe, tor-resolve.exe, libcrypto.a and libssl.a
|
||||
|
||||
SetCompressor /SOLID lzma
|
||||
|
||||
SetCompressor /SOLID LZMA ;Tighter compression
|
||||
RequestExecutionLevel user ;Updated for Vista compatibility
|
||||
OutFile ${INSTALLER}
|
||||
InstallDir $PROGRAMFILES\Tor
|
||||
SetOverWrite ifnewer
|
||||
|
||||
Name "Tor"
|
||||
Caption "Tor ${VERSION} Setup"
|
||||
BrandingText "The Onion Router"
|
||||
@ -31,13 +34,12 @@ VIAddVersionKey "LegalCopyright" "
|
||||
VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
|
||||
VIAddVersionKey "FileVersion" "${VERSION}"
|
||||
|
||||
!define MUI_WELCOMEPAGE_TITLE "Welcome to the Tor ${VERSION} Setup Wizard"
|
||||
!define MUI_WELCOMEPAGE_TITLE "Welcome to the Tor 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}
|
||||
@ -56,8 +58,12 @@ VIAddVersionKey "FileVersion" "${VERSION}"
|
||||
!insertmacro MUI_UNPAGE_FINISH
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
Var configdir
|
||||
Var configfile
|
||||
Var CONFIGDIR
|
||||
Var CONFIGFILE
|
||||
|
||||
Function .onInit
|
||||
Call ParseCmdLine
|
||||
FunctionEnd
|
||||
|
||||
;Sections
|
||||
;--------
|
||||
@ -65,89 +71,48 @@ Var configfile
|
||||
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"
|
||||
File "${BIN}\tor-resolve.exe"
|
||||
File "${BIN}\tor.ico"
|
||||
WriteIniStr "$INSTDIR\Tor Website.url" "InternetShortcut" "URL" ${WEBSITE}
|
||||
SectionIn RO
|
||||
SetOutPath $INSTDIR
|
||||
Call ExtractBinaries
|
||||
Call ExtractIcon
|
||||
WriteINIStr "$INSTDIR\Tor Website.url" "InternetShortcut" "URL" ${WEBSITE}
|
||||
|
||||
StrCpy $configfile "torrc"
|
||||
StrCpy $configdir $APPDATA\Tor
|
||||
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"
|
||||
; StrCpy $CONFIGDIR $INSTDIR
|
||||
SetOutPath $CONFIGDIR
|
||||
;If there's already a torrc config file, ask if they want to
|
||||
;overwrite it with the new one.
|
||||
${If} ${FileExists} "$CONFIGDIR\torrc"
|
||||
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?" IDYES Yes IDNO No
|
||||
Yes:
|
||||
Delete $CONFIGDIR\torrc
|
||||
Goto Next
|
||||
No:
|
||||
StrCpy $CONFIGFILE "torrc.sample"
|
||||
Next:
|
||||
${EndIf}
|
||||
File /oname=$CONFIGFILE "..\src\config\torrc.sample"
|
||||
SectionEnd
|
||||
|
||||
Section "Documents" Docs
|
||||
SetOutPath "$INSTDIR\Documents"
|
||||
;File "doc\FAQ"
|
||||
File "..\doc\HACKING"
|
||||
File "..\doc\spec\address-spec.txt"
|
||||
File "..\doc\spec\control-spec.txt"
|
||||
File "..\doc\spec\control-spec-v0.txt"
|
||||
File "..\doc\spec\dir-spec.txt"
|
||||
File "..\doc\spec\dir-spec-v1.txt"
|
||||
File "..\doc\spec\path-spec.txt"
|
||||
File "..\doc\spec\rend-spec.txt"
|
||||
File "..\doc\spec\socks-extensions.txt"
|
||||
File "..\doc\spec\tor-spec.txt"
|
||||
File "..\doc\spec\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"
|
||||
Call ExtractDocuments
|
||||
SectionEnd
|
||||
|
||||
;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"
|
||||
; 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"
|
||||
; Goto +2
|
||||
; MessageBox MB_OK|MB_ICONSTOP "FireFox wasn't found on your system. Not installing Torbutton."
|
||||
; DetailPrint "Firefox NOT found."
|
||||
;SectionEnd
|
||||
|
||||
SubSection /e "Shortcuts" Shortcuts
|
||||
|
||||
Section "Start Menu" StartMenu
|
||||
SetOutPath $INSTDIR
|
||||
IfFileExists "$SMPROGRAMS\Tor\*.*" "" +2
|
||||
RMDir /r "$SMPROGRAMS\Tor"
|
||||
CreateDirectory "$SMPROGRAMS\Tor"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico"
|
||||
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-reference.html"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Documentation.lnk" "$INSTDIR\Documents"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Specification.lnk" "$INSTDIR\Documents\tor-spec.txt"
|
||||
SetOutPath $INSTDIR
|
||||
${If} ${FileExists} "$SMPROGRAMS\Tor\*.*"
|
||||
RMDir /r "$SMPROGRAMS\Tor"
|
||||
${EndIf}
|
||||
Call CreateTorLinks
|
||||
${If} ${FileExists} "$INSTDIR\Documents\*.*"
|
||||
Call CreateDocLinks
|
||||
${EndIf}
|
||||
endifdocs:
|
||||
SectionEnd
|
||||
|
||||
@ -164,24 +129,7 @@ SectionEnd
|
||||
SubSectionEnd
|
||||
|
||||
Section "Uninstall"
|
||||
Delete "$DESKTOP\Tor.lnk"
|
||||
Delete "$INSTDIR\libcrypto.a"
|
||||
Delete "$INSTDIR\libssl.a"
|
||||
Delete "$INSTDIR\tor.exe"
|
||||
Delete "$INSTDIR\tor-resolve.exe"
|
||||
Delete "$INSTDIR\Tor Website.url"
|
||||
Delete "$INSTDIR\torrc"
|
||||
Delete "$INSTDIR\torrc.sample"
|
||||
Delete "$INSTDIR\tor.ico"
|
||||
StrCmp $configdir $INSTDIR +2 ""
|
||||
RMDir /r $configdir
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
RMDir /r "$INSTDIR\Documents"
|
||||
RMDir $INSTDIR
|
||||
RMDir /r "$SMPROGRAMS\Tor"
|
||||
RMDir /r "$APPDATA\Tor"
|
||||
Delete "$SMSTARTUP\Tor.lnk"
|
||||
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Tor"
|
||||
Call un.InstallPackage
|
||||
SectionEnd
|
||||
|
||||
Section -End
|
||||
@ -193,11 +141,127 @@ Section -End
|
||||
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 ${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_DESCRIPTION_TEXT ${Tor} "The core executable and config files needed for Tor to run."
|
||||
!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
|
||||
|
||||
;####################Functions#########################
|
||||
|
||||
Function ExtractBinaries
|
||||
File "${BIN}\tor.exe"
|
||||
File "${BIN}\tor-resolve.exe"
|
||||
FunctionEnd
|
||||
|
||||
Function ExtractIcon
|
||||
File "${BIN}\tor.ico"
|
||||
FunctionEnd
|
||||
|
||||
Function ExtractSpecs
|
||||
;File "doc\FAQ"
|
||||
File "..\doc\HACKING"
|
||||
File "..\doc\spec\address-spec.txt"
|
||||
File "..\doc\spec\control-spec.txt"
|
||||
File "..\doc\spec\control-spec-v0.txt"
|
||||
File "..\doc\spec\dir-spec.txt"
|
||||
File "..\doc\spec\dir-spec-v1.txt"
|
||||
File "..\doc\spec\path-spec.txt"
|
||||
File "..\doc\spec\rend-spec.txt"
|
||||
File "..\doc\spec\socks-extensions.txt"
|
||||
File "..\doc\spec\tor-spec.txt"
|
||||
File "..\doc\spec\version-spec.txt"
|
||||
FunctionEnd
|
||||
|
||||
Function ExtractHTML
|
||||
File "..\doc\tor-resolve.html"
|
||||
File "..\doc\tor-reference.html"
|
||||
FunctionEnd
|
||||
|
||||
Function ExtractDesignDocs
|
||||
File "..\doc\design-paper\tor-design.pdf"
|
||||
FunctionEnd
|
||||
|
||||
Function ExtractReleaseDocs
|
||||
File "..\README"
|
||||
File "..\AUTHORS"
|
||||
File "..\ChangeLog"
|
||||
File "..\LICENSE"
|
||||
FunctionEnd
|
||||
|
||||
Function ExtractDocuments
|
||||
SetOutPath "$INSTDIR\Documents"
|
||||
Call ExtractSpecs
|
||||
Call ExtractHTML
|
||||
Call ExtractDesignDocs
|
||||
Call ExtractReleaseDocs
|
||||
FunctionEnd
|
||||
|
||||
Function un.InstallFiles
|
||||
Delete "$DESKTOP\Tor.lnk"
|
||||
Delete "$INSTDIR\libcrypto.a"
|
||||
Delete "$INSTDIR\libssl.a"
|
||||
Delete "$INSTDIR\tor.exe"
|
||||
Delete "$INSTDIR\tor-resolve.exe"
|
||||
Delete "$INSTDIR\Tor Website.url"
|
||||
Delete "$INSTDIR\torrc"
|
||||
Delete "$INSTDIR\torrc.sample"
|
||||
Delete "$INSTDIR\tor.ico"
|
||||
Delete "$SMSTARTUP\Tor.lnk"
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
FunctionEnd
|
||||
|
||||
Function un.InstallDirectories
|
||||
${If} $CONFIGDIR == $INSTDIR
|
||||
RMDir /r $CONFIGDIR
|
||||
${EndIf}
|
||||
RMDir /r "$INSTDIR\Documents"
|
||||
RMDir $INSTDIR
|
||||
RMDir /r "$SMPROGRAMS\Tor"
|
||||
RMDir /r "$APPDATA\Tor"
|
||||
FunctionEnd
|
||||
|
||||
Function un.WriteRegistry
|
||||
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Tor"
|
||||
FunctionEnd
|
||||
|
||||
Function un.InstallPackage
|
||||
Call un.InstallFiles
|
||||
Call un.InstallDirectories
|
||||
Call un.WriteRegistry
|
||||
FunctionEnd
|
||||
|
||||
Function CreateTorLinks
|
||||
CreateDirectory "$SMPROGRAMS\Tor"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico"
|
||||
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"
|
||||
FunctionEnd
|
||||
|
||||
Function CreateDocLinks
|
||||
CreateDirectory "$SMPROGRAMS\Tor\Documents"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Manual.lnk" "$INSTDIR\Documents\tor-reference.html"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Documentation.lnk" "$INSTDIR\Documents"
|
||||
CreateShortCut "$SMPROGRAMS\Tor\Documents\Tor Specification.lnk" "$INSTDIR\Documents\tor-spec.txt"
|
||||
FunctionEnd
|
||||
|
||||
Function ParseCmdLine
|
||||
${GetParameters} $1
|
||||
${If} $1 == "-x" ;Extract All Files
|
||||
StrCpy $INSTDIR $EXEDIR
|
||||
Call ExtractBinaries
|
||||
Call ExtractDocuments
|
||||
Quit
|
||||
${ElseIf} $1 == "-b" ;Extract Binaries Only
|
||||
StrCpy $INSTDIR $EXEDIR
|
||||
Call ExtractBinaries
|
||||
Quit
|
||||
${ElseIf} $1 != ""
|
||||
MessageBox MB_OK|MB_TOPMOST `${Installer} [-x|-b]$\r$\n$\r$\n -x Extract all files$\r$\n -b Extract binary files only`
|
||||
Quit
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user