1 ;OpenAFS Install Script for NSIS
3 ; Written by Rob Murawski <rsm4@ieee.org>
6 ;NSIS Modern User Interface version 1.63
7 ;MultiLanguage Example Script
8 ;Written by Joost Verburg
10 ; Read in the environment information
11 !include ${INCLUDEDIR}\nsi-includes.nsi
12 ; Define DEBUG if building a DEBUG installer
14 ; This version compiles with NSIS v2.0
18 Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__}"
20 Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__} Checked/Debug"
21 !endif ; End DEBUG/!DEBUG
24 Name "OpenAFS ${AFS_VERSION}"
26 Name "OpenAFS ${AFS_VERSION} Checked/Debug"
27 !endif ; End DEBUG/!DEBUG
29 VIProductVersion "${AFS_VERSION}.00"
30 VIAddVersionKey "ProductName" "OpenAFS"
31 VIAddVersionKey "CompanyName" "OpenAFS.org"
32 VIAddVersionKey "ProductVersion" ${AFS_VERSION}
33 VIAddVersionKey "FileVersion" ${AFS_VERSION}
34 VIAddVersionKey "FileDescription" "OpenAFS for Windows Installer"
35 VIAddVersionKey "LegalCopyright" "(C)2003"
37 VIAddVersionKey "PrivateBuild" "Checked/Debug"
44 ;--------------------------------
49 OutFile "${AFS_DESTDIR}\WinInstall\OpenAFSforWindows.exe"
51 OutFile "${AFS_DESTDIR}\WinInstall\OpenAFSforWindows-DEBUG.exe"
55 !define MUI_ICON "..\..\client_config\afs_config.ico"
56 !define MUI_UNICON "..\..\client_config\afs_config.ico"
57 !define AFS_COMPANY_NAME "OpenAFS"
58 !define AFS_PRODUCT_NAME "OpenAFS"
59 !define AFS_REGKEY_ROOT "Software\TransarcCorporation"
62 ;Folder selection page
63 InstallDir "$PROGRAMFILES\OpenAFS" ; Install to shorter path
65 ;Remember install folder
66 InstallDirRegKey HKCU ${AFS_REGKEY_ROOT} ""
68 ;Remember the installer language
69 !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
70 !define MUI_LANGDLL_REGISTRY_KEY ${AFS_REGKEY_ROOT}
71 !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
74 !define AFS_CLIENT_BUILDDIR "${AFS_DESTDIR}\root.client\usr\vice\etc"
75 !define AFS_WININSTALL_DIR "${AFS_DESTDIR}\WinInstall\Config"
76 !define AFS_BUILD_INCDIR "${AFS_DESTDIR}\include"
77 !define AFS_CLIENT_LIBDIR "${AFS_DESTDIR}\lib"
78 !define AFS_SERVER_BUILDDIR "${AFS_DESTDIR}\root.server\usr\afs\bin"
79 !define AFS_ETC_BUILDDIR "${AFS_DESTDIR}\etc"
80 !define SYSTEMDIR "$%SystemRoot%\System32"
82 ;--------------------------------
83 ;Modern UI Configuration
85 ;!define MUI_LICENSEPAGE
86 !define MUI_CUSTOMPAGECOMMANDS
87 !define MUI_WELCOMEPAGE
88 !define MUI_COMPONENTSPAGE
89 !define MUI_COMPONENTSPAGE_SMALLDESC
90 !define MUI_DIRECTORYPAGE
92 !define MUI_ABORTWARNING
93 !define MUI_FINISHPAGE
95 !define MUI_UNINSTALLER
96 !define MUI_UNCONFIRMPAGE
99 !insertmacro MUI_PAGE_WELCOME
100 !insertmacro MUI_PAGE_COMPONENTS
101 !insertmacro MUI_PAGE_DIRECTORY
102 Page custom AFSPageGetCellServDB
103 Page custom AFSPageGetCellName
104 !insertmacro MUI_PAGE_INSTFILES
105 !insertmacro MUI_PAGE_FINISH
107 ;LicenseData "Licenses.rtf"
108 ;--------------------------------
111 !insertmacro MUI_LANGUAGE "English"
112 ;!insertmacro MUI_LANGUAGE "French"
113 !insertmacro MUI_LANGUAGE "German"
114 !insertmacro MUI_LANGUAGE "Spanish"
115 !insertmacro MUI_LANGUAGE "SimpChinese"
116 !insertmacro MUI_LANGUAGE "TradChinese"
117 !insertmacro MUI_LANGUAGE "Japanese"
118 !insertmacro MUI_LANGUAGE "Korean"
119 ;!insertmacro MUI_LANGUAGE "Italian"
120 ;!insertmacro MUI_LANGUAGE "Dutch"
121 ;!insertmacro MUI_LANGUAGE "Danish"
122 ;!insertmacro MUI_LANGUAGE "Greek"
123 ;!insertmacro MUI_LANGUAGE "Russian"
124 !insertmacro MUI_LANGUAGE "PortugueseBR"
125 ;!insertmacro MUI_LANGUAGE "Polish"
126 ;!insertmacro MUI_LANGUAGE "Ukrainian"
127 ;!insertmacro MUI_LANGUAGE "Czech"
128 ;!insertmacro MUI_LANGUAGE "Slovak"
129 ;!insertmacro MUI_LANGUAGE "Croatian"
130 ;!insertmacro MUI_LANGUAGE "Bulgarian"
131 ;!insertmacro MUI_LANGUAGE "Hungarian"
132 ;!insertmacro MUI_LANGUAGE "Thai"
133 ;!insertmacro MUI_LANGUAGE "Romanian"
134 ;!insertmacro MUI_LANGUAGE "Macedonian"
135 ;!insertmacro MUI_LANGUAGE "Turkish"
137 ;--------------------------------
141 LangString DESC_SecCopyUI ${LANG_ENGLISH} "OpenAFS for Windows: English"
142 ;LangString DESC_SecCopyUI ${LANG_FRENCH} "OpenAFS for Windows: French"
143 LangString DESC_SecCopyUI ${LANG_GERMAN} "OpenAFS for Windows: German"
144 LangString DESC_SecCopyUI ${LANG_SPANISH} "OpenAFS for Windows: Spanish"
145 LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "OpenAFS for Windows: Simplified Chinese"
146 LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "OpenAFS for Windows: Traditional Chinese description"
147 LangString DESC_SecCopyUI ${LANG_JAPANESE} "OpenAFS for Windows: Japanese description"
148 LangString DESC_SecCopyUI ${LANG_KOREAN} "OpenAFS for Windows: Korean description"
149 ;LangString DESC_SecCopyUI ${LANG_ITALIAN} "OpenAFS for Windows: Italian description"
150 ;LangString DESC_SecCopyUI ${LANG_DUTCH} "OpenAFS for Windows: Dutch description"
151 ;LangString DESC_SecCopyUI ${LANG_DANISH} "OpenAFS for Windows: Danish description"
152 ;LangString DESC_SecCopyUI ${LANG_GREEK} "OpenAFS for Windows: Greek description"
153 ;LangString DESC_SecCopyUI ${LANG_RUSSIAN} "OpenAFS for Windows: Russian description"
154 LangString DESC_SecCopyUI ${LANG_PORTUGUESEBR} "OpenAFS for Windows: Portuguese (Brasil) description"
155 ;LangString DESC_SecCopyUI ${LANG_POLISH} "OpenAFS for Windows: Polish description"
156 ;LangString DESC_SecCopyUI ${LANG_UKRAINIAN} "OpenAFS for Windows: Ukrainian description"
157 ;LangString DESC_SecCopyUI ${LANG_CZECH} "OpenAFS for Windows: Czechian description"
158 ;LangString DESC_SecCopyUI ${LANG_SLOVAK} "OpenAFS for Windows: Slovakian description"
159 ;LangString DESC_SecCopyUI ${LANG_CROATIAN} "OpenAFS for Windows: Slovakian description"
160 ;LangString DESC_SecCopyUI ${LANG_BULGARIAN} "OpenAFS for Windows: Bulgarian description"
161 ;LangString DESC_SecCopyUI ${LANG_HUNGARIAN} "OpenAFS for Windows: Hungarian description"
162 ;LangString DESC_SecCopyUI ${LANG_THAI} "OpenAFS for Windows: Thai description"
163 ;LangString DESC_SecCopyUI ${LANG_ROMANIAN} "OpenAFS for Windows: Romanian description"
164 ;LangString DESC_SecCopyUI ${LANG_MACEDONIAN} "OpenAFS for Windows: Macedonian description"
165 ;LangString DESC_SecCopyUI ${LANG_TURKISH} "OpenAFS for Windows: Turkish description"
167 LangString DESC_secClient ${LANG_ENGLISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
168 LangString DESC_secClient ${LANG_GERMAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
169 LangString DESC_secClient ${LANG_SPANISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
170 LangString DESC_secClient ${LANG_SIMPCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
171 LangString DESC_secClient ${LANG_TRADCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
172 LangString DESC_secClient ${LANG_JAPANESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
173 LangString DESC_secClient ${LANG_KOREAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
174 LangString DESC_secClient ${LANG_PORTUGUESEBR} "OpenAFS Client: Allows you to access AFS from your Windows PC."
176 LangString DESC_secServer ${LANG_ENGLISH} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
177 LangString DESC_secServer ${LANG_GERMAN} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
178 LangString DESC_secServer ${LANG_SPANISH} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
179 LangString DESC_secServer ${LANG_SIMPCHINESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
180 LangString DESC_secServer ${LANG_TRADCHINESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
181 LangString DESC_secServer ${LANG_JAPANESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
182 LangString DESC_secServer ${LANG_KOREAN} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
183 LangString DESC_secServer ${LANG_PORTUGUESEBR} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
185 LangString DESC_secControl ${LANG_ENGLISH} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
186 LangString DESC_secControl ${LANG_GERMAN} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
187 LangString DESC_secControl ${LANG_SPANISH} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
188 LangString DESC_secControl ${LANG_SIMPCHINESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
189 LangString DESC_secControl ${LANG_TRADCHINESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
190 LangString DESC_secControl ${LANG_JAPANESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
191 LangString DESC_secControl ${LANG_KOREAN} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
192 LangString DESC_secControl ${LANG_PORTUGUESEBR} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
194 LangString DESC_secDocs ${LANG_ENGLISH} "Supplemental Documentation: Additional documentation for using OpenAFS."
195 LangString DESC_secDocs ${LANG_GERMAN} "Supplemental Documentation: Additional documentation for using OpenAFS."
196 LangString DESC_secDocs ${LANG_SPANISH} "Supplemental Documentation: Additional documentation for using OpenAFS."
197 LangString DESC_secDocs ${LANG_SIMPCHINESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
198 LangString DESC_secDocs ${LANG_TRADCHINESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
199 LangString DESC_secDocs ${LANG_JAPANESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
200 LangString DESC_secDocs ${LANG_KOREAN} "Supplemental Documentation: Additional documentation for using OpenAFS."
201 LangString DESC_secDocs ${LANG_PORTUGUESEBR} "Supplemental Documentation: Additional documentation for using OpenAFS."
203 LangString DESC_secSDK ${LANG_ENGLISH} "SDK: Header files and libraries for developing software with OpenAFS."
204 LangString DESC_secSDK ${LANG_GERMAN} "SDK: Header files and libraries for developing software with OpenAFS."
205 LangString DESC_secSDK ${LANG_SPANISH} "SDK: Header files and libraries for developing software with OpenAFS."
206 LangString DESC_secSDK ${LANG_SIMPCHINESE} "SDK: Header files and libraries for developing software with OpenAFS."
207 LangString DESC_secSDK ${LANG_TRADCHINESE} "SDK: Header files and libraries for developing software with OpenAFS."
208 LangString DESC_secSDK ${LANG_JAPANESE} "SDK: Header files and libraries for developing software with OpenAFS."
209 LangString DESC_secSDK ${LANG_KOREAN} "SDK: Header files and libraries for developing software with OpenAFS."
210 LangString DESC_secSDK ${LANG_PORTUGUESEBR} "SDK: Header files and libraries for developing software with OpenAFS."
212 ; Popup error messages
213 LangString CellError ${LANG_ENGLISH} "You must specify a valid CellServDB file to copy during install"
214 LangString CellError ${LANG_GERMAN} "You must specify a valid CellServDB file to copy during the install"
215 LangString CellError ${LANG_SPANISH} "You must specify a valid CellServDB file to copy during the install"
216 LangString CellError ${LANG_SIMPCHINESE} "You must specify a valid CellServDB file to copy during the install"
217 LangString CellError ${LANG_TRADCHINESE} "You must specify a valid CellServDB file to copy during the install"
218 LangString CellError ${LANG_JAPANESE} "You must specify a valid CellServDB file to copy during the install"
219 LangString CellError ${LANG_KOREAN} "You must specify a valid CellServDB file to copy during the install"
220 LangString CellError ${LANG_PORTUGUESEBR} "You must specify a valid CellServDB file to copy during the install"
222 LangString CellNameError ${LANG_ENGLISH} "You must specify a cell name for your client to use."
223 LangString CellNameError ${LANG_GERMAN} "You must specify a cell name for your client to use."
224 LangString CellNameError ${LANG_SPANISH} "You must specify a cell name for your client to use."
225 LangString CellNameError ${LANG_SIMPCHINESE} "You must specify a cell name for your client to use."
226 LangString CellNameError ${LANG_TRADCHINESE} "You must specify a cell name for your client to use."
227 LangString CellNameError ${LANG_JAPANESE} "You must specify a cell name for your client to use."
228 LangString CellNameError ${LANG_KOREAN} "You must specify a cell name for your client to use."
229 LangString CellNameError ${LANG_PORTUGUESEBR} "You must specify a cell name for your client to use."
231 LangString URLError ${LANG_ENGLISH} "You must specify a URL if you choose the option to download the CellServDB."
232 LangString URLError ${LANG_GERMAN} "You must specify a URL if you choose the option to download the CellServDB."
233 LangString URLError ${LANG_SPANISH} "You must specify a URL if you choose the option to download the CellServDB."
234 LangString URLError ${LANG_SIMPCHINESE} "You must specify a URL if you choose the option to download the CellServDB."
235 LangString URLError ${LANG_TRADCHINESE} "You must specify a URL if you choose the option to download the CellServDB."
236 LangString URLError ${LANG_JAPANESE} "You must specify a URL if you choose the option to download the CellServDB."
237 LangString URLError ${LANG_KOREAN} "You must specify a URL if you choose the option to download the CellServDB."
238 LangString URLError ${LANG_PORTUGUESEBR} "You must specify a URL if you choose the option to download the CellServDB."
241 ; Upgrade/re-install strings
242 LangString UPGRADE_CLIENT ${LANG_ENGLISH} "Upgrade AFS Client"
243 LangString UPGRADE_CLIENT ${LANG_GERMAN} "Upgrade AFS Client"
244 LangString UPGRADE_CLIENT ${LANG_SPANISH} "Upgrade AFS Client"
245 LangString UPGRADE_CLIENT ${LANG_SIMPCHINESE} "Upgrade AFS Client"
246 LangString UPGRADE_CLIENT ${LANG_TRADCHINESE} "Upgrade AFS Client"
247 LangString UPGRADE_CLIENT ${LANG_JAPANESE} "Upgrade AFS Client"
248 LangString UPGRADE_CLIENT ${LANG_KOREAN} "Upgrade AFS Client"
249 LangString UPGRADE_CLIENT ${LANG_PORTUGUESEBR} "Upgrade AFS Client"
251 LangString REINSTALL_CLIENT ${LANG_ENGLISH} "Re-install AFS Client"
252 LangString REINSTALL_CLIENT ${LANG_GERMAN} "Re-install AFS Client"
253 LangString REINSTALL_CLIENT ${LANG_SPANISH} "Re-install AFS Client"
254 LangString REINSTALL_CLIENT ${LANG_SIMPCHINESE} "Re-install AFS Client"
255 LangString REINSTALL_CLIENT ${LANG_TRADCHINESE} "Re-install AFS Client"
256 LangString REINSTALL_CLIENT ${LANG_JAPANESE} "Re-install AFS Client"
257 LangString REINSTALL_CLIENT ${LANG_KOREAN} "Re-install AFS Client"
258 LangString REINSTALL_CLIENT ${LANG_PORTUGUESEBR} "Re-install AFS Client"
260 LangString UPGRADE_SERVER ${LANG_ENGLISH} "Upgrade AFS Server"
261 LangString UPGRADE_SERVER ${LANG_GERMAN} "Upgrade AFS Server"
262 LangString UPGRADE_SERVER ${LANG_SPANISH} "Upgrade AFS Server"
263 LangString UPGRADE_SERVER ${LANG_SIMPCHINESE} "Upgrade AFS Server"
264 LangString UPGRADE_SERVER ${LANG_TRADCHINESE} "Upgrade AFS Server"
265 LangString UPGRADE_SERVER ${LANG_JAPANESE} "Upgrade AFS Server"
266 LangString UPGRADE_SERVER ${LANG_KOREAN} "Upgrade AFS Server"
267 LangString UPGRADE_SERVER ${LANG_PORTUGUESEBR} "Upgrade AFS Server"
269 LangString REINSTALL_SERVER ${LANG_ENGLISH} "Re-install AFS Server"
270 LangString REINSTALL_SERVER ${LANG_GERMAN} "Re-install AFS Server"
271 LangString REINSTALL_SERVER ${LANG_SPANISH} "Re-install AFS Server"
272 LangString REINSTALL_SERVER ${LANG_SIMPCHINESE} "Re-install AFS Server"
273 LangString REINSTALL_SERVER ${LANG_TRADCHINESE} "Re-install AFS Server"
274 LangString REINSTALL_SERVER ${LANG_JAPANESE} "Re-install AFS Server"
275 LangString REINSTALL_SERVER ${LANG_KOREAN} "Re-install AFS Server"
276 LangString REINSTALL_SERVER ${LANG_PORTUGUESEBR} "Re-install AFS Server"
278 ReserveFile "CellServPage.ini"
279 ReserveFile "AFSCell.ini"
280 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ;InstallOptions plug-in
281 !insertmacro MUI_RESERVEFILE_LANGDLL ;Language selection dialog
282 ;--------------------------------
284 ; Macro - Upgrade DLL File
285 ; Written by Joost Verburg
286 ; ------------------------
289 ; LOCALFILE - Location of the new DLL file (on the compiler system)
290 ; DESTFILE - Location of the DLL file that should be upgraded
291 ; (on the user's system)
292 ; TEMPBASEDIR - Directory on the user's system to store a temporary file
293 ; when the system has to be rebooted.
294 ; For Win9x support, this should be on the same volume as the
296 ; The Windows temp directory could be located on any volume,
297 ; so you cannot use this directory.
299 ; Define UPGRADEDLL_NOREGISTER if you want to upgrade a DLL that does not
300 ; have to be registered.
302 ; Note: If you want to support Win9x, you can only use
303 ; short filenames (8.3).
306 ; !insertmacro UpgradeDLL "dllname.dll" "$SYSDIR\dllname.dll" "$SYSDIR"
309 !macro UpgradeDLL LOCALFILE DESTFILE TEMPBASEDIR
318 ;------------------------
319 ;Unique number for labels
321 !define UPGRADEDLL_UNIQUE ${__LINE__}
323 ;------------------------
324 ;Copy the parameters used on run-time to a variable
325 ;This allows the usage of variables as paramter
327 StrCpy $R4 "${DESTFILE}"
328 StrCpy $R5 "${TEMPBASEDIR}"
330 ;------------------------
331 ;Check file and version
333 IfFileExists $R4 0 upgradedll.copy_${UPGRADEDLL_UNIQUE}
336 GetDLLVersionLocal "${LOCALFILE}" $R0 $R1
337 GetDLLVersion $R4 $R2 $R3
338 IfErrors upgradedll.upgrade_${UPGRADEDLL_UNIQUE}
340 IntCmpU $R0 $R2 0 upgradedll.done_${UPGRADEDLL_UNIQUE} \
341 upgradedll.upgrade_${UPGRADEDLL_UNIQUE}
342 IntCmpU $R1 $R3 upgradedll.done_${UPGRADEDLL_UNIQUE} \
343 upgradedll.done_${UPGRADEDLL_UNIQUE} \
344 upgradedll.upgrade_${UPGRADEDLL_UNIQUE}
346 ;------------------------
347 ;Let's upgrade the DLL!
351 upgradedll.upgrade_${UPGRADEDLL_UNIQUE}:
352 !ifndef UPGRADEDLL_NOREGISTER
357 ;------------------------
358 ;Try to copy the DLL directly
362 Call :upgradedll.file_${UPGRADEDLL_UNIQUE}
363 IfErrors 0 upgradedll.noreboot_${UPGRADEDLL_UNIQUE}
365 ;------------------------
366 ;DLL is in use. Copy it to a temp file and Rename it on reboot.
368 GetTempFileName $R0 $R5
369 Call :upgradedll.file_${UPGRADEDLL_UNIQUE}
370 Rename /REBOOTOK $R0 $R4
372 ;------------------------
373 ;Register the DLL on reboot
375 !ifndef UPGRADEDLL_NOREGISTER
376 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \
377 "Register $R4" 'rundll32.exe "$R4",DllRegisterServer'
380 Goto upgradedll.done_${UPGRADEDLL_UNIQUE}
382 ;------------------------
383 ;DLL does not exist - just extract
385 upgradedll.copy_${UPGRADEDLL_UNIQUE}:
387 Call :upgradedll.file_${UPGRADEDLL_UNIQUE}
389 ;------------------------
392 upgradedll.noreboot_${UPGRADEDLL_UNIQUE}:
393 !ifndef UPGRADEDLL_NOREGISTER
397 ;------------------------
400 upgradedll.done_${UPGRADEDLL_UNIQUE}:
409 ;------------------------
412 Goto upgradedll.end_${UPGRADEDLL_UNIQUE}
414 ;------------------------
415 ;Called to extract the DLL
417 upgradedll.file_${UPGRADEDLL_UNIQUE}:
418 File /oname=$R0 "${LOCALFILE}"
421 upgradedll.end_${UPGRADEDLL_UNIQUE}:
423 ;------------------------
426 SetOverwrite lastused
428 !undef UPGRADEDLL_UNIQUE
433 ;--------------------------------
436 ;Things that need to be extracted on first (keep these lines before any File command!)
437 ;Only useful for BZIP2 compression
438 !insertmacro MUI_RESERVEFILE_LANGDLL
440 ;--------------------------------
450 ;--------------------------------
453 ;----------------------
455 Section "AFS Client" secClient
457 SetShellVarContext all
458 ; Stop any running services or we can't replace the files
459 ; Stop the running processes
461 File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
462 nsExec::Exec '$R0 afscreds.exe'
463 nsExec::Exec "afscreds.exe -z"
465 ;nsExec::Exec '$R0 krbcc32s.exe'
468 nsExec::Exec "net stop TransarcAFSDaemon"
469 nsExec::Exec "net stop TransarcAFSServer"
471 ; Do client components
472 SetOutPath "$INSTDIR\Client\Program"
473 File "${AFS_CLIENT_BUILDDIR}\afsshare.exe"
474 !define UPGRADEDLL_NOREGISTER
475 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\libosi.dll" "$INSTDIR\Client\Program\libosi.dll" "$INSTDIR"
476 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\libafsconf.dll" "$INSTDIR\Client\Program\libafsconf.dll" "$INSTDIR"
477 File "${AFS_CLIENT_BUILDDIR}\klog.exe"
478 File "${AFS_CLIENT_BUILDDIR}\tokens.exe"
479 File "${AFS_CLIENT_BUILDDIR}\unlog.exe"
480 File "${AFS_CLIENT_BUILDDIR}\fs.exe"
481 File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
482 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll" "$INSTDIR\Client\Program\afs_shl_ext.dll" "$INSTDIR"
483 File "${AFS_BUILD_INCDIR}\afs\auth.h"
484 File "${AFS_CLIENT_BUILDDIR}\afsd_service.exe"
485 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afslogon.dll" "$INSTDIR\Client\Program\afslogon.dll" "$INSTDIR"
486 File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
487 File "${AFS_DESTDIR}\bin\kpasswd.exe"
488 File "${AFS_SERVER_BUILDDIR}\pts.exe"
489 File "${AFS_SERVER_BUILDDIR}\bos.exe"
490 File "${AFS_SERVER_BUILDDIR}\kas.exe"
491 File "${AFS_SERVER_BUILDDIR}\vos.exe"
492 File "${AFS_SERVER_BUILDDIR}\udebug.exe"
493 File "${AFS_DESTDIR}\bin\translate_et.exe"
494 File "${AFS_DESTDIR}\etc\rxdebug.exe"
495 File "${AFS_DESTDIR}\etc\backup.exe"
498 File "${AFS_CLIENT_BUILDDIR}\afsshare.pdb"
499 File "${AFS_CLIENT_BUILDDIR}\libosi.pdb"
500 File "${AFS_CLIENT_BUILDDIR}\libafsconf.pdb"
501 File "${AFS_CLIENT_BUILDDIR}\klog.pdb"
502 File "${AFS_CLIENT_BUILDDIR}\tokens.pdb"
503 File "${AFS_CLIENT_BUILDDIR}\unlog.pdb"
504 File "${AFS_CLIENT_BUILDDIR}\fs.pdb"
505 File "${AFS_CLIENT_BUILDDIR}\afscreds.pdb"
506 File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.pdb"
507 File "${AFS_CLIENT_BUILDDIR}\afsd_service.pdb"
508 File "${AFS_CLIENT_BUILDDIR}\afslogon.pdb"
509 File "${AFS_CLIENT_BUILDDIR}\symlink.pdb"
510 File "${AFS_DESTDIR}\bin\kpasswd.pdb"
511 ;File "${AFS_SERVER_BUILDDIR}\pts.pdb"
512 File "${AFS_SERVER_BUILDDIR}\bos.pdb"
513 File "${AFS_SERVER_BUILDDIR}\kas.pdb"
514 File "${AFS_SERVER_BUILDDIR}\vos.pdb"
515 File "${AFS_SERVER_BUILDDIR}\udebug.pdb"
516 File "${AFS_DESTDIR}\bin\translate_et.pdb"
517 File "${AFS_DESTDIR}\etc\rxdebug.pdb"
518 File "${AFS_DESTDIR}\etc\backup.pdb"
526 ; Do WINDOWSDIR components
528 ; Do Windows SYSDIR (Control panel)
530 File "${AFS_CLIENT_BUILDDIR}\afs_cpa.cpl"
532 File "${AFS_CLIENT_BUILDDIR}\afs_cpa.pdb"
535 ; Get AFS CellServDB file
536 Call afs.GetCellServDB
537 !ifdef INSTALL_LOOPBACK
538 Call afs.InstallMSLoopback
542 ; Include Kerberos for Windows files in the installer...
543 SetOutPath "$INSTDIR\kfw\bin\"
544 File "${KFW_SOURCE}\bin\*"
545 SetOutPath "$INSTDIR\kfw\doc"
546 File "${KFW_SOURCE}\doc\*"
549 ;Store install folder
550 WriteRegStr HKCU "${AFS_REGKEY_ROOT}\Client" "" $INSTDIR
551 Call AFSCommon.Install
553 ; Write registry entries
554 WriteRegStr HKCR "*\shellex\ContextMenuHandlers\AFS Client Shell Extension" "" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
555 WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" "" "AFS Client Shell Extension"
556 WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "" "$INSTDIR\Client\Program\afs_shl_ext.dll"
557 WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "ThreadingModel" "Apartment"
558 WriteRegStr HKCR "FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" "" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
559 WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" "AFS Client Shell Extension"
562 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
563 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "VersionString" ${AFS_VERSION}
564 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Title" "AFS Client"
565 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Description" "AFS Client"
566 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PathName" "$INSTDIR\Client\Program"
567 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Software Type" "File System"
568 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
569 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
570 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
571 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
572 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Title" "AFS Client"
573 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Description" "AFS Client"
574 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Software Type" "File System"
575 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "PathName" "$INSTDIR\Client\Program"
576 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
577 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
578 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
580 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Debug" 1
581 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Debug" 1
583 ; Delete the DEBUG string
584 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Debug"
585 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Debug"
588 ; On Windows 2000 work around KB301673. This is fixed in Windows XP and 2003
589 Call GetWindowsVersion
591 StrCmp $R1 "2000" +1 +2
592 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled" 0
594 ;Write start menu entries
595 CreateDirectory "$SMPROGRAMS\OpenAFS\Client"
596 CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
597 CreateShortCut "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk" "$INSTDIR\Client\Program\afscreds.exe" "-A -M -N -Q"
598 CreateShortCut "$SMSTARTUP\AFS Credentials.lnk" "$INSTDIR\Client\Program\afscreds.exe" "-A -M -N -Q"
600 Push "$INSTDIR\Client\Program"
602 Push "$INSTDIR\Common"
606 ; Add kfw to path too
607 Push "$INSTDIR\kfw\bin"
611 ; Create the AFS service
612 SetOutPath "$INSTDIR\Common"
613 File "${AFS_WININSTALL_DIR}\Service.exe"
614 nsExec::Exec "net stop TransarcAFSDaemon"
615 ;IMPORTANT! If we are not refreshing the config files, do NOT remove the service
616 ;Don't re-install because it must be present or we wouldn't have passed the Reg check
618 ReadRegStr $R2 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "Cell"
619 StrCmp $R2 "" +1 skipremove
620 nsExec::Exec '$INSTDIR\Common\Service.exe u TransarcAFSDaemon'
621 nsExec::Exec '$INSTDIR\Common\Service.exe TransarcAFSDaemon "$INSTDIR\Client\Program\afsd_service.exe" "OpenAFS Client Service"'
623 Delete "$INSTDIR\Common\service.exe"
626 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "" ""
627 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "ProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
628 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
629 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
630 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Class" 2
631 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "VerboseLogging" 10
632 ReadINIStr $R0 $1 "Field 7" "State"
633 ReadINIStr $R1 $1 "Field 9" "State"
634 ; Complicated way to do $R1 = ($R1 *2) + $R0
637 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonOptions" $R1
638 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonScript" "$INSTDIR\Client\Program\afscreds.exe -:%s -x"
639 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Name" "OpenAFSDaemon"
641 strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider"
642 strcpy $REG_VALUE "DependOnGroup"
643 strcpy $REG_DATA_1 "PNP_TDI"
644 strcpy $REG_DATA_2 ""
645 strcpy $REG_DATA_3 ""
646 Call RegWriteMultiStr
647 strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider"
648 strcpy $REG_VALUE "DependOnService"
649 strcpy $REG_DATA_1 "Tcpip"
650 strcpy $REG_DATA_2 "NETBIOS"
651 strcpy $REG_DATA_3 "NetBT"
652 Call RegWriteMultiStr
655 ReadINIStr $R0 $1 "Field 2" "State"
656 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell" $R0
657 ReadINIStr $R0 $1 "Field 3" "State"
658 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "ShowTrayIcon" 1
659 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "SecurityLevel" $R0
660 ReadINIStr $R0 $1 "Field 5" "State"
661 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "FreelanceClient" $R0
662 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "UseDNS" 1
663 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "NetbiosName" "AFS"
664 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "MountRoot" "/afs"
665 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "RxMaxMTU" 1260
666 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "IsGateway" 0
667 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "HideDotFiles" 1
668 WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "TruncateNetbios" "on"
670 WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "NoFindLanaByName" 1
674 WriteUninstaller "$INSTDIR\Uninstall.exe"
678 ;------------------------
680 Section "AFS Server" secServer
682 SetShellVarContext all
683 ; Stop any running services or we can't replace the files
684 ; Stop the running processes
686 File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
687 nsExec::Exec '$R0 afscreds.exe'
688 nsExec::Exec "afscreds.exe -z"
690 ;nsExec::Exec '$R0 krbcc32s.exe'
693 nsExec::Exec "net stop TransarcAFSDaemon"
694 nsExec::Exec "net stop TransarcAFSServer"
696 CreateDirectory "$INSTDIR\Server\usr\afs\etc"
697 CreateDirectory "$INSTDIR\Server\usr\afs\local"
698 CreateDirectory "$INSTDIR\Server\usr\afs\etc\logs"
700 SetOutPath "$INSTDIR\Server\usr\afs\bin"
701 File "${AFS_SERVER_BUILDDIR}\afskill.exe"
702 File "${AFS_SERVER_BUILDDIR}\afssvrcfg.exe"
703 File "${AFS_SERVER_BUILDDIR}\bosctlsvc.exe"
704 File "${AFS_SERVER_BUILDDIR}\bosserver.exe"
705 File "${AFS_SERVER_BUILDDIR}\buserver.exe"
706 File "${AFS_ETC_BUILDDIR}\butc.exe"
707 File "${AFS_SERVER_BUILDDIR}\fileserver.exe"
708 File "${AFS_ETC_BUILDDIR}\fms.exe"
709 File "${AFS_SERVER_BUILDDIR}\kaserver.exe"
710 File "${AFS_SERVER_BUILDDIR}\ptserver.exe"
711 File "${AFS_SERVER_BUILDDIR}\salvager.exe"
712 File "${AFS_SERVER_BUILDDIR}\upclient.exe"
713 File "${AFS_SERVER_BUILDDIR}\upserver.exe"
714 File "${AFS_SERVER_BUILDDIR}\vlserver.exe"
715 File "${AFS_SERVER_BUILDDIR}\volinfo.exe"
716 File "${AFS_SERVER_BUILDDIR}\volserver.exe"
719 File "${AFS_SERVER_BUILDDIR}\afskill.pdb"
720 File "${AFS_SERVER_BUILDDIR}\afssvrcfg.pdb"
721 File "${AFS_SERVER_BUILDDIR}\bosctlsvc.pdb"
722 File "${AFS_SERVER_BUILDDIR}\bosserver.pdb"
723 File "${AFS_SERVER_BUILDDIR}\buserver.pdb"
724 File "${AFS_ETC_BUILDDIR}\butc.pdb"
725 File "${AFS_SERVER_BUILDDIR}\fileserver.pdb"
726 File "${AFS_ETC_BUILDDIR}\fms.pdb"
727 File "${AFS_SERVER_BUILDDIR}\kaserver.pdb"
728 File "${AFS_SERVER_BUILDDIR}\ptserver.pdb"
729 File "${AFS_SERVER_BUILDDIR}\salvager.pdb"
730 File "${AFS_SERVER_BUILDDIR}\upclient.pdb"
731 File "${AFS_SERVER_BUILDDIR}\upserver.pdb"
732 File "${AFS_SERVER_BUILDDIR}\vlserver.pdb"
733 File "${AFS_SERVER_BUILDDIR}\volinfo.pdb"
734 File "${AFS_SERVER_BUILDDIR}\volserver.pdb"
737 ;AFS Server common files
738 SetOutPath "$INSTDIR\Common"
739 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
740 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
741 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
742 File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
743 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
746 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.pdb"
747 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.pdb"
748 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.pdb"
749 File "${AFS_SERVER_BUILDDIR}\afskasadmin.pdb"
750 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.pdb"
752 SetOutPath "$INSTDIR\Common"
756 File "${AFS_SERVER_BUILDDIR}\afsserver.cpl"
759 File "${AFS_SERVER_BUILDDIR}\afsserver.pdb"
762 ;Store install folder
763 WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Server" "" $INSTDIR
765 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
766 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "VersionString" ${AFS_VERSION}
767 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Title" "AFS Server"
768 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Description" "AFS Server for Windows"
769 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PathName" "$INSTDIR\Server"
770 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Software Type" "File System"
771 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
772 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
773 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
774 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
775 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Title" "AFS Server"
776 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Description" "AFS Server for Windows"
777 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Software Type" "File System"
778 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "PathName" "$INSTDIR\Server"
779 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
780 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
781 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
783 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Debug" 1
784 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Debug" 1
786 ; Delete the DEBUG string
787 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Debug"
788 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Server\${AFS_VERSION}" "Debug"
790 ; Install the service
791 SetOutPath "$INSTDIR\Common"
792 File "${AFS_WININSTALL_DIR}\Service.exe"
794 File "${AFS_WININSTALL_DIR}\Service.pdb"
796 ;Don't want to whack existing settings... Make users un-install and then re-install if they want that
797 ;nsExec::Exec '$INSTDIR\Common\service.exe u TransarcAFSServer'
798 nsExec::Exec '$INSTDIR\Common\service.exe TransarcAFSServer "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" "OpenAFS AFS Server"'
799 Delete "$INSTDIR\Common\service.exe"
801 CreateDirectory "$SMPROGRAMS\OpenAFS\Server"
802 CreateShortCut "$SMPROGRAMS\OpenAFS\Server\Server Configuration.lnk" "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
804 ; Make the server config wizard auto-start on bootup
805 WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "AFS Server Wizard" '"$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe" /wizard"'
807 WriteUninstaller "$INSTDIR\Uninstall.exe"
812 ;----------------------------
813 ; OpenAFS Control Center
814 Section "AFS Control Center" secControl
816 SetShellVarContext all
818 SetOutPath "$INSTDIR\Control Center"
819 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager.exe"
820 File "${AFS_SERVER_BUILDDIR}\TaAfsAdmSvr.exe"
821 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager.exe"
824 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager.pdb"
825 File "${AFS_SERVER_BUILDDIR}\TaAfsAdmSvr.pdb"
826 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager.pdb"
829 ;AFS Server common files
830 Call AFSCommon.Install
832 SetOutPath "$INSTDIR\Common"
834 SetOutPath "$INSTDIR\Common"
837 File "${SYSTEMDIR}\msvcr71d.dll"
838 File "${SYSTEMDIR}\msvcr71d.pdb"
839 File "${SYSTEMDIR}\msvcp71d.dll"
840 File "${SYSTEMDIR}\msvcp71d.pdb"
841 File "${SYSTEMDIR}\mfc71d.dll"
842 File "${SYSTEMDIR}\mfc71d.pdb"
843 File "${SYSTEMDIR}\MFC71CHS.DLL"
844 File "${SYSTEMDIR}\MFC71CHT.DLL"
845 File "${SYSTEMDIR}\MFC71DEU.DLL"
846 File "${SYSTEMDIR}\MFC71ENU.DLL"
847 File "${SYSTEMDIR}\MFC71ESP.DLL"
848 File "${SYSTEMDIR}\MFC71FRA.DLL"
849 File "${SYSTEMDIR}\MFC71ITA.DLL"
850 File "${SYSTEMDIR}\MFC71JPN.DLL"
851 File "${SYSTEMDIR}\MFC71KOR.DLL"
854 File "${SYSTEMDIR}\msvcr70d.dll"
855 File "${SYSTEMDIR}\msvcr70d.pdb"
856 File "${SYSTEMDIR}\msvcp70d.dll"
857 File "${SYSTEMDIR}\msvcp70d.pdb"
858 File "${SYSTEMDIR}\mfc70d.dll"
859 File "${SYSTEMDIR}\mfc70d.pdb"
860 File "${SYSTEMDIR}\MFC70CHS.DLL"
861 File "${SYSTEMDIR}\MFC70CHT.DLL"
862 File "${SYSTEMDIR}\MFC70DEU.DLL"
863 File "${SYSTEMDIR}\MFC70ENU.DLL"
864 File "${SYSTEMDIR}\MFC70ESP.DLL"
865 File "${SYSTEMDIR}\MFC70FRA.DLL"
866 File "${SYSTEMDIR}\MFC70ITA.DLL"
867 File "${SYSTEMDIR}\MFC70JPN.DLL"
868 File "${SYSTEMDIR}\MFC70KOR.DLL"
870 File "${SYSTEMDIR}\mfc42d.dll"
871 File "${SYSTEMDIR}\mfc42d.pdb"
872 File "${SYSTEMDIR}\msvcp60d.dll"
873 File "${SYSTEMDIR}\msvcp60d.pdb"
874 File "${SYSTEMDIR}\msvcrtd.dll"
875 File "${SYSTEMDIR}\msvcrtd.pdb"
880 File "${SYSTEMDIR}\mfc71.dll"
881 File "${SYSTEMDIR}\msvcr71.dll"
882 File "${SYSTEMDIR}\msvcp71.dll"
883 File "${SYSTEMDIR}\MFC71CHS.DLL"
884 File "${SYSTEMDIR}\MFC71CHT.DLL"
885 File "${SYSTEMDIR}\MFC71DEU.DLL"
886 File "${SYSTEMDIR}\MFC71ENU.DLL"
887 File "${SYSTEMDIR}\MFC71ESP.DLL"
888 File "${SYSTEMDIR}\MFC71FRA.DLL"
889 File "${SYSTEMDIR}\MFC71ITA.DLL"
890 File "${SYSTEMDIR}\MFC71JPN.DLL"
891 File "${SYSTEMDIR}\MFC71KOR.DLL"
894 File "${SYSTEMDIR}\mfc70.dll"
895 File "${SYSTEMDIR}\msvcr70.dll"
896 File "${SYSTEMDIR}\msvcp70.dll"
897 File "${SYSTEMDIR}\MFC70CHS.DLL"
898 File "${SYSTEMDIR}\MFC70CHT.DLL"
899 File "${SYSTEMDIR}\MFC70DEU.DLL"
900 File "${SYSTEMDIR}\MFC70ENU.DLL"
901 File "${SYSTEMDIR}\MFC70ESP.DLL"
902 File "${SYSTEMDIR}\MFC70FRA.DLL"
903 File "${SYSTEMDIR}\MFC70ITA.DLL"
904 File "${SYSTEMDIR}\MFC70JPN.DLL"
905 File "${SYSTEMDIR}\MFC70KOR.DLL"
907 File "${SYSTEMDIR}\mfc42.dll"
908 File "${SYSTEMDIR}\msvcp60.dll"
909 File "${SYSTEMDIR}\msvcrt.dll"
913 ;Store install folder
914 WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName" $INSTDIR
915 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "VersionString" ${AFS_VERSION}
916 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
917 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
918 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
919 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
920 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
921 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
922 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
924 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "Debug" 1
925 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "Debug" 1
927 ; Delete the DEBUG string
928 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "Debug"
929 DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${AFS_VERSION}" "Debug"
932 ;Write start menu entries
933 CreateDirectory "$SMPROGRAMS\OpenAFS\Control Center"
934 CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk" "$INSTDIR\Control Center\TaAfsAccountManager.exe"
935 CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk" "$INSTDIR\Control Center\TaAfsServerManager.exe"
937 WriteUninstaller "$INSTDIR\Uninstall.exe"
942 ;----------------------------
943 ; OpenAFS Supplemental Documentation
944 Section "Supplemental Documentation" secDocs
945 SetShellVarContext all
947 StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
948 StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
949 StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
950 StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
951 StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
952 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
953 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
954 StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
958 SetOutPath "$INSTDIR\Documentation\html"
959 File "..\..\doc\install\Documentation\en_US\html\*"
960 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
961 File "..\..\doc\install\Documentation\en_US\html\CmdRef\*"
962 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
963 File "..\..\doc\install\Documentation\en_US\html\InstallGd\*"
964 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
965 File "..\..\doc\install\Documentation\en_US\html\ReleaseNotes\*"
966 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
967 File "..\..\doc\install\Documentation\en_US\html\SysAdminGd\*"
971 SetOutPath "$INSTDIR\Documentation"
972 File "..\..\doc\install\Documentation\de_DE\README.TXT"
973 SetOutPath "$INSTDIR\Documentation\html"
974 File "..\..\doc\install\Documentation\de_DE\html\*"
975 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
976 ;File "..\..\doc\install\Documentation\de_DE\html\CmdRef\*"
977 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
978 File "..\..\doc\install\Documentation\de_DE\html\InstallGd\*"
979 ;SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
980 ;File "..\..\doc\install\Documentation\de_DE\html\ReleaseNotes\*"
981 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
982 ;File "..\..\doc\install\Documentation\de_DE\html\SysAdminGd\*"
986 SetOutPath "$INSTDIR\Documentation"
987 File "..\..\doc\install\Documentation\es_ES\README.TXT"
988 SetOutPath "$INSTDIR\Documentation\html"
989 File "..\..\doc\install\Documentation\es_ES\html\*"
990 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
991 ;File "..\..\doc\install\Documentation\es_ES\html\CmdRef\*"
992 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
993 ;File "..\..\doc\install\Documentation\es_ES\html\InstallGd\*"
994 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
995 ;File "..\..\doc\install\Documentation\es_ES\html\ReleaseNotes\*"
996 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
997 ;File "..\..\doc\install\Documentation\es_ES\html\SysAdminGd\*"
1001 SetOutPath "$INSTDIR\Documentation"
1002 File "..\..\doc\install\Documentation\ja_JP\README.TXT"
1003 SetOutPath "$INSTDIR\Documentation\html"
1004 File "..\..\doc\install\Documentation\ja_JP\html\*"
1005 SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1006 File "..\..\doc\install\Documentation\ja_JP\html\CmdRef\*"
1007 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1008 File "..\..\doc\install\Documentation\ja_JP\html\InstallGd\*"
1009 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1010 ;File "..\..\doc\install\Documentation\ja_JP\html\ReleaseNotes\*"
1011 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1012 ;File "..\..\doc\install\Documentation\ja_JP\html\SysAdminGd\*"
1016 SetOutPath "$INSTDIR\Documentation"
1017 File "..\..\doc\install\Documentation\ko_KR\README.TXT"
1018 SetOutPath "$INSTDIR\Documentation\html"
1019 File "..\..\doc\install\Documentation\ko_KR\html\*"
1020 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1021 ;File "..\..\doc\install\Documentation\ko_KR\html\CmdRef\*"
1022 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1023 File "..\..\doc\install\Documentation\ko_KR\html\InstallGd\*"
1024 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1025 File "..\..\doc\install\Documentation\ko_KR\html\ReleaseNotes\*"
1026 SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1027 File "..\..\doc\install\Documentation\ko_KR\html\SysAdminGd\*"
1031 SetOutPath "$INSTDIR\Documentation"
1032 File "..\..\doc\install\Documentation\pt_BR\README.TXT"
1033 SetOutPath "$INSTDIR\Documentation\html"
1034 File "..\..\doc\install\Documentation\pt_BR\html\*"
1035 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1036 ;File "..\..\doc\install\Documentation\pt_BR\html\CmdRef\*"
1037 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1038 File "..\..\doc\install\Documentation\pt_BR\html\InstallGd\*"
1039 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1040 File "..\..\doc\install\Documentation\pt_BR\html\ReleaseNotes\*"
1041 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1042 ;File "..\..\doc\install\Documentation\pt_BR\html\SysAdminGd\*"
1046 SetOutPath "$INSTDIR\Documentation"
1047 File "..\..\doc\install\Documentation\zh_CN\README.TXT"
1048 SetOutPath "$INSTDIR\Documentation\html"
1049 File "..\..\doc\install\Documentation\zh_CN\html\*"
1050 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1051 ;File "..\..\doc\install\Documentation\zh_CN\html\CmdRef\*"
1052 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1053 File "..\..\doc\install\Documentation\zh_CN\html\InstallGd\*"
1054 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1055 File "..\..\doc\install\Documentation\zh_CN\html\ReleaseNotes\*"
1056 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1057 ;File "..\..\doc\install\Documentation\zh_CN\html\SysAdminGd\*"
1061 SetOutPath "$INSTDIR\Documentation"
1062 File "..\..\doc\install\Documentation\zh_TW\README.TXT"
1063 SetOutPath "$INSTDIR\Documentation\html"
1064 File "..\..\doc\install\Documentation\zh_TW\html\*"
1065 ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
1066 ;File "..\..\doc\install\Documentation\zh_TW\html\CmdRef\*"
1067 SetOutPath "$INSTDIR\Documentation\html\InstallGd"
1068 File "..\..\doc\install\Documentation\zh_TW\html\InstallGd\*"
1069 SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
1070 File "..\..\doc\install\Documentation\zh_TW\html\ReleaseNotes\*"
1071 ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
1072 ;File "..\..\doc\install\Documentation\zh_TW\html\SysAdminGd\*"
1077 ;Store install folder
1078 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation" "" $INSTDIR
1079 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "VersionString" ${AFS_VERSION}
1080 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
1081 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
1082 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
1083 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
1084 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
1085 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
1086 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
1088 ; Write start menu shortcut
1089 SetOutPath "$SMPROGRAMS\OpenAFS"
1090 CreateShortCut "$SMPROGRAMS\OpenAFS\Documentation.lnk" "$INSTDIR\Documentation\html\index.htm"
1093 WriteUninstaller "$INSTDIR\Uninstall.exe"
1094 CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
1095 Call AFSCommon.Install
1099 Section "Software Development Kit (SDK)" secSDK
1101 SetOutPath "$INSTDIR\Client\Program"
1103 File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
1104 File "${AFS_BUILD_INCDIR}\afs\kautils.h"
1105 File "${AFS_CLIENT_LIBDIR}\libafsconf.lib"
1106 File "${AFS_CLIENT_LIBDIR}\afsauthent.lib"
1109 SetOutPath "$INSTDIR\Client\Program\Include"
1110 File "${AFS_BUILD_INCDIR}\lock.h"
1111 File "${AFS_BUILD_INCDIR}\lwp.h"
1112 File "${AFS_BUILD_INCDIR}\preempt.h"
1113 File "${AFS_BUILD_INCDIR}\timer.h"
1114 File "${AFS_BUILD_INCDIR}\des.h"
1115 File "${AFS_BUILD_INCDIR}\des_conf.h"
1116 File "${AFS_BUILD_INCDIR}\mit-cpyright.h"
1117 ;File "${AFS_BUILD_INCDIR}\des-odd.h"
1118 File "${AFS_BUILD_INCDIR}\crypt.h"
1119 File "${AFS_BUILD_INCDIR}\pthread.h"
1120 File "${AFS_BUILD_INCDIR}\dbrpc.h"
1121 File "${AFS_BUILD_INCDIR}\basic.h"
1122 File "${AFS_BUILD_INCDIR}\osidebug.h"
1123 File "${AFS_BUILD_INCDIR}\osiltype.h"
1124 File "${AFS_BUILD_INCDIR}\osistatl.h"
1125 File "${AFS_BUILD_INCDIR}\trylock.h"
1126 File "${AFS_BUILD_INCDIR}\main.h"
1127 File "${AFS_BUILD_INCDIR}\osibasel.h"
1128 File "${AFS_BUILD_INCDIR}\osifd.h"
1129 File "${AFS_BUILD_INCDIR}\osiqueue.h"
1130 File "${AFS_BUILD_INCDIR}\osiutils.h"
1131 File "${AFS_BUILD_INCDIR}\osi.h"
1132 File "${AFS_BUILD_INCDIR}\osidb.h"
1133 File "${AFS_BUILD_INCDIR}\osilog.h"
1134 File "${AFS_BUILD_INCDIR}\osisleep.h"
1135 File "${AFS_BUILD_INCDIR}\perf.h"
1136 File "${AFS_BUILD_INCDIR}\ubik.h"
1137 File "${AFS_BUILD_INCDIR}\ubik_int.h"
1141 SetOutPath "$INSTDIR\Client\Program\Include\afs"
1142 File "${AFS_BUILD_INCDIR}\afs\afs_args.h"
1143 File "${AFS_BUILD_INCDIR}\afs\debug.h"
1144 File "${AFS_BUILD_INCDIR}\afs\param.h"
1145 File "${AFS_BUILD_INCDIR}\afs\afs_sysnames.h"
1146 ;File "${AFS_BUILD_INCDIR}\afs\permit_xprt.h"
1147 File "${AFS_BUILD_INCDIR}\afs\stds.h"
1148 File "${AFS_BUILD_INCDIR}\afs\icl.h"
1149 File "${AFS_BUILD_INCDIR}\afs\procmgmt.h"
1150 File "${AFS_BUILD_INCDIR}\afs\afsutil.h"
1151 File "${AFS_BUILD_INCDIR}\afs\assert.h"
1152 File "${AFS_BUILD_INCDIR}\afs\dirent.h"
1153 File "${AFS_BUILD_INCDIR}\afs\errors.h"
1154 File "${AFS_BUILD_INCDIR}\afs\itc.h"
1155 File "${AFS_BUILD_INCDIR}\afs\vice.h"
1156 File "${AFS_BUILD_INCDIR}\afs\pthread_glock.h"
1157 File "${AFS_BUILD_INCDIR}\afs\errmap_nt.h"
1158 File "${AFS_BUILD_INCDIR}\afs\dirpath.h"
1159 File "${AFS_BUILD_INCDIR}\afs\ktime.h"
1160 File "${AFS_BUILD_INCDIR}\afs\fileutil.h"
1161 File "${AFS_BUILD_INCDIR}\afs\secutil_nt.h"
1162 File "${AFS_BUILD_INCDIR}\afs\com_err.h"
1163 File "${AFS_BUILD_INCDIR}\afs\error_table.h"
1164 ;File "${AFS_BUILD_INCDIR}\afs\mit_sipb-cr.h"
1165 File "${AFS_BUILD_INCDIR}\afs\cmd.h"
1166 File "${AFS_BUILD_INCDIR}\afs\rxgen_consts.h"
1167 File "${AFS_BUILD_INCDIR}\afs\afsint.h"
1168 File "${AFS_BUILD_INCDIR}\afs\afscbint.h"
1169 File "${AFS_BUILD_INCDIR}\afs\audit.h"
1170 File "${AFS_BUILD_INCDIR}\afs\acl.h"
1171 File "${AFS_BUILD_INCDIR}\afs\prs_fs.h"
1172 File "${AFS_BUILD_INCDIR}\afs\afsd.h"
1173 File "${AFS_BUILD_INCDIR}\afs\cm.h"
1174 File "${AFS_BUILD_INCDIR}\afs\cm_buf.h"
1175 File "${AFS_BUILD_INCDIR}\afs\cm_cell.h"
1176 File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
1177 File "${AFS_BUILD_INCDIR}\afs\cm_conn.h"
1178 File "${AFS_BUILD_INCDIR}\afs\cm_ioctl.h"
1179 File "${AFS_BUILD_INCDIR}\afs\cm_scache.h"
1180 File "${AFS_BUILD_INCDIR}\afs\cm_server.h"
1181 File "${AFS_BUILD_INCDIR}\afs\cm_user.h"
1182 File "${AFS_BUILD_INCDIR}\afs\cm_utils.h"
1183 File "${AFS_BUILD_INCDIR}\afs\fs_utils.h"
1184 File "${AFS_BUILD_INCDIR}\afs\krb.h"
1185 File "${AFS_BUILD_INCDIR}\afs\krb_prot.h"
1186 File "${AFS_BUILD_INCDIR}\afs\smb.h"
1187 File "${AFS_BUILD_INCDIR}\afs\smb3.h"
1188 File "${AFS_BUILD_INCDIR}\afs\smb_iocons.h"
1189 File "${AFS_BUILD_INCDIR}\afs\smb_ioctl.h"
1190 File "${AFS_BUILD_INCDIR}\afs\afsrpc.h"
1191 File "${AFS_BUILD_INCDIR}\afs\afssyscalls.h"
1192 File "${AFS_BUILD_INCDIR}\afs\pioctl_nt.h"
1193 File "${AFS_BUILD_INCDIR}\afs\auth.h"
1194 File "${AFS_BUILD_INCDIR}\afs\cellconfig.h"
1195 File "${AFS_BUILD_INCDIR}\afs\keys.h"
1196 File "${AFS_BUILD_INCDIR}\afs\ptserver.h"
1197 File "${AFS_BUILD_INCDIR}\afs\ptint.h"
1198 File "${AFS_BUILD_INCDIR}\afs\pterror.h"
1199 File "${AFS_BUILD_INCDIR}\afs\ptint.h"
1200 File "${AFS_BUILD_INCDIR}\afs\pterror.h"
1201 File "${AFS_BUILD_INCDIR}\afs\ptclient.h"
1202 File "${AFS_BUILD_INCDIR}\afs\prserver.h"
1203 File "${AFS_BUILD_INCDIR}\afs\print.h"
1204 File "${AFS_BUILD_INCDIR}\afs\prerror.h"
1205 File "${AFS_BUILD_INCDIR}\afs\prclient.h"
1206 File "${AFS_BUILD_INCDIR}\afs\kautils.h"
1207 File "${AFS_BUILD_INCDIR}\afs\kauth.h"
1208 File "${AFS_BUILD_INCDIR}\afs\kaport.h"
1209 File "${AFS_BUILD_INCDIR}\afs\vl_opcodes.h"
1210 File "${AFS_BUILD_INCDIR}\afs\vlserver.h"
1211 File "${AFS_BUILD_INCDIR}\afs\vldbint.h"
1212 File "${AFS_BUILD_INCDIR}\afs\usd.h"
1213 File "${AFS_BUILD_INCDIR}\afs\bubasics.h"
1214 File "${AFS_BUILD_INCDIR}\afs\butc.h"
1215 File "${AFS_BUILD_INCDIR}\afs\bumon.h"
1216 File "${AFS_BUILD_INCDIR}\afs\butm.h"
1217 File "${AFS_BUILD_INCDIR}\afs\tcdata.h"
1218 File "${AFS_BUILD_INCDIR}\afs\budb.h"
1219 ;File "${AFS_BUILD_INCDIR}\afs\budb_errors.h"
1220 File "${AFS_BUILD_INCDIR}\afs\budb_client.h"
1221 File "${AFS_BUILD_INCDIR}\afs\dir.h"
1222 File "${AFS_BUILD_INCDIR}\afs\fssync.h"
1223 File "${AFS_BUILD_INCDIR}\afs\ihandle.h"
1224 File "${AFS_BUILD_INCDIR}\afs\nfs.h"
1225 File "${AFS_BUILD_INCDIR}\afs\ntops.h"
1226 File "${AFS_BUILD_INCDIR}\afs\partition.h"
1227 File "${AFS_BUILD_INCDIR}\afs\viceinode.h"
1228 File "${AFS_BUILD_INCDIR}\afs\vnode.h"
1229 File "${AFS_BUILD_INCDIR}\afs\volume.h"
1230 File "${AFS_BUILD_INCDIR}\afs\voldefs.h"
1231 File "${AFS_BUILD_INCDIR}\afs\volser.h"
1232 File "${AFS_BUILD_INCDIR}\afs\volint.h"
1233 File "${AFS_BUILD_INCDIR}\afs\fs_stats.h"
1234 File "${AFS_BUILD_INCDIR}\afs\bosint.h"
1235 File "${AFS_BUILD_INCDIR}\afs\bnode.h"
1238 SetOutPath "$INSTDIR\Client\Program\Include\rx"
1239 File "${AFS_BUILD_INCDIR}\rx\rx.h"
1240 File "${AFS_BUILD_INCDIR}\rx\rx_packet.h"
1241 File "${AFS_BUILD_INCDIR}\rx\rx_user.h"
1242 File "${AFS_BUILD_INCDIR}\rx\rx_event.h"
1243 File "${AFS_BUILD_INCDIR}\rx\rx_queue.h"
1244 File "${AFS_BUILD_INCDIR}\rx\rx_globals.h"
1245 File "${AFS_BUILD_INCDIR}\rx\rx_clock.h"
1246 File "${AFS_BUILD_INCDIR}\rx\rx_misc.h"
1247 File "${AFS_BUILD_INCDIR}\rx\rx_multi.h"
1248 File "${AFS_BUILD_INCDIR}\rx\rx_null.h"
1249 File "${AFS_BUILD_INCDIR}\rx\rx_lwp.h"
1250 File "${AFS_BUILD_INCDIR}\rx\rx_pthread.h"
1251 File "${AFS_BUILD_INCDIR}\rx\rx_xmit_nt.h"
1252 File "${AFS_BUILD_INCDIR}\rx\xdr.h"
1253 File "${AFS_BUILD_INCDIR}\rx\rxkad.h"
1258 SetOutPath "$INSTDIR\Client\Program\Sample"
1259 File "..\..\afsd\sample\token.c"
1261 ;Store install folder
1262 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK" "" $INSTDIR
1263 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "VersionString" ${AFS_VERSION}
1264 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
1265 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
1266 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
1267 WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
1268 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
1269 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
1270 WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
1272 WriteUninstaller "$INSTDIR\Uninstall.exe"
1273 SetOutPath "$SMPROGRAMS\OpenAFS"
1274 CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
1276 Call AFSCommon.Install
1279 ;Display the Finish header
1280 ;Insert this macro after the sections if you are not using a finish page
1281 ;!insertmacro MUI_SECTIONS_FINISHHEADER
1283 ;--------------------------------
1284 ;Installer Functions
1288 !insertmacro MUI_LANGDLL_DISPLAY
1290 ; Set the default install options
1295 StrCmp $R0 "true" contInstall
1297 MessageBox MB_OK|MB_ICONSTOP|MB_TOPMOST "You must be an administrator of this machine to install this software."
1301 ; Our logic should be like this.
1302 ; 1) If no AFS components are installed, we do a clean install with default options. (Client/Docs)
1303 ; 2) If existing modules are installed, we keep them selected
1304 ; 3) If it is an upgrade, we set the text accordingly, else we mark it as a re-install
1306 Call IsAnyAFSInstalled
1308 StrCmp $R0 "0" DefaultOptions
1310 Call ShouldClientInstall
1313 StrCmp $R2 "0" NoClient
1314 StrCmp $R2 "1" ReinstallClient
1315 StrCmp $R2 "2" UpgradeClient
1316 StrCmp $R2 "3" DowngradeClient
1318 SectionGetFlags ${secClient} $0
1319 IntOp $0 $0 | ${SF_SELECTED}
1320 SectionSetFlags ${secClient} $0
1321 ;# !insertmacro SelectSection ${secClient}
1324 ;StrCpy $1 ${secClient} ; Gotta remember which section we are at now...
1325 SectionGetFlags ${secClient} $0
1326 IntOp $0 $0 & ${SECTION_OFF}
1327 SectionSetFlags ${secClient} $0
1330 SectionGetFlags ${secClient} $0
1331 IntOp $0 $0 | ${SF_SELECTED}
1332 SectionSetFlags ${secClient} $0
1333 SectionSetText ${secClient} $(UPGRADE_CLIENT)
1336 SectionGetFlags ${secClient} $0
1337 IntOp $0 $0 | ${SF_SELECTED}
1338 SectionSetFlags ${secClient} $0
1339 SectionSetText ${secClient} $(REINSTALL_CLIENT)
1342 SectionGetFlags ${secClient} $0
1343 IntOp $0 $0 | ${SF_SELECTED}
1344 SectionSetFlags ${secClient} $0
1345 SectionSetText ${secClient} $(REINSTALL_CLIENT)
1351 Call ShouldServerInstall
1353 StrCmp $R2 "0" NoServer
1354 StrCmp $R2 "1" ReinstallServer
1355 StrCmp $R2 "2" UpgradeServer
1356 StrCmp $R2 "3" DowngradeServer
1358 SectionGetFlags ${secServer} $0
1359 IntOp $0 $0 | ${SF_SELECTED}
1360 SectionSetFlags ${secServer} $0
1361 ;# !insertmacro UnselectSection ${secServer}
1365 SectionGetFlags ${secServer} $0
1366 IntOp $0 $0 | ${SF_SELECTED}
1367 SectionSetFlags ${secServer} $0
1368 SectionSetText ${secServer} $(UPGRADE_SERVER)
1372 SectionGetFlags ${secServer} $0
1373 IntOp $0 $0 | ${SF_SELECTED}
1374 SectionSetFlags ${secServer} $0
1375 SectionSetText ${secServer} $(REINSTALL_SERVER)
1379 SectionGetFlags ${secServer} $0
1380 IntOp $0 $0 | ${SF_SELECTED}
1381 SectionSetFlags ${secServer} $0
1382 SectionSetText ${secServer} $(REINSTALL_SERVER)
1386 SectionGetFlags ${secServer} $0
1387 IntOp $0 $0 & ${SECTION_OFF}
1388 SectionSetFlags ${secServer} $0
1389 ;# !insertmacro UnselectSection ${secServer}
1393 ; Check control center
1394 Call IsControlInstalled
1396 StrCmp $R2 "0" NoControl
1398 SectionGetFlags ${secControl} $0
1399 IntOp $0 $0 | ${SF_SELECTED}
1400 SectionSetFlags ${secControl} $0
1404 SectionGetFlags ${secControl} $0
1405 IntOp $0 $0 & ${SECTION_OFF}
1406 SectionSetFlags ${secControl} $0
1407 ;# !insertmacro UnselectSection ${secControl}
1410 ; Check Documentation
1411 Call IsDocumentationInstalled
1413 StrCmp $R2 "0" NoDocs
1414 SectionGetFlags ${secDocs} $0
1415 IntOp $0 $0 | ${SF_SELECTED}
1416 SectionSetFlags ${secDocs} $0
1420 SectionGetFlags ${secDocs} $0
1421 IntOp $0 $0 & ${SECTION_OFF}
1422 SectionSetFlags ${secDocs} $0
1425 ; To check the SDK, we simply look to see if the files exist. If they do,
1426 ; the SDK is installed. If not, we don't need to push it on the user.
1427 ; If they are there, we want to make sure they match the installed version.
1429 IfFileExists "$INSTDIR\Client\Program\Include\main.h" +1 NoSDK
1430 SectionGetFlags ${secSDK} $0
1431 IntOp $0 $0 | ${SF_SELECTED}
1432 SectionSetFlags ${secSDK} $0
1436 SectionGetFlags ${secSDK} $0
1437 IntOp $0 $0 & ${SECTION_OFF}
1438 SectionSetFlags ${secSDK} $0
1443 SectionGetFlags ${secClient} $0
1444 IntOp $0 $0 | ${SF_SELECTED}
1445 SectionSetFlags ${secClient} $0
1447 ; Server NOT selected
1448 SectionGetFlags ${secServer} $0
1449 IntOp $0 $0 & ${SECTION_OFF}
1450 SectionSetFlags ${secServer} $0
1452 ; Control Center NOT selected
1453 SectionGetFlags ${secControl} $0
1454 IntOp $0 $0 & ${SECTION_OFF}
1455 SectionSetFlags ${secControl} $0
1456 ;# !insertmacro UnselectSection ${secControl}
1458 ; Documentation selected
1459 SectionGetFlags ${secDocs} $0
1460 IntOp $0 $0 | ${SF_SELECTED}
1461 SectionSetFlags ${secDocs} $0
1462 ;# !insertmacro UnselectSection ${secDocs}
1465 SectionGetFlags ${secSDK} $0
1466 IntOp $0 $0 & ${SECTION_OFF}
1467 SectionSetFlags ${secSDK} $0
1468 ;# !insertmacro UnselectSection ${secSDK}
1477 ; See if we can set a default installation path...
1478 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PathName"
1479 StrCmp $R0 "" TryServer
1488 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PathName"
1489 StrCmp $R0 "" TryControl
1497 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName"
1505 File /oname=$0 CellServPage.ini
1507 File /oname=$1 AFSCell.ini
1508 ;File /oname=$1 ConfigURL.ini
1516 ;--------------------------------
1517 ; These are our cleanup functions
1518 Function .onInstFailed
1523 Function .onInstSuccess
1529 ;--------------------------------
1532 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
1533 !insertmacro MUI_DESCRIPTION_TEXT ${secServer} $(DESC_secServer)
1534 !insertmacro MUI_DESCRIPTION_TEXT ${secClient} $(DESC_secClient)
1535 !insertmacro MUI_DESCRIPTION_TEXT ${secControl} $(DESC_secControl)
1536 !insertmacro MUI_DESCRIPTION_TEXT ${secDocs} $(DESC_secDocs)
1537 !insertmacro MUI_DESCRIPTION_TEXT ${secSDK} $(DESC_secSDK)
1538 !insertmacro MUI_FUNCTION_DESCRIPTION_END
1540 ;--------------------------------
1541 ;Uninstaller Section
1544 ; Make sure the user REALLY wants to do this, unless they did a silent uninstall, in which case...let them!
1545 IfSilent StartRemove ; New in v2.0b4
1546 MessageBox MB_YESNO "Are you sure you want to remove OpenAFS from this machine?" IDYES StartRemove
1551 SetShellVarContext all
1552 ; Stop the running processes
1554 File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe"
1555 nsExec::Exec '$R0 afscreds.exe'
1556 nsExec::Exec "afscreds.exe -z"
1558 nsExec::Exec '$R0 krbcc32s.exe'
1561 ; Delete the AFS service
1563 File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
1564 nsExec::Exec "net stop TransarcAFSDaemon"
1565 nsExec::Exec "net stop TransarcAFSServer"
1566 nsExec::Exec '$R0 u TransarcAFSDaemon'
1567 ; After we stop the service, but before we delete it, we have to remove the volume data
1568 ; This is because the storage locations are in the registry under the service key.
1569 ; Call un.RemoveAFSVolumes
1570 nsExec::Exec '$R0 u TransarcAFSServer'
1573 Push "$INSTDIR\Client\Program"
1574 Call un.RemoveFromPath
1575 Push "$INSTDIR\Common"
1576 Call un.RemoveFromPath
1578 Push "$INSTDIR\kfw\bin"
1579 Call un.RemoveFromPath
1582 ; Delete documentation
1583 Delete "$INSTDIR\Documentation\README.TXT"
1584 Delete "$INSTDIR\Documentation\html\*"
1585 Delete "$INSTDIR\Documentation\html\CmdRef\*"
1586 Delete "$INSTDIR\Documentation\html\InstallGd\*"
1587 Delete "$INSTDIR\Documentation\html\ReleaseNotes\*"
1588 Delete "$INSTDIR\Documentation\html\SysAdminGd\*"
1590 Delete /REBOOTOK "$INSTDIR\Common\afs_config.exe"
1591 Delete /REBOOTOK "$INSTDIR\Common\afs_shl_ext.dll"
1592 Delete /REBOOTOK "$INSTDIR\Common\afsadminutil.dll"
1593 Delete /REBOOTOK "$INSTDIR\Common\lib\afsauthent.dll"
1594 Delete /REBOOTOK "$INSTDIR\Common\lib\afspthread.dll"
1595 Delete /REBOOTOK "$INSTDIR\Common\lib\afsrpc.dll"
1596 Delete /REBOOTOK "$INSTDIR\Common\afsclientadmin.dll"
1597 Delete /REBOOTOK "$INSTDIR\Common\afsprocmgmt.dll"
1598 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.dll"
1599 Delete /REBOOTOK "$INSTDIR\Common\TaAfsAppLib.dll"
1600 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.dll"
1601 Delete /REBOOTOK "$INSTDIR\Common\afsbosadmin.dll"
1602 Delete /REBOOTOK "$INSTDIR\Common\afscfgadmin.dll"
1603 Delete /REBOOTOK "$INSTDIR\Common\afskasadmin.dll"
1604 Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.dll"
1607 Delete /REBOOTOK "$INSTDIR\Common\afs_config.pdb"
1608 Delete /REBOOTOK "$INSTDIR\Common\afs_shl_ext.pdb"
1609 Delete /REBOOTOK "$INSTDIR\Common\afsadminutil.pdb"
1610 Delete /REBOOTOK "$INSTDIR\Common\lib\afsauthent.pdb"
1611 Delete /REBOOTOK "$INSTDIR\Common\lib\afspthread.pdb"
1612 Delete /REBOOTOK "$INSTDIR\Common\lib\afsrpc.pdb"
1613 Delete /REBOOTOK "$INSTDIR\Common\afsclientadmin.pdb"
1614 Delete /REBOOTOK "$INSTDIR\Common\afsprocmgmt.pdb"
1615 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.pdb"
1616 Delete /REBOOTOK "$INSTDIR\Common\TaAfsAppLib.pdb"
1617 Delete /REBOOTOK "$INSTDIR\Common\afsvosadmin.pdb"
1618 Delete /REBOOTOK "$INSTDIR\Common\afsbosadmin.pdb"
1619 Delete /REBOOTOK "$INSTDIR\Common\afscfgadmin.pdb"
1620 Delete /REBOOTOK "$INSTDIR\Common\afskasadmin.pdb"
1621 Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.pdb"
1624 File "${SYSTEMDIR}\msvcr71d.dll"
1625 File "${SYSTEMDIR}\msvcr71d.pdb"
1626 File "${SYSTEMDIR}\msvcp71d.dll"
1627 File "${SYSTEMDIR}\msvcp71d.pdb"
1628 File "${SYSTEMDIR}\mfc71d.dll"
1629 File "${SYSTEMDIR}\mfc71d.pdb"
1630 File "${SYSTEMDIR}\MFC71CHS.DLL"
1631 File "${SYSTEMDIR}\MFC71CHT.DLL"
1632 File "${SYSTEMDIR}\MFC71DEU.DLL"
1633 File "${SYSTEMDIR}\MFC71ENU.DLL"
1634 File "${SYSTEMDIR}\MFC71ESP.DLL"
1635 File "${SYSTEMDIR}\MFC71FRA.DLL"
1636 File "${SYSTEMDIR}\MFC71ITA.DLL"
1637 File "${SYSTEMDIR}\MFC71JPN.DLL"
1638 File "${SYSTEMDIR}\MFC71KOR.DLL"
1641 File "${SYSTEMDIR}\msvcr70d.dll"
1642 File "${SYSTEMDIR}\msvcr70d.pdb"
1643 File "${SYSTEMDIR}\msvcp70d.dll"
1644 File "${SYSTEMDIR}\msvcp70d.pdb"
1645 File "${SYSTEMDIR}\mfc70d.dll"
1646 File "${SYSTEMDIR}\mfc70d.pdb"
1647 File "${SYSTEMDIR}\MFC70CHS.DLL"
1648 File "${SYSTEMDIR}\MFC70CHT.DLL"
1649 File "${SYSTEMDIR}\MFC70DEU.DLL"
1650 File "${SYSTEMDIR}\MFC70ENU.DLL"
1651 File "${SYSTEMDIR}\MFC70ESP.DLL"
1652 File "${SYSTEMDIR}\MFC70FRA.DLL"
1653 File "${SYSTEMDIR}\MFC70ITA.DLL"
1654 File "${SYSTEMDIR}\MFC70JPN.DLL"
1655 File "${SYSTEMDIR}\MFC70KOR.DLL"
1657 File "${SYSTEMDIR}\mfc42d.dll"
1658 File "${SYSTEMDIR}\mfc42d.pdb"
1659 File "${SYSTEMDIR}\msvcp60d.dll"
1660 File "${SYSTEMDIR}\msvcp60d.pdb"
1661 File "${SYSTEMDIR}\msvcrtd.dll"
1662 File "${SYSTEMDIR}\msvcrtd.pdb"
1667 File "${SYSTEMDIR}\mfc71.dll"
1668 File "${SYSTEMDIR}\msvcr71.dll"
1669 File "${SYSTEMDIR}\msvcp71.dll"
1670 File "${SYSTEMDIR}\MFC71CHS.DLL"
1671 File "${SYSTEMDIR}\MFC71CHT.DLL"
1672 File "${SYSTEMDIR}\MFC71DEU.DLL"
1673 File "${SYSTEMDIR}\MFC71ENU.DLL"
1674 File "${SYSTEMDIR}\MFC71ESP.DLL"
1675 File "${SYSTEMDIR}\MFC71FRA.DLL"
1676 File "${SYSTEMDIR}\MFC71ITA.DLL"
1677 File "${SYSTEMDIR}\MFC71JPN.DLL"
1678 File "${SYSTEMDIR}\MFC71KOR.DLL"
1681 File "${SYSTEMDIR}\mfc70.dll"
1682 File "${SYSTEMDIR}\msvcr70.dll"
1683 File "${SYSTEMDIR}\msvcp70.dll"
1684 File "${SYSTEMDIR}\MFC70CHS.DLL"
1685 File "${SYSTEMDIR}\MFC70CHT.DLL"
1686 File "${SYSTEMDIR}\MFC70DEU.DLL"
1687 File "${SYSTEMDIR}\MFC70ENU.DLL"
1688 File "${SYSTEMDIR}\MFC70ESP.DLL"
1689 File "${SYSTEMDIR}\MFC70FRA.DLL"
1690 File "${SYSTEMDIR}\MFC70ITA.DLL"
1691 File "${SYSTEMDIR}\MFC70JPN.DLL"
1692 File "${SYSTEMDIR}\MFC70KOR.DLL"
1694 File "${SYSTEMDIR}\mfc42.dll"
1695 File "${SYSTEMDIR}\msvcp60.dll"
1696 File "${SYSTEMDIR}\msvcrt.dll"
1702 ; IfFileExists "$WINDIR\afsdcell.ini" CellExists SkipDelAsk
1704 MessageBox MB_YESNO "Would you like to keep your configuration files?" IDYES SkipDel
1706 Delete "$WINDIR\afsdcell.ini"
1708 Delete "$WINDIR\afsdsbmt.ini"
1709 ; Only remove krb5.ini if KfW was installed
1711 Delete "$WINDIR\krb5.ini"
1713 Delete "$WINDIR\afsdns.ini"
1714 Delete "$WINDIR\afs_freelance.ini"
1717 Delete "$WINDIR\afsd_init.log"
1718 Delete "$INSTDIR\Uninstall.exe"
1721 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afskill.exe"
1722 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
1723 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe"
1724 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosserver.exe"
1725 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\buserver.exe"
1726 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\butc.exe"
1727 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fileserver.exe"
1728 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fms.exe"
1729 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\kaserver.exe"
1730 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\ptserver.exe"
1731 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\salvager.exe"
1732 Delete "$INSTDIR\Server\usr\afs\bin\ServerUninst.dll"
1733 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\upclient.exe"
1734 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\upserver.exe"
1735 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\vlserver.exe"
1736 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\volinfo.exe"
1737 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\volserver.exe"
1740 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afskill.pdb"
1741 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\afssvrcfg.pdb"
1742 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosctlsvc.pdb"
1743 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\bosserver.pdb"
1744 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\buserver.pdb"
1745 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\butc.pdb"
1746 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fileserver.pdb"
1747 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\fms.pdb"
1748 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\kaserver.pdb"
1749 Delete /REBOOTOK "$INSTDIR\Server\usr\afs\bin\ptserver.pdb"
1750 Delete "$INSTDIR\Server\usr\afs\bin\salvager.pdb"
1751 Delete "$INSTDIR\Server\usr\afs\bin\ServerUninst.pdb"
1752 Delete "$INSTDIR\Server\usr\afs\bin\upclient.pdb"
1753 Delete "$INSTDIR\Server\usr\afs\bin\upserver.pdb"
1754 Delete "$INSTDIR\Server\usr\afs\bin\vlserver.pdb"
1755 Delete "$INSTDIR\Server\usr\afs\bin\volinfo.pdb"
1756 Delete "$INSTDIR\Server\usr\afs\bin\volserver.pdb"
1759 RMDir /r "$INSTDIR\Server\usr\afs\bin"
1760 RmDir /r "$INSTDIR\Server\usr\afs\etc\logs"
1761 RmDir /r "$INSTDIR\Server\usr\afs\etc"
1762 RmDir /r "$INSTDIR\Server\usr\afs\local"
1763 RMDIR /r "$INSTDIR\Server\usr\afs\logs"
1765 Delete /REBOOTOK "$SYSDIR\afsserver.cpl"
1766 Delete /REBOOTOK "$SYSDIR\afs_cpa.cpl"
1769 Delete /REBOOTOK "$SYSDIR\afsserver.pdb"
1770 Delete /REBOOTOK "$SYSDIR\afs_cpa.pdb"
1773 RMDir /r "$INSTDIR\Documentation\html\CmdRef"
1774 RMDir /r "$INSTDIR\Documentation\html\InstallGd"
1775 RMDir /r "$INSTDIR\Documentation\html\ReleaseNotes"
1776 RMDir /r "$INSTDIR\Documentation\html\SysAdminGd"
1777 RMDIr /r "$INSTDIR\Documentation\html"
1779 RMDir "$INSTDIR\Documentation"
1780 ; Delete DOC short cut
1781 Delete /REBOOTOK "$INSTDIR\Client\Program\afscreds.exe"
1784 Delete /REBOOTOK "$INSTDIR\Client\Program\afscreds.pdb"
1787 Delete /REBOOTOK "$INSTDIR\Client\Program\*"
1788 Delete /REBOOTOK "$INSTDIR\Client\Program\Include\*"
1789 Delete /REBOOTOK "$INSTDIR\Client\Program\Include\afs\*"
1790 Delete /REBOOTOK "$INSTDIR\Client\Program\Include\rx\*"
1791 Delete /REBOOTOK "$INSTDIR\Client\Program\Sample\*"
1792 RMDir "$INSTDIR\Client\Program\Sample"
1793 RMDir "$INSTDIR\Client\Program\Include\afs"
1794 RMDir "$INSTDIR\Client\Program\Include\rx"
1795 RMDir "$INSTDIR\Client\Program\Include"
1796 RMDir "$INSTDIR\Client\Program"
1797 RMDir "$INSTDIR\Client"
1801 File "${SYSTEMDIR}\msvcr71d.dll"
1802 File "${SYSTEMDIR}\msvcr71d.pdb"
1803 File "${SYSTEMDIR}\msvcp71d.dll"
1804 File "${SYSTEMDIR}\msvcp71d.pdb"
1805 File "${SYSTEMDIR}\mfc71d.dll"
1806 File "${SYSTEMDIR}\mfc71d.pdb"
1807 File "${SYSTEMDIR}\MFC71CHS.DLL"
1808 File "${SYSTEMDIR}\MFC71CHT.DLL"
1809 File "${SYSTEMDIR}\MFC71DEU.DLL"
1810 File "${SYSTEMDIR}\MFC71ENU.DLL"
1811 File "${SYSTEMDIR}\MFC71ESP.DLL"
1812 File "${SYSTEMDIR}\MFC71FRA.DLL"
1813 File "${SYSTEMDIR}\MFC71ITA.DLL"
1814 File "${SYSTEMDIR}\MFC71JPN.DLL"
1815 File "${SYSTEMDIR}\MFC71KOR.DLL"
1818 File "${SYSTEMDIR}\msvcr70d.dll"
1819 File "${SYSTEMDIR}\msvcr70d.pdb"
1820 File "${SYSTEMDIR}\msvcp70d.dll"
1821 File "${SYSTEMDIR}\msvcp70d.pdb"
1822 File "${SYSTEMDIR}\mfc70d.dll"
1823 File "${SYSTEMDIR}\mfc70d.pdb"
1824 File "${SYSTEMDIR}\MFC70CHS.DLL"
1825 File "${SYSTEMDIR}\MFC70CHT.DLL"
1826 File "${SYSTEMDIR}\MFC70DEU.DLL"
1827 File "${SYSTEMDIR}\MFC70ENU.DLL"
1828 File "${SYSTEMDIR}\MFC70ESP.DLL"
1829 File "${SYSTEMDIR}\MFC70FRA.DLL"
1830 File "${SYSTEMDIR}\MFC70ITA.DLL"
1831 File "${SYSTEMDIR}\MFC70JPN.DLL"
1832 File "${SYSTEMDIR}\MFC70KOR.DLL"
1834 File "${SYSTEMDIR}\mfc42d.dll"
1835 File "${SYSTEMDIR}\mfc42d.pdb"
1836 File "${SYSTEMDIR}\msvcp60d.dll"
1837 File "${SYSTEMDIR}\msvcp60d.pdb"
1838 File "${SYSTEMDIR}\msvcrtd.dll"
1839 File "${SYSTEMDIR}\msvcrtd.pdb"
1844 File "${SYSTEMDIR}\mfc71.dll"
1845 File "${SYSTEMDIR}\msvcr71.dll"
1846 File "${SYSTEMDIR}\msvcp71.dll"
1847 File "${SYSTEMDIR}\MFC71CHS.DLL"
1848 File "${SYSTEMDIR}\MFC71CHT.DLL"
1849 File "${SYSTEMDIR}\MFC71DEU.DLL"
1850 File "${SYSTEMDIR}\MFC71ENU.DLL"
1851 File "${SYSTEMDIR}\MFC71ESP.DLL"
1852 File "${SYSTEMDIR}\MFC71FRA.DLL"
1853 File "${SYSTEMDIR}\MFC71ITA.DLL"
1854 File "${SYSTEMDIR}\MFC71JPN.DLL"
1855 File "${SYSTEMDIR}\MFC71KOR.DLL"
1858 File "${SYSTEMDIR}\mfc70.dll"
1859 File "${SYSTEMDIR}\msvcr70.dll"
1860 File "${SYSTEMDIR}\msvcp70.dll"
1861 File "${SYSTEMDIR}\MFC70CHS.DLL"
1862 File "${SYSTEMDIR}\MFC70CHT.DLL"
1863 File "${SYSTEMDIR}\MFC70DEU.DLL"
1864 File "${SYSTEMDIR}\MFC70ENU.DLL"
1865 File "${SYSTEMDIR}\MFC70ESP.DLL"
1866 File "${SYSTEMDIR}\MFC70FRA.DLL"
1867 File "${SYSTEMDIR}\MFC70ITA.DLL"
1868 File "${SYSTEMDIR}\MFC70JPN.DLL"
1869 File "${SYSTEMDIR}\MFC70KOR.DLL"
1871 File "${SYSTEMDIR}\mfc42.dll"
1872 File "${SYSTEMDIR}\msvcp60.dll"
1873 File "${SYSTEMDIR}\msvcrt.dll"
1877 Delete /REBOOTOK "$INSTDIR\Common\*"
1878 RMDir "$INSTDIR\Common"
1882 Delete /REBOOTOK "$INSTDIR\kfw\bin\*"
1883 RMDIR /r "$INSTDIR\kfw\bin"
1884 Delete /REBOOTOK "$INSTDIR\kfw\doc\*"
1885 RMDIR /r "$INSTDIR\kfw\doc"
1886 RMDIR /r "$INSTDIR\kfw"
1889 Delete "$SMPROGRAMS\OpenAFS\Documentation.lnk"
1891 ; Remove control center
1892 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAccountManager.exe"
1893 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAdmSvr.exe"
1894 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsServerManager.exe"
1895 Delete /REBOOTOK "$INSTDIR\Control Center\CCUninst.dll"
1897 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAccountManager.pdb"
1898 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsAdmSvr.pdb"
1899 Delete /REBOOTOK "$INSTDIR\Control Center\TaAfsServerManager.pdb"
1901 RMDir "$INSTDIR\Control Center"
1903 Delete "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk"
1904 Delete "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk"
1905 Delete "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk"
1906 Delete "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk"
1907 RMDIR "$SMPROGRAMS\OpenAFS\Control Center"
1908 RMDir /r "$SMPROGRAMS\OpenAFS\Client"
1909 RMDir /r "$SMPROGRAMS\OpenAFS"
1910 Delete "$SMSTARTUP\AFS Credentials.lnk"
1912 ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "CachePath"
1914 Delete "$R0\AFSCache"
1915 Delete "C:\AFSCache"
1917 DeleteRegKey HKCR "*\shellex\ContextMenuHandlers\AFS Client Shell Extension"
1918 DeleteRegKey HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32"
1919 DeleteRegKey HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
1920 DeleteRegKey HKCR "FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension"
1921 DeleteRegValue HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
1923 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
1924 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client"
1925 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion"
1926 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation"
1927 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion"
1928 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center"
1929 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
1930 DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server"
1931 DeleteRegKey /ifempty HKLM "${AFS_REGKEY_ROOT}"
1932 DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS"
1933 DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled"
1939 ;--------------------------------
1940 ;Uninstaller Functions
1944 ;Get language from registry
1945 ReadRegStr $LANGUAGE HKCU "Software\OpenAFS\AFS" "Installer Language"
1949 Function un.onUninstSuccess
1951 MessageBox MB_OK "Please reboot your machine to complete uninstallation of the software"
1955 ;------------------------------
1956 ; Get the CellServDB file from the Internet
1958 Function afs.GetCellServDB
1960 ;Check if we should download CellServDB
1961 ReadINIStr $R0 $0 "Field 4" "State"
1962 StrCmp $R0 "1" DoDownload
1964 ;Do nothing if we're keeping the existing file
1965 ReadINIStr $R0 $0 "Field 2" "State"
1968 ReadINIStr $R0 $0 "Field 3" "State"
1969 StrCmp $R0 "1" UsePackaged
1971 ; If none of these, grab file from other location
1975 ReadINIStr $R0 $0 "Field 5" "State"
1976 NSISdl::download $R0 "$WINDIR\afsdcell.ini"
1977 Pop $R0 ;Get the return value
1978 StrCmp $R0 "success" +2
1979 MessageBox MB_OK|MB_ICONSTOP "Download failed: $R0"
1983 SetOutPath "$WINDIR"
1988 ReadINIStr $R0 $0 "Field 7" "State"
1989 StrCmp $R0 "1" +1 done
1990 CopyFiles $R0 "$WINDIR\afsdcell.ini"
1998 ;-------------------------------
1999 ;Do the page to get the CellServDB
2001 Function AFSPageGetCellServDB
2002 ; Skip this page if we are not installing the client
2003 SectionGetFlags ${secClient} $R0
2004 IntOp $R0 $R0 & ${SF_SELECTED}
2007 ; Set the install options here
2010 WriteINIStr $0 "Field 2" "Flags" "DISABLED"
2011 WriteINIStr $0 "Field 3" "State" "1"
2012 WriteINISTR $0 "Field 4" "State" "0"
2013 WriteINIStr $0 "Field 6" "State" "0"
2015 ; If there is an existing afsdcell.ini file, allow the user to choose it and make it default
2016 IfFileExists "$WINDIR\afsdcell.ini" +1 notpresent
2017 WriteINIStr $0 "Field 2" "Flags" "ENABLED"
2018 WriteINIStr $0 "Field 2" "State" "1"
2019 WriteINIStr $0 "Field 3" "State" "0"
2023 !insertmacro MUI_HEADER_TEXT "CellServDB Configuration" "Please choose a method for installing the CellServDB file:"
2024 InstallOptions::dialog $0
2026 StrCmp $R1 "cancel" exit
2027 StrCmp $R1 "back" done
2028 StrCmp $R1 "success" done
2032 ; Check that if a file is set, a valid filename is entered...
2033 ReadINIStr $R0 $0 "Field 6" "State"
2034 StrCmp $R0 "1" CheckFileName
2036 ;Check if a URL is specified, one *IS* specified
2037 ReadINIStr $R0 $0 "Field 4" "State"
2038 StrCmp $R0 "1" CheckURL Skip
2041 ReadINIStr $R0 $0 "Field 5" "State"
2042 StrCmp $R0 "" +1 Skip
2043 MessageBox MB_OK|MB_ICONSTOP $(URLError)
2044 WriteINIStr $0 "Field 4" "State" "0"
2048 ReadINIStr $R0 $0 "Field 7" "State"
2049 IfFileExists $R0 Skip
2051 MessageBox MB_OK|MB_ICONSTOP $(CellError)
2052 WriteINIStr $0 "Field 6" "State" "0"
2060 Function AFSPageGetCellName
2062 ; Skip this page if we are not installing the client
2063 SectionGetFlags ${secClient} $R0
2064 IntOp $R0 $R0 & ${SF_SELECTED}
2068 ; If this is a server install, we do NOT want to recommend the Freelance client
2069 ; And we do not need to ask for the cell name.
2070 SectionGetFlags ${secServer} $R1
2071 IntOp $R1 $R1 & ${SF_SELECTED}
2072 StrCmp $R1 "1" +1 NotServer
2073 WriteINIStr $1 "Field 6" "Text" "Enable AFS Freelance client (Not Recommended for servers)"
2074 WriteINIStr $1 "Field 5" "State" "0"
2075 WriteINIStr $1 "Field 1" "Flags" "DISABLED"
2076 WriteINIStr $1 "Field 2" "Flags" "DISABLED"
2079 WriteINIStr $1 "Field 6" "Text" "Enable AFS Freelance client (Recommended)"
2080 WriteINIStr $1 "Field 5" "State" "1"
2081 WriteINIStr $1 "Field 1" "Flags" ""
2082 WriteINIStr $1 "Field 2" "Flags" ""
2084 ; Get the current cell name, if any
2085 ReadRegStr $R1 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell"
2087 WriteINIStr $1 "Field 2" "State" $R1
2088 !insertmacro MUI_HEADER_TEXT "Client Cell Name Configuration" "Please enter the name for your default cell:"
2089 InstallOptions::dialog $1
2091 StrCmp $R1 "cancel" exit
2092 StrCmp $R1 "back" done
2093 StrCmp $R1 "success" done
2096 ReadINIStr $R0 $1 "Field 2" "State"
2097 StrCmp $R0 "" +1 good
2099 MessageBox MB_OK|MB_ICONSTOP $(CellNameError)
2105 ; Common install routines for each module
2106 Function AFSCommon.Install
2108 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayName" "OpenAFS for Windows"
2109 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "UninstallString" "$INSTDIR\uninstall.exe"
2111 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayVersion" "${AFS_VERSION}"
2113 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayVersion" "${AFS_VERSION} Checked/Debug"
2115 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "URLInfoAbout" "http://www.openafs.org/"
2120 ;-------------------
2121 ; Get the currently installed version and place it on the stack
2123 Function GetInstalledVersion
2128 ReadRegStr $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "VersionString"
2129 StrCmp $R0 "" NotTransarc done
2133 ReadRegStr $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "VersionString"
2142 ; Functions to get each component of the version number
2143 Function GetInstalledVersionMajor
2148 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "MajorVersion"
2149 StrCmp $R0 "" NotTransarc done
2153 ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "MajorVersion"
2162 Function GetInstalledVersionMinor
2167 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "MinorVersion"
2168 StrCmp $R0 "" NotTransarc done
2172 ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "MinorVersion"
2181 Function GetInstalledVersionPatch
2186 ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "PatchLevel"
2187 StrCmp $R0 "" NotTransarc done
2191 ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "PatchLevel"
2202 ;-------------------------------
2203 ; Check if the client should be checked for default install
2204 Function ShouldClientInstall
2206 StrCpy $R2 "AFS Client"
2207 Call GetInstalledVersion
2210 StrCmp $R0 "" NotInstalled
2211 ; Now we see if it's an older or newer version
2213 Call GetInstalledVersionMajor
2215 IntCmpU $R0 ${AFS_MAJORVERSION} +1 Upgrade Downgrade
2217 Call GetInstalledVersionMinor
2219 IntCmpU $R0 ${AFS_MINORVERSION} +1 Upgrade Downgrade
2221 Call GetInstalledVersionPatch
2223 IntCmpU $R0 ${AFS_PATCHLEVEL} Reinstall Upgrade Downgrade
2247 ;-------------------------------
2248 ; Check how the server options should be set
2249 Function ShouldServerInstall
2251 StrCpy $R2 "AFS Server"
2252 Call GetInstalledVersion
2255 StrCmp $R0 "" NotInstalled
2256 ; Now we see if it's an older or newer version
2258 Call GetInstalledVersionMajor
2260 IntCmpU $R0 ${AFS_MAJORVERSION} +1 Upgrade Downgrade
2262 Call GetInstalledVersionMinor
2264 IntCmpU $R0 ${AFS_MINORVERSION} +1 Upgrade Downgrade
2266 Call GetInstalledVersionPatch
2268 IntCmpU $R0 ${AFS_PATCHLEVEL} Reinstall Upgrade Downgrade
2293 ; See if AFS Server is installed
2294 ; Returns: "1" if it is, 0 if it is not (on the stack)
2295 Function IsServerInstalled
2297 StrCpy $R2 "AFS Server"
2298 Call GetInstalledVersion
2301 StrCmp $R0 "" NotInstalled
2314 ; See if AFS Client is installed
2315 ; Returns: "1" if it is, 0 if it is not (on the stack)
2316 Function IsClientInstalled
2318 StrCpy $R2 "AFS Client"
2319 Call GetInstalledVersion
2322 StrCmp $R0 "" NotInstalled
2336 ; See if AFS Documentation is installed
2337 ; Returns: "1" if it is, 0 if it is not (on the stack)
2338 Function IsDocumentationInstalled
2340 StrCpy $R2 "AFS Supplemental Documentation"
2341 Call GetInstalledVersion
2344 StrCmp $R0 "" NotInstalled
2357 ; See if Control Center is installed
2358 ; Returns: "1" if it is, 0 if it is not (on the stack)
2359 Function IsControlInstalled
2361 StrCpy $R2 "AFS Control Center"
2362 Call GetInstalledVersion
2365 StrCmp $R0 "" NotInstalled
2380 ; output, top of stack (replaces, with e.g. whatever)
2381 ; modifies no other variables.
2383 Function GetParameters
2387 StrCpy $R0 $CMDLINE 1
2391 StrCpy $R1 ' ' ; we're scanning for a space instead of a quote
2393 StrCpy $R0 $CMDLINE 1 $R2
2394 StrCmp $R0 $R1 loop2
2400 StrCpy $R0 $CMDLINE 1 $R2
2401 StrCmp $R0 " " loop2
2402 StrCpy $R0 $CMDLINE "" $R2
2409 ;Check to see if any AFS component is installed
2410 ;Returns: Value on stack: "1" if it is, "0" if it is not
2411 Function IsAnyAFSInstalled
2416 Call IsClientInstalled
2418 Call IsServerInstalled
2420 Call IsControlInstalled
2422 Call IsDocumentationInstalled
2424 ; Now we must see if ANY of the $Rn values are 1
2425 StrCmp $R0 "1" SomethingInstalled
2426 StrCmp $R1 "1" SomethingInstalled
2427 StrCmp $R2 "1" SomethingInstalled
2428 StrCmp $R3 "1" SomethingInstalled
2442 ;Install English Language Files
2443 Function AFSLangFiles
2445 SetOutPath "$INSTDIR\Common"
2446 File "${AFS_CLIENT_BUILDDIR}\afs_config.exe"
2447 File "${AFS_SERVER_BUILDDIR}\afsadminutil.dll"
2448 !insertmacro UpgradeDLL "${AFS_DESTDIR}\lib\afsauthent.dll" "$INSTDIR\Common\afsauthent.dll" "$INSTDIR"
2449 !insertmacro UpgradeDLL "${AFS_DESTDIR}\lib\afspthread.dll" "$INSTDIR\Common\afspthread.dll" "$INSTDIR"
2450 !insertmacro UpgradeDLL "${AFS_DESTDIR}\lib\afsrpc.dll" "$INSTDIR\Common\afsrpc.dll" "$INSTDIR"
2451 File "${AFS_SERVER_BUILDDIR}\afsclientadmin.dll"
2452 File "${AFS_SERVER_BUILDDIR}\afsprocmgmt.dll"
2453 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
2454 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib.dll"
2455 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
2456 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
2457 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
2458 File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
2459 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
2463 File "${SYSTEMDIR}\msvcr71d.dll"
2464 File "${SYSTEMDIR}\msvcr71d.pdb"
2465 File "${SYSTEMDIR}\msvcp71d.dll"
2466 File "${SYSTEMDIR}\msvcp71d.pdb"
2467 File "${SYSTEMDIR}\mfc71d.dll"
2468 File "${SYSTEMDIR}\mfc71d.pdb"
2469 File "${SYSTEMDIR}\MFC71CHS.DLL"
2470 File "${SYSTEMDIR}\MFC71CHT.DLL"
2471 File "${SYSTEMDIR}\MFC71DEU.DLL"
2472 File "${SYSTEMDIR}\MFC71ENU.DLL"
2473 File "${SYSTEMDIR}\MFC71ESP.DLL"
2474 File "${SYSTEMDIR}\MFC71FRA.DLL"
2475 File "${SYSTEMDIR}\MFC71ITA.DLL"
2476 File "${SYSTEMDIR}\MFC71JPN.DLL"
2477 File "${SYSTEMDIR}\MFC71KOR.DLL"
2480 File "${SYSTEMDIR}\msvcr70d.dll"
2481 File "${SYSTEMDIR}\msvcr70d.pdb"
2482 File "${SYSTEMDIR}\msvcp70d.dll"
2483 File "${SYSTEMDIR}\msvcp70d.pdb"
2484 File "${SYSTEMDIR}\mfc70d.dll"
2485 File "${SYSTEMDIR}\mfc70d.pdb"
2486 File "${SYSTEMDIR}\MFC70CHS.DLL"
2487 File "${SYSTEMDIR}\MFC70CHT.DLL"
2488 File "${SYSTEMDIR}\MFC70DEU.DLL"
2489 File "${SYSTEMDIR}\MFC70ENU.DLL"
2490 File "${SYSTEMDIR}\MFC70ESP.DLL"
2491 File "${SYSTEMDIR}\MFC70FRA.DLL"
2492 File "${SYSTEMDIR}\MFC70ITA.DLL"
2493 File "${SYSTEMDIR}\MFC70JPN.DLL"
2494 File "${SYSTEMDIR}\MFC70KOR.DLL"
2496 File "${SYSTEMDIR}\mfc42d.dll"
2497 File "${SYSTEMDIR}\mfc42d.pdb"
2498 File "${SYSTEMDIR}\msvcp60d.dll"
2499 File "${SYSTEMDIR}\msvcp60d.pdb"
2500 File "${SYSTEMDIR}\msvcrtd.dll"
2501 File "${SYSTEMDIR}\msvcrtd.pdb"
2506 File "${SYSTEMDIR}\mfc71.dll"
2507 File "${SYSTEMDIR}\msvcr71.dll"
2508 File "${SYSTEMDIR}\msvcp71.dll"
2509 File "${SYSTEMDIR}\MFC71CHS.DLL"
2510 File "${SYSTEMDIR}\MFC71CHT.DLL"
2511 File "${SYSTEMDIR}\MFC71DEU.DLL"
2512 File "${SYSTEMDIR}\MFC71ENU.DLL"
2513 File "${SYSTEMDIR}\MFC71ESP.DLL"
2514 File "${SYSTEMDIR}\MFC71FRA.DLL"
2515 File "${SYSTEMDIR}\MFC71ITA.DLL"
2516 File "${SYSTEMDIR}\MFC71JPN.DLL"
2517 File "${SYSTEMDIR}\MFC71KOR.DLL"
2520 File "${SYSTEMDIR}\mfc70.dll"
2521 File "${SYSTEMDIR}\msvcr70.dll"
2522 File "${SYSTEMDIR}\msvcp70.dll"
2523 File "${SYSTEMDIR}\MFC70CHS.DLL"
2524 File "${SYSTEMDIR}\MFC70CHT.DLL"
2525 File "${SYSTEMDIR}\MFC70DEU.DLL"
2526 File "${SYSTEMDIR}\MFC70ENU.DLL"
2527 File "${SYSTEMDIR}\MFC70ESP.DLL"
2528 File "${SYSTEMDIR}\MFC70FRA.DLL"
2529 File "${SYSTEMDIR}\MFC70ITA.DLL"
2530 File "${SYSTEMDIR}\MFC70JPN.DLL"
2531 File "${SYSTEMDIR}\MFC70KOR.DLL"
2533 File "${SYSTEMDIR}\mfc42.dll"
2534 File "${SYSTEMDIR}\msvcp60.dll"
2535 File "${SYSTEMDIR}\msvcrt.dll"
2541 File "${AFS_CLIENT_BUILDDIR}\afs_config.pdb"
2542 File "${AFS_SERVER_BUILDDIR}\afsadminutil.pdb"
2543 File "${AFS_DESTDIR}\lib\afsauthent.pdb"
2544 File "${AFS_DESTDIR}\lib\afspthread.pdb"
2545 File "${AFS_DESTDIR}\lib\afsrpc.pdb"
2546 File "${AFS_SERVER_BUILDDIR}\afsclientadmin.pdb"
2547 File "${AFS_SERVER_BUILDDIR}\afsprocmgmt.pdb"
2548 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.pdb"
2549 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib.pdb"
2550 File "${AFS_SERVER_BUILDDIR}\afsvosadmin.pdb"
2551 File "${AFS_SERVER_BUILDDIR}\afsbosadmin.pdb"
2552 File "${AFS_SERVER_BUILDDIR}\afscfgadmin.pdb"
2553 File "${AFS_SERVER_BUILDDIR}\afskasadmin.pdb"
2554 File "${AFS_SERVER_BUILDDIR}\afsptsadmin.pdb"
2557 StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
2558 StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
2559 StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
2560 StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
2561 StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
2562 StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
2563 StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
2564 StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
2568 SetOutPath "$INSTDIR\Documentation"
2569 File "..\..\doc\install\Documentation\en_US\README.TXT"
2571 SetOutPath "$INSTDIR\Client\Program"
2572 File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.dll"
2573 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.dll" "$INSTDIR\Client\Program\afs_shl_ext_1033.dll" "$INSTDIR"
2575 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.pdb"
2576 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.pdb"
2579 SetOutPath "$INSTDIR\Common"
2580 File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.dll"
2581 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.dll"
2582 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.dll"
2583 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1033.dll"
2584 File "${AFS_SERVER_BUILDDIR}\afsserver_1033.dll"
2585 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.dll"
2586 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.dll"
2587 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.dll"
2588 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.dll"
2589 File "..\..\doc\help\en_US\afs-cc.CNT"
2590 File "..\..\doc\help\en_US\afs-cc.hlp"
2591 File "..\..\doc\help\en_US\afs-light.CNT"
2592 File "..\..\doc\help\en_US\afs-light.hlp"
2593 File "..\..\doc\help\en_US\afs-nt.CNT"
2594 File "..\..\doc\help\en_US\afs-nt.HLP"
2595 File "..\..\doc\help\en_US\taafscfg.CNT"
2596 File "..\..\doc\help\en_US\taafscfg.hlp"
2597 File "..\..\doc\help\en_US\taafssvrmgr.CNT"
2598 File "..\..\doc\help\en_US\taafssvrmgr.hlp"
2599 File "..\..\doc\help\en_US\taafsusrmgr.CNT"
2600 File "..\..\doc\help\en_US\taafsusrmgr.hlp"
2603 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.pdb"
2604 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.pdb"
2605 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.pdb"
2606 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1033.pdb"
2607 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.pdb"
2608 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.pdb"
2609 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.pdb"
2610 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.pdb"
2616 SetOutPath "$INSTDIR\Documentation"
2617 File "..\..\doc\install\Documentation\de_DE\README.TXT"
2619 SetOutPath "$INSTDIR\Client\Program"
2620 File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.dll"
2621 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.dll" "$INSTDIR\Client\Program\afs_shl_ext_1032.dll" "$INSTDIR"
2623 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.pdb"
2624 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.pdb"
2627 SetOutPath "$INSTDIR\Common"
2628 File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.dll"
2629 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.dll"
2630 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.dll"
2631 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1032.dll"
2632 File "${AFS_SERVER_BUILDDIR}\afsserver_1032.dll"
2633 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.dll"
2634 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.dll"
2635 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.dll"
2636 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.dll"
2637 File "..\..\doc\help\de_DE\afs-cc.CNT"
2638 File "..\..\doc\help\de_DE\afs-cc.hlp"
2639 File "..\..\doc\help\de_DE\afs-light.CNT"
2640 File "..\..\doc\help\de_DE\afs-light.hlp"
2641 File "..\..\doc\help\de_DE\afs-nt.CNT"
2642 File "..\..\doc\help\de_DE\afs-nt.HLP"
2643 File "..\..\doc\help\de_DE\taafscfg.CNT"
2644 File "..\..\doc\help\de_DE\taafscfg.hlp"
2645 File "..\..\doc\help\de_DE\taafssvrmgr.CNT"
2646 File "..\..\doc\help\de_DE\taafssvrmgr.hlp"
2647 File "..\..\doc\help\de_DE\taafsusrmgr.CNT"
2648 File "..\..\doc\help\de_DE\taafsusrmgr.hlp"
2651 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.pdb"
2652 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.pdb"
2653 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.pdb"
2654 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1032.pdb"
2655 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.pdb"
2656 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.pdb"
2657 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.pdb"
2658 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.pdb"
2664 SetOutPath "$INSTDIR\Documentation"
2665 File "..\..\doc\install\Documentation\es_ES\README.TXT"
2667 SetOutPath "$INSTDIR\Client\Program"
2668 File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.dll"
2669 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.dll" "$INSTDIR\Client\Program\afs_shl_ext_1034.dll" "$INSTDIR"
2671 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.pdb"
2672 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.pdb"
2675 SetOutPath "$INSTDIR\Common"
2676 File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.dll"
2677 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.dll"
2678 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.dll"
2679 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1034.dll"
2680 File "${AFS_SERVER_BUILDDIR}\afsserver_1034.dll"
2681 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.dll"
2682 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.dll"
2683 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.dll"
2684 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.dll"
2685 File "..\..\doc\help\es_ES\afs-cc.CNT"
2686 File "..\..\doc\help\es_ES\afs-cc.hlp"
2687 File "..\..\doc\help\es_ES\afs-light.CNT"
2688 File "..\..\doc\help\es_ES\afs-light.hlp"
2689 File "..\..\doc\help\es_ES\afs-nt.CNT"
2690 File "..\..\doc\help\es_ES\afs-nt.HLP"
2691 File "..\..\doc\help\es_ES\taafscfg.CNT"
2692 File "..\..\doc\help\es_ES\taafscfg.hlp"
2693 File "..\..\doc\help\es_ES\taafssvrmgr.CNT"
2694 File "..\..\doc\help\es_ES\taafssvrmgr.hlp"
2695 File "..\..\doc\help\es_ES\taafsusrmgr.CNT"
2696 File "..\..\doc\help\es_ES\taafsusrmgr.hlp"
2699 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.pdb"
2700 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.pdb"
2701 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.pdb"
2702 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1034.pdb"
2703 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.pdb"
2704 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.pdb"
2705 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.pdb"
2706 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.pdb"
2712 SetOutPath "$INSTDIR\Documentation"
2713 File "..\..\doc\install\Documentation\ja_JP\README.TXT"
2715 SetOutPath "$INSTDIR\Client\Program"
2716 File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.dll"
2717 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.dll" "$INSTDIR\Client\Program\afs_shl_ext_1041.dll" "$INSTDIR"
2719 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.pdb"
2720 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.pdb"
2723 SetOutPath "$INSTDIR\Common"
2724 File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.dll"
2725 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.dll"
2726 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.dll"
2727 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1041.dll"
2728 File "${AFS_SERVER_BUILDDIR}\afsserver_1041.dll"
2729 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.dll"
2730 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.dll"
2731 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.dll"
2732 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.dll"
2733 File "..\..\doc\help\ja_JP\afs-cc.CNT"
2734 File "..\..\doc\help\ja_JP\afs-cc.hlp"
2735 File "..\..\doc\help\ja_JP\afs-light.CNT"
2736 File "..\..\doc\help\ja_JP\afs-light.hlp"
2737 File "..\..\doc\help\ja_JP\afs-nt.CNT"
2738 File "..\..\doc\help\ja_JP\afs-nt.HLP"
2739 File "..\..\doc\help\ja_JP\taafscfg.CNT"
2740 File "..\..\doc\help\ja_JP\taafscfg.hlp"
2741 File "..\..\doc\help\ja_JP\taafssvrmgr.CNT"
2742 File "..\..\doc\help\ja_JP\taafssvrmgr.hlp"
2743 File "..\..\doc\help\ja_JP\taafsusrmgr.CNT"
2744 File "..\..\doc\help\ja_JP\taafsusrmgr.hlp"
2747 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.pdb"
2748 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.pdb"
2749 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.pdb"
2750 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1041.pdb"
2751 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.pdb"
2752 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.pdb"
2753 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.pdb"
2754 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.pdb"
2760 SetOutPath "$INSTDIR\Documentation"
2761 File "..\..\doc\install\Documentation\ko_KR\README.TXT"
2763 SetOutPath "$INSTDIR\Client\Program"
2764 File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.dll"
2765 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.dll" "$INSTDIR\Client\Program\afs_shl_ext_1042.dll" "$INSTDIR"
2767 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.pdb"
2768 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.pdb"
2771 SetOutPath "$INSTDIR\Common"
2772 File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.dll"
2773 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.dll"
2774 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.dll"
2775 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1042.dll"
2776 File "${AFS_SERVER_BUILDDIR}\afsserver_1042.dll"
2777 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.dll"
2778 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.dll"
2779 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.dll"
2780 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.dll"
2781 File "..\..\doc\help\ko_KR\afs-cc.CNT"
2782 File "..\..\doc\help\ko_KR\afs-cc.hlp"
2783 File "..\..\doc\help\ko_KR\afs-light.CNT"
2784 File "..\..\doc\help\ko_KR\afs-light.hlp"
2785 File "..\..\doc\help\ko_KR\afs-nt.CNT"
2786 File "..\..\doc\help\ko_KR\afs-nt.HLP"
2787 File "..\..\doc\help\ko_KR\taafscfg.CNT"
2788 File "..\..\doc\help\ko_KR\taafscfg.hlp"
2789 File "..\..\doc\help\ko_KR\taafssvrmgr.CNT"
2790 File "..\..\doc\help\ko_KR\taafssvrmgr.hlp"
2791 File "..\..\doc\help\ko_KR\taafsusrmgr.CNT"
2792 File "..\..\doc\help\ko_KR\taafsusrmgr.hlp"
2795 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.pdb"
2796 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.pdb"
2797 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.pdb"
2798 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1042.pdb"
2799 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.pdb"
2800 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.pdb"
2801 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.pdb"
2802 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.pdb"
2809 SetOutPath "$INSTDIR\Documentation"
2810 File "..\..\doc\install\Documentation\pt_BR\README.TXT"
2812 SetOutPath "$INSTDIR\Client\Program"
2813 File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.dll"
2814 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.dll" "$INSTDIR\Client\Program\afs_shl_ext_1046.dll" "$INSTDIR"
2816 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.pdb"
2817 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.pdb"
2820 SetOutPath "$INSTDIR\Common"
2821 File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.dll"
2822 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.dll"
2823 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.dll"
2824 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1046.dll"
2825 File "${AFS_SERVER_BUILDDIR}\afsserver_1046.dll"
2826 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.dll"
2827 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.dll"
2828 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.dll"
2829 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.dll"
2830 File "..\..\doc\help\pt_BR\afs-cc.CNT"
2831 File "..\..\doc\help\pt_BR\afs-cc.hlp"
2832 File "..\..\doc\help\pt_BR\afs-light.CNT"
2833 File "..\..\doc\help\pt_BR\afs-light.hlp"
2834 File "..\..\doc\help\pt_BR\afs-nt.CNT"
2835 File "..\..\doc\help\pt_BR\afs-nt.HLP"
2836 File "..\..\doc\help\pt_BR\taafscfg.CNT"
2837 File "..\..\doc\help\pt_BR\taafscfg.hlp"
2838 File "..\..\doc\help\pt_BR\taafssvrmgr.CNT"
2839 File "..\..\doc\help\pt_BR\taafssvrmgr.hlp"
2840 File "..\..\doc\help\pt_BR\taafsusrmgr.CNT"
2841 File "..\..\doc\help\pt_BR\taafsusrmgr.hlp"
2844 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.pdb"
2845 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.pdb"
2846 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.pdb"
2847 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1046.pdb"
2848 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.pdb"
2849 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.pdb"
2850 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.pdb"
2851 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.pdb"
2857 SetOutPath "$INSTDIR\Documentation"
2858 File "..\..\doc\install\Documentation\zh_CN\README.TXT"
2860 SetOutPath "$INSTDIR\Client\Program"
2861 File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.dll"
2862 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.dll" "$INSTDIR\Client\Program\afs_shl_ext_2052.dll" "$INSTDIR"
2864 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.pdb"
2865 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.pdb"
2868 SetOutPath "$INSTDIR\Common"
2869 File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.dll"
2870 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.dll"
2871 File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.dll"
2872 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_2052.dll"
2873 File "${AFS_SERVER_BUILDDIR}\afsserver_2052.dll"
2874 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.dll"
2875 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.dll"
2876 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.dll"
2877 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.dll"
2878 File "..\..\doc\help\zh_CN\afs-cc.CNT"
2879 File "..\..\doc\help\zh_CN\afs-cc.hlp"
2880 File "..\..\doc\help\zh_CN\afs-light.CNT"
2881 File "..\..\doc\help\zh_CN\afs-light.hlp"
2882 File "..\..\doc\help\zh_CN\afs-nt.CNT"
2883 File "..\..\doc\help\zh_CN\afs-nt.HLP"
2884 File "..\..\doc\help\zh_CN\taafscfg.CNT"
2885 File "..\..\doc\help\zh_CN\taafscfg.hlp"
2886 File "..\..\doc\help\zh_CN\taafssvrmgr.CNT"
2887 File "..\..\doc\help\zh_CN\taafssvrmgr.hlp"
2888 File "..\..\doc\help\zh_CN\taafsusrmgr.CNT"
2889 File "..\..\doc\help\zh_CN\taafsusrmgr.hlp"
2892 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.pdb"
2893 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.pdb"
2894 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.pdb"
2895 ;File "${AFS_SERVER_BUILDDIR}\afsserver_2052.pdb"
2896 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.pdb"
2897 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.pdb"
2898 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.pdb"
2899 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.pdb"
2905 SetOutPath "$INSTDIR\Documentation"
2906 File "..\..\doc\install\Documentation\zh_TW\README.TXT"
2908 SetOutPath "$INSTDIR\Client\Program"
2909 File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.dll"
2910 !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.dll" "$INSTDIR\Client\Program\afs_shl_ext_1028.dll" "$INSTDIR"
2912 ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.pdb"
2913 ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.pdb"
2916 SetOutPath "$INSTDIR\Common"
2917 File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.dll"
2918 File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.dll"
2919 File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.dll"
2920 ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1028.dll"
2921 File "${AFS_SERVER_BUILDDIR}\afsserver_1028.dll"
2922 File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.dll"
2923 File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.dll"
2924 File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.dll"
2925 File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.dll"
2926 File "..\..\doc\help\zh_TW\afs-cc.CNT"
2927 File "..\..\doc\help\zh_TW\afs-cc.hlp"
2928 File "..\..\doc\help\zh_TW\afs-light.CNT"
2929 File "..\..\doc\help\zh_TW\afs-light.hlp"
2930 File "..\..\doc\help\zh_TW\afs-nt.CNT"
2931 File "..\..\doc\help\zh_TW\afs-nt.HLP"
2932 File "..\..\doc\help\zh_TW\taafscfg.CNT"
2933 File "..\..\doc\help\zh_TW\taafscfg.hlp"
2934 File "..\..\doc\help\zh_TW\taafssvrmgr.CNT"
2935 File "..\..\doc\help\zh_TW\taafssvrmgr.hlp"
2936 File "..\..\doc\help\zh_TW\taafsusrmgr.CNT"
2937 File "..\..\doc\help\zh_TW\taafsusrmgr.hlp"
2940 ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.pdb"
2941 ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.pdb"
2942 ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.pdb"
2943 ;File "${AFS_SERVER_BUILDDIR}\afsserver_1028.pdb"
2944 ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.pdb"
2945 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.pdb"
2946 ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.pdb"
2947 ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.pdb"
2956 ;====================================================
2957 ; AddToPath - Adds the given dir to the search path.
2958 ; Input - head of the stack
2959 ; Note - Win9x systems requires reboot
2960 ;====================================================
2967 # don't add if the path doesn't exist
2968 IfFileExists $0 "" AddToPath_done
2975 StrCmp $2 "" "" AddToPath_done
2980 StrCmp $2 "" "" AddToPath_done
2981 GetFullPathName /SHORT $3 $0
2986 StrCmp $2 "" "" AddToPath_done
2991 StrCmp $2 "" "" AddToPath_done
2995 StrCmp $1 1 AddToPath_NT
2998 FileOpen $1 "$1\autoexec.bat" a
3001 IntCmp $2 26 0 +2 +2 # DOS EOF
3002 FileSeek $1 -1 END # write over EOF
3003 FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
3009 ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
3010 StrCpy $2 $1 1 -1 # copy last char
3011 StrCmp $2 ";" 0 +2 # if last char == ;
3012 StrCpy $1 $1 -1 # remove last char
3013 StrCmp $1 "" AddToPath_NTdoIt
3016 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0
3017 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
3026 ;====================================================
3027 ; RemoveFromPath - Remove a given dir from the path
3028 ; Input: head of the stack
3029 ;====================================================
3030 Function un.RemoveFromPath
3039 IntFmt $6 "%c" 26 # DOS EOF
3043 StrCmp $1 1 unRemoveFromPath_NT
3046 FileOpen $1 "$1\autoexec.bat" r
3049 GetFullPathName /SHORT $0 $0
3050 StrCpy $0 "SET PATH=%PATH%;$0"
3051 Goto unRemoveFromPath_dosLoop
3053 unRemoveFromPath_dosLoop:
3055 StrCpy $5 $3 1 -1 # read last char
3056 StrCmp $5 $6 0 +2 # if DOS EOF
3057 StrCpy $3 $3 -1 # remove DOS EOF so we can compare
3058 StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
3059 StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
3060 StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
3061 StrCmp $3 "" unRemoveFromPath_dosLoopEnd
3063 Goto unRemoveFromPath_dosLoop
3064 unRemoveFromPath_dosLoopRemoveLine:
3066 Goto unRemoveFromPath_dosLoop
3068 unRemoveFromPath_dosLoopEnd:
3072 Delete "$1\autoexec.bat"
3073 CopyFiles /SILENT $4 "$1\autoexec.bat"
3075 Goto unRemoveFromPath_done
3077 unRemoveFromPath_NT:
3078 ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
3079 StrCpy $5 $1 1 -1 # copy last char
3080 StrCmp $5 ";" +2 # if last char != ;
3081 StrCpy $1 "$1;" # append ;
3084 Call un.StrStr ; Find `$0;` in $1
3085 Pop $2 ; pos of our dir
3086 StrCmp $2 "" unRemoveFromPath_done
3087 ; else, it is in path
3092 StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
3093 StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
3096 StrCpy $5 $3 1 -1 # copy last char
3097 StrCmp $5 ";" 0 +2 # if last char == ;
3098 StrCpy $3 $3 -1 # remove last char
3100 WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3
3101 SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
3103 unRemoveFromPath_done:
3113 ;====================================================
3114 ; IsNT - Returns 1 if the current system is NT, 0
3116 ; Output: head of the stack
3117 ;====================================================
3121 ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
3122 StrCmp $0 "" 0 IsNT_yes
3134 !insertmacro IsNT ""
3135 !insertmacro IsNT "un."
3137 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3139 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3140 ;====================================================
3141 ; StrStr - Finds a given string in another given string.
3142 ; Returns -1 if not found and the pos if found.
3143 ; Input: head of the stack - string to find
3144 ; second in the stack - string to find in
3145 ; Output: head of the stack
3146 ;====================================================
3148 Function ${un}StrStr
3149 Exch $R1 ; st=haystack,old$R1, $R1=needle
3150 Exch ; st=old$R1,haystack
3151 Exch $R2 ; st=old$R1,old$R2, $R2=haystack
3163 StrCpy $R5 $R2 $R3 $R4
3169 StrCpy $R1 $R2 "" $R4
3177 !insertmacro StrStr ""
3178 !insertmacro StrStr "un."
3181 !ifdef ADDSHAREDDLLUSED
3184 ; Increments a shared DLLs reference count.
3185 ; Use by passing one item on the stack (the full path of the DLL).
3188 ; Push $SYSDIR\myDll.dll
3192 Function AddSharedDLL
3195 ReadRegDword $R0 HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
3197 WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1 $R0
3203 ; un.RemoveSharedDLL
3205 ; Decrements a shared DLLs reference count, and removes if necessary.
3206 ; Use by passing one item on the stack (the full path of the DLL).
3207 ; Note: for use in the main installer (not the uninstaller), rename the
3208 ; function to RemoveSharedDLL.
3211 ; Push $SYSDIR\myDll.dll
3212 ; Call un.RemoveSharedDLL
3215 Function un.RemoveSharedDLL
3218 ReadRegDword $R0 HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
3219 StrCmp $R0 "" remove
3221 IntCmp $R0 0 rk rk uk
3223 DeleteRegValue HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1
3226 WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\SharedDLLs $R1 $R0
3229 Delete /REBOOTOK $R1
3238 !ifdef INSTALL_LOOPBACK
3239 Function afs.InstallMSLoopback
3241 File /oname=$R0 "loopback_install.dll"
3242 nsExec::Exec "rundll32.exe $R0 doLoopBackEntry quiet"
3243 Call GetWindowsVersion
3245 StrCmp $R1 "2000" +1 +2
3246 nsExec::Exec "rundll32.exe $R0 disableLoopBackEntry"
3254 ; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
3255 ; Updated by Joost Verburg
3257 ; Returns on top of stack
3259 ; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
3261 ; '' (Unknown Windows Version)
3264 ; Call GetWindowsVersion
3266 ; ; at this point $R0 is "NT 4.0" or whatnot
3268 Function GetWindowsVersion
3275 ReadRegStr $R0 HKLM \
3276 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
3278 IfErrors 0 lbl_winnt
3281 ReadRegStr $R0 HKLM \
3282 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
3285 StrCmp $R1 '4' 0 lbl_error
3289 StrCmp $R1 '4.0' lbl_win32_95
3290 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
3308 StrCmp $R1 '3' lbl_winnt_x
3309 StrCmp $R1 '4' lbl_winnt_x
3313 StrCmp $R1 '5.0' lbl_winnt_2000
3314 StrCmp $R1 '5.1' lbl_winnt_XP
3315 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
3318 StrCpy $R0 "NT $R0" 6
3343 ; Author: Lilla (lilla@earthlink.net) 2003-06-13
3344 ; function IsUserAdmin uses plugin \NSIS\PlusgIns\UserInfo.dll
3345 ; This function is based upon code in \NSIS\Contrib\UserInfo\UserInfo.nsi
3346 ; This function was tested under NSIS 2 beta 4 (latest CVS as of this writing).
3350 ; Pop $R0 ; at this point $R0 is "true" or "false"
3352 Function IsUserAdmin
3361 UserInfo::GetAccountType
3364 StrCmp $R2 "Admin" 0 Continue
3365 ; Observation: I get here when running Win98SE. (Lilla)
3366 ; The functions UserInfo.dll looks for are there on Win98 too,
3367 ; but just don't work. So UserInfo.dll, knowing that admin isn't required
3368 ; on Win98, returns admin anyway. (per kichik)
3369 ; MessageBox MB_OK 'User "$R1" is in the Administrators group'
3374 ; You should still check for an empty string because the functions
3375 ; UserInfo.dll looks for may not be present on Windows 95. (per kichik)
3378 ;MessageBox MB_OK 'User "$R1" is in the "$R2" group'
3382 ; comment/message below is by UserInfo.nsi author:
3383 ; This one means you don't need to care about admin or
3384 ; not admin because Windows 9x doesn't either
3385 ;MessageBox MB_OK "Error! This DLL can't run under Windows 9x!"
3389 ;MessageBox MB_OK 'User= "$R1" AccountType= "$R2" IsUserAdmin= "$R0"'
3397 ; input, top of stack (e.g. C:\Program Files\Poop)
3398 ; output, top of stack (replaces, with e.g. C:\Program Files)
3399 ; modifies no other variables.
3402 ; Push "C:\Program Files\Directory\Whatever"
3405 ; ; at this point $R0 will equal "C:\Program Files\Directory"
3419 IntCmp $R1 $R2 get 0 get
3420 StrCpy $R3 $R0 1 -$R1
3435 ;--------------------------------
3436 ;Handle what must and what must not be installed
3437 Function .onSelChange
3438 ; If they install the server, they MUST install the client
3439 SectionGetFlags ${secServer} $R0
3440 IntOp $R0 $R0 & ${SF_SELECTED}
3441 StrCmp $R0 "1" MakeClientSelected
3443 ; If they install the control center, we'll give them the client.
3444 ; It may not be required, but it's a bit more useful
3445 SectionGetFlags ${secControl} $R0
3446 IntOp $R0 $R0 & ${SF_SELECTED}
3447 StrCmp $R0 "1" MakeClientSelected
3451 SectionGetFlags ${secClient} $R0
3452 IntOp $R0 $R0 | ${SF_SELECTED}
3453 SectionSetFlags ${secClient} $R0
3458 Function RegWriteMultiStr
3459 !define HKEY_CLASSES_ROOT 0x80000000
3460 !define HKEY_CURRENT_USER 0x80000001
3461 !define HKEY_LOCAL_MACHINE 0x80000002
3462 !define HKEY_USERS 0x80000003
3463 !define HKEY_PERFORMANCE_DATA 0x80000004
3464 !define HKEY_PERFORMANCE_TEXT 0x80000050
3465 !define HKEY_PERFORMANCE_NLSTEXT 0x80000060
3466 !define HKEY_CURRENT_CONFIG 0x80000005
3467 !define HKEY_DYN_DATA 0x80000006
3469 !define KEY_QUERY_VALUE 0x0001
3470 !define KEY_SET_VALUE 0x0002
3471 !define KEY_CREATE_SUB_KEY 0x0004
3472 !define KEY_ENUMERATE_SUB_KEYS 0x0008
3473 !define KEY_NOTIFY 0x0010
3474 !define KEY_CREATE_LINK 0x0020
3478 !define REG_EXPAND_SZ 2
3479 !define REG_BINARY 3
3481 !define REG_DWORD_LITTLE_ENDIAN 4
3482 !define REG_DWORD_BIG_ENDIAN 5
3484 !define REG_MULTI_SZ 7
3486 !define RegCreateKey "Advapi32::RegCreateKeyA(i, t, *i) i"
3487 !define RegSetValueEx "Advapi32::RegSetValueExA(i, t, i, i, i, i) i"
3488 !define RegCloseKey "Advapi32::RegCloseKeyA(i) i"
3490 SetPluginUnload alwaysoff
3491 ; Create a buffer for the multi_sz value
3492 System::Call "*(&t${NSIS_MAX_STRLEN}) i.r1"
3493 ; Open/create the registry key
3494 System::Call "${RegCreateKey}(${HKEY_LOCAL_MACHINE}, '$REG_SUB_KEY', .r0) .r9"
3497 MessageBox MB_OK|MB_ICONSTOP "Can't create registry key! ($9)"
3501 ; Fill in the buffer with our strings
3502 StrCpy $2 $1 ; Initial position
3504 StrLen $9 '$REG_DATA_1' ; Length of first string
3505 IntOp $9 $9 + 1 ; Plus null
3506 System::Call "*$2(&t$9 '$REG_DATA_1')" ; Place the string
3507 IntOp $2 $2 + $9 ; Advance to the next position
3509 StrCmp '$REG_DATA_2' "" terminate
3510 StrLen $9 '$REG_DATA_2' ; Length of second string
3511 IntOp $9 $9 + 1 ; Plus null
3512 System::Call "*$2(&t$9 '$REG_DATA_2')" ; Place the string
3513 IntOp $2 $2 + $9 ; Advance to the next position
3515 StrCmp '$REG_DATA_3' "" terminate
3516 StrLen $9 '$REG_DATA_3' ; Length of third string
3517 IntOp $9 $9 + 1 ; Plus null
3518 System::Call "*$2(&t$9 '$REG_DATA_3')" ; Place the string
3519 IntOp $2 $2 + $9 ; Advance to the next position
3522 System::Call "*$2(&t1 '')" ; Place the terminating null
3523 IntOp $2 $2 + 1 ; Advance to the next position
3525 ; Create/write the value
3526 IntOp $2 $2 - $1 ; Total length
3527 System::Call "${RegSetValueEx}(r0, '$REG_VALUE', 0, ${REG_MULTI_SZ}, r1, r2) .r9"
3530 MessageBox MB_OK|MB_ICONSTOP "Can't set key value! ($9)"
3534 ; Close the registry key
3535 System::Call "${RegCloseKey}(r0)"
3539 SetPluginUnload manual