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
|
;tor.nsi - A basic win32 installer for Tor
|
||||||
; Originally written by J Doe.
|
; Originally written by J Doe.
|
||||||
|
; Modified by Steve Topletz
|
||||||
; See LICENSE for licensing information
|
; See LICENSE for licensing information
|
||||||
;-----------------------------------------
|
;-----------------------------------------
|
||||||
;
|
;
|
||||||
!include "MUI.nsh"
|
!include "MUI.nsh"
|
||||||
|
!include "LogicLib.nsh"
|
||||||
|
!include "FileFunc.nsh"
|
||||||
|
!insertmacro GetParameters
|
||||||
|
|
||||||
!define VERSION "0.2.0.12-alpha-dev"
|
!define VERSION "0.2.0.12-alpha-dev"
|
||||||
!define INSTALLER "tor-${VERSION}-win32.exe"
|
!define INSTALLER "tor-${VERSION}-win32.exe"
|
||||||
!define WEBSITE "https://www.torproject.org/"
|
!define WEBSITE "https://www.torproject.org/"
|
||||||
|
|
||||||
!define LICENSE "LICENSE"
|
!define LICENSE "LICENSE"
|
||||||
;BIN is where it expects to find tor.exe and tor-resolve.exe
|
!define BIN "..\bin" ;BIN is where it expects to find tor.exe, tor-resolve.exe, libcrypto.a and libssl.a
|
||||||
!define BIN "..\bin"
|
|
||||||
|
|
||||||
SetCompressor /SOLID lzma
|
|
||||||
|
SetCompressor /SOLID LZMA ;Tighter compression
|
||||||
|
RequestExecutionLevel user ;Updated for Vista compatibility
|
||||||
OutFile ${INSTALLER}
|
OutFile ${INSTALLER}
|
||||||
InstallDir $PROGRAMFILES\Tor
|
InstallDir $PROGRAMFILES\Tor
|
||||||
SetOverWrite ifnewer
|
SetOverWrite ifnewer
|
||||||
|
|
||||||
Name "Tor"
|
Name "Tor"
|
||||||
Caption "Tor ${VERSION} Setup"
|
Caption "Tor ${VERSION} Setup"
|
||||||
BrandingText "The Onion Router"
|
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 "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
|
||||||
VIAddVersionKey "FileVersion" "${VERSION}"
|
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_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_ABORTWARNING
|
||||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico"
|
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico"
|
||||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico"
|
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico"
|
||||||
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
|
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
|
||||||
!define MUI_HEADERIMAGE
|
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\tor.exe"
|
!define MUI_FINISHPAGE_RUN "$INSTDIR\tor.exe"
|
||||||
!define MUI_FINISHPAGE_LINK "Visit the Tor website for the latest updates."
|
!define MUI_FINISHPAGE_LINK "Visit the Tor website for the latest updates."
|
||||||
!define MUI_FINISHPAGE_LINK_LOCATION ${WEBSITE}
|
!define MUI_FINISHPAGE_LINK_LOCATION ${WEBSITE}
|
||||||
@ -56,8 +58,12 @@ VIAddVersionKey "FileVersion" "${VERSION}"
|
|||||||
!insertmacro MUI_UNPAGE_FINISH
|
!insertmacro MUI_UNPAGE_FINISH
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
|
|
||||||
Var configdir
|
Var CONFIGDIR
|
||||||
Var configfile
|
Var CONFIGFILE
|
||||||
|
|
||||||
|
Function .onInit
|
||||||
|
Call ParseCmdLine
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
;Sections
|
;Sections
|
||||||
;--------
|
;--------
|
||||||
@ -65,89 +71,48 @@ Var configfile
|
|||||||
Section "Tor" Tor
|
Section "Tor" Tor
|
||||||
;Files that have to be installed for tor to run and that the user
|
;Files that have to be installed for tor to run and that the user
|
||||||
;cannot choose not to install
|
;cannot choose not to install
|
||||||
SectionIn RO
|
SectionIn RO
|
||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
File "${BIN}\tor.exe"
|
Call ExtractBinaries
|
||||||
File "${BIN}\tor-resolve.exe"
|
Call ExtractIcon
|
||||||
File "${BIN}\tor.ico"
|
WriteINIStr "$INSTDIR\Tor Website.url" "InternetShortcut" "URL" ${WEBSITE}
|
||||||
WriteIniStr "$INSTDIR\Tor Website.url" "InternetShortcut" "URL" ${WEBSITE}
|
|
||||||
|
|
||||||
StrCpy $configfile "torrc"
|
StrCpy $CONFIGFILE "torrc"
|
||||||
StrCpy $configdir $APPDATA\Tor
|
StrCpy $CONFIGDIR $APPDATA\Tor
|
||||||
; ;If $APPDATA isn't valid here (Early win95 releases with no updated
|
; ;If $APPDATA isn't valid here (Early win95 releases with no updated
|
||||||
; ; shfolder.dll) then we put it in the program directory instead.
|
; ; shfolder.dll) then we put it in the program directory instead.
|
||||||
; StrCmp $APPDATA "" "" +2
|
; StrCmp $APPDATA "" "" +2
|
||||||
; StrCpy $configdir $INSTDIR
|
; StrCpy $CONFIGDIR $INSTDIR
|
||||||
SetOutPath $configdir
|
SetOutPath $CONFIGDIR
|
||||||
;If there's already a torrc config file, ask if they want to
|
;If there's already a torrc config file, ask if they want to
|
||||||
;overwrite it with the new one.
|
;overwrite it with the new one.
|
||||||
IfFileExists "$configdir\torrc" "" endiftorrc
|
${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?" IDNO yesreplace
|
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
|
||||||
Delete $configdir\torrc
|
Yes:
|
||||||
Goto endiftorrc
|
Delete $CONFIGDIR\torrc
|
||||||
yesreplace:
|
Goto Next
|
||||||
StrCpy $configfile "torrc.sample"
|
No:
|
||||||
endiftorrc:
|
StrCpy $CONFIGFILE "torrc.sample"
|
||||||
File /oname=$configfile "..\src\config\torrc.sample"
|
Next:
|
||||||
|
${EndIf}
|
||||||
|
File /oname=$CONFIGFILE "..\src\config\torrc.sample"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section "Documents" Docs
|
Section "Documents" Docs
|
||||||
SetOutPath "$INSTDIR\Documents"
|
Call ExtractDocuments
|
||||||
;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"
|
|
||||||
SectionEnd
|
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
|
SubSection /e "Shortcuts" Shortcuts
|
||||||
|
|
||||||
Section "Start Menu" StartMenu
|
Section "Start Menu" StartMenu
|
||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
IfFileExists "$SMPROGRAMS\Tor\*.*" "" +2
|
${If} ${FileExists} "$SMPROGRAMS\Tor\*.*"
|
||||||
RMDir /r "$SMPROGRAMS\Tor"
|
RMDir /r "$SMPROGRAMS\Tor"
|
||||||
CreateDirectory "$SMPROGRAMS\Tor"
|
${EndIf}
|
||||||
CreateShortCut "$SMPROGRAMS\Tor\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico"
|
Call CreateTorLinks
|
||||||
CreateShortCut "$SMPROGRAMS\Tor\Torrc.lnk" "Notepad.exe" "$configdir\torrc"
|
${If} ${FileExists} "$INSTDIR\Documents\*.*"
|
||||||
CreateShortCut "$SMPROGRAMS\Tor\Tor Website.lnk" "$INSTDIR\Tor Website.url"
|
Call CreateDocLinks
|
||||||
CreateShortCut "$SMPROGRAMS\Tor\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
${EndIf}
|
||||||
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"
|
|
||||||
endifdocs:
|
endifdocs:
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@ -164,24 +129,7 @@ SectionEnd
|
|||||||
SubSectionEnd
|
SubSectionEnd
|
||||||
|
|
||||||
Section "Uninstall"
|
Section "Uninstall"
|
||||||
Delete "$DESKTOP\Tor.lnk"
|
Call un.InstallPackage
|
||||||
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"
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section -End
|
Section -End
|
||||||
@ -193,11 +141,127 @@ Section -End
|
|||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
!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 ${Tor} "The core executable and config files needed for Tor to run."
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${Docs} "Documentation about Tor."
|
!insertmacro MUI_DESCRIPTION_TEXT ${Docs} "Documentation about Tor."
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${ShortCuts} "Shortcuts to easily start 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 ${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 ${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 ${Startup} "Launches Tor automatically at startup in a minimized window"
|
||||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
!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