3 ; Written by Michel Meyers (michel@tcnnet.dyndns.org)
5 ; Updated by Kern Sibbald for native Win32 Bacula
6 ; added a number of elements from Christopher Hull's installer
8 ; Command line options:
10 ; /cygwin - do cygwin install into c:\cygwin\bacula
14 !define PRODUCT "Bacula"
15 !define VERSION "@VERSION@"
18 ; Include the Modern UI
28 OutFile "winbacula-${VERSION}.exe"
30 InstallDir "c:\bacula"
35 !insertmacro MUI_PAGE_WELCOME
36 ; !insertmacro MUI_PAGE_LICENSE "License.txt"
37 !insertmacro MUI_PAGE_COMPONENTS
38 !insertmacro MUI_PAGE_DIRECTORY
39 !insertmacro MUI_PAGE_INSTFILES
40 !insertmacro MUI_PAGE_FINISH
42 !insertmacro MUI_UNPAGE_WELCOME
43 !insertmacro MUI_UNPAGE_CONFIRM
44 !insertmacro MUI_UNPAGE_INSTFILES
45 !insertmacro MUI_UNPAGE_FINISH
48 !define MUI_ABORTWARNING
50 !insertmacro MUI_LANGUAGE "English"
54 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."
57 Section "Bacula File Service" SecService
59 ; /cygwin on command line forces install dir to c:\cygwin\bacula (useful for silent install)
65 StrCpy $INSTDIR "c:\cygwin\bacula"
67 ; IfFileExists "c:\cygwin" Cygwin ReallyNoCygwin
69 ; StrCpy $INSTDIR "c:\cygwin\bacula"
72 ; Check for existing installation
74 IfFileExists "$INSTDIR\bin\bacula-fd.conf" Upgrade NoUpgrade
77 ; Shutdown any baculas that could be running
78 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /kill'
79 ; give it some time to shutdown
83 ; Set output path to the installation directory.
84 SetOutPath "$INSTDIR\bin"
85 CreateDirectory "$INSTDIR"
86 CreateDirectory "$INSTDIR\bin"
87 CreateDirectory "$INSTDIR\working"
88 CreateDirectory "c:\tmp"
90 File baculafd\Release\bacula-fd.exe
91 File ..\..\..\depkgs-win32\pthreads\pthreadVCE.dll
93 IfFileExists "$INSTDIR\bin\bacula-fd.conf" newconf
94 File baculafd\bacula-fd.conf
97 File /oname=bacula-fd.conf.new baculafd\bacula-fd.conf
99 ; If /service was given jump to the service install part
106 ; If silent install and not /service don't ask questions and goto NoService...
109 ; If already installed as service skip it too
110 ReadRegDWORD $9 HKLM "Software\Bacula" "InstalledService"
111 StrCmp $9 "1" NoService
113 ; Install as service?
114 MessageBox MB_YESNO|MB_ICONQUESTION "Do you want to install the Bacula Client as a service (automatically starts with your PC)?" IDNO NoService
116 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /install'
118 WriteRegDWORD HKLM "Software\Bacula" "InstalledService" "1"
121 ; Write the uninstall keys for Windows
122 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula Client"
123 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
124 WriteUninstaller "$INSTDIR\Uninstall.exe"
126 ; Create bacula-fd.conf and have the user edit it (skipped if silent)
128 StrCmp $7 "1" NoReminder ; skip if it is an upgrade
129 MessageBox MB_OK "Please edit $INSTDIR\bin\bacula-fd.conf according to your requirements/installation! Also remember to put a shortcut into your start menu if you didn't install the client as a service."
130 Exec 'write "$INSTDIR\bin\bacula-fd.conf"' ; spawn wordpad with the file to be edited
133 ; Start the client? (default skipped if silent, use /start to force starting)
141 StrCmp $R0 "false" do_win98
142 MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to start the Bacula Client now?" IDNO NoStart
143 Exec 'net start bacula'
148 MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to start the Bacula Client now?" IDNO NoStart
150 Exec '"$INSTDIR\bin\bacula-fd.exe" -c "$INSTDIR\bin\bacula-fd.conf"'
154 Section "Install Console" SecConsole
155 SetOutPath "$INSTDIR\bin"
156 File console\Release\bconsole.exe
157 IfFileExists "$INSTDIR\bin\bconsole.conf" newconf
158 File console\bconsole.conf
161 File /oname=bconsole.conf.new console\bconsole.conf
163 ; If /service was given jump to the service install part
167 Section "Install wx-Console" SecWxConsole
168 SetOutPath "$INSTDIR\bin"
169 File wx-console\Release\wx-console.exe
170 IfFileExists "$INSTDIR\bin\wx-console.conf" newconf
171 File wx-console\wx-console.conf
174 File /oname=wx-console.conf.new wx-console\wx-console.conf
176 ; If /service was given jump to the service install part
181 Section "Install Documentation" SecDoc
182 SetOutPath "$INSTDIR\doc"
183 CreateDirectory "$INSTDIR\doc"
184 File ..\..\doc\html-manual\*.html
185 File ..\..\doc\html-manual\*.gif
186 File ..\..\doc\html-manual\*.jpg
190 ; Extra Page descriptions
193 LangString DESC_SecService ${LANG_ENGLISH} "Install Bacula client on this system."
194 LangString DESC_SecConsole ${LANG_ENGLISH} "Install Console program on this system."
195 LangString DESC_SecWxConsole ${LANG_ENGLISH} "Install graphical console program on this system."
196 LangString DESC_SecDoc ${LANG_ENGLISH} "Install Documentation on this system."
198 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
199 !insertmacro MUI_DESCRIPTION_TEXT ${SecService} $(DESC_SecService)
200 !insertmacro MUI_DESCRIPTION_TEXT ${SecConsole} $(DESC_SecConsole)
201 !insertmacro MUI_DESCRIPTION_TEXT ${SecWxConsole} $(DESC_SecWxConsole)
202 !insertmacro MUI_DESCRIPTION_TEXT ${SecDoc} $(DESC_SecDoc)
203 !insertmacro MUI_FUNCTION_DESCRIPTION_END
209 UninstallText "This will uninstall the Bacula Client. Hit next to continue."
213 ; Shutdown any baculum that could be running
214 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /kill'
216 ReadRegDWORD $9 HKLM "Software\Bacula" "InstalledService"
217 StrCmp $9 "" NoService
218 ; Remove bacula service
219 ExecWait '"$INSTDIR\bin\bacula-fd.exe" /remove'
222 ; remove registry keys
223 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula"
224 DeleteRegKey HKLM "Software\Bacula"
226 ; remove files and uninstaller (preserving config for now)
227 CopyFiles /SILENT "$INSTDIR\bin\bacula-fd.conf" "$INSTDIR\bacula-fd.conf"
228 Delete /REBOOTOK "$INSTDIR\bin\*.*"
229 Delete /REBOOTOK "$INSTDIR\doc\*.*"
230 CopyFiles /SILENT "$INSTDIR\bacula-fd.conf" "$INSTDIR\bin\bacula-fd.conf"
231 CopyFiles /SILENT "$INSTDIR\bconsole.conf" "$INSTDIR\bin\bconsole.conf"
232 Delete /REBOOTOK "$INSTDIR\bacula-fd.conf"
233 Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
235 ; Check for existing installation
236 MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to delete the current configuration file ($INSTDIR\bin\bacula-fd.conf)?" IDNO LeaveConfig
237 Delete /REBOOTOK "$INSTDIR\bin\bacula-fd.conf"
238 ; remove directories used
241 RMDir "$INSTDIR\working"