1 ;OpenAFS Install Script for NSIS
2 ; This version compiles with NSIS v2.0
4 ; Originally written by Rob Murawski <rsm4@ieee.org>
6 ;Redistribution and use in source and binary forms, with or without modification, are permitted
7 ;provided that the following conditions are met:
9 ; Redistributions of source code must retain the above copyright notice, this list of conditions
10 ; and the following disclaimer. Redistributions in binary form must reproduce the above copyright
11 ; notice, this list of conditions and the following disclaimer in the documentation and/or other
12 ; materials provided with the distribution. The name of the author may not be used to endorse or
13 ; promote products derived from this software without specific prior written permission.
15 ; THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16 ; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
17 ; PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
18 ; INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19 ; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
20 ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
21 ; STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
22 ; USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 ; Some code originally based on:
26 ; NSIS Modern User Interface version 1.63
27 ; MultiLanguage Example Script
28 ; Written by Joost Verburg
30 ; Read in the environment information
31 !include ${INCLUDEDIR}\nsi-includes.nsi
35 Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__}"
37 Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__} Checked/Debug"
38 !endif ; End DEBUG/!DEBUG
41 Name "OpenAFS ${AFS_VERSION}"
43 Name "OpenAFS ${AFS_VERSION} Checked/Debug"
44 !endif ; End DEBUG/!DEBUG
46 VIProductVersion "${AFS_VERSION}.00"
47 VIAddVersionKey "ProductName" "OpenAFS"
48 VIAddVersionKey "CompanyName" "OpenAFS.org"
49 VIAddVersionKey "ProductVersion" ${AFS_VERSION}
50 VIAddVersionKey "FileVersion" ${AFS_VERSION}
51 VIAddVersionKey "FileDescription" "OpenAFS for Windows Installer"
52 VIAddVersionKey "LegalCopyright" "(C)2000-2004"
54 VIAddVersionKey "PrivateBuild" "Checked/Debug"
61 ;--------------------------------
64 !define REPLACEDLL_NOREGISTER
68 OutFile "${AFS_DESTDIR}\WinInstall\OpenAFSforWindows.exe"
70 OutFile "${AFS_DESTDIR}\WinInstall\OpenAFSforWindows-DEBUG.exe"
74 !define MUI_ICON "..\..\client_config\afs_config.ico"
75 !define MUI_UNICON "..\..\client_config\afs_config.ico"
76 !define AFS_COMPANY_NAME "OpenAFS"
77 !define AFS_PRODUCT_NAME "OpenAFS"
78 !define AFS_REGKEY_ROOT "Software\TransarcCorporation"
81 ;Folder selection page
82 InstallDir "$PROGRAMFILES\OpenAFS" ; Install to shorter path
84 ;Remember install folder
85 InstallDirRegKey HKCU ${AFS_REGKEY_ROOT} ""
87 ;Remember the installer language
88 !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
89 !define MUI_LANGDLL_REGISTRY_KEY ${AFS_REGKEY_ROOT}
90 !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
93 !define AFS_CLIENT_BUILDDIR "${AFS_DESTDIR}\root.client\usr\vice\etc"
94 !define AFS_WININSTALL_DIR "${AFS_DESTDIR}\WinInstall\Config"
95 !define AFS_BUILD_INCDIR "${AFS_DESTDIR}\include"
96 !define AFS_CLIENT_LIBDIR "${AFS_DESTDIR}\lib"
97 !define AFS_SERVER_BUILDDIR "${AFS_DESTDIR}\root.server\usr\afs\bin"
98 !define AFS_ETC_BUILDDIR "${AFS_DESTDIR}\etc"
99 !define SYSTEMDIR "$%SystemRoot%\System32"
101 ;--------------------------------
102 ;Modern UI Configuration
104 ;!define MUI_LICENSEPAGE
105 !define MUI_CUSTOMPAGECOMMANDS
106 !define MUI_WELCOMEPAGE
107 !define MUI_COMPONENTSPAGE
108 !define MUI_COMPONENTSPAGE_SMALLDESC
109 !define MUI_DIRECTORYPAGE
111 !define MUI_ABORTWARNING
112 !define MUI_FINISHPAGE
114 !define MUI_UNINSTALLER
115 !define MUI_UNCONFIRMPAGE
118 !insertmacro MUI_PAGE_WELCOME
119 !insertmacro MUI_PAGE_COMPONENTS
120 !insertmacro MUI_PAGE_DIRECTORY
121 Page custom AFSPageGetCellServDB
122 Page custom AFSPageGetCellName
123 Page custom AFSPageConfigAFSCreds
124 !insertmacro MUI_PAGE_INSTFILES
125 !insertmacro MUI_PAGE_FINISH
127 ;LicenseData "Licenses.rtf"
128 ;--------------------------------
131 !insertmacro MUI_LANGUAGE "English"
132 ;!insertmacro MUI_LANGUAGE "French"
133 !insertmacro MUI_LANGUAGE "German"
134 !insertmacro MUI_LANGUAGE "Spanish"
135 !insertmacro MUI_LANGUAGE "SimpChinese"
136 !insertmacro MUI_LANGUAGE "TradChinese"
137 !insertmacro MUI_LANGUAGE "Japanese"
138 !insertmacro MUI_LANGUAGE "Korean"
139 ;!insertmacro MUI_LANGUAGE "Italian"
140 ;!insertmacro MUI_LANGUAGE "Dutch"
141 ;!insertmacro MUI_LANGUAGE "Danish"
142 ;!insertmacro MUI_LANGUAGE "Greek"
143 ;!insertmacro MUI_LANGUAGE "Russian"
144 !insertmacro MUI_LANGUAGE "PortugueseBR"
145 ;!insertmacro MUI_LANGUAGE "Polish"
146 ;!insertmacro MUI_LANGUAGE "Ukrainian"
147 ;!insertmacro MUI_LANGUAGE "Czech"
148 ;!insertmacro MUI_LANGUAGE "Slovak"
149 ;!insertmacro MUI_LANGUAGE "Croatian"
150 ;!insertmacro MUI_LANGUAGE "Bulgarian"
151 ;!insertmacro MUI_LANGUAGE "Hungarian"
152 ;!insertmacro MUI_LANGUAGE "Thai"
153 ;!insertmacro MUI_LANGUAGE "Romanian"
154 ;!insertmacro MUI_LANGUAGE "Macedonian"
155 ;!insertmacro MUI_LANGUAGE "Turkish"
157 ;--------------------------------
161 LangString DESC_SecCopyUI ${LANG_ENGLISH} "OpenAFS for Windows: English"
162 ;LangString DESC_SecCopyUI ${LANG_FRENCH} "OpenAFS for Windows: French"
163 LangString DESC_SecCopyUI ${LANG_GERMAN} "OpenAFS for Windows: German"
164 LangString DESC_SecCopyUI ${LANG_SPANISH} "OpenAFS for Windows: Spanish"
165 LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "OpenAFS for Windows: Simplified Chinese"
166 LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "OpenAFS for Windows: Traditional Chinese description"
167 LangString DESC_SecCopyUI ${LANG_JAPANESE} "OpenAFS for Windows: Japanese description"
168 LangString DESC_SecCopyUI ${LANG_KOREAN} "OpenAFS for Windows: Korean description"
169 ;LangString DESC_SecCopyUI ${LANG_ITALIAN} "OpenAFS for Windows: Italian description"
170 ;LangString DESC_SecCopyUI ${LANG_DUTCH} "OpenAFS for Windows: Dutch description"
171 ;LangString DESC_SecCopyUI ${LANG_DANISH} "OpenAFS for Windows: Danish description"
172 ;LangString DESC_SecCopyUI ${LANG_GREEK} "OpenAFS for Windows: Greek description"
173 ;LangString DESC_SecCopyUI ${LANG_RUSSIAN} "OpenAFS for Windows: Russian description"
174 LangString DESC_SecCopyUI ${LANG_PORTUGUESEBR} "OpenAFS for Windows: Portuguese (Brasil) description"
175 ;LangString DESC_SecCopyUI ${LANG_POLISH} "OpenAFS for Windows: Polish description"
176 ;LangString DESC_SecCopyUI ${LANG_UKRAINIAN} "OpenAFS for Windows: Ukrainian description"
177 ;LangString DESC_SecCopyUI ${LANG_CZECH} "OpenAFS for Windows: Czechian description"
178 ;LangString DESC_SecCopyUI ${LANG_SLOVAK} "OpenAFS for Windows: Slovakian description"
179 ;LangString DESC_SecCopyUI ${LANG_CROATIAN} "OpenAFS for Windows: Slovakian description"
180 ;LangString DESC_SecCopyUI ${LANG_BULGARIAN} "OpenAFS for Windows: Bulgarian description"
181 ;LangString DESC_SecCopyUI ${LANG_HUNGARIAN} "OpenAFS for Windows: Hungarian description"
182 ;LangString DESC_SecCopyUI ${LANG_THAI} "OpenAFS for Windows: Thai description"
183 ;LangString DESC_SecCopyUI ${LANG_ROMANIAN} "OpenAFS for Windows: Romanian description"
184 ;LangString DESC_SecCopyUI ${LANG_MACEDONIAN} "OpenAFS for Windows: Macedonian description"
185 ;LangString DESC_SecCopyUI ${LANG_TURKISH} "OpenAFS for Windows: Turkish description"
187 LangString DESC_secClient ${LANG_ENGLISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
188 LangString DESC_secClient ${LANG_GERMAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
189 LangString DESC_secClient ${LANG_SPANISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
190 LangString DESC_secClient ${LANG_SIMPCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
191 LangString DESC_secClient ${LANG_TRADCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
192 LangString DESC_secClient ${LANG_JAPANESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
193 LangString DESC_secClient ${LANG_KOREAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
194 LangString DESC_secClient ${LANG_PORTUGUESEBR} "OpenAFS Client: Allows you to access AFS from your Windows PC."
196 LangString DESC_secLoopback ${LANG_ENGLISH} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
197 LangString DESC_secLoopback ${LANG_GERMAN} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
198 LangString DESC_secLoopback ${LANG_SPANISH} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
199 LangString DESC_secLoopback ${LANG_SIMPCHINESE} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
200 LangString DESC_secLoopback ${LANG_TRADCHINESE} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
201 LangString DESC_secLoopback ${LANG_JAPANESE} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
202 LangString DESC_secLoopback ${LANG_KOREAN} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
203 LangString DESC_secLoopback ${LANG_PORTUGUESEBR} "MS Loopback adapter: Installs the adapter for a more reliable AFS client."
205 LangString DESC_secServer ${LANG_ENGLISH} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
206 LangString DESC_secServer ${LANG_GERMAN} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
207 LangString DESC_secServer ${LANG_SPANISH} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
208 LangString DESC_secServer ${LANG_SIMPCHINESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
209 LangString DESC_secServer ${LANG_TRADCHINESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
210 LangString DESC_secServer ${LANG_JAPANESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
211 LangString DESC_secServer ${LANG_KOREAN} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
212 LangString DESC_secServer ${LANG_PORTUGUESEBR} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
214 LangString DESC_secControl ${LANG_ENGLISH} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
215 LangString DESC_secControl ${LANG_GERMAN} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
216 LangString DESC_secControl ${LANG_SPANISH} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
217 LangString DESC_secControl ${LANG_SIMPCHINESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
218 LangString DESC_secControl ${LANG_TRADCHINESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
219 LangString DESC_secControl ${LANG_JAPANESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
220 LangString DESC_secControl ${LANG_KOREAN} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
221 LangString DESC_secControl ${LANG_PORTUGUESEBR} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
223 LangString DESC_secDocs ${LANG_ENGLISH} "Supplemental Documentation: Additional documentation for using OpenAFS."
224 LangString DESC_secDocs ${LANG_GERMAN} "Supplemental Documentation: Additional documentation for using OpenAFS."
225 LangString DESC_secDocs ${LANG_SPANISH} "Supplemental Documentation: Additional documentation for using OpenAFS."
226 LangString DESC_secDocs ${LANG_SIMPCHINESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
227 LangString DESC_secDocs ${LANG_TRADCHINESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
228 LangString DESC_secDocs ${LANG_JAPANESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
229 LangString DESC_secDocs ${LANG_KOREAN} "Supplemental Documentation: Additional documentation for using OpenAFS."
230 LangString DESC_secDocs ${LANG_PORTUGUESEBR} "Supplemental Documentation: Additional documentation for using OpenAFS."
232 LangString DESC_secSDK ${LANG_ENGLISH} "SDK: Header files and libraries for developing software with OpenAFS."
233 LangString DESC_secSDK ${LANG_GERMAN} "SDK: Header files and libraries for developing software with OpenAFS."
234 LangString DESC_secSDK ${LANG_SPANISH} "SDK: Header files and libraries for developing software with OpenAFS."
235 LangString DESC_secSDK ${LANG_SIMPCHINESE} "SDK: Header files and libraries for developing software with OpenAFS."
236 LangString DESC_secSDK ${LANG_TRADCHINESE} "SDK: Header files and libraries for developing software with OpenAFS."
237 LangString DESC_secSDK ${LANG_JAPANESE} "SDK: Header files and libraries for developing software with OpenAFS."
238 LangString DESC_secSDK ${LANG_KOREAN} "SDK: Header files and libraries for developing software with OpenAFS."
239 LangString DESC_secSDK ${LANG_PORTUGUESEBR} "SDK: Header files and libraries for developing software with OpenAFS."
241 LangString DESC_secDEBUG ${LANG_ENGLISH} "Debug symbols: Used for debugging problems with OpenAFS."
242 LangString DESC_secDEBUG ${LANG_GERMAN} "Debug symbols: Used for debugging problems with OpenAFS."
243 LangString DESC_secDEBUG ${LANG_SPANISH} "Debug symbols: Used for debugging problems with OpenAFS."
244 LangString DESC_secDEBUG ${LANG_SIMPCHINESE} "Debug symbols: Used for debugging problems with OpenAFS."
245 LangString DESC_secDEBUG ${LANG_TRADCHINESE} "Debug symbols: Used for debugging problems with OpenAFS."
246 LangString DESC_secDEBUG ${LANG_JAPANESE} "Debug symbols: Used for debugging problems with OpenAFS."
247 LangString DESC_secDEBUG ${LANG_KOREAN} "Debug symbols: Used for debugging problems with OpenAFS."
248 LangString DESC_secDEBUG ${LANG_PORTUGUESEBR} "Debug symbols: Used for debugging problems with OpenAFS."
250 ; Popup error messages
251 LangString CellError ${LANG_ENGLISH} "You must specify a valid CellServDB file to copy during install"
252 LangString CellError ${LANG_GERMAN} "You must specify a valid CellServDB file to copy during the install"
253 LangString CellError ${LANG_SPANISH} "You must specify a valid CellServDB file to copy during the install"
254 LangString CellError ${LANG_SIMPCHINESE} "You must specify a valid CellServDB file to copy during the install"
255 LangString CellError ${LANG_TRADCHINESE} "You must specify a valid CellServDB file to copy during the install"
256 LangString CellError ${LANG_JAPANESE} "You must specify a valid CellServDB file to copy during the install"
257 LangString CellError ${LANG_KOREAN} "You must specify a valid CellServDB file to copy during the install"
258 LangString CellError ${LANG_PORTUGUESEBR} "You must specify a valid CellServDB file to copy during the install"
260 LangString CellNameError ${LANG_ENGLISH} "You must specify a cell name for your client to use."
261 LangString CellNameError ${LANG_GERMAN} "You must specify a cell name for your client to use."
262 LangString CellNameError ${LANG_SPANISH} "You must specify a cell name for your client to use."
263 LangString CellNameError ${LANG_SIMPCHINESE} "You must specify a cell name for your client to use."
264 LangString CellNameError ${LANG_TRADCHINESE} "You must specify a cell name for your client to use."
265 LangString CellNameError ${LANG_JAPANESE} "You must specify a cell name for your client to use."
266 LangString CellNameError ${LANG_KOREAN} "You must specify a cell name for your client to use."
267 LangString CellNameError ${LANG_PORTUGUESEBR} "You must specify a cell name for your client to use."
269 LangString URLError ${LANG_ENGLISH} "You must specify a URL if you choose the option to download the CellServDB."
270 LangString URLError ${LANG_GERMAN} "You must specify a URL if you choose the option to download the CellServDB."
271 LangString URLError ${LANG_SPANISH} "You must specify a URL if you choose the option to download the CellServDB."
272 LangString URLError ${LANG_SIMPCHINESE} "You must specify a URL if you choose the option to download the CellServDB."
273 LangString URLError ${LANG_TRADCHINESE} "You must specify a URL if you choose the option to download the CellServDB."
274 LangString URLError ${LANG_JAPANESE} "You must specify a URL if you choose the option to download the CellServDB."
275 LangString URLError ${LANG_KOREAN} "You must specify a URL if you choose the option to download the CellServDB."
276 LangString URLError ${LANG_PORTUGUESEBR} "You must specify a URL if you choose the option to download the CellServDB."
279 ; Upgrade/re-install strings
280 LangString UPGRADE_CLIENT ${LANG_ENGLISH} "Upgrade AFS Client"
281 LangString UPGRADE_CLIENT ${LANG_GERMAN} "Upgrade AFS Client"
282 LangString UPGRADE_CLIENT ${LANG_SPANISH} "Upgrade AFS Client"
283 LangString UPGRADE_CLIENT ${LANG_SIMPCHINESE} "Upgrade AFS Client"
284 LangString UPGRADE_CLIENT ${LANG_TRADCHINESE} "Upgrade AFS Client"
285 LangString UPGRADE_CLIENT ${LANG_JAPANESE} "Upgrade AFS Client"
286 LangString UPGRADE_CLIENT ${LANG_KOREAN} "Upgrade AFS Client"
287 LangString UPGRADE_CLIENT ${LANG_PORTUGUESEBR} "Upgrade AFS Client"
289 LangString REINSTALL_CLIENT ${LANG_ENGLISH} "Re-install AFS Client"
290 LangString REINSTALL_CLIENT ${LANG_GERMAN} "Re-install AFS Client"
291 LangString REINSTALL_CLIENT ${LANG_SPANISH} "Re-install AFS Client"
292 LangString REINSTALL_CLIENT ${LANG_SIMPCHINESE} "Re-install AFS Client"
293 LangString REINSTALL_CLIENT ${LANG_TRADCHINESE} "Re-install AFS Client"
294 LangString REINSTALL_CLIENT ${LANG_JAPANESE} "Re-install AFS Client"
295 LangString REINSTALL_CLIENT ${LANG_KOREAN} "Re-install AFS Client"
296 LangString REINSTALL_CLIENT ${LANG_PORTUGUESEBR} "Re-install AFS Client"
298 LangString UPGRADE_SERVER ${LANG_ENGLISH} "Upgrade AFS Server"
299 LangString UPGRADE_SERVER ${LANG_GERMAN} "Upgrade AFS Server"
300 LangString UPGRADE_SERVER ${LANG_SPANISH} "Upgrade AFS Server"
301 LangString UPGRADE_SERVER ${LANG_SIMPCHINESE} "Upgrade AFS Server"
302 LangString UPGRADE_SERVER ${LANG_TRADCHINESE} "Upgrade AFS Server"
303 LangString UPGRADE_SERVER ${LANG_JAPANESE} "Upgrade AFS Server"
304 LangString UPGRADE_SERVER ${LANG_KOREAN} "Upgrade AFS Server"
305 LangString UPGRADE_SERVER ${LANG_PORTUGUESEBR} "Upgrade AFS Server"
307 LangString REINSTALL_SERVER ${LANG_ENGLISH} "Re-install AFS Server"
308 LangString REINSTALL_SERVER ${LANG_GERMAN} "Re-install AFS Server"
309 LangString REINSTALL_SERVER ${LANG_SPANISH} "Re-install AFS Server"
310 LangString REINSTALL_SERVER ${LANG_SIMPCHINESE} "Re-install AFS Server"
311 LangString REINSTALL_SERVER ${LANG_TRADCHINESE} "Re-install AFS Server"
312 LangString REINSTALL_SERVER ${LANG_JAPANESE} "Re-install AFS Server"
313 LangString REINSTALL_SERVER ${LANG_KOREAN} "Re-install AFS Server"
314 LangString REINSTALL_SERVER ${LANG_PORTUGUESEBR} "Re-install AFS Server"
316 ReserveFile "CellServPage.ini"
317 ReserveFile "AFSCell.ini"
318 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions plug-in
319 !insertmacro MUI_RESERVEFILE_LANGDLL ;Language selection dialog
320 ;--------------------------------
322 ; Macro - Upgrade DLL File
323 ; Written by Joost Verburg
324 ; ------------------------
327 ; LOCALFILE - Location of the new DLL file (on the compiler system)
328 ; DESTFILE - Location of the DLL file that should be upgraded
329 ; (on the user's system)
330 ; TEMPBASEDIR - Directory on the user's system to store a temporary file
331 ; when the system has to be rebooted.
332 ; For Win9x support, this should be on the same volume as the
334 ; The Windows temp directory could be located on any volume,
335 ; so you cannot use this directory.
337 ; Define REPLACEDLL_NOREGISTER if you want to upgrade a DLL that does not
338 ; have to be registered.
340 ; Note: If you want to support Win9x, you can only use
341 ; short filenames (8.3).
344 ; !insertmacro ReplaceDLL "dllname.dll" "$SYSDIR\dllname.dll" "$SYSDIR"
347 !macro ReplaceDLL LOCALFILE DESTFILE TEMPBASEDIR
356 ;------------------------
357 ;Unique number for labels
359 !define REPLACEDLL_UNIQUE ${__LINE__}
361 ;------------------------
362 ;Copy the parameters used on run-time to a variable
363 ;This allows the usage of variables as paramter
365 StrCpy $R4 "${DESTFILE}"
366 StrCpy $R5 "${TEMPBASEDIR}"
368 ;------------------------
369 ;Check file and version
371 IfFileExists $R4 0 replacedll.copy_${REPLACEDLL_UNIQUE}
374 ; GetDLLVersionLocal "${LOCALFILE}" $R0 $R1
375 ; GetDLLVersion $R4 $R2 $R3
376 ;IfErrors replacedll.upgrade_${REPLACEDLL_UNIQUE}
378 ;IntCmpU $R0 $R2 0 replacedll.done_${REPLACEDLL_UNIQUE} \
379 ; replacedll.upgrade_${REPLACEDLL_UNIQUE}
380 ;IntCmpU $R1 $R3 replacedll.done_${REPLACEDLL_UNIQUE} \
381 ; replacedll.done_${REPLACEDLL_UNIQUE} \
382 ; replacedll.upgrade_${REPLACEDLL_UNIQUE}
384 ;------------------------
385 ;Let's replace the DLL!
389 ;replacedll.upgrade_${REPLACEDLL_UNIQUE}:
390 !ifndef REPLACEDLL_NOREGISTER
395 ;------------------------
396 ;Try to copy the DLL directly
400 Call :replacedll.file_${REPLACEDLL_UNIQUE}
401 IfErrors 0 replacedll.noreboot_${REPLACEDLL_UNIQUE}
403 ;------------------------
404 ;DLL is in use. Copy it to a temp file and Rename it on reboot.
406 GetTempFileName $R0 $R5
407 Call :replacedll.file_${REPLACEDLL_UNIQUE}
408 Rename /REBOOTOK $R0 $R4
410 ;------------------------
411 ;Register the DLL on reboot
413 !ifndef REPLACEDLL_NOREGISTER
414 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \
415 "Register $R4" 'rundll32.exe "$R4",DllRegisterServer'
418 Goto replacedll.done_${REPLACEDLL_UNIQUE}
420 ;------------------------
421 ;DLL does not exist - just extract
423 replacedll.copy_${REPLACEDLL_UNIQUE}:
425 Call :replacedll.file_${REPLACEDLL_UNIQUE}
427 ;------------------------
430 replacedll.noreboot_${REPLACEDLL_UNIQUE}:
431 !ifndef REPLACEDLL_NOREGISTER
435 ;------------------------
438 replacedll.done_${REPLACEDLL_UNIQUE}:
447 ;------------------------
450 Goto replacedll.end_${REPLACEDLL_UNIQUE}
452 ;------------------------
453 ;Called to extract the DLL
455 replacedll.file_${REPLACEDLL_UNIQUE}:
456 File /oname=$R0 "${LOCALFILE}"
459 replacedll.end_${REPLACEDLL_UNIQUE}:
461 ;------------------------
464 SetOverwrite lastused
466 !undef REPLACEDLL_UNIQUE
471 ;--------------------------------
474 ;Things that need to be extracted on first (keep these lines before any File command!)
475 ;Only useful for BZIP2 compression
476 !insertmacro MUI_RESERVEFILE_LANGDLL
478 ;--------------------------------
488 ;--------------------------------
491 ;----------------------
493 Section "AFS Client" secClient
495 SetShellVarContext all
497 ; Check for bad previous installation (if we are doing a new install)
498 Call IsAnyAFSInstalled
500 StrCmp $R0 "0" +1 skipCheck
504 ; Stop any running services or we can't replace the files
505 ; Stop the running processes
507 File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
508 nsExec::Exec '$R0 afsd_service.exe'
509 nsExec::Exec '$R0 afscreds.exe'
510 Exec "afscreds.exe -z"
511 ; in case we are upgrading an old version that does not support -z
512 nsExec::Exec '$R0 afscreds.exe'
514 ;nsExec::Exec '$R0 krbcc32s.exe'
517 nsExec::Exec "net stop TransarcAFSDaemon"
518 nsExec::Exec "net stop TransarcAFSServer"
520 ; Do client components
521 SetOutPath "$INSTDIR\Client\Program"
522 File "${AFS_CLIENT_BUILDDIR}\afsshare.exe"
523 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\libosi.dll" "$INSTDIR\Client\Program\libosi.dll" "$INSTDIR"
524 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\libafsconf.dll" "$INSTDIR\Client\Program\libafsconf.dll" "$INSTDIR"
525 File "${AFS_CLIENT_BUILDDIR}\klog.exe"
526 File "${AFS_CLIENT_BUILDDIR}\tokens.exe"
527 File "${AFS_CLIENT_BUILDDIR}\unlog.exe"
528 File "${AFS_CLIENT_BUILDDIR}\fs.exe"
529 File "${AFS_CLIENT_BUILDDIR}\aklog.exe"
530 File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
531 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll" "$INSTDIR\Client\Program\afs_shl_ext.dll" "$INSTDIR"
532 File "${AFS_CLIENT_BUILDDIR}\afsd_service.exe"
533 File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
534 File "${AFS_DESTDIR}\bin\kpasswd.exe"
535 File "${AFS_SERVER_BUILDDIR}\pts.exe"
536 File "${AFS_SERVER_BUILDDIR}\bos.exe"
537 File "${AFS_SERVER_BUILDDIR}\kas.exe"
538 File "${AFS_SERVER_BUILDDIR}\vos.exe"
539 File "${AFS_SERVER_BUILDDIR}\udebug.exe"
540 File "${AFS_DESTDIR}\bin\translate_et.exe"
541 File "${AFS_DESTDIR}\etc\rxdebug.exe"
542 File "${AFS_DESTDIR}\etc\backup.exe"
543 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa.cpl" "$INSTDIR\Client\Program\afs_cpa.cpl" "$INSTDIR"
546 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afslogon.dll" "$SYSDIR\afslogon.dll" "$INSTDIR"
550 ; Get AFS CellServDB file
551 Call afs.GetCellServDB
554 File /oname=$R0 "${AFS_WININSTALL_DIR}\AdminGroup.exe"
555 nsExec::Exec '$R0 -create'
558 ; Include Kerberos for Windows files in the installer...
559 SetOutPath "$INSTDIR\kfw\bin\"
560 File "${KFW_SOURCE}\bin\*"
561 SetOutPath "$INSTDIR\kfw\doc"
562 File "${KFW_SOURCE}\doc\*"
565 ;Store install folder
566 WriteRegStr HKCU "${AFS_REGKEY_ROOT}\Client" "" $INSTDIR
567 Call AFSCommon.Install
569 ; Write registry entries
570 WriteRegStr HKCR "*\shellex\ContextMenuHandlers\AFS Client Shell Extension" "" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
571 WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" "" "AFS Client Shell Extension"
572 WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "" "$INSTDIR\Client\Program\afs_shl_ext.dll"
573 WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "ThreadingModel" "Apartment"
574 WriteRegStr HKCR "FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" "" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
575 WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" "AFS Client Shell Extension"
576 WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls" "afs_cpa" "$INSTDIR\Client\Program\afs_cpa.cpl"
579 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
580 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "VersionString" ${AFS_VERSION}
581 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Title" "AFS Client"
582 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Description" "AFS Client"
583 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PathName" "$INSTDIR\Client"
584 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Software Type" "File System"
585 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
586 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
587 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
588 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
589 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Title" "AFS Client"
590 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Description" "AFS Client"
591 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Software Type" "File System"
592 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "PathName" "$INSTDIR\Client\Program"
593 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
594 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
595 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
597 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Debug" 1
598 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Debug" 1
600 ; Delete the DEBUG string
601 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Debug"
602 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Debug"
605 ; On Windows 2000 work around KB301673. This is fixed in Windows XP and 2003
606 Call GetWindowsVersion
608 StrCmp $R1 "2000" +1 +2
609 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled" 0
611 ;Write start menu entries
612 CreateDirectory "$SMPROGRAMS\OpenAFS\Client"
613 CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
615 ; Create command line options for AFSCreds...
617 ReadINIStr $R1 $2 "Field 3" "State"
620 ReadINIStr $R1 $2 "Field 5" "State"
623 ReadINIStr $R1 $2 "Field 7" "State"
626 ReadINIStr $R1 $2 "Field 9" "State"
629 ReadINIStr $R1 $2 "Field 13" "State"
633 WriteRegStr HKLM "SOFTWARE\OpenAFS\Client" "AfscredsShortcutParams" "$R2"
635 CreateShortCut "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk" "$INSTDIR\Client\Program\afscreds.exe" "$R2"
637 ReadINIStr $R1 $2 "Field 1" "State"
639 CreateShortCut "$SMSTARTUP\AFS Credentials.lnk" "$INSTDIR\Client\Program\afscreds.exe" "$R2"
641 Push "$INSTDIR\Client\Program"
643 Push "$INSTDIR\Common"
647 ; Add kfw to path too
648 Push "$INSTDIR\kfw\bin"
652 ; Create the AFS service
653 SetOutPath "$INSTDIR\Common"
654 File "${AFS_WININSTALL_DIR}\Service.exe"
655 nsExec::Exec "net stop TransarcAFSDaemon"
656 ;IMPORTANT! If we are not refreshing the config files, do NOT remove the service
657 ;Don't re-install because it must be present or we wouldn't have passed the Reg check
659 ReadRegStr $R2 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell"
660 StrCmp $R2 "" +1 skipremove
661 nsExec::Exec '$INSTDIR\Common\Service.exe u TransarcAFSDaemon'
662 nsExec::Exec '$INSTDIR\Common\Service.exe TransarcAFSDaemon "$INSTDIR\Client\Program\afsd_service.exe" "OpenAFS Client Service"'
664 Delete "$INSTDIR\Common\service.exe"
667 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "" ""
668 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "ProviderPath" "$SYSDIR\afslogon.dll"
669 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$SYSDIR\afslogon.dll"
670 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Class" 2
671 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "VerboseLogging" 10
673 ; Must also add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\HwOrder
674 ; and HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order
675 ; to also include the service name.
677 ReadINIStr $R0 $1 "Field 7" "State"
678 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonOptions" $R0
679 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonScript" "$INSTDIR\Client\Program\afscreds.exe -:%s -x -a -m -n -q"
680 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Name" "OpenAFSDaemon"
683 ReadINIStr $R0 $1 "Field 2" "State"
684 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell" $R0
685 ReadINIStr $R0 $1 "Field 3" "State"
686 WriteRegDWORD HKLM "SOFTWARE\OpenAFS\Client" "ShowTrayIcon" 1
687 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "SecurityLevel" $R0
688 ReadINIStr $R0 $1 "Field 5" "State"
689 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "FreelanceClient" $R0
690 ReadINIStr $R0 $1 "Field 9" "State"
691 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "UseDNS" $R0
692 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "NetbiosName" "AFS"
693 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "MountRoot" "/afs"
694 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "RxMaxMTU" 1260
695 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "IsGateway" 0
696 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "HideDotFiles" 1
698 ; Find Lana By Name appears to be causing grief for many people
699 ; I do not have time to track this down so I am simply going to disable it
700 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "NoFindLanaByName" 1
702 strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon"
703 strcpy $REG_VALUE "DependOnGroup"
704 strcpy $REG_DATA_1 "PNP_TDI"
705 strcpy $REG_DATA_2 ""
706 strcpy $REG_DATA_3 ""
707 Call RegWriteMultiStr
708 strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon"
709 strcpy $REG_VALUE "DependOnService"
710 strcpy $REG_DATA_1 "Tcpip"
711 strcpy $REG_DATA_2 "NETBIOS"
712 strcpy $REG_DATA_3 "RpcSs"
713 Call RegWriteMultiStr
715 ; WinLogon Event Notification
716 WriteRegDWORD HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Asynchronous" 0
717 WriteRegDWORD HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Impersonate" 1
718 WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "DLLName" "afslogon.dll"
719 WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Logoff" "AFS_Logoff_Event"
720 WriteRegStr HKLM "Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" "Startup" "AFS_Startup_Event"
724 WriteUninstaller "$INSTDIR\Uninstall.exe"
730 ; MS Loopback adapter
731 Section "MS Loopback Adapter" secLoopback
733 Call afs.InstallMSLoopback
738 ;------------------------
740 Section "AFS Server" secServer
742 SetShellVarContext all
744 ; Check for bad previous installation (if we are doing a new install)
745 Call IsAnyAFSInstalled
747 StrCmp $R0 "0" +1 skipCheck
751 ; Stop any running services or we can't replace the files
752 ; Stop the running processes
754 File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe"
755 nsExec::Exec '$R0 afscreds.exe'
756 Exec "afscreds.exe -z"
757 ; in case we are upgrading an old version that does not support -z
759 nsExec::Exec '$R0 afscreds.exe'
761 ;nsExec::Exec '$R0 krbcc32s.exe'
766 nsExec::Exec "net stop TransarcAFSDaemon"
767 nsExec::Exec "net stop TransarcAFSServer"
769 CreateDirectory "$INSTDIR\Server\usr\afs\etc"
770 CreateDirectory "$INSTDIR\Server\usr\afs\local"
771 CreateDirectory "$INSTDIR\Server\usr\afs\etc\logs"
773 SetOutPath "$INSTDIR\Server\usr\afs\bin"
774 File "${AFS_SERVER_BUILDDIR}\afskill.exe"
775 File "${AFS_SERVER_BUILDDIR}\afssvrcfg.exe"
776 File "${AFS_SERVER_BUILDDIR}\bosctlsvc.exe"
777 File "${AFS_SERVER_BUILDDIR}\bosserver.exe"
778 File "${AFS_SERVER_BUILDDIR}\buserver.exe"
779 File "${AFS_ETC_BUILDDIR}\butc.exe"
780 File "${AFS_SERVER_BUILDDIR}\fileserver.exe"
781 File "${AFS_ETC_BUILDDIR}\fms.exe"
782 File "${AFS_SERVER_BUILDDIR}\kaserver.exe"
783 File "${AFS_SERVER_BUILDDIR}\ptserver.exe"
784 File "${AFS_SERVER_BUILDDIR}\salvager.exe"
785 File "${AFS_SERVER_BUILDDIR}\upclient.exe"
786 File "${AFS_SERVER_BUILDDIR}\upserver.exe"
787 File "${AFS_SERVER_BUILDDIR}\vlserver.exe"
788 File "${AFS_SERVER_BUILDDIR}\volinfo.exe"
789 File "${AFS_SERVER_BUILDDIR}\volserver.exe"
791 ;AFS Server common files
792 SetOutPath "$INSTDIR\Common"
793 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
794 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
795 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
796 File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
797 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
799 SetOutPath "$INSTDIR\Common"
803 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver.cpl" "$SYSDIR\afsserver.cpl" "$INSTDIR"
805 ;Store install folder
806 WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Server" "" $INSTDIR
808 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
809 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "VersionString" ${AFS_VERSION}
810 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Title" "AFS Server"
811 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Description" "AFS Server for Windows"
812 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PathName" "$INSTDIR\Server"
813 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Software Type" "File System"
814 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
815 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
816 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
817 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
818 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Title" "AFS Server"
819 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Description" "AFS Server for Windows"
820 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Software Type" "File System"
821 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "PathName" "$INSTDIR\Server"
822 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
823 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
824 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
826 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Debug" 1
827 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Debug" 1
829 ; Delete the DEBUG string
830 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Debug"
831 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Debug"
833 ; Install the service
834 SetOutPath "$INSTDIR\Common"
835 File "${AFS_WININSTALL_DIR}\Service.exe"
837 File "${AFS_WININSTALL_DIR}\Service.pdb"
840 ; Check if the service exists--if it does, this is an upgrade/re-install
841 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSServer" "ImagePath"
842 StrCmp $R0 "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" SkipStartup
844 ; If an uninstall was done, but we kept the config files, also skip
845 IfFileExists "$INSTDIR\Server\usr\afs\etc\ThisCell" SkipStartup
847 ; Make the server config wizard auto-start on bootup if this is an install (not an upgrade)
848 WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "AFS Server Wizard" '"$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe" /wizard"'
852 ;Don't want to whack existing settings... Make users un-install and then re-install if they want that
853 ;nsExec::Exec '$INSTDIR\Common\service.exe u TransarcAFSServer'
854 nsExec::Exec '$INSTDIR\Common\service.exe TransarcAFSServer "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" "OpenAFS AFS Server"'
855 Delete "$INSTDIR\Common\service.exe"
857 CreateDirectory "$SMPROGRAMS\OpenAFS\Server"
858 CreateShortCut "$SMPROGRAMS\OpenAFS\Server\Server Configuration.lnk" "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
861 WriteUninstaller "$INSTDIR\Uninstall.exe"
866 ;----------------------------
867 ; OpenAFS Control Center
868 Section "AFS Control Center" secControl
870 SetShellVarContext all
872 SetOutPath "$INSTDIR\Control Center"
873 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager.exe"
874 File "${AFS_SERVER_BUILDDIR}\TaAfsAdmSvr.exe"
875 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager.exe"
878 ;AFS Server common files
879 Call AFSCommon.Install
881 SetOutPath "$INSTDIR\Common"
883 ;Store install folder
884 WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName" $INSTDIR
885 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "VersionString" ${AFS_VERSION}
886 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
887 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
888 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
889 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
890 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
891 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
892 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
894 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "Debug" 1
895 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "Debug" 1
897 ; Delete the DEBUG string
898 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "Debug"
899 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "Debug"
902 ;Write start menu entries
903 CreateDirectory "$SMPROGRAMS\OpenAFS\Control Center"
904 CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk" "$INSTDIR\Control Center\TaAfsAccountManager.exe"
905 CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk" "$INSTDIR\Control Center\TaAfsServerManager.exe"
907 WriteUninstaller "$INSTDIR\Uninstall.exe"
912 ;----------------------------
913 ; OpenAFS Supplemental Documentation
914 Section "Supplemental Documentation" secDocs
915 SetShellVarContext all
917 StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
918 StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
919 StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
920 StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
921 StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
922 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
923 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
924 StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
928 SetOutPath "$INSTDIR\Documentation\html"
929 File "..\..\doc\install\Documentation\en_US\html\*"
930 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
931 File "..\..\doc\install\Documentation\en_US\html\CmdRef\*"
932 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
933 File "..\..\doc\install\Documentation\en_US\html\InstallGd\*"
934 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
935 File "..\..\doc\install\Documentation\en_US\html\ReleaseNotes\*"
936 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
937 File "..\..\doc\install\Documentation\en_US\html\SysAdminGd\*"
941 SetOutPath "$INSTDIR\Documentation"
942 File "..\..\doc\install\Documentation\de_DE\README.TXT"
943 SetOutPath "$INSTDIR\Documentation\html"
944 File "..\..\doc\install\Documentation\de_DE\html\*"
945 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
946 ;File "..\..\doc\install\Documentation\de_DE\html\CmdRef\*"
947 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
948 File "..\..\doc\install\Documentation\de_DE\html\InstallGd\*"
949 ;SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
950 ;File "..\..\doc\install\Documentation\de_DE\html\ReleaseNotes\*"
951 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
952 ;File "..\..\doc\install\Documentation\de_DE\html\SysAdminGd\*"
956 SetOutPath "$INSTDIR\Documentation"
957 File "..\..\doc\install\Documentation\es_ES\README.TXT"
958 SetOutPath "$INSTDIR\Documentation\html"
959 File "..\..\doc\install\Documentation\es_ES\html\*"
960 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
961 ;File "..\..\doc\install\Documentation\es_ES\html\CmdRef\*"
962 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
963 ;File "..\..\doc\install\Documentation\es_ES\html\InstallGd\*"
964 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
965 ;File "..\..\doc\install\Documentation\es_ES\html\ReleaseNotes\*"
966 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
967 ;File "..\..\doc\install\Documentation\es_ES\html\SysAdminGd\*"
971 SetOutPath "$INSTDIR\Documentation"
972 File "..\..\doc\install\Documentation\ja_JP\README.TXT"
973 SetOutPath "$INSTDIR\Documentation\html"
974 File "..\..\doc\install\Documentation\ja_JP\html\*"
975 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
976 File "..\..\doc\install\Documentation\ja_JP\html\CmdRef\*"
977 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
978 File "..\..\doc\install\Documentation\ja_JP\html\InstallGd\*"
979 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
980 ;File "..\..\doc\install\Documentation\ja_JP\html\ReleaseNotes\*"
981 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
982 ;File "..\..\doc\install\Documentation\ja_JP\html\SysAdminGd\*"
986 SetOutPath "$INSTDIR\Documentation"
987 File "..\..\doc\install\Documentation\ko_KR\README.TXT"
988 SetOutPath "$INSTDIR\Documentation\html"
989 File "..\..\doc\install\Documentation\ko_KR\html\*"
990 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
991 ;File "..\..\doc\install\Documentation\ko_KR\html\CmdRef\*"
992 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
993 File "..\..\doc\install\Documentation\ko_KR\html\InstallGd\*"
994 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
995 File "..\..\doc\install\Documentation\ko_KR\html\ReleaseNotes\*"
996 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
997 File "..\..\doc\install\Documentation\ko_KR\html\SysAdminGd\*"
1001 SetOutPath "$INSTDIR\Documentation"
1002 File "..\..\doc\install\Documentation\pt_BR\README.TXT"
1003 SetOutPath "$INSTDIR\Documentation\html"
1004 File "..\..\doc\install\Documentation\pt_BR\html\*"
1005 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1006 ;File "..\..\doc\install\Documentation\pt_BR\html\CmdRef\*"
1007 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1008 File "..\..\doc\install\Documentation\pt_BR\html\InstallGd\*"
1009 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1010 File "..\..\doc\install\Documentation\pt_BR\html\ReleaseNotes\*"
1011 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1012 ;File "..\..\doc\install\Documentation\pt_BR\html\SysAdminGd\*"
1016 SetOutPath "$INSTDIR\Documentation"
1017 File "..\..\doc\install\Documentation\zh_CN\README.TXT"
1018 SetOutPath "$INSTDIR\Documentation\html"
1019 File "..\..\doc\install\Documentation\zh_CN\html\*"
1020 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1021 ;File "..\..\doc\install\Documentation\zh_CN\html\CmdRef\*"
1022 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1023 File "..\..\doc\install\Documentation\zh_CN\html\InstallGd\*"
1024 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1025 File "..\..\doc\install\Documentation\zh_CN\html\ReleaseNotes\*"
1026 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1027 ;File "..\..\doc\install\Documentation\zh_CN\html\SysAdminGd\*"
1031 SetOutPath "$INSTDIR\Documentation"
1032 File "..\..\doc\install\Documentation\zh_TW\README.TXT"
1033 SetOutPath "$INSTDIR\Documentation\html"
1034 File "..\..\doc\install\Documentation\zh_TW\html\*"
1035 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1036 ;File "..\..\doc\install\Documentation\zh_TW\html\CmdRef\*"
1037 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1038 File "..\..\doc\install\Documentation\zh_TW\html\InstallGd\*"
1039 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1040 File "..\..\doc\install\Documentation\zh_TW\html\ReleaseNotes\*"
1041 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1042 ;File "..\..\doc\install\Documentation\zh_TW\html\SysAdminGd\*"
1047 ;Store install folder
1048 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation" "" $INSTDIR
1049 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "VersionString" ${AFS_VERSION}
1050 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
1051 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
1052 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
1053 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
1054 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
1055 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
1056 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
1058 ; Write start menu shortcut
1059 SetOutPath "$SMPROGRAMS\OpenAFS"
1060 CreateShortCut "$SMPROGRAMS\OpenAFS\Documentation.lnk" "$INSTDIR\Documentation\html\index.htm"
1063 WriteUninstaller "$INSTDIR\Uninstall.exe"
1064 CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
1065 Call AFSCommon.Install
1069 Section "Software Development Kit (SDK)" secSDK
1071 SetOutPath "$INSTDIR\Client\Program\lib"
1072 File /r "${AFS_CLIENT_LIBDIR}\*.*"
1074 SetOutPath "$INSTDIR\Client\Program\Include"
1075 File /r "${AFS_BUILD_INCDIR}\*.*"
1078 SetOutPath "$INSTDIR\Client\Program\Sample"
1079 File "..\..\afsd\sample\token.c"
1081 ;Store install folder
1082 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK" "" $INSTDIR
1083 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "VersionString" ${AFS_VERSION}
1084 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
1085 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
1086 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
1087 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
1088 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
1089 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
1090 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
1092 WriteUninstaller "$INSTDIR\Uninstall.exe"
1093 SetOutPath "$SMPROGRAMS\OpenAFS"
1094 CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
1096 Call AFSCommon.Install
1100 Section "Debug symbols" secDebug
1101 SectionGetFlags ${secClient} $R0
1102 IntOp $R0 $R0 & ${SF_SELECTED}
1103 IntCmp $R0 ${SF_SELECTED} +1 DoServer
1105 ; Do client components
1106 SetOutPath "$INSTDIR\Client\Program"
1107 File "${AFS_CLIENT_BUILDDIR}\afsshare.pdb"
1108 File "${AFS_CLIENT_BUILDDIR}\libosi.pdb"
1109 File "${AFS_CLIENT_BUILDDIR}\libafsconf.pdb"
1110 File "${AFS_CLIENT_BUILDDIR}\klog.pdb"
1111 File "${AFS_CLIENT_BUILDDIR}\tokens.pdb"
1112 File "${AFS_CLIENT_BUILDDIR}\unlog.pdb"
1113 File "${AFS_CLIENT_BUILDDIR}\fs.pdb"
1114 File "${AFS_CLIENT_BUILDDIR}\aklog.pdb"
1115 File "${AFS_CLIENT_BUILDDIR}\afscreds.pdb"
1116 File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.pdb"
1117 File "${AFS_CLIENT_BUILDDIR}\afsd_service.pdb"
1118 File "${AFS_CLIENT_BUILDDIR}\symlink.pdb"
1119 File "${AFS_DESTDIR}\bin\kpasswd.pdb"
1120 File "${AFS_DESTDIR}\bin\pts.pdb"
1121 File "${AFS_SERVER_BUILDDIR}\bos.pdb"
1122 File "${AFS_SERVER_BUILDDIR}\kas.pdb"
1123 File "${AFS_SERVER_BUILDDIR}\vos.pdb"
1124 File "${AFS_SERVER_BUILDDIR}\udebug.pdb"
1125 File "${AFS_DESTDIR}\bin\translate_et.pdb"
1126 File "${AFS_DESTDIR}\etc\rxdebug.pdb"
1127 File "${AFS_DESTDIR}\etc\backup.pdb"
1128 File "${AFS_CLIENT_BUILDDIR}\afs_cpa.pdb"
1130 SetOutPath "$SYSDIR"
1131 File "${AFS_CLIENT_BUILDDIR}\afslogon.pdb"
1134 SectionGetFlags ${secServer} $R0
1135 IntOp $R0 $R0 & ${SF_SELECTED}
1136 IntCmp $R0 ${SF_SELECTED} +1 DoControl
1138 ; Do server components
1139 SetOutPath "$INSTDIR\Server\usr\afs\bin"
1140 File "${AFS_SERVER_BUILDDIR}\afskill.pdb"
1141 File "${AFS_SERVER_BUILDDIR}\afssvrcfg.pdb"
1142 File "${AFS_SERVER_BUILDDIR}\bosctlsvc.pdb"
1143 File "${AFS_SERVER_BUILDDIR}\bosserver.pdb"
1144 File "${AFS_SERVER_BUILDDIR}\buserver.pdb"
1145 File "${AFS_ETC_BUILDDIR}\butc.pdb"
1146 File "${AFS_SERVER_BUILDDIR}\fileserver.pdb"
1147 File "${AFS_ETC_BUILDDIR}\fms.pdb"
1148 File "${AFS_SERVER_BUILDDIR}\kaserver.pdb"
1149 File "${AFS_SERVER_BUILDDIR}\ptserver.pdb"
1150 File "${AFS_SERVER_BUILDDIR}\salvager.pdb"
1151 File "${AFS_SERVER_BUILDDIR}\upclient.pdb"
1152 File "${AFS_SERVER_BUILDDIR}\upserver.pdb"
1153 File "${AFS_SERVER_BUILDDIR}\vlserver.pdb"
1154 File "${AFS_SERVER_BUILDDIR}\volinfo.pdb"
1155 File "${AFS_SERVER_BUILDDIR}\volserver.pdb"
1157 ; Do server common components
1158 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.pdb"
1159 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.pdb"
1160 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.pdb"
1161 File "${AFS_SERVER_BUILDDIR}\afskasadmin.pdb"
1162 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.pdb"
1164 SetOutPath "$SYSDIR"
1165 File "${AFS_SERVER_BUILDDIR}\afsserver.pdb"
1167 ; Do control center components
1169 SectionGetFlags ${secControl} $R0
1170 IntOp $R0 $R0 & ${SF_SELECTED}
1171 IntCmp $R0 ${SF_SELECTED} +1 DoCommon
1173 SetOutPath "$INSTDIR\Control Center"
1174 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager.pdb"
1175 File "${AFS_SERVER_BUILDDIR}\TaAfsAdmSvr.pdb"
1176 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager.pdb"
1179 SetOutPath "$INSTDIR\Common"
1181 File "${SYSTEMDIR}\msvcr80d.pdb"
1182 File "${SYSTEMDIR}\msvcp80d.pdb"
1183 File "${SYSTEMDIR}\mfc80d.pdb"
1186 File "${SYSTEMDIR}\msvcr71d.pdb"
1187 File "${SYSTEMDIR}\msvcp71d.pdb"
1188 File "${SYSTEMDIR}\mfc71d.pdb"
1191 File "${SYSTEMDIR}\msvcr70d.pdb"
1192 File "${SYSTEMDIR}\msvcp70d.pdb"
1193 File "${SYSTEMDIR}\mfc70d.pdb"
1195 File "${SYSTEMDIR}\mfc42d.pdb"
1196 File "${SYSTEMDIR}\msvcp60d.pdb"
1197 File "${SYSTEMDIR}\msvcrtd.pdb"
1203 SetOutPath "$INSTDIR\Common"
1204 File "${AFS_CLIENT_BUILDDIR}\afs_config.pdb"
1205 File "${AFS_SERVER_BUILDDIR}\afsadminutil.pdb"
1206 File "${AFS_DESTDIR}\lib\afsauthent.pdb"
1207 File "${AFS_DESTDIR}\lib\afspthread.pdb"
1208 File "${AFS_DESTDIR}\lib\afsrpc.pdb"
1209 File "${AFS_SERVER_BUILDDIR}\afsclientadmin.pdb"
1210 File "${AFS_SERVER_BUILDDIR}\afsprocmgmt.pdb"
1211 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.pdb"
1212 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib.pdb"
1213 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.pdb"
1214 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.pdb"
1215 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.pdb"
1216 File "${AFS_SERVER_BUILDDIR}\afskasadmin.pdb"
1217 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.pdb"
1222 ;Display the Finish header
1223 ;Insert this macro after the sections if you are not using a finish page
1224 ;!insertmacro MUI_SECTIONS_FINISHHEADER
1226 ;--------------------------------
1227 ;Installer Functions
1231 !insertmacro MUI_LANGDLL_DISPLAY
1233 ; Set the default install options
1238 StrCmp $R0 "true" contInstall
1240 MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "You must be an administrator of this machine to install this software."
1245 ; Check that RPC functions are installed (I believe any one of these can be present for
1247 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncacn_np"
1248 StrCmp $R0 "rpcrt4.dll" contInstall2
1249 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncacn_ip_tcp"
1250 StrCmp $R0 "rpcrt4.dll" contInstall2
1251 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncadg_ip_udp"
1252 StrCmp $R0 "rpcrt4.dll" contInstall2
1254 MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "An error was detected with your Windows RPC installation. Please make sure Windows RPC is installed before installing OpenAFS."
1260 ; If the Loopback is already installed, we mark the option OFF and Read Only
1261 ; so the user can not select it.
1262 Call afs.isLoopbackInstalled
1263 IntCmp $R1 0 SkipLoop
1264 SectionGetFlags ${secLoopback} $0
1265 IntOp $0 $0 & ${SECTION_OFF}
1266 IntOp $0 $0 | ${SF_RO}
1267 SectionSetFlags ${secLoopback} $0
1270 ; Never install debug symbols unless explicitly selected, except in DEBUG mode
1272 SectionGetFlags ${secDebug} $0
1273 IntOp $0 $0 & ${SECTION_OFF}
1274 SectionSetFlags ${secDebug} $0
1276 SectionGetFlags ${secDebug} $0
1277 IntOp $0 $0 | ${SF_SELECTED}
1278 SectionSetFlags ${secDebug} $0
1280 ; Our logic should be like this.
1281 ; 1) If no AFS components are installed, we do a clean install with default options. (Client/Docs)
1282 ; 2) If existing modules are installed, we keep them selected
1283 ; 3) If it is an upgrade, we set the text accordingly, else we mark it as a re-install
1285 Call IsAnyAFSInstalled
1287 StrCmp $R0 "0" DefaultOptions
1289 Call ShouldClientInstall
1292 ; Check if it was an IBM/Transarc version
1293 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "DisplayName"
1294 StrCmp $R0 "IBM AFS Client" DoIBM
1295 StrCmp $R0 "Transarc AFS Client" DoIBM
1298 StrCmp $R2 "0" NoClient
1299 StrCmp $R2 "1" ReinstallClient
1300 StrCmp $R2 "2" UpgradeClient
1301 StrCmp $R2 "3" DowngradeClient
1304 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\AFS Client\CurrentVersion" "MajorVersion"
1305 StrCmp $R0 "3" +1 NotIBM
1310 SectionGetFlags ${secClient} $0
1311 IntOp $0 $0 | ${SF_SELECTED}
1312 SectionSetFlags ${secClient} $0
1313 ;# !insertmacro SelectSection ${secClient}
1316 ;StrCpy $1 ${secClient} ; Gotta remember which section we are at now...
1317 SectionGetFlags ${secClient} $0
1318 IntOp $0 $0 & ${SECTION_OFF}
1319 SectionSetFlags ${secClient} $0
1322 SectionGetFlags ${secClient} $0
1323 IntOp $0 $0 | ${SF_SELECTED}
1324 SectionSetFlags ${secClient} $0
1325 SectionSetText ${secClient} $(UPGRADE_CLIENT)
1328 SectionGetFlags ${secClient} $0
1329 IntOp $0 $0 | ${SF_SELECTED}
1330 SectionSetFlags ${secClient} $0
1331 SectionSetText ${secClient} $(REINSTALL_CLIENT)
1334 SectionGetFlags ${secClient} $0
1335 IntOp $0 $0 | ${SF_SELECTED}
1336 SectionSetFlags ${secClient} $0
1337 SectionSetText ${secClient} $(REINSTALL_CLIENT)
1343 Call ShouldServerInstall
1345 StrCmp $R2 "0" NoServer
1346 StrCmp $R2 "1" ReinstallServer
1347 StrCmp $R2 "2" UpgradeServer
1348 StrCmp $R2 "3" DowngradeServer
1350 SectionGetFlags ${secServer} $0
1351 IntOp $0 $0 | ${SF_SELECTED}
1352 SectionSetFlags ${secServer} $0
1353 ;# !insertmacro UnselectSection ${secServer}
1357 SectionGetFlags ${secServer} $0
1358 IntOp $0 $0 | ${SF_SELECTED}
1359 SectionSetFlags ${secServer} $0
1360 SectionSetText ${secServer} $(UPGRADE_SERVER)
1364 SectionGetFlags ${secServer} $0
1365 IntOp $0 $0 | ${SF_SELECTED}
1366 SectionSetFlags ${secServer} $0
1367 SectionSetText ${secServer} $(REINSTALL_SERVER)
1371 SectionGetFlags ${secServer} $0
1372 IntOp $0 $0 | ${SF_SELECTED}
1373 SectionSetFlags ${secServer} $0
1374 SectionSetText ${secServer} $(REINSTALL_SERVER)
1378 SectionGetFlags ${secServer} $0
1379 IntOp $0 $0 & ${SECTION_OFF}
1380 SectionSetFlags ${secServer} $0
1381 ;# !insertmacro UnselectSection ${secServer}
1385 ; Check control center
1386 Call IsControlInstalled
1388 StrCmp $R2 "0" NoControl
1390 SectionGetFlags ${secControl} $0
1391 IntOp $0 $0 | ${SF_SELECTED}
1392 SectionSetFlags ${secControl} $0
1396 SectionGetFlags ${secControl} $0
1397 IntOp $0 $0 & ${SECTION_OFF}
1398 SectionSetFlags ${secControl} $0
1399 ;# !insertmacro UnselectSection ${secControl}
1402 ; Check Documentation
1403 Call IsDocumentationInstalled
1405 StrCmp $R2 "0" NoDocs
1406 SectionGetFlags ${secDocs} $0
1407 IntOp $0 $0 | ${SF_SELECTED}
1408 SectionSetFlags ${secDocs} $0
1412 SectionGetFlags ${secDocs} $0
1413 IntOp $0 $0 & ${SECTION_OFF}
1414 SectionSetFlags ${secDocs} $0
1417 ; To check the SDK, we simply look to see if the files exist. If they do,
1418 ; the SDK is installed. If not, we don't need to push it on the user.
1419 ; If they are there, we want to make sure they match the installed version.
1421 IfFileExists "$INSTDIR\Client\Program\Include\main.h" +1 NoSDK
1422 SectionGetFlags ${secSDK} $0
1423 IntOp $0 $0 | ${SF_SELECTED}
1424 SectionSetFlags ${secSDK} $0
1428 SectionGetFlags ${secSDK} $0
1429 IntOp $0 $0 & ${SECTION_OFF}
1430 SectionSetFlags ${secSDK} $0
1435 SectionGetFlags ${secClient} $0
1436 IntOp $0 $0 | ${SF_SELECTED}
1437 SectionSetFlags ${secClient} $0
1439 ; Server NOT selected
1440 SectionGetFlags ${secServer} $0
1441 IntOp $0 $0 & ${SECTION_OFF}
1442 SectionSetFlags ${secServer} $0
1444 ; Control Center NOT selected
1445 SectionGetFlags ${secControl} $0
1446 IntOp $0 $0 & ${SECTION_OFF}
1447 SectionSetFlags ${secControl} $0
1448 ;# !insertmacro UnselectSection ${secControl}
1450 ; Documentation selected
1451 SectionGetFlags ${secDocs} $0
1452 IntOp $0 $0 | ${SF_SELECTED}
1453 SectionSetFlags ${secDocs} $0
1454 ;# !insertmacro UnselectSection ${secDocs}
1457 SectionGetFlags ${secSDK} $0
1458 IntOp $0 $0 & ${SECTION_OFF}
1459 SectionSetFlags ${secSDK} $0
1460 ;# !insertmacro UnselectSection ${secSDK}
1469 ; See if we can set a default installation path...
1470 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PathName"
1471 StrCmp $R0 "" TryServer
1475 ; Work around bug in 1.3.5000, 1.3.5100, 1.3.5200, 1.3.5201, 1.3.5299 installers...
1476 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MajorVersion"
1477 StrCmp $R0 "1" +1 SkipParent
1478 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MinorVersion"
1479 StrCmp $R0 "3" +1 SkipParent
1480 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PatchLevel"
1481 StrCmp $R0 "5000" UpParent
1482 StrCmp $R0 "5100" UpParent
1483 StrCmp $R0 "5200" UpParent
1484 StrCmp $R0 "5201" UpParent
1485 StrCmp $R0 "5299" UpParent
1497 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PathName"
1498 StrCmp $R0 "" TryControl
1506 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName"
1514 File /oname=$0 CellServPage.ini
1516 File /oname=$1 AFSCell.ini
1518 File /oname=$2 AFSCreds.ini
1519 ;File /oname=$1 ConfigURL.ini
1527 ;--------------------------------
1528 ; These are our cleanup functions
1529 Function .onInstFailed
1534 Function .onInstSuccess
1540 ;--------------------------------
1543 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
1544 !insertmacro MUI_DESCRIPTION_TEXT ${secServer} $(DESC_secServer)
1545 !insertmacro MUI_DESCRIPTION_TEXT ${secClient} $(DESC_secClient)
1546 !insertmacro MUI_DESCRIPTION_TEXT ${secControl} $(DESC_secControl)
1547 !insertmacro MUI_DESCRIPTION_TEXT ${secDocs} $(DESC_secDocs)
1548 !insertmacro MUI_DESCRIPTION_TEXT ${secSDK} $(DESC_secSDK)
1549 !insertmacro MUI_DESCRIPTION_TEXT ${secLoopback} $(DESC_secLoopback)
1550 !insertmacro MUI_DESCRIPTION_TEXT ${secDebug} $(DESC_secDebug)
1551 !insertmacro MUI_FUNCTION_DESCRIPTION_END
1553 ;--------------------------------
1554 ;Uninstaller Section
1557 ; Make sure the user REALLY wants to do this, unless they did a silent uninstall, in which case...let them!
1558 IfSilent StartRemove ; New in v2.0b4
1559 MessageBox MB_YESNO "Are you sure you want to remove OpenAFS from this machine?" IDYES StartRemove
1564 SetShellVarContext all
1565 ; Stop the running processes
1567 File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe"
1568 nsExec::Exec '$R0 afscreds.exe'
1569 Exec "afscreds.exe -z"
1570 ; in case we are upgrading an old version that does not support -z
1572 nsExec::Exec '$R0 afscreds.exe'
1574 nsExec::Exec '$R0 krbcc32s.exe'
1577 ; Delete the AFS service
1579 File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
1580 nsExec::Exec "net stop TransarcAFSDaemon"
1581 nsExec::Exec "net stop TransarcAFSServer"
1582 nsExec::Exec '$R0 u TransarcAFSDaemon'
1583 ; After we stop the service, but before we delete it, we have to remove the volume data
1584 ; This is because the storage locations are in the registry under the service key.
1585 ; Call un.RemoveAFSVolumes
1586 nsExec::Exec '$R0 u TransarcAFSServer'
1589 Call un.RemoveProvider
1591 Push "$INSTDIR\Client\Program"
1592 Call un.RemoveFromPath
1593 Push "$INSTDIR\Common"
1594 Call un.RemoveFromPath
1596 Push "$INSTDIR\kfw\bin"
1597 Call un.RemoveFromPath
1600 ; Delete documentation
1601 Delete "$INSTDIR\Documentation\README.TXT"
1602 Delete "$INSTDIR\Documentation\html\*"
1603 Delete "$INSTDIR\Documentation\html\CmdRef\*"
1604 Delete "$INSTDIR\Documentation\html\InstallGd\*"
1605 Delete "$INSTDIR\Documentation\html\ReleaseNotes\*"
1606 Delete "$INSTDIR\Documentation\html\SysAdminGd\*"
1608 Delete /REBOOTOK "$INSTDIR\Common\afs_config.exe"
1609 Delete /REBOOTOK "$INSTDIR\Common\afs_shl_ext.dll"
1610 Delete /REBOOTOK "$INSTDIR\Common\afsadminutil.dll"
1611 Delete /REBOOTOK "$INSTDIR\Common\lib\afsauthent.dll"
1612 Delete /REBOOTOK "$INSTDIR\Common\lib\afspthread.dll"
1613 Delete /REBOOTOK "$INSTDIR\Common\lib\afsrpc.dll"
1614 Delete /REBOOTOK "$INSTDIR\Common\afsclientadmin.dll"
1615 Delete /REBOOTOK "$INSTDIR\Common\afsprocmgmt.dll"
1616 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.dll"
1617 Delete /REBOOTOK "$INSTDIR\Common\TaAfsAppLib.dll"
1618 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.dll"
1619 Delete /REBOOTOK "$INSTDIR\Common\afsbosadmin.dll"
1620 Delete /REBOOTOK "$INSTDIR\Common\afscfgadmin.dll"
1621 Delete /REBOOTOK "$INSTDIR\Common\afskasadmin.dll"
1622 Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.dll"
1624 Delete /REBOOTOK "$INSTDIR\Common\afs_config.pdb"
1625 Delete /REBOOTOK "$INSTDIR\Common\afs_shl_ext.pdb"
1626 Delete /REBOOTOK "$INSTDIR\Common\afsadminutil.pdb"
1627 Delete /REBOOTOK "$INSTDIR\Common\lib\afsauthent.pdb"
1628 Delete /REBOOTOK "$INSTDIR\Common\lib\afspthread.pdb"
1629 Delete /REBOOTOK "$INSTDIR\Common\lib\afsrpc.pdb"
1630 Delete /REBOOTOK "$INSTDIR\Common\afsclientadmin.pdb"
1631 Delete /REBOOTOK "$INSTDIR\Common\afsprocmgmt.pdb"
1632 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.pdb"
1633 Delete /REBOOTOK "$INSTDIR\Common\TaAfsAppLib.pdb"
1634 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.pdb"
1635 Delete /REBOOTOK "$INSTDIR\Common\afsbosadmin.pdb"
1636 Delete /REBOOTOK "$INSTDIR\Common\afscfgadmin.pdb"
1637 Delete /REBOOTOK "$INSTDIR\Common\afskasadmin.pdb"
1638 Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.pdb"
1641 Delete /REBOOTOK "$INSTDIR\bin\msvcr80d.dll"
1642 Delete /REBOOTOK "$INSTDIR\bin\msvcr80d.pdb"
1643 Delete /REBOOTOK "$INSTDIR\bin\msvcp80d.dll"
1644 Delete /REBOOTOK "$INSTDIR\bin\msvcp80d.pdb"
1645 Delete /REBOOTOK "$INSTDIR\bin\mfc80d.dll"
1646 Delete /REBOOTOK "$INSTDIR\bin\mfc80d.pdb"
1649 Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.dll"
1650 Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.pdb"
1651 Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.dll"
1652 Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.pdb"
1653 Delete /REBOOTOK "$INSTDIR\bin\mfc71d.dll"
1654 Delete /REBOOTOK "$INSTDIR\bin\mfc71d.pdb"
1657 Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.dll"
1658 Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.pdb"
1659 Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.dll"
1660 Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.pdb"
1661 Delete /REBOOTOK "$INSTDIR\bin\mfc70d.dll"
1662 Delete /REBOOTOK "$INSTDIR\bin\mfc70d.pdb"
1664 Delete /REBOOTOK "$INSTDIR\bin\mfc42d.dll"
1665 Delete /REBOOTOK "$INSTDIR\bin\mfc42d.pdb"
1666 Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.dll"
1667 Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.pdb"
1668 Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.dll"
1669 Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.pdb"
1675 Delete /REBOOTOK "$INSTDIR\bin\mfc80.dll"
1676 Delete /REBOOTOK "$INSTDIR\bin\msvcr80.dll"
1677 Delete /REBOOTOK "$INSTDIR\bin\msvcp80.dll"
1678 Delete /REBOOTOK "$INSTDIR\bin\MFC80CHS.DLL"
1679 Delete /REBOOTOK "$INSTDIR\bin\MFC80CHT.DLL"
1680 Delete /REBOOTOK "$INSTDIR\bin\MFC80DEU.DLL"
1681 Delete /REBOOTOK "$INSTDIR\bin\MFC80ENU.DLL"
1682 Delete /REBOOTOK "$INSTDIR\bin\MFC80ESP.DLL"
1683 Delete /REBOOTOK "$INSTDIR\bin\MFC80FRA.DLL"
1684 Delete /REBOOTOK "$INSTDIR\bin\MFC80ITA.DLL"
1685 Delete /REBOOTOK "$INSTDIR\bin\MFC80JPN.DLL"
1686 Delete /REBOOTOK "$INSTDIR\bin\MFC80KOR.DLL"
1689 Delete /REBOOTOK "$INSTDIR\bin\mfc71.dll"
1690 Delete /REBOOTOK "$INSTDIR\bin\msvcr71.dll"
1691 Delete /REBOOTOK "$INSTDIR\bin\msvcp71.dll"
1692 Delete /REBOOTOK "$INSTDIR\bin\MFC71CHS.DLL"
1693 Delete /REBOOTOK "$INSTDIR\bin\MFC71CHT.DLL"
1694 Delete /REBOOTOK "$INSTDIR\bin\MFC71DEU.DLL"
1695 Delete /REBOOTOK "$INSTDIR\bin\MFC71ENU.DLL"
1696 Delete /REBOOTOK "$INSTDIR\bin\MFC71ESP.DLL"
1697 Delete /REBOOTOK "$INSTDIR\bin\MFC71FRA.DLL"
1698 Delete /REBOOTOK "$INSTDIR\bin\MFC71ITA.DLL"
1699 Delete /REBOOTOK "$INSTDIR\bin\MFC71JPN.DLL"
1700 Delete /REBOOTOK "$INSTDIR\bin\MFC71KOR.DLL"
1703 Delete /REBOOTOK "$INSTDIR\bin\mfc70.dll"
1704 Delete /REBOOTOK "$INSTDIR\bin\msvcr70.dll"
1705 Delete /REBOOTOK "$INSTDIR\bin\msvcp70.dll"
1706 Delete /REBOOTOK "$INSTDIR\bin\MFC70CHS.DLL"
1707 Delete /REBOOTOK "$INSTDIR\bin\MFC70CHT.DLL"
1708 Delete /REBOOTOK "$INSTDIR\bin\MFC70DEU.DLL"
1709 Delete /REBOOTOK "$INSTDIR\bin\MFC70ENU.DLL"
1710 Delete /REBOOTOK "$INSTDIR\bin\MFC70ESP.DLL"
1711 Delete /REBOOTOK "$INSTDIR\bin\MFC70FRA.DLL"
1712 Delete /REBOOTOK "$INSTDIR\bin\MFC70ITA.DLL"
1713 Delete /REBOOTOK "$INSTDIR\bin\MFC70JPN.DLL"
1714 Delete /REBOOTOK "$INSTDIR\bin\MFC70KOR.DLL"
1716 Delete /REBOOTOK "$INSTDIR\bin\mfc42.dll"
1717 Delete /REBOOTOK "$INSTDIR\bin\msvcp60.dll"
1718 Delete /REBOOTOK "$INSTDIR\bin\msvcrt.dll"
1725 ; IfFileExists "$INSTDIR\Client\CellServDB" CellExists SkipDelAsk
1727 MessageBox MB_YESNO "Would you like to keep your configuration files?" IDYES SkipDel
1728 Delete "$INSTDIR\Client\CellServDB"
1730 ; Only remove krb5.ini if KfW was installed
1732 Delete "$WINDIR\krb5.ini"
1734 Delete "$INSTDIR\Client\afsdns.ini"
1737 File /oname=$R0 "${AFS_WININSTALL_DIR}\AdminGroup.exe"
1738 nsExec::Exec '$R0 -remove'
1741 Delete "$WINDIR\afsd_init.log"
1742 Delete "$INSTDIR\Uninstall.exe"
1745 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afskill.exe"
1746 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
1747 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe"
1748 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosserver.exe"
1749 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\buserver.exe"
1750 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\butc.exe"
1751 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fileserver.exe"
1752 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fms.exe"
1753 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\kaserver.exe"
1754 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\ptserver.exe"
1755 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\salvager.exe"
1756 Delete "$INSTDIR\Server\usr\afs\bin\ServerUninst.dll"
1757 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\upclient.exe"
1758 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\upserver.exe"
1759 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\vlserver.exe"
1760 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\volinfo.exe"
1761 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\volserver.exe"
1763 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afskill.pdb"
1764 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afssvrcfg.pdb"
1765 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosctlsvc.pdb"
1766 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosserver.pdb"
1767 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\buserver.pdb"
1768 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\butc.pdb"
1769 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fileserver.pdb"
1770 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fms.pdb"
1771 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\kaserver.pdb"
1772 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\ptserver.pdb"
1773 Delete "$INSTDIR\Server\usr\afs\bin\salvager.pdb"
1774 Delete "$INSTDIR\Server\usr\afs\bin\ServerUninst.pdb"
1775 Delete "$INSTDIR\Server\usr\afs\bin\upclient.pdb"
1776 Delete "$INSTDIR\Server\usr\afs\bin\upserver.pdb"
1777 Delete "$INSTDIR\Server\usr\afs\bin\vlserver.pdb"
1778 Delete "$INSTDIR\Server\usr\afs\bin\volinfo.pdb"
1779 Delete "$INSTDIR\Server\usr\afs\bin\volserver.pdb"
1781 RMDir /r "$INSTDIR\Server\usr\afs\bin"
1782 ; do not delete the server configuration files
1783 ; or we will lose the volumes and authentication
1785 ;RmDir /r "$INSTDIR\Server\usr\afs\etc\logs"
1786 ;RmDir /r "$INSTDIR\Server\usr\afs\etc"
1787 ;RmDir /r "$INSTDIR\Server\usr\afs\local"
1788 ;RMDIR /r "$INSTDIR\Server\usr\afs\logs"
1790 Delete /REBOOTOK "$SYSDIR\afsserver.cpl"
1791 Delete /REBOOTOK "$SYSDIR\afs_cpa.cpl"
1792 Delete /REBOOTOK "$SYSDIR\afslogon.dll"
1794 Delete /REBOOTOK "$SYSDIR\afsserver.pdb"
1795 Delete /REBOOTOK "$SYSDIR\afs_cpa.pdb"
1796 Delete /REBOOTOK "$SYSDIR\afslogon.pdb"
1798 RMDir /r "$INSTDIR\Documentation\html\CmdRef"
1799 RMDir /r "$INSTDIR\Documentation\html\InstallGd"
1800 RMDir /r "$INSTDIR\Documentation\html\ReleaseNotes"
1801 RMDir /r "$INSTDIR\Documentation\html\SysAdminGd"
1802 RMDIr /r "$INSTDIR\Documentation\html"
1804 RMDir "$INSTDIR\Documentation"
1805 ; Delete DOC short cut
1806 Delete /REBOOTOK "$INSTDIR\Client\Program\afscreds.exe"
1808 Delete /REBOOTOK "$INSTDIR\Client\Program\afscreds.pdb"
1810 Delete /REBOOTOK "$INSTDIR\Client\Program\*"
1811 Delete /REBOOTOK "$INSTDIR\Client\Program\Include\*"
1812 Delete /REBOOTOK "$INSTDIR\Client\Program\Include\afs\*"
1813 Delete /REBOOTOK "$INSTDIR\Client\Program\Include\rx\*"
1814 Delete /REBOOTOK "$INSTDIR\Client\Program\Sample\*"
1815 RMDir "$INSTDIR\Client\Program\Sample"
1816 RMDir "$INSTDIR\Client\Program\Include\afs"
1817 RMDir "$INSTDIR\Client\Program\Include\rx"
1818 RMDir "$INSTDIR\Client\Program\Include"
1819 RMDir "$INSTDIR\Client\Program"
1820 RMDir "$INSTDIR\Client"
1824 Delete /REBOOTOK "$INSTDIR\bin\msvcr80d.dll"
1825 Delete /REBOOTOK "$INSTDIR\bin\msvcr80d.pdb"
1826 Delete /REBOOTOK "$INSTDIR\bin\msvcp80d.dll"
1827 Delete /REBOOTOK "$INSTDIR\bin\msvcp80d.pdb"
1828 Delete /REBOOTOK "$INSTDIR\bin\mfc80d.dll"
1829 Delete /REBOOTOK "$INSTDIR\bin\mfc80d.pdb"
1832 Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.dll"
1833 Delete /REBOOTOK "$INSTDIR\bin\msvcr71d.pdb"
1834 Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.dll"
1835 Delete /REBOOTOK "$INSTDIR\bin\msvcp71d.pdb"
1836 Delete /REBOOTOK "$INSTDIR\bin\mfc71d.dll"
1837 Delete /REBOOTOK "$INSTDIR\bin\mfc71d.pdb"
1840 Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.dll"
1841 Delete /REBOOTOK "$INSTDIR\bin\msvcr70d.pdb"
1842 Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.dll"
1843 Delete /REBOOTOK "$INSTDIR\bin\msvcp70d.pdb"
1844 Delete /REBOOTOK "$INSTDIR\bin\mfc70d.dll"
1845 Delete /REBOOTOK "$INSTDIR\bin\mfc70d.pdb"
1847 Delete /REBOOTOK "$INSTDIR\bin\mfc42d.dll"
1848 Delete /REBOOTOK "$INSTDIR\bin\mfc42d.pdb"
1849 Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.dll"
1850 Delete /REBOOTOK "$INSTDIR\bin\msvcp60d.pdb"
1851 Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.dll"
1852 Delete /REBOOTOK "$INSTDIR\bin\msvcrtd.pdb"
1858 Delete /REBOOTOK "$INSTDIR\bin\mfc80.dll"
1859 Delete /REBOOTOK "$INSTDIR\bin\msvcr80.dll"
1860 Delete /REBOOTOK "$INSTDIR\bin\msvcp80.dll"
1861 Delete /REBOOTOK "$INSTDIR\bin\MFC80CHS.DLL"
1862 Delete /REBOOTOK "$INSTDIR\bin\MFC80CHT.DLL"
1863 Delete /REBOOTOK "$INSTDIR\bin\MFC80DEU.DLL"
1864 Delete /REBOOTOK "$INSTDIR\bin\MFC80ENU.DLL"
1865 Delete /REBOOTOK "$INSTDIR\bin\MFC80ESP.DLL"
1866 Delete /REBOOTOK "$INSTDIR\bin\MFC80FRA.DLL"
1867 Delete /REBOOTOK "$INSTDIR\bin\MFC80ITA.DLL"
1868 Delete /REBOOTOK "$INSTDIR\bin\MFC80JPN.DLL"
1869 Delete /REBOOTOK "$INSTDIR\bin\MFC80KOR.DLL"
1872 Delete /REBOOTOK "$INSTDIR\bin\mfc71.dll"
1873 Delete /REBOOTOK "$INSTDIR\bin\msvcr71.dll"
1874 Delete /REBOOTOK "$INSTDIR\bin\msvcp71.dll"
1875 Delete /REBOOTOK "$INSTDIR\bin\MFC71CHS.DLL"
1876 Delete /REBOOTOK "$INSTDIR\bin\MFC71CHT.DLL"
1877 Delete /REBOOTOK "$INSTDIR\bin\MFC71DEU.DLL"
1878 Delete /REBOOTOK "$INSTDIR\bin\MFC71ENU.DLL"
1879 Delete /REBOOTOK "$INSTDIR\bin\MFC71ESP.DLL"
1880 Delete /REBOOTOK "$INSTDIR\bin\MFC71FRA.DLL"
1881 Delete /REBOOTOK "$INSTDIR\bin\MFC71ITA.DLL"
1882 Delete /REBOOTOK "$INSTDIR\bin\MFC71JPN.DLL"
1883 Delete /REBOOTOK "$INSTDIR\bin\MFC71KOR.DLL"
1886 Delete /REBOOTOK "$INSTDIR\bin\mfc70.dll"
1887 Delete /REBOOTOK "$INSTDIR\bin\msvcr70.dll"
1888 Delete /REBOOTOK "$INSTDIR\bin\msvcp70.dll"
1889 Delete /REBOOTOK "$INSTDIR\bin\MFC70CHS.DLL"
1890 Delete /REBOOTOK "$INSTDIR\bin\MFC70CHT.DLL"
1891 Delete /REBOOTOK "$INSTDIR\bin\MFC70DEU.DLL"
1892 Delete /REBOOTOK "$INSTDIR\bin\MFC70ENU.DLL"
1893 Delete /REBOOTOK "$INSTDIR\bin\MFC70ESP.DLL"
1894 Delete /REBOOTOK "$INSTDIR\bin\MFC70FRA.DLL"
1895 Delete /REBOOTOK "$INSTDIR\bin\MFC70ITA.DLL"
1896 Delete /REBOOTOK "$INSTDIR\bin\MFC70JPN.DLL"
1897 Delete /REBOOTOK "$INSTDIR\bin\MFC70KOR.DLL"
1899 Delete /REBOOTOK "$INSTDIR\bin\mfc42.dll"
1900 Delete /REBOOTOK "$INSTDIR\bin\msvcp60.dll"
1901 Delete /REBOOTOK "$INSTDIR\bin\msvcrt.dll"
1907 Delete /REBOOTOK "$INSTDIR\Common\*"
1908 RMDir "$INSTDIR\Common"
1912 Delete /REBOOTOK "$INSTDIR\kfw\bin\*"
1913 RMDIR /r "$INSTDIR\kfw\bin"
1914 Delete /REBOOTOK "$INSTDIR\kfw\doc\*"
1915 RMDIR /r "$INSTDIR\kfw\doc"
1916 RMDIR /r "$INSTDIR\kfw"
1919 Delete "$SMPROGRAMS\OpenAFS\Documentation.lnk"
1921 ; Remove control center
1922 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAccountManager.exe"
1923 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAdmSvr.exe"
1924 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsServerManager.exe"
1925 Delete /REBOOTOK "$INSTDIR\Control Center\CCUninst.dll"
1926 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAccountManager.pdb"
1927 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAdmSvr.pdb"
1928 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsServerManager.pdb"
1929 RMDir "$INSTDIR\Control Center"
1931 Delete "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk"
1932 Delete "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk"
1933 Delete "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk"
1934 Delete "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk"
1935 RMDIR "$SMPROGRAMS\OpenAFS\Control Center"
1936 RMDir /r "$SMPROGRAMS\OpenAFS\Client"
1937 RMDir /r "$SMPROGRAMS\OpenAFS"
1938 Delete "$SMSTARTUP\AFS Credentials.lnk"
1940 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "CachePath"
1942 Delete "$R0\AFSCache"
1943 Delete "C:\AFSCache"
1945 DeleteRegKey HKCR "*\shellex\ContextMenuHandlers\AFS Client Shell Extension"
1946 DeleteRegKey HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32"
1947 DeleteRegKey HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
1948 DeleteRegKey HKCR "FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension"
1949 DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
1950 DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls" "afs_cpa"
1952 ; WinLogon Event Notification
1953 DeleteRegKey HKLM "Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\AfsLogon"
1955 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
1956 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client"
1957 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion"
1958 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation"
1959 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion"
1960 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center"
1961 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
1962 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server"
1963 DeleteRegKey /ifempty HKLM "${AFS_REGKEY_ROOT}"
1964 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS"
1965 DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled"
1971 ;--------------------------------
1972 ;Uninstaller Functions
1976 ;Get language from registry
1977 ReadRegStr $LANGUAGE HKCU "Software\OpenAFS\AFS" "Installer Language"
1981 Function un.onUninstSuccess
1984 MessageBox MB_OK "Please reboot your machine to complete uninstallation of the software"
1989 ;------------------------------
1990 ; Get the CellServDB file from the Internet
1992 Function afs.GetCellServDB
1994 ;Check if we should download CellServDB
1995 ReadINIStr $R0 $0 "Field 4" "State"
1996 StrCmp $R0 "1" DoDownload
1998 ;Do nothing if we're keeping the existing file
1999 ReadINIStr $R0 $0 "Field 2" "State"
2002 ReadINIStr $R0 $0 "Field 6" "State"
2003 StrCmp $R0 "1" CheckOther
2005 ReadINIStr $R0 $0 "Field 3" "State"
2006 StrCmp $R0 "1" UsePackaged
2008 ; If none of these, grab file from other location
2012 ReadINIStr $R0 $0 "Field 5" "State"
2013 NSISdl::download $R0 "$INSTDIR\Client\CellServDB"
2014 Pop $R0 ;Get the return value
2015 StrCmp $R0 "success" +2
2016 MessageBox MB_OK|MB_ICONSTOP "Download failed: $R0"
2020 SetOutPath "$INSTDIR\Client"
2025 ReadINIStr $R0 $0 "Field 7" "State"
2027 CopyFiles $R0 "$INSTDIR\Client\CellServDB"
2033 Function AddProvider
2036 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Control\NetworkProvider\HWOrder" "ProviderOrder"
2038 StrCpy $R0 "TransarcAFSDaemon"
2042 StrCmp $R0 "" +1 DoOther
2043 ReadRegStr $R1 HKLM "SYSTEM\CurrentControlSet\Control\NetworkProvider\HWOrder" "ProviderOrder"
2044 StrCpy $R0 "$R1,TransarcAFSDaemon"
2045 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\NetworkProvider\HWOrder" "ProviderOrder" $R0
2047 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Control\NetworkProvider\Order" "ProviderOrder"
2049 StrCpy $R0 "TransarcAFSDaemon"
2053 StrCmp $R0 "" +1 End
2054 ReadRegStr $R1 HKLM "SYSTEM\CurrentControlSet\Control\NetworkProvider\Order" "ProviderOrder"
2055 StrCpy $R0 "$R1,TransarcAFSDaemon"
2056 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\NetworkProvider\Order" "ProviderOrder" $R0
2062 Function un.RemoveProvider
2064 StrCpy $R0 "TransarcAFSDaemon"
2066 StrCpy $R0 "SYSTEM\CurrentControlSet\Control\NetworkProvider\HWOrder"
2067 Call un.RemoveFromProvider
2068 StrCpy $R0 "TransarcAFSDaemon"
2070 StrCpy $R0 "SYSTEM\CurrentControlSet\Control\NetworkProvider\Order"
2071 Call un.RemoveFromProvider
2075 Function un.RemoveFromProvider
2084 ReadRegStr $1 HKLM "$R0" "ProviderOrder"
2085 StrCpy $5 $1 1 -1 # copy last char
2086 StrCmp $5 "," +2 # if last char != ,
2087 StrCpy $1 "$1," # append ,
2090 Call un.StrStr ; Find `$0,` in $1
2091 Pop $2 ; pos of our dir
2092 StrCmp $2 "" unRemoveFromPath_done
2093 ; else, it is in path
2098 StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
2099 StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
2102 StrCpy $5 $3 1 -1 # copy last char
2103 StrCmp $5 "," 0 +2 # if last char == ,
2104 StrCpy $3 $3 -1 # remove last char
2106 WriteRegStr HKLM "$R0" "ProviderOrder" $3
2108 unRemoveFromPath_done:
2118 Function CheckPathForAFS
2123 ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
2132 IfFileExists "$3\afsd_service.exe" Error
2133 StrCpy $1 $0 32768 1
2135 IntCmp $2 0 Done Done loop
2138 MessageBox MB_ICONSTOP|MB_OK|MB_TOPMOST "This installer is unable to upgrade the previous version of AFS. Please uninstall the current AFS version before continuing."
2139 Abort "Unable to install OpenAFS"
2147 Function AddToUniquePath
2151 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
2155 StrCmp $R0 "" +1 Done
2161 ;-------------------------------
2162 ;Do the page to get the CellServDB
2164 Function AFSPageGetCellServDB
2165 ; Skip this page if we are not installing the client
2166 SectionGetFlags ${secClient} $R0
2167 IntOp $R0 $R0 & ${SF_SELECTED}
2170 ; Set the install options here
2173 WriteINIStr $0 "Field 2" "Flags" "DISABLED"
2174 WriteINIStr $0 "Field 3" "State" "1"
2175 WriteINISTR $0 "Field 4" "State" "0"
2176 WriteINIStr $0 "Field 6" "State" "0"
2178 ; If there is an existing afsdcell.ini file, migrate it to CellServDB
2179 IfFileExists "$WINDIR\afsdcell.ini" +1 +3
2180 CopyFiles /SILENT "$WINDIR\afsdcell.ini" "$INSTDIR\Client\CellServDB"
2181 Delete "$WINDIR\afsdcell.ini"
2182 ; If there is an existing CellServDB file, allow the user to choose it and make it default
2183 IfFileExists "$INSTDIR\Client\CellServDB" +1 notpresent
2184 WriteINIStr $0 "Field 2" "Flags" "ENABLED"
2185 WriteINIStr $0 "Field 2" "State" "1"
2186 WriteINIStr $0 "Field 3" "State" "0"
2190 !insertmacro MUI_HEADER_TEXT "CellServDB Configuration" "Please choose a method for installing the CellServDB file:"
2191 InstallOptions::dialog $0
2193 StrCmp $R1 "cancel" exit
2194 StrCmp $R1 "back" done
2195 StrCmp $R1 "success" done
2199 ; Check that if a file is set, a valid filename is entered...
2200 ReadINIStr $R0 $0 "Field 6" "State"
2201 StrCmp $R0 "1" CheckFileName
2203 ;Check if a URL is specified, one *IS* specified
2204 ReadINIStr $R0 $0 "Field 4" "State"
2205 StrCmp $R0 "1" CheckURL Skip
2208 ReadINIStr $R0 $0 "Field 5" "State"
2209 StrCmp $R0 "" +1 Skip
2210 MessageBox MB_OK|MB_ICONSTOP $(URLError)
2211 WriteINIStr $0 "Field 4" "State" "0"
2215 ReadINIStr $R0 $0 "Field 7" "State"
2216 IfFileExists $R0 Skip
2218 MessageBox MB_OK|MB_ICONSTOP $(CellError)
2219 WriteINIStr $0 "Field 6" "State" "0"
2227 Function AFSPageGetCellName
2229 ; Skip this page if we are not installing the client
2230 SectionGetFlags ${secClient} $R0
2231 IntOp $R0 $R0 & ${SF_SELECTED}
2235 ; If this is a server install, we do NOT want to recommend the Freelance client
2236 ; And we do not need to ask for the cell name.
2237 SectionGetFlags ${secServer} $R1
2238 IntOp $R1 $R1 & ${SF_SELECTED}
2239 StrCmp $R1 "1" +1 NotServer
2240 WriteINIStr $1 "Field 6" "Text" "Enable AFS Freelance client (Not Recommended for servers)"
2241 WriteINIStr $1 "Field 5" "State" "0"
2242 WriteINIStr $1 "Field 1" "Flags" "DISABLED"
2243 WriteINIStr $1 "Field 2" "Flags" "DISABLED"
2246 WriteINIStr $1 "Field 6" "Text" "Enable AFS Freelance client (Recommended)"
2247 WriteINIStr $1 "Field 5" "State" "1"
2248 WriteINIStr $1 "Field 1" "Flags" ""
2249 WriteINIStr $1 "Field 2" "Flags" ""
2251 ; Get the current cell name, if any
2252 ReadRegStr $R1 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell"
2254 WriteINIStr $1 "Field 2" "State" $R1
2255 !insertmacro MUI_HEADER_TEXT "Client Cell Name Configuration" "Please enter the name for your default cell:"
2256 InstallOptions::dialog $1
2258 StrCmp $R1 "cancel" exit
2259 StrCmp $R1 "back" done
2260 StrCmp $R1 "success" done
2263 ReadINIStr $R0 $1 "Field 2" "State"
2264 StrCmp $R0 "" +1 good
2266 MessageBox MB_OK|MB_ICONSTOP $(CellNameError)
2272 ;---------------------------------------------------------
2273 ;Do the page to get the afscreds.exe startup configuration
2275 Function AFSPageConfigAFSCreds
2276 ; Skip this page if we are not installing the client
2277 SectionGetFlags ${secClient} $R0
2278 IntOp $R0 $R0 & ${SF_SELECTED}
2281 ; Set the install options here
2283 !insertmacro MUI_HEADER_TEXT "AFS Credentials Configuration" "Please choose default options for configuring the AFS Credentials program:"
2284 InstallOptions::dialog $2
2286 StrCmp $R1 "cancel" exit
2287 StrCmp $R1 "back" done
2288 StrCmp $R1 "success" done
2296 ; Common install routines for each module
2297 Function AFSCommon.Install
2299 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayName" "OpenAFS for Windows"
2300 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "UninstallString" "$INSTDIR\uninstall.exe"
2302 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayVersion" "${AFS_VERSION}"
2304 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayVersion" "${AFS_VERSION} Checked/Debug"
2306 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "URLInfoAbout" "http://www.openafs.org/"
2311 ;-------------------
2312 ; Get the currently installed version and place it on the stack
2314 Function GetInstalledVersion
2319 ReadRegStr $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "VersionString"
2320 StrCmp $R0 "" NotTransarc done
2324 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "VersionString"
2333 ; Functions to get each component of the version number
2334 Function GetInstalledVersionMajor
2339 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "MajorVersion"
2340 StrCmp $R0 "" NotTransarc done
2344 ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "MajorVersion"
2353 Function GetInstalledVersionMinor
2358 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "MinorVersion"
2359 StrCmp $R0 "" NotTransarc done
2363 ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "MinorVersion"
2372 Function GetInstalledVersionPatch
2377 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "PatchLevel"
2378 StrCmp $R0 "" NotTransarc done
2382 ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "PatchLevel"
2393 ;-------------------------------
2394 ; Check if the client should be checked for default install
2395 Function ShouldClientInstall
2397 StrCpy $R2 "AFS Client"
2398 Call GetInstalledVersion
2401 StrCmp $R0 "" NotInstalled
2402 ; Now we see if it's an older or newer version
2404 Call GetInstalledVersionMajor
2406 IntCmpU $R0 ${AFS_MAJORVERSION} +1 Upgrade Downgrade
2408 Call GetInstalledVersionMinor
2410 IntCmpU $R0 ${AFS_MINORVERSION} +1 Upgrade Downgrade
2412 Call GetInstalledVersionPatch
2414 IntCmpU $R0 ${AFS_PATCHLEVEL} Reinstall Upgrade Downgrade
2437 ;-------------------------------
2438 ; Check how the server options should be set
2439 Function ShouldServerInstall
2441 StrCpy $R2 "AFS Server"
2442 Call GetInstalledVersion
2445 StrCmp $R0 "" NotInstalled
2446 ; Now we see if it's an older or newer version
2448 Call GetInstalledVersionMajor
2450 IntCmpU $R0 ${AFS_MAJORVERSION} +1 Upgrade Downgrade
2452 Call GetInstalledVersionMinor
2454 IntCmpU $R0 ${AFS_MINORVERSION} +1 Upgrade Downgrade
2456 Call GetInstalledVersionPatch
2458 IntCmpU $R0 ${AFS_PATCHLEVEL} Reinstall Upgrade Downgrade
2483 ; See if AFS Server is installed
2484 ; Returns: "1" if it is, 0 if it is not (on the stack)
2485 Function IsServerInstalled
2487 StrCpy $R2 "AFS Server"
2488 Call GetInstalledVersion
2491 StrCmp $R0 "" NotInstalled
2504 ; See if AFS Client is installed
2505 ; Returns: "1" if it is, 0 if it is not (on the stack)
2506 Function IsClientInstalled
2508 StrCpy $R2 "AFS Client"
2509 Call GetInstalledVersion
2512 StrCmp $R0 "" NotInstalled
2526 ; See if AFS Documentation is installed
2527 ; Returns: "1" if it is, 0 if it is not (on the stack)
2528 Function IsDocumentationInstalled
2530 StrCpy $R2 "AFS Supplemental Documentation"
2531 Call GetInstalledVersion
2534 StrCmp $R0 "" NotInstalled
2547 ; See if Control Center is installed
2548 ; Returns: "1" if it is, 0 if it is not (on the stack)
2549 Function IsControlInstalled
2551 StrCpy $R2 "AFS Control Center"
2552 Call GetInstalledVersion
2555 StrCmp $R0 "" NotInstalled
2570 ; output, top of stack (replaces, with e.g. whatever)
2571 ; modifies no other variables.
2573 Function GetParameters
2577 StrCpy $R0 $CMDLINE 1
2581 StrCpy $R1 ' ' ; we're scanning for a space instead of a quote
2583 StrCpy $R0 $CMDLINE 1 $R2
2584 StrCmp $R0 $R1 loop2
2590 StrCpy $R0 $CMDLINE 1 $R2
2591 StrCmp $R0 " " loop2
2592 StrCpy $R0 $CMDLINE "" $R2
2599 ;Check to see if any AFS component is installed
2600 ;Returns: Value on stack: "1" if it is, "0" if it is not
2601 Function IsAnyAFSInstalled
2606 Call IsClientInstalled
2608 Call IsServerInstalled
2610 Call IsControlInstalled
2612 Call IsDocumentationInstalled
2614 ; Now we must see if ANY of the $Rn values are 1
2615 StrCmp $R0 "1" SomethingInstalled
2616 StrCmp $R1 "1" SomethingInstalled
2617 StrCmp $R2 "1" SomethingInstalled
2618 StrCmp $R3 "1" SomethingInstalled
2632 ;Install English Language Files
2633 Function AFSLangFiles
2635 SetOutPath "$INSTDIR\Common"
2636 File "${AFS_CLIENT_BUILDDIR}\afs_config.exe"
2637 !insertmacro ReplaceDLL "${AFS_DESTDIR}\lib\afsauthent.dll" "$INSTDIR\Common\afsauthent.dll" "$INSTDIR"
2638 !insertmacro ReplaceDLL "${AFS_DESTDIR}\lib\afspthread.dll" "$INSTDIR\Common\afspthread.dll" "$INSTDIR"
2639 !insertmacro ReplaceDLL "${AFS_DESTDIR}\lib\afsrpc.dll" "$INSTDIR\Common\afsrpc.dll" "$INSTDIR"
2640 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsadminutil.dll" "$INSTDIR\Common\afsadminutil.dll" "$INSTDIR"
2641 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsclientadmin.dll" "$INSTDIR\Common\afsclientadmin.dll" "$INSTDIR"
2642 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsprocmgmt.dll" "$INSTDIR\Common\afsprocmgmt.dll" "$INSTDIR"
2643 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll" "$INSTDIR\Common\afsvosadmin.dll" "$INSTDIR"
2644 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib.dll" "$INSTDIR\Common\TaAfsAppLib.dll" "$INSTDIR"
2645 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll" "$INSTDIR\Common\afsvosadmin.dll" "$INSTDIR"
2646 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll" "$INSTDIR\Common\afsbosadmin.dll" "$INSTDIR"
2647 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll" "$INSTDIR\Common\afscfgadmin.dll" "$INSTDIR"
2648 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afskasadmin.dll" "$INSTDIR\Common\afskasadmin.dll" "$INSTDIR"
2649 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll" "$INSTDIR\Common\afsptsadmin.dll" "$INSTDIR"
2651 SetOutPath "$INSTDIR\Common"
2655 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcr80d.dll" "$INSTDIR\Common\msvcr80d.dll" "$INSTDIR"
2656 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp80d.dll" "$INSTDIR\Common\msvcp80d.dll" "$INSTDIR"
2657 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc80d.dll" "$INSTDIR\Common\mfc80d.dll" "$INSTDIR"
2658 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80CHS.DLL" "$INSTDIR\Common\MFC80CHS.DLL" "$INSTDIR"
2659 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80CHT.DLL" "$INSTDIR\Common\MFC80CHT.DLL" "$INSTDIR"
2660 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80DEU.DLL" "$INSTDIR\Common\MFC80DEU.DLL" "$INSTDIR"
2661 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80ENU.DLL" "$INSTDIR\Common\MFC80ENU.DLL" "$INSTDIR"
2662 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80ESP.DLL" "$INSTDIR\Common\MFC80ESP.DLL" "$INSTDIR"
2663 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80FRA.DLL" "$INSTDIR\Common\MFC80FRA.DLL" "$INSTDIR"
2664 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80ITA.DLL" "$INSTDIR\Common\MFC80ITA.DLL" "$INSTDIR"
2665 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80JPN.DLL" "$INSTDIR\Common\MFC80JPN.DLL" "$INSTDIR"
2666 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80KOR.DLL" "$INSTDIR\Common\MFC80KOR.DLL" "$INSTDIR"
2669 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcr71d.dll" "$INSTDIR\Common\msvcr71d.dll" "$INSTDIR"
2670 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp71d.dll" "$INSTDIR\Common\msvcp71d.dll" "$INSTDIR"
2671 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc71d.dll" "$INSTDIR\Common\mfc71d.dll" "$INSTDIR"
2672 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71CHS.DLL" "$INSTDIR\Common\MFC71CHS.DLL" "$INSTDIR"
2673 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71CHT.DLL" "$INSTDIR\Common\MFC71CHT.DLL" "$INSTDIR"
2674 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71DEU.DLL" "$INSTDIR\Common\MFC71DEU.DLL" "$INSTDIR"
2675 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71ENU.DLL" "$INSTDIR\Common\MFC71ENU.DLL" "$INSTDIR"
2676 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71ESP.DLL" "$INSTDIR\Common\MFC71ESP.DLL" "$INSTDIR"
2677 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71FRA.DLL" "$INSTDIR\Common\MFC71FRA.DLL" "$INSTDIR"
2678 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71ITA.DLL" "$INSTDIR\Common\MFC71ITA.DLL" "$INSTDIR"
2679 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71JPN.DLL" "$INSTDIR\Common\MFC71JPN.DLL" "$INSTDIR"
2680 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71KOR.DLL" "$INSTDIR\Common\MFC71KOR.DLL" "$INSTDIR"
2683 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcr70d.dll" "$INSTDIR\Common\msvcr70d.dll" "$INSTDIR"
2684 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp70d.dll" "$INSTDIR\Common\msvcp70d.dll" "$INSTDIR"
2685 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc70d.dll" "$INSTDIR\Common\mfc70d.dll" "$INSTDIR"
2686 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70CHS.DLL" "$INSTDIR\Common\MFC70CHS.DLL" "$INSTDIR"
2687 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70CHT.DLL" "$INSTDIR\Common\MFC70CHT.DLL" "$INSTDIR"
2688 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70DEU.DLL" "$INSTDIR\Common\MFC70DEU.DLL" "$INSTDIR"
2689 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70ENU.DLL" "$INSTDIR\Common\MFC70ENU.DLL" "$INSTDIR"
2690 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70ESP.DLL" "$INSTDIR\Common\MFC70ESP.DLL" "$INSTDIR"
2691 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70FRA.DLL" "$INSTDIR\Common\MFC70FRA.DLL" "$INSTDIR"
2692 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70ITA.DLL" "$INSTDIR\Common\MFC70ITA.DLL" "$INSTDIR"
2693 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70JPN.DLL" "$INSTDIR\Common\MFC70JPN.DLL" "$INSTDIR"
2694 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70KOR.DLL" "$INSTDIR\Common\MFC70KOR.DLL" "$INSTDIR"
2696 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc42d.dll" "$INSTDIR\Common\mfc42d.dll" "$INSTDIR"
2697 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp60d.dll" "$INSTDIR\Common\msvcp60d.dll" "$INSTDIR"
2698 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcrtd.dll" "$INSTDIR\Common\msvcrtd.dll" "$INSTDIR"
2704 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc80.dll" "$INSTDIR\Common\mfc80.dll" "$INSTDIR"
2705 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcr80.dll" "$INSTDIR\Common\msvcr80.dll" "$INSTDIR"
2706 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp80.dll" "$INSTDIR\Common\msvcp80.dll" "$INSTDIR"
2707 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80CHS.DLL" "$INSTDIR\Common\MFC80CHS.DLL" "$INSTDIR"
2708 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80CHT.DLL" "$INSTDIR\Common\MFC80CHT.DLL" "$INSTDIR"
2709 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80DEU.DLL" "$INSTDIR\Common\MFC80DEU.DLL" "$INSTDIR"
2710 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80ENU.DLL" "$INSTDIR\Common\MFC80ENU.DLL" "$INSTDIR"
2711 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80ESP.DLL" "$INSTDIR\Common\MFC80ESP.DLL" "$INSTDIR"
2712 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80FRA.DLL" "$INSTDIR\Common\MFC80FRA.DLL" "$INSTDIR"
2713 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80ITA.DLL" "$INSTDIR\Common\MFC80ITA.DLL" "$INSTDIR"
2714 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80JPN.DLL" "$INSTDIR\Common\MFC80JPN.DLL" "$INSTDIR"
2715 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC80KOR.DLL" "$INSTDIR\Common\MFC80KOR.DLL" "$INSTDIR"
2718 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc71.dll" "$INSTDIR\Common\mfc71.dll" "$INSTDIR"
2719 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcr71.dll" "$INSTDIR\Common\msvcr71.dll" "$INSTDIR"
2720 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp71.dll" "$INSTDIR\Common\msvcp71.dll" "$INSTDIR"
2721 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71CHS.DLL" "$INSTDIR\Common\MFC71CHS.DLL" "$INSTDIR"
2722 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71CHT.DLL" "$INSTDIR\Common\MFC71CHT.DLL" "$INSTDIR"
2723 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71DEU.DLL" "$INSTDIR\Common\MFC71DEU.DLL" "$INSTDIR"
2724 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71ENU.DLL" "$INSTDIR\Common\MFC71ENU.DLL" "$INSTDIR"
2725 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71ESP.DLL" "$INSTDIR\Common\MFC71ESP.DLL" "$INSTDIR"
2726 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71FRA.DLL" "$INSTDIR\Common\MFC71FRA.DLL" "$INSTDIR"
2727 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71ITA.DLL" "$INSTDIR\Common\MFC71ITA.DLL" "$INSTDIR"
2728 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71JPN.DLL" "$INSTDIR\Common\MFC71JPN.DLL" "$INSTDIR"
2729 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC71KOR.DLL" "$INSTDIR\Common\MFC71KOR.DLL" "$INSTDIR"
2732 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc70.dll" "$INSTDIR\Common\mfc70.dll" "$INSTDIR"
2733 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcr70.dll" "$INSTDIR\Common\msvcr70.dll" "$INSTDIR"
2734 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp70.dll" "$INSTDIR\Common\msvcp70.dll" "$INSTDIR"
2735 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70CHS.DLL" "$INSTDIR\Common\MFC70CHS.DLL" "$INSTDIR"
2736 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70CHT.DLL" "$INSTDIR\Common\MFC70CHT.DLL" "$INSTDIR"
2737 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70DEU.DLL" "$INSTDIR\Common\MFC70DEU.DLL" "$INSTDIR"
2738 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70ENU.DLL" "$INSTDIR\Common\MFC70ENU.DLL" "$INSTDIR"
2739 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70ESP.DLL" "$INSTDIR\Common\MFC70ESP.DLL" "$INSTDIR"
2740 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70FRA.DLL" "$INSTDIR\Common\MFC70FRA.DLL" "$INSTDIR"
2741 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70ITA.DLL" "$INSTDIR\Common\MFC70ITA.DLL" "$INSTDIR"
2742 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70JPN.DLL" "$INSTDIR\Common\MFC70JPN.DLL" "$INSTDIR"
2743 !insertmacro ReplaceDLL "${SYSTEMDIR}\MFC70KOR.DLL" "$INSTDIR\Common\MFC70KOR.DLL" "$INSTDIR"
2745 !insertmacro ReplaceDLL "${SYSTEMDIR}\mfc42.dll" "$INSTDIR\Common\mfc42.dll" "$INSTDIR"
2746 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcp60.dll" "$INSTDIR\Common\msvcp60.dll" "$INSTDIR"
2747 !insertmacro ReplaceDLL "${SYSTEMDIR}\msvcrt.dll" "$INSTDIR\Common\msvcrt.dll" "$INSTDIR"
2753 StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
2754 StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
2755 StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
2756 StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
2757 StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
2758 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
2759 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
2760 StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
2764 SetOutPath "$INSTDIR\Documentation"
2765 File "..\..\doc\install\Documentation\en_US\README.TXT"
2767 SetOutPath "$INSTDIR\Client\Program"
2768 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1033.dll" "$INSTDIR\Client\Program\afscreds_1033.dll" "$INSTDIR"
2769 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.dll" "$INSTDIR\Client\Program\afs_shl_ext_1033.dll" "$INSTDIR"
2771 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.pdb"
2772 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.pdb"
2775 SetOutPath "$INSTDIR\Common"
2776 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1033.dll" "$INSTDIR\Common\afs_config_1033.dll" "$INSTDIR"
2777 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.dll" "$INSTDIR\Common\afs_cpa_1033.dll" "$INSTDIR"
2778 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.dll" "$INSTDIR\Common\afseventmsg_1033.dll" "$INSTDIR"
2779 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1033.dll" "$INSTDIR\Common\afs_setup_utils_1033.dll" "$INSTDIR"
2780 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1033.dll" "$INSTDIR\Common\afsserver_1033.dll" "$INSTDIR"
2781 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.dll" "$INSTDIR\Common\afssvrcfg_1033.dll" "$INSTDIR"
2782 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.dll" "$INSTDIR\Common\TaAfsAccountManager_1033.dll" "$INSTDIR"
2783 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.dll" "$INSTDIR\Common\TaAfsAppLib_1033.dll" "$INSTDIR"
2784 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.dll" "$INSTDIR\Common\TaAfsServerManager_1033.dll" "$INSTDIR"
2785 File "..\..\doc\help\en_US\afs-cc.CNT"
2786 File "..\..\doc\help\en_US\afs-cc.hlp"
2787 File "..\..\doc\help\en_US\afs-light.CNT"
2788 File "..\..\doc\help\en_US\afs-light.hlp"
2789 File "..\..\doc\help\en_US\afs-nt.CNT"
2790 File "..\..\doc\help\en_US\afs-nt.HLP"
2791 File "..\..\doc\help\en_US\taafscfg.CNT"
2792 File "..\..\doc\help\en_US\taafscfg.hlp"
2793 File "..\..\doc\help\en_US\taafssvrmgr.CNT"
2794 File "..\..\doc\help\en_US\taafssvrmgr.hlp"
2795 File "..\..\doc\help\en_US\taafsusrmgr.CNT"
2796 File "..\..\doc\help\en_US\taafsusrmgr.hlp"
2799 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.pdb"
2800 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.pdb"
2801 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.pdb"
2802 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1033.pdb"
2803 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.pdb"
2804 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.pdb"
2805 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.pdb"
2806 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.pdb"
2812 SetOutPath "$INSTDIR\Documentation"
2813 File "..\..\doc\install\Documentation\de_DE\README.TXT"
2815 SetOutPath "$INSTDIR\Client\Program"
2816 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1032.dll" "$INSTDIR\Client\Program\afscreds_1032.dll" "$INSTDIR"
2817 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.dll" "$INSTDIR\Client\Program\afs_shl_ext_1032.dll" "$INSTDIR"
2819 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.pdb"
2820 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.pdb"
2823 SetOutPath "$INSTDIR\Common"
2824 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1032.dll" "$INSTDIR\Common\afs_config_1032.dll" "$INSTDIR"
2825 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.dll" "$INSTDIR\Common\afs_cpa_1032.dll" "$INSTDIR"
2826 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.dll" "$INSTDIR\Common\afseventmsg_1032.dll" "$INSTDIR"
2827 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1032.dll" "$INSTDIR\Common\afs_setup_utils_1032.dll" "$INSTDIR"
2828 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1032.dll" "$INSTDIR\Common\afsserver_1032.dll" "$INSTDIR"
2829 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.dll" "$INSTDIR\Common\afssvrcfg_1032.dll" "$INSTDIR"
2830 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.dll" "$INSTDIR\Common\TaAfsAccountManager_1032.dll" "$INSTDIR"
2831 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.dll" "$INSTDIR\Common\TaAfsAppLib_1032.dll" "$INSTDIR"
2832 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.dll" "$INSTDIR\Common\TaAfsServerManager_1032.dll" "$INSTDIR"
2833 File "..\..\doc\help\de_DE\afs-cc.CNT"
2834 File "..\..\doc\help\de_DE\afs-cc.hlp"
2835 File "..\..\doc\help\de_DE\afs-light.CNT"
2836 File "..\..\doc\help\de_DE\afs-light.hlp"
2837 File "..\..\doc\help\de_DE\afs-nt.CNT"
2838 File "..\..\doc\help\de_DE\afs-nt.HLP"
2839 File "..\..\doc\help\de_DE\taafscfg.CNT"
2840 File "..\..\doc\help\de_DE\taafscfg.hlp"
2841 File "..\..\doc\help\de_DE\taafssvrmgr.CNT"
2842 File "..\..\doc\help\de_DE\taafssvrmgr.hlp"
2843 File "..\..\doc\help\de_DE\taafsusrmgr.CNT"
2844 File "..\..\doc\help\de_DE\taafsusrmgr.hlp"
2847 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.pdb"
2848 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.pdb"
2849 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.pdb"
2850 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1032.pdb"
2851 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.pdb"
2852 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.pdb"
2853 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.pdb"
2854 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.pdb"
2860 SetOutPath "$INSTDIR\Documentation"
2861 File "..\..\doc\install\Documentation\es_ES\README.TXT"
2863 SetOutPath "$INSTDIR\Client\Program"
2864 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1034.dll" "$INSTDIR\Client\Program\afscreds_1034.dll" "$INSTDIR"
2865 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.dll" "$INSTDIR\Client\Program\afs_shl_ext_1034.dll" "$INSTDIR"
2867 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.pdb"
2868 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.pdb"
2871 SetOutPath "$INSTDIR\Common"
2872 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1034.dll" "$INSTDIR\Common\afs_config_1034.dll" "$INSTDIR"
2873 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.dll" "$INSTDIR\Common\afs_cpa_1034.dll" "$INSTDIR"
2874 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.dll" "$INSTDIR\Common\afseventmsg_1034.dll" "$INSTDIR"
2875 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1034.dll" "$INSTDIR\Common\afs_setup_utils_1034.dll" "$INSTDIR"
2876 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1034.dll" "$INSTDIR\Common\afsserver_1034.dll" "$INSTDIR"
2877 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.dll" "$INSTDIR\Common\afssvrcfg_1034.dll" "$INSTDIR"
2878 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.dll" "$INSTDIR\Common\TaAfsAccountManager_1034.dll" "$INSTDIR"
2879 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.dll" "$INSTDIR\Common\TaAfsAppLib_1034.dll" "$INSTDIR"
2880 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.dll" "$INSTDIR\Common\TaAfsServerManager_1034.dll" "$INSTDIR"
2881 File "..\..\doc\help\es_ES\afs-cc.CNT"
2882 File "..\..\doc\help\es_ES\afs-cc.hlp"
2883 File "..\..\doc\help\es_ES\afs-light.CNT"
2884 File "..\..\doc\help\es_ES\afs-light.hlp"
2885 File "..\..\doc\help\es_ES\afs-nt.CNT"
2886 File "..\..\doc\help\es_ES\afs-nt.HLP"
2887 File "..\..\doc\help\es_ES\taafscfg.CNT"
2888 File "..\..\doc\help\es_ES\taafscfg.hlp"
2889 File "..\..\doc\help\es_ES\taafssvrmgr.CNT"
2890 File "..\..\doc\help\es_ES\taafssvrmgr.hlp"
2891 File "..\..\doc\help\es_ES\taafsusrmgr.CNT"
2892 File "..\..\doc\help\es_ES\taafsusrmgr.hlp"
2895 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.pdb"
2896 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.pdb"
2897 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.pdb"
2898 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1034.pdb"
2899 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.pdb"
2900 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.pdb"
2901 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.pdb"
2902 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.pdb"
2908 SetOutPath "$INSTDIR\Documentation"
2909 File "..\..\doc\install\Documentation\ja_JP\README.TXT"
2911 SetOutPath "$INSTDIR\Client\Program"
2912 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1041.dll" "$INSTDIR\Client\Program\afscreds_1041.dll" "$INSTDIR"
2913 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.dll" "$INSTDIR\Client\Program\afs_shl_ext_1041.dll" "$INSTDIR"
2915 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.pdb"
2916 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.pdb"
2919 SetOutPath "$INSTDIR\Common"
2920 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1041.dll" "$INSTDIR\Common\afs_config_1041.dll" "$INSTDIR"
2921 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.dll" "$INSTDIR\Common\afs_cpa_1041.dll" "$INSTDIR"
2922 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.dll" "$INSTDIR\Common\afseventmsg_1041.dll" "$INSTDIR"
2923 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1041.dll" "$INSTDIR\Common\afs_setup_utils_1041.dll" "$INSTDIR"
2924 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1041.dll" "$INSTDIR\Common\afsserver_1041.dll" "$INSTDIR"
2925 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.dll" "$INSTDIR\Common\afssvrcfg_1041.dll" "$INSTDIR"
2926 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.dll" "$INSTDIR\Common\TaAfsAccountManager_1041.dll" "$INSTDIR"
2927 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.dll" "$INSTDIR\Common\TaAfsAppLib_1041.dll" "$INSTDIR"
2928 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.dll" "$INSTDIR\Common\TaAfsServerManager_1041.dll" "$INSTDIR"
2929 File "..\..\doc\help\ja_JP\afs-cc.CNT"
2930 File "..\..\doc\help\ja_JP\afs-cc.hlp"
2931 File "..\..\doc\help\ja_JP\afs-light.CNT"
2932 File "..\..\doc\help\ja_JP\afs-light.hlp"
2933 File "..\..\doc\help\ja_JP\afs-nt.CNT"
2934 File "..\..\doc\help\ja_JP\afs-nt.HLP"
2935 File "..\..\doc\help\ja_JP\taafscfg.CNT"
2936 File "..\..\doc\help\ja_JP\taafscfg.hlp"
2937 File "..\..\doc\help\ja_JP\taafssvrmgr.CNT"
2938 File "..\..\doc\help\ja_JP\taafssvrmgr.hlp"
2939 File "..\..\doc\help\ja_JP\taafsusrmgr.CNT"
2940 File "..\..\doc\help\ja_JP\taafsusrmgr.hlp"
2943 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.pdb"
2944 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.pdb"
2945 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.pdb"
2946 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1041.pdb"
2947 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.pdb"
2948 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.pdb"
2949 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.pdb"
2950 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.pdb"
2956 SetOutPath "$INSTDIR\Documentation"
2957 File "..\..\doc\install\Documentation\ko_KR\README.TXT"
2959 SetOutPath "$INSTDIR\Client\Program"
2960 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1042.dll" "$INSTDIR\Client\Program\afscreds_1042.dll" "$INSTDIR"
2961 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.dll" "$INSTDIR\Client\Program\afs_shl_ext_1042.dll" "$INSTDIR"
2963 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.pdb"
2964 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.pdb"
2967 SetOutPath "$INSTDIR\Common"
2968 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1042.dll" "$INSTDIR\Common\afs_config_1042.dll" "$INSTDIR"
2969 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.dll" "$INSTDIR\Common\afs_cpa_1042.dll" "$INSTDIR"
2970 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.dll" "$INSTDIR\Common\afseventmsg_1042.dll" "$INSTDIR"
2971 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1042.dll" "$INSTDIR\Common\afs_setup_utils_1042.dll" "$INSTDIR"
2972 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1042.dll" "$INSTDIR\Common\afsserver_1042.dll" "$INSTDIR"
2973 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.dll" "$INSTDIR\Common\afssvrcfg_1042.dll" "$INSTDIR"
2974 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.dll" "$INSTDIR\Common\TaAfsAccountManager_1042.dll" "$INSTDIR"
2975 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.dll" "$INSTDIR\Common\TaAfsAppLib_1042.dll" "$INSTDIR"
2976 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.dll" "$INSTDIR\Common\TaAfsServerManager_1042.dll" "$INSTDIR"
2977 File "..\..\doc\help\ko_KR\afs-cc.CNT"
2978 File "..\..\doc\help\ko_KR\afs-cc.hlp"
2979 File "..\..\doc\help\ko_KR\afs-light.CNT"
2980 File "..\..\doc\help\ko_KR\afs-light.hlp"
2981 File "..\..\doc\help\ko_KR\afs-nt.CNT"
2982 File "..\..\doc\help\ko_KR\afs-nt.HLP"
2983 File "..\..\doc\help\ko_KR\taafscfg.CNT"
2984 File "..\..\doc\help\ko_KR\taafscfg.hlp"
2985 File "..\..\doc\help\ko_KR\taafssvrmgr.CNT"
2986 File "..\..\doc\help\ko_KR\taafssvrmgr.hlp"
2987 File "..\..\doc\help\ko_KR\taafsusrmgr.CNT"
2988 File "..\..\doc\help\ko_KR\taafsusrmgr.hlp"
2991 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.pdb"
2992 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.pdb"
2993 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.pdb"
2994 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1042.pdb"
2995 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.pdb"
2996 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.pdb"
2997 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.pdb"
2998 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.pdb"
3005 SetOutPath "$INSTDIR\Documentation"
3006 File "..\..\doc\install\Documentation\pt_BR\README.TXT"
3008 SetOutPath "$INSTDIR\Client\Program"
3009 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1046.dll" "$INSTDIR\Client\Program\afscreds_1046.dll" "$INSTDIR"
3010 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.dll" "$INSTDIR\Client\Program\afs_shl_ext_1046.dll" "$INSTDIR"
3012 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.pdb"
3013 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.pdb"
3016 SetOutPath "$INSTDIR\Common"
3017 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1046.dll" "$INSTDIR\Common\afs_config_1046.dll" "$INSTDIR"
3018 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.dll" "$INSTDIR\Common\afs_cpa_1046.dll" "$INSTDIR"
3019 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.dll" "$INSTDIR\Common\afseventmsg_1046.dll" "$INSTDIR"
3020 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1046.dll" "$INSTDIR\Common\afs_setup_utils_1046.dll" "$INSTDIR"
3021 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1046.dll" "$INSTDIR\Common\afsserver_1046.dll" "$INSTDIR"
3022 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.dll" "$INSTDIR\Common\afssvrcfg_1046.dll" "$INSTDIR"
3023 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.dll" "$INSTDIR\Common\TaAfsAccountManager_1046.dll" "$INSTDIR"
3024 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.dll" "$INSTDIR\Common\TaAfsAppLib_1046.dll" "$INSTDIR"
3025 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.dll" "$INSTDIR\Common\TaAfsServerManager_1046.dll" "$INSTDIR"
3026 File "..\..\doc\help\pt_BR\afs-cc.CNT"
3027 File "..\..\doc\help\pt_BR\afs-cc.hlp"
3028 File "..\..\doc\help\pt_BR\afs-light.CNT"
3029 File "..\..\doc\help\pt_BR\afs-light.hlp"
3030 File "..\..\doc\help\pt_BR\afs-nt.CNT"
3031 File "..\..\doc\help\pt_BR\afs-nt.HLP"
3032 File "..\..\doc\help\pt_BR\taafscfg.CNT"
3033 File "..\..\doc\help\pt_BR\taafscfg.hlp"
3034 File "..\..\doc\help\pt_BR\taafssvrmgr.CNT"
3035 File "..\..\doc\help\pt_BR\taafssvrmgr.hlp"
3036 File "..\..\doc\help\pt_BR\taafsusrmgr.CNT"
3037 File "..\..\doc\help\pt_BR\taafsusrmgr.hlp"
3040 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.pdb"
3041 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.pdb"
3042 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.pdb"
3043 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1046.pdb"
3044 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.pdb"
3045 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.pdb"
3046 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.pdb"
3047 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.pdb"
3053 SetOutPath "$INSTDIR\Documentation"
3054 File "..\..\doc\install\Documentation\zh_CN\README.TXT"
3056 SetOutPath "$INSTDIR\Client\Program"
3057 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_2052.dll" "$INSTDIR\Client\Program\afscreds_2052.dll" "$INSTDIR"
3058 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.dll" "$INSTDIR\Client\Program\afs_shl_ext_2052.dll" "$INSTDIR"
3060 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.pdb"
3061 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.pdb"
3064 SetOutPath "$INSTDIR\Common"
3065 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_2052.dll" "$INSTDIR\Common\afs_config_2052.dll" "$INSTDIR"
3066 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.dll" "$INSTDIR\Common\afs_cpa_2052.dll" "$INSTDIR"
3067 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.dll" "$INSTDIR\Common\afseventmsg_2052.dll" "$INSTDIR"
3068 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_2052.dll" "$INSTDIR\Common\afs_setup_utils_2052.dll" "$INSTDIR"
3069 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_2052.dll" "$INSTDIR\Common\afsserver_2052.dll" "$INSTDIR"
3070 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.dll" "$INSTDIR\Common\afssvrcfg_2052.dll" "$INSTDIR"
3071 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.dll" "$INSTDIR\Common\TaAfsAccountManager_2052.dll" "$INSTDIR"
3072 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.dll" "$INSTDIR\Common\TaAfsAppLib_2052.dll" "$INSTDIR"
3073 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.dll" "$INSTDIR\Common\TaAfsServerManager_2052.dll" "$INSTDIR"
3074 File "..\..\doc\help\zh_CN\afs-cc.CNT"
3075 File "..\..\doc\help\zh_CN\afs-cc.hlp"
3076 File "..\..\doc\help\zh_CN\afs-light.CNT"
3077 File "..\..\doc\help\zh_CN\afs-light.hlp"
3078 File "..\..\doc\help\zh_CN\afs-nt.CNT"
3079 File "..\..\doc\help\zh_CN\afs-nt.HLP"
3080 File "..\..\doc\help\zh_CN\taafscfg.CNT"
3081 File "..\..\doc\help\zh_CN\taafscfg.hlp"
3082 File "..\..\doc\help\zh_CN\taafssvrmgr.CNT"
3083 File "..\..\doc\help\zh_CN\taafssvrmgr.hlp"
3084 File "..\..\doc\help\zh_CN\taafsusrmgr.CNT"
3085 File "..\..\doc\help\zh_CN\taafsusrmgr.hlp"
3088 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.pdb"
3089 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.pdb"
3090 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.pdb"
3091 ;File "${AFS_SERVER_BUILDDIR}\afsserver_2052.pdb"
3092 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.pdb"
3093 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.pdb"
3094 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.pdb"
3095 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.pdb"
3101 SetOutPath "$INSTDIR\Documentation"
3102 File "..\..\doc\install\Documentation\zh_TW\README.TXT"
3104 SetOutPath "$INSTDIR\Client\Program"
3105 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afscreds_1028.dll" "$INSTDIR\Client\Program\_1028.dll" "$INSTDIR"
3106 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.dll" "$INSTDIR\Client\Program\afs_shl_ext_1028.dll" "$INSTDIR"
3108 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.pdb"
3109 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.pdb"
3112 SetOutPath "$INSTDIR\Common"
3113 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_config_1028.dll" "$INSTDIR\Common\afs_config_1028.dll" "$INSTDIR"
3114 !insertmacro ReplaceDLL "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.dll" "$INSTDIR\Common\afs_cpa_1028.dll" "$INSTDIR"
3115 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.dll" "$INSTDIR\Common\afseventmsg_1028.dll" "$INSTDIR"
3116 ;!insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1028.dll" "$INSTDIR\Common\afs_setup_utils_1028.dll" "$INSTDIR"
3117 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afsserver_1028.dll" "$INSTDIR\Common\afsserver_1028.dll" "$INSTDIR"
3118 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.dll" "$INSTDIR\Common\afssvrcfg_1028.dll" "$INSTDIR"
3119 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.dll" "$INSTDIR\Common\TaAfsAccountManager_1028.dll" "$INSTDIR"
3120 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.dll" "$INSTDIR\Common\TaAfsAppLib_1028.dll" "$INSTDIR"
3121 !insertmacro ReplaceDLL "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.dll" "$INSTDIR\Common\TaAfsServerManager_1028.dll" "$INSTDIR"
3122 File "..\..\doc\help\zh_TW\afs-cc.CNT"
3123 File "..\..\doc\help\zh_TW\afs-cc.hlp"
3124 File "..\..\doc\help\zh_TW\afs-light.CNT"
3125 File "..\..\doc\help\zh_TW\afs-light.hlp"
3126 File "..\..\doc\help\zh_TW\afs-nt.CNT"
3127 File "..\..\doc\help\zh_TW\afs-nt.HLP"
3128 File "..\..\doc\help\zh_TW\taafscfg.CNT"
3129 File "..\..\doc\help\zh_TW\taafscfg.hlp"
3130 File "..\..\doc\help\zh_TW\taafssvrmgr.CNT"
3131 File "..\..\doc\help\zh_TW\taafssvrmgr.hlp"
3132 File "..\..\doc\help\zh_TW\taafsusrmgr.CNT"
3133 File "..\..\doc\help\zh_TW\taafsusrmgr.hlp"
3136 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.pdb"
3137 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.pdb"
3138 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.pdb"
3139 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1028.pdb"
3140 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.pdb"
3141 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.pdb"
3142 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.pdb"
3143 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.pdb"
3152 ;====================================================
3153 ; AddToPath - Adds the given dir to the search path.
3154 ; Input - head of the stack
3155 ; Note - Win9x systems requires reboot
3156 ;====================================================
3163 # don't add if the path doesn't exist
3164 IfFileExists $0 "" AddToPath_done
3171 StrCmp $2 "" "" AddToPath_done
3176 StrCmp $2 "" "" AddToPath_done
3177 GetFullPathName /SHORT $3 $0
3182 StrCmp $2 "" "" AddToPath_done
3187 StrCmp $2 "" "" AddToPath_done
3191 StrCmp $1 1 AddToPath_NT
3194 FileOpen $1 "$1\autoexec.bat" a
3197 IntCmp $2 26 0 +2 +2 # DOS EOF
3198 FileSeek $1 -1 END # write over EOF
3199 FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
3205 ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
3206 StrCpy $2 $1 1 -1 # copy last char
3207 StrCmp $2 ";" 0 +2 # if last char == ;
3208 StrCpy $1 $1 -1 # remove last char
3209 StrCmp $1 "" AddToPath_NTdoIt
3212 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0
3213 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
3222 ;====================================================
3223 ; RemoveFromPath - Remove a given dir from the path
3224 ; Input: head of the stack
3225 ;====================================================
3226 Function un.RemoveFromPath
3235 IntFmt $6 "%c" 26 # DOS EOF
3239 StrCmp $1 1 unRemoveFromPath_NT
3242 FileOpen $1 "$1\autoexec.bat" r
3245 GetFullPathName /SHORT $0 $0
3246 StrCpy $0 "SET PATH=%PATH%;$0"
3247 Goto unRemoveFromPath_dosLoop
3249 unRemoveFromPath_dosLoop:
3251 StrCpy $5 $3 1 -1 # read last char
3252 StrCmp $5 $6 0 +2 # if DOS EOF
3253 StrCpy $3 $3 -1 # remove DOS EOF so we can compare
3254 StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
3255 StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
3256 StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
3257 StrCmp $3 "" unRemoveFromPath_dosLoopEnd
3259 Goto unRemoveFromPath_dosLoop
3260 unRemoveFromPath_dosLoopRemoveLine:
3262 Goto unRemoveFromPath_dosLoop
3264 unRemoveFromPath_dosLoopEnd:
3268 Delete "$1\autoexec.bat"
3269 CopyFiles /SILENT $4 "$1\autoexec.bat"
3271 Goto unRemoveFromPath_done
3273 unRemoveFromPath_NT:
3274 ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
3275 StrCpy $5 $1 1 -1 # copy last char
3276 StrCmp $5 ";" +2 # if last char != ;
3277 StrCpy $1 "$1;" # append ;
3280 Call un.StrStr ; Find `$0;` in $1
3281 Pop $2 ; pos of our dir
3282 StrCmp $2 "" unRemoveFromPath_done
3283 ; else, it is in path
3288 StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
3289 StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
3292 StrCpy $5 $3 1 -1 # copy last char
3293 StrCmp $5 ";" 0 +2 # if last char == ;
3294 StrCpy $3 $3 -1 # remove last char
3296 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3
3297 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
3299 unRemoveFromPath_done:
3309 ;====================================================
3310 ; IsNT - Returns 1 if the current system is NT, 0
3312 ; Output: head of the stack
3313 ;====================================================
3317 ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
3318 StrCmp $0 "" 0 IsNT_yes
3330 !insertmacro IsNT ""
3331 !insertmacro IsNT "un."
3333 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3335 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3336 ;====================================================
3337 ; StrStr - Finds a given string in another given string.
3338 ; Returns -1 if not found and the pos if found.
3339 ; Input: head of the stack - string to find
3340 ; second in the stack - string to find in
3341 ; Output: head of the stack
3342 ;====================================================
3344 Function ${un}StrStr
3345 Exch $R1 ; st=haystack,old$R1, $R1=needle
3346 Exch ; st=old$R1,haystack
3347 Exch $R2 ; st=old$R1,old$R2, $R2=haystack
3359 StrCpy $R5 $R2 $R3 $R4
3365 StrCpy $R1 $R2 "" $R4
3373 !insertmacro StrStr ""
3374 !insertmacro StrStr "un."
3377 !ifdef ADDSHAREDDLLUSED
3380 ; Increments a shared DLLs reference count.
3381 ; Use by passing one item on the stack (the full path of the DLL).
3384 ; Push $SYSDIR\myDll.dll
3388 Function AddSharedDLL
3391 ReadRegDword $R0 HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
3393 WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1 $R0
3399 ; un.RemoveSharedDLL
3401 ; Decrements a shared DLLs reference count, and removes if necessary.
3402 ; Use by passing one item on the stack (the full path of the DLL).
3403 ; Note: for use in the main installer (not the uninstaller), rename the
3404 ; function to RemoveSharedDLL.
3407 ; Push $SYSDIR\myDll.dll
3408 ; Call un.RemoveSharedDLL
3411 Function un.RemoveSharedDLL
3414 ReadRegDword $R0 HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
3415 StrCmp $R0 "" remove
3417 IntCmp $R0 0 rk rk uk
3419 DeleteRegValue HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
3422 WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1 $R0
3425 Delete /REBOOTOK $R1
3433 ; Installs the loopback adpater and disables it on Windows 2000
3434 Function afs.InstallMSLoopback
3436 File /oname=$R0 "${AFS_WININSTALL_DIR}\afsloopback.dll"
3437 nsExec::Exec "rundll32.exe $R0 doLoopBackEntry AFS 10.254.254.253 255.255.255.252"
3441 Function afs.isLoopbackInstalled
3443 File "${AFS_WININSTALL_DIR}\afsloopback.dll"
3444 System::Call "$TEMP\afsloopback.dll::IsLoopbackInstalled() i().r11"
3445 Delete "$TEMP\afsloopback.dll"
3451 ; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
3452 ; Updated by Joost Verburg
3454 ; Returns on top of stack
3456 ; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
3458 ; '' (Unknown Windows Version)
3461 ; Call GetWindowsVersion
3463 ; ; at this point $R0 is "NT 4.0" or whatnot
3465 Function GetWindowsVersion
3472 ReadRegStr $R0 HKLM \
3473 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
3475 IfErrors 0 lbl_winnt
3478 ReadRegStr $R0 HKLM \
3479 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
3482 StrCmp $R1 '4' 0 lbl_error
3486 StrCmp $R1 '4.0' lbl_win32_95
3487 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
3505 StrCmp $R1 '3' lbl_winnt_x
3506 StrCmp $R1 '4' lbl_winnt_x
3510 StrCmp $R1 '5.0' lbl_winnt_2000
3511 StrCmp $R1 '5.1' lbl_winnt_XP
3512 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
3515 StrCpy $R0 "NT $R0" 6
3540 ; Author: Lilla (lilla@earthlink.net) 2003-06-13
3541 ; function IsUserAdmin uses plugin \NSIS\PlusgIns\UserInfo.dll
3542 ; This function is based upon code in \NSIS\Contrib\UserInfo\UserInfo.nsi
3543 ; This function was tested under NSIS 2 beta 4 (latest CVS as of this writing).
3547 ; Pop $R0 ; at this point $R0 is "true" or "false"
3549 Function IsUserAdmin
3558 UserInfo::GetAccountType
3561 StrCmp $R2 "Admin" 0 Continue
3562 ; Observation: I get here when running Win98SE. (Lilla)
3563 ; The functions UserInfo.dll looks for are there on Win98 too,
3564 ; but just don't work. So UserInfo.dll, knowing that admin isn't required
3565 ; on Win98, returns admin anyway. (per kichik)
3566 ; MessageBox MB_OK 'User "$R1" is in the Administrators group'
3571 ; You should still check for an empty string because the functions
3572 ; UserInfo.dll looks for may not be present on Windows 95. (per kichik)
3575 ;MessageBox MB_OK 'User "$R1" is in the "$R2" group'
3579 ; comment/message below is by UserInfo.nsi author:
3580 ; This one means you don't need to care about admin or
3581 ; not admin because Windows 9x doesn't either
3582 ;MessageBox MB_OK "Error! This DLL can't run under Windows 9x!"
3586 ;MessageBox MB_OK 'User= "$R1" AccountType= "$R2" IsUserAdmin= "$R0"'
3594 ; input, top of stack (e.g. C:\Program Files\Poop)
3595 ; output, top of stack (replaces, with e.g. C:\Program Files)
3596 ; modifies no other variables.
3599 ; Push "C:\Program Files\Directory\Whatever"
3602 ; ; at this point $R0 will equal "C:\Program Files\Directory"
3616 IntCmp $R1 $R2 get 0 get
3617 StrCpy $R3 $R0 1 -$R1
3632 ;--------------------------------
3633 ;Handle what must and what must not be installed
3634 Function .onSelChange
3635 ; If they install the server, they MUST install the client
3636 SectionGetFlags ${secServer} $R0
3637 IntOp $R0 $R0 & ${SF_SELECTED}
3638 StrCmp $R0 "1" MakeClientSelected
3640 ; If they install the control center, we'll give them the client.
3641 ; It may not be required, but it's a bit more useful
3642 SectionGetFlags ${secControl} $R0
3643 IntOp $R0 $R0 & ${SF_SELECTED}
3644 StrCmp $R0 "1" MakeClientSelected
3648 SectionGetFlags ${secClient} $R0
3649 IntOp $R0 $R0 | ${SF_SELECTED}
3650 SectionSetFlags ${secClient} $R0
3655 Function RegWriteMultiStr
3656 !define HKEY_CLASSES_ROOT 0x80000000
3657 !define HKEY_CURRENT_USER 0x80000001
3658 !define HKEY_LOCAL_MACHINE 0x80000002
3659 !define HKEY_USERS 0x80000003
3660 !define HKEY_PERFORMANCE_DATA 0x80000004
3661 !define HKEY_PERFORMANCE_TEXT 0x80000050
3662 !define HKEY_PERFORMANCE_NLSTEXT 0x80000060
3663 !define HKEY_CURRENT_CONFIG 0x80000005
3664 !define HKEY_DYN_DATA 0x80000006
3666 !define KEY_QUERY_VALUE 0x0001
3667 !define KEY_SET_VALUE 0x0002
3668 !define KEY_CREATE_SUB_KEY 0x0004
3669 !define KEY_ENUMERATE_SUB_KEYS 0x0008
3670 !define KEY_NOTIFY 0x0010
3671 !define KEY_CREATE_LINK 0x0020
3675 !define REG_EXPAND_SZ 2
3676 !define REG_BINARY 3
3678 !define REG_DWORD_LITTLE_ENDIAN 4
3679 !define REG_DWORD_BIG_ENDIAN 5
3681 !define REG_MULTI_SZ 7
3683 !define RegCreateKey "Advapi32::RegCreateKeyA(i, t, *i) i"
3684 !define RegSetValueEx "Advapi32::RegSetValueExA(i, t, i, i, i, i) i"
3685 !define RegCloseKey "Advapi32::RegCloseKeyA(i) i"
3692 SetPluginUnload alwaysoff
3693 ; Create a buffer for the multi_sz value
3694 System::Call "*(&t${NSIS_MAX_STRLEN}) i.r1"
3695 ; Open/create the registry key
3696 System::Call "${RegCreateKey}(${HKEY_LOCAL_MACHINE}, '$REG_SUB_KEY', .r0) .r9"
3699 MessageBox MB_OK|MB_ICONSTOP "Can't create registry key! ($9)"
3703 ; Fill in the buffer with our strings
3704 StrCpy $2 $1 ; Initial position
3706 StrLen $9 '$REG_DATA_1' ; Length of first string
3707 IntOp $9 $9 + 1 ; Plus null
3708 System::Call "*$2(&t$9 '$REG_DATA_1')" ; Place the string
3709 IntOp $2 $2 + $9 ; Advance to the next position
3711 StrCmp '$REG_DATA_2' "" terminate
3712 StrLen $9 '$REG_DATA_2' ; Length of second string
3713 IntOp $9 $9 + 1 ; Plus null
3714 System::Call "*$2(&t$9 '$REG_DATA_2')" ; Place the string
3715 IntOp $2 $2 + $9 ; Advance to the next position
3717 StrCmp '$REG_DATA_3' "" terminate
3718 StrLen $9 '$REG_DATA_3' ; Length of third string
3719 IntOp $9 $9 + 1 ; Plus null
3720 System::Call "*$2(&t$9 '$REG_DATA_3')" ; Place the string
3721 IntOp $2 $2 + $9 ; Advance to the next position
3724 System::Call "*$2(&t1 '')" ; Place the terminating null
3725 IntOp $2 $2 + 1 ; Advance to the next position
3727 ; Create/write the value
3728 IntOp $2 $2 - $1 ; Total length
3729 System::Call "${RegSetValueEx}(r0, '$REG_VALUE', 0, ${REG_MULTI_SZ}, r1, r2) .r9"
3732 MessageBox MB_OK|MB_ICONSTOP "Can't set key value! ($9)"
3736 ; Close the registry key
3737 System::Call "${RegCloseKey}(r0)"
3741 SetPluginUnload manual