3 ; Began as a version written by Michel Meyers (michel@tcnnet.dyndns.org)
5 ; Adapted by Kern Sibbald for native Win32 Bacula
6 ; added a number of elements from Christopher Hull's installer
8 ; D. Scott Barninger Nov 13 2004
9 ; added configuration editing for bconsole.conf and wx-console.conf
10 ; better explanation in dialog boxes for editing config files
11 ; added Start Menu items
12 ; fix uninstall of config files to do all not just bacula-fd.conf
14 ; D. Scott Barninger Dec 05 2004
15 ; added specification of default permissions for bacula-fd.conf
16 ; - thanks to Jamie Ffolliott for pointing me at cacls
17 ; added removal of working-dir files if user selects to remove config
18 ; uninstall is now 100% clean
20 ; D. Scott Barninger Apr 17 2005
21 ; 1.36.3 release docs update
22 ; add pdf manual and menu shortcut
24 ; Command line options:
26 ; /cygwin - do cygwin install into c:\cygwin\bacula
30 !define PRODUCT "Bacula"
31 !define VERSION "@VERSION@"
34 ; Include the Modern UI
44 OutFile "winbacula-${VERSION}.exe"
46 InstallDir "c:\bacula"
51 !insertmacro MUI_PAGE_WELCOME
52 ; !insertmacro MUI_PAGE_LICENSE "License.txt"
53 !insertmacro MUI_PAGE_COMPONENTS
54 !insertmacro MUI_PAGE_DIRECTORY
55 !insertmacro MUI_PAGE_INSTFILES
56 !insertmacro MUI_PAGE_FINISH
58 !insertmacro MUI_UNPAGE_WELCOME
59 !insertmacro MUI_UNPAGE_CONFIRM
60 !insertmacro MUI_UNPAGE_INSTFILES
61 !insertmacro MUI_UNPAGE_FINISH
64 !define MUI_ABORTWARNING
66 !insertmacro MUI_LANGUAGE "English"
70 DirText "Setup will install the Bacula Client ${VERSION} to the directory specified below. To install in a different folder, click Browse and select another folder.$\n$\nNote to CYGWIN users: please choose your CYGWIN root directory."
73 Section "Bacula File Service" SecService
75 ; /cygwin on command line forces install dir to c:\cygwin\bacula (useful for silent install)
81 StrCpy $INSTDIR "c:\cygwin\bacula"
83 ; IfFileExists "c:\cygwin" Cygwin ReallyNoCygwin
85 ; StrCpy $INSTDIR "c:\cygwin\bacula"
88 ; Check for existing installation
90 IfFileExists "$INSTDIR\bin\bacula-fd.conf" Upgrade NoUpgrade
93 ; Shutdown any baculas that could be running
94 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /kill'
95 ; give it some time to shutdown
99 ; Set output path to the installation directory.
100 SetOutPath "$INSTDIR\bin"
101 CreateDirectory "$INSTDIR"
102 CreateDirectory "$INSTDIR\bin"
103 CreateDirectory "$INSTDIR\working"
104 CreateDirectory "c:\tmp"
106 File baculafd\Release\bacula-fd.exe
107 File ..\..\..\depkgs-win32\pthreads\pthreadVCE.dll
109 IfFileExists "$INSTDIR\bin\bacula-fd.conf" newconf
110 File baculafd\bacula-fd.conf
113 File /oname=bacula-fd.conf.new baculafd\bacula-fd.conf
115 ; If /service was given jump to the service install part
122 ; If silent install and not /service don't ask questions and goto NoService...
125 ; If already installed as service skip it too
126 ReadRegDWORD $9 HKLM "Software\Bacula" "InstalledService"
127 StrCmp $9 "1" NoService
129 ; Install as service?
130 MessageBox MB_YESNO|MB_ICONQUESTION "Do you want to install the Bacula Client as a service (automatically starts with your PC)?" IDNO NoService
132 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /install'
134 WriteRegDWORD HKLM "Software\Bacula" "InstalledService" "1"
137 ; Create Start Menu Directory
138 SetShellVarContext all
139 CreateDirectory "$SMPROGRAMS\Bacula"
140 ; If not installed as service create Start Menu link
141 StrCmp $9 "1" Uninstall
142 CreateShortCut "$SMPROGRAMS\Bacula\Start Bacula Client.lnk" "$INSTDIR\bin\bacula-fd.exe" "-c $INSTDIR\bin\bacula-fd.conf" "$INSTDIR\bin\bacula-fd.exe" 0
145 ; Write the uninstall keys for Windows & create Start Menu entry
146 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula Client"
147 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
148 WriteUninstaller "$INSTDIR\Uninstall.exe"
149 CreateShortCut "$SMPROGRAMS\Bacula\Uninstall Bacula.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
151 ; Create bacula-fd.conf and have the user edit it (skipped if silent)
153 StrCmp $7 "1" NoReminder ; skip if it is an upgrade
154 MessageBox MB_OK "Please edit the client configuration file $INSTDIR\bin\bacula-fd.conf to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
155 Exec 'write "$INSTDIR\bin\bacula-fd.conf"' ; spawn wordpad with the file to be edited
158 ; Start the client? (default skipped if silent, use /start to force starting)
166 StrCmp $R0 "false" do_win98
167 MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to start the Bacula Client now?" IDNO SetPerms
168 Exec 'net start bacula'
170 ; set default permissions on config file so it's not world readable
171 Exec 'cmd /C echo Y|cacls "$INSTDIR\bin\bacula-fd.conf" /G SYSTEM:F Administrators:F'
176 MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to start the Bacula Client now?" IDNO NoStart
178 Exec '"$INSTDIR\bin\bacula-fd.exe" -c "$INSTDIR\bin\bacula-fd.conf"'
182 Section "Install Console" SecConsole
183 SetOutPath "$INSTDIR\bin"
184 File console\Release\bconsole.exe
185 IfFileExists "$INSTDIR\bin\bconsole.conf" newconf
186 File console\bconsole.conf
187 File ..\..\..\depkgs-win32\pthreads\pthreadVCE.dll
190 File /oname=bconsole.conf.new console\bconsole.conf
193 ; Create bconsole.conf and have the user edit it (skipped if silent)
195 StrCmp $7 "1" NoReminder ; skip if it is an upgrade
196 MessageBox MB_OK "Please edit the command line console configuration file $INSTDIR\bin\bconsole.conf to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
197 Exec 'write "$INSTDIR\bin\bconsole.conf"' ; spawn wordpad with the file to be edited
201 Section "Install wx-Console" SecWxConsole
202 SetOutPath "$INSTDIR\bin"
203 File wx-console\Release\wx-console.exe
204 IfFileExists "$INSTDIR\bin\wx-console.conf" newconf
205 File wx-console\wx-console.conf
206 File ..\..\..\depkgs-win32\pthreads\pthreadVCE.dll
209 File /oname=wx-console.conf.new wx-console\wx-console.conf
211 ; Create Start Menu entry
212 SetShellVarContext all
213 CreateShortCut "$SMPROGRAMS\Bacula\WX-Console.lnk" "$INSTDIR\bin\wx-console.exe" "-c $INSTDIR\bin\wx-console.conf" "$INSTDIR\bin\wx-console.exe" 0
215 ; Create wx-console.conf and have the user edit it (skipped if silent)
217 StrCmp $7 "1" NoReminder ; skip if it is an upgrade
218 MessageBox MB_OK "Please edit the WX-console configuration file $INSTDIR\bin\wx-console.conf to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
219 Exec 'write "$INSTDIR\bin\wx-console.conf"' ; spawn wordpad with the file to be edited
224 Section "Install Documentation" SecDoc
225 SetOutPath "$INSTDIR\doc"
226 CreateDirectory "$INSTDIR\doc"
227 File ..\..\..\docs\manual\bacula\*.html
228 File ..\..\..\docs\manual\bacula\*.png
229 File ..\..\..\docs\manual\bacula\*.css
230 File ..\..\..\docs\manual\bacula.pdf
231 ; Create Start Menu entry
232 SetShellVarContext all
233 CreateShortCut "$SMPROGRAMS\Bacula\Manual.lnk" "$INSTDIR\doc\bacula.pdf"
237 ; Extra Page descriptions
240 LangString DESC_SecService ${LANG_ENGLISH} "Install Bacula client on this system."
241 LangString DESC_SecConsole ${LANG_ENGLISH} "Install Console program on this system."
242 LangString DESC_SecWxConsole ${LANG_ENGLISH} "Install graphical console program on this system."
243 LangString DESC_SecDoc ${LANG_ENGLISH} "Install Documentation on this system."
245 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
246 !insertmacro MUI_DESCRIPTION_TEXT ${SecService} $(DESC_SecService)
247 !insertmacro MUI_DESCRIPTION_TEXT ${SecConsole} $(DESC_SecConsole)
248 !insertmacro MUI_DESCRIPTION_TEXT ${SecWxConsole} $(DESC_SecWxConsole)
249 !insertmacro MUI_DESCRIPTION_TEXT ${SecDoc} $(DESC_SecDoc)
250 !insertmacro MUI_FUNCTION_DESCRIPTION_END
256 UninstallText "This will uninstall the Bacula Client. Hit next to continue."
260 ; Shutdown any baculum that could be running
261 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /kill'
263 ReadRegDWORD $9 HKLM "Software\Bacula" "InstalledService"
264 StrCmp $9 "" NoService
265 ; Remove bacula service
266 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /remove'
269 ; remove registry keys
270 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula"
271 DeleteRegKey HKLM "Software\Bacula"
273 ; remove start menu items
274 SetShellVarContext all
275 Delete /REBOOTOK "$SMPROGRAMS\Bacula\*"
277 ; remove files and uninstaller (preserving config for now)
278 CopyFiles /SILENT "$INSTDIR\bin\bacula-fd.conf" "$INSTDIR\bacula-fd.conf"
279 IfFileExists "$INSTDIR\bin\bconsole.conf" save_bconsole nosave_bconsole
281 CopyFiles /SILENT "$INSTDIR\bin\bconsole.conf" "$INSTDIR\bconsole.conf"
283 IfFileExists "$INSTDIR\bin\wx-console.conf" save_wxconsole nosave_wxconsole
285 CopyFiles /SILENT "$INSTDIR\bin\wx-console.conf" "$INSTDIR\wx-console.conf"
287 Delete /REBOOTOK "$INSTDIR\bin\*.*"
288 Delete /REBOOTOK "$INSTDIR\doc\*.*"
289 CopyFiles /SILENT "$INSTDIR\bacula-fd.conf" "$INSTDIR\bin\bacula-fd.conf"
290 CopyFiles /SILENT "$INSTDIR\bconsole.conf" "$INSTDIR\bin\bconsole.conf"
291 CopyFiles /SILENT "$INSTDIR\wx-console.conf" "$INSTDIR\bin\wx-console.conf"
292 Delete /REBOOTOK "$INSTDIR\*.conf"
293 Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
295 ; Check for existing installation
296 MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to delete the current configuration files and the working state file?" IDNO LeaveConfig
297 Delete /REBOOTOK "$INSTDIR\bin\*.conf"
298 Delete /REBOOTOK "$INSTDIR\working\*"
299 ; remove directories used
302 RMDir "$INSTDIR\working"
306 RMDir "$SMPROGRAMS\Bacula"