tor-mingw.nsi.in 6.68 KB
Newer Older
1
2
3
4
5
6
7
;tor.nsi - A basic win32 installer for Tor
; Originally written by J Doe.
; See LICENSE for licencing information
;-----------------------------------------
;
!include "MUI.nsh"

8
!define VERSION "%VERSION%"
9
10
11
!define INSTALLER "tor-${VERSION}-win32.exe"
!define WEBSITE "http://tor.eff.org/"

12
13
!define LICENSE "LICENSE"
;BIN is where it expects to find tor.exe, tor-resolve.exe, libcrypto.a
14
15
16
17
18
19
20
21
22
23
24
25
26
;and libssl.a
!define BIN "..\bin"

SetCompressor lzma
;SetCompressor zlib
OutFile ${INSTALLER}
InstallDir $PROGRAMFILES\Tor
SetOverWrite ifnewer

Name "Tor"
Caption "Tor ${VERSION} Setup"
BrandingText "The Onion Router"
CRCCheck on
27
XPStyle on
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68

;Use upx on the installer header to shrink the size.
!packhdr header.dat "upx --best header.dat"

!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"
69
   File "${BIN}\tor-resolve.exe"
70
   File "${BIN}\tor.ico"
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
   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

Section "OpenSSL 0.9.8c" OpenSSL
   SetOutPath $INSTDIR
   File "${BIN}\libcrypto.a"
   File "${BIN}\libssl.a"
SectionEnd

Section "Documents" Docs
   SetOutPath "$INSTDIR\Documents"
100
   ;File "doc\FAQ"
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
   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

SubSection /e "Shortcuts" Shortcuts

Section "Start Menu" StartMenu
   SetOutPath $INSTDIR
   IfFileExists "$SMPROGRAMS\Tor\*.*" "" +2
      RMDir /r "$SMPROGRAMS\Tor"
   CreateDirectory "$SMPROGRAMS\Tor"
128
   CreateShortCut "$SMPROGRAMS\Tor\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico" 
129
130
131
132
133
134
135
136
137
138
139
140
141
   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
142
   CreateShortCut "$DESKTOP\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico" 
143
144
145
146
SectionEnd

Section /o "Run at startup" Startup
   SetOutPath $INSTDIR
147
   CreateShortCut "$SMSTARTUP\Tor.lnk" "$INSTDIR\tor.exe" "" "$INSTDIR\tor.ico" "" SW_SHOWMINIMIZED
148
149
150
151
152
153
154
155
156
SectionEnd

SubSectionEnd

Section "Uninstall"
   Delete "$DESKTOP\Tor.lnk"
   Delete "$INSTDIR\libcrypto.a"
   Delete "$INSTDIR\libssl.a"
   Delete "$INSTDIR\tor.exe"
157
   Delete "$INSTDIR\tor-resolve.exe"
158
159
160
   Delete "$INSTDIR\Tor Website.url"
   Delete "$INSTDIR\torrc"
   Delete "$INSTDIR\torrc.sample"
161
   Delete "$INSTDIR\tor.ico"
162
163
164
165
166
167
   StrCmp $configdir $INSTDIR +2 ""
      RMDir /r $configdir
   Delete "$INSTDIR\Uninstall.exe"
   RMDir /r "$INSTDIR\Documents"
   RMDir $INSTDIR
   RMDir /r "$SMPROGRAMS\Tor"
168
   RMDir /r "$APPDATA\Tor"
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
   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