94109ad59254b76771675071cef11449fe26cc32
[openafs.git] / src / WINNT / install / NSIS / OpenAFS.nsi
1 ;OpenAFS Install Script for NSIS
2 ;
3 ; Written by Rob Murawski <rsm4@ieee.org>
4 ;
5 ;Based on:
6 ;NSIS Modern User Interface version 1.63
7 ;MultiLanguage Example Script
8 ;Written by Joost Verburg
9
10 !define MUI_PRODUCT "OpenAFS for Windows" ;Define your own software name here
11 !define MUI_VERSION "1.2.11" ;Define your own software version here
12 !define MUI_MAJORVERSION 1
13 !define MUI_MINORVERSION 2
14 !define MUI_PATCHLEVEL 110
15
16
17 !include "MUI.nsh"
18 !include Sections.nsh
19
20 ;--------------------------------
21 ;Configuration
22
23   ;General
24   OutFile "OpenAFSforWindows.exe"
25   SilentInstall normal
26   !define MUI_ICON "..\..\client_cpa\afs_conf.ico"
27   !define MUI_UNICON "c:\Program Files\NSIS\Contrib\Icons\normal-uninstall.ico"
28   !define AFS_COMPANY_NAME "OpenAFS"
29   !define AFS_PRODUCT_NAME "OpenAFS"
30   !define AFS_REGKEY_ROOT "Software\TransarcCorporation"
31   CRCCheck force
32
33   ;Folder selection page
34   InstallDir "$PROGRAMFILES\OpenAFS\AFS"
35   
36   ;Remember install folder
37   InstallDirRegKey HKCU "Software\TransarcCorporation" ""
38   
39   ;Remember the installer language
40   !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" 
41   !define MUI_LANGDLL_REGISTRY_KEY "Software\TransarcCorporation" 
42   !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
43   
44   ;Where are the files?
45   !define AFS_DESTDIR "..\..\..\..\obj\DEST\free"
46   !define AFS_CLIENT_BUILDDIR "${AFS_DESTDIR}\root.client\usr\vice\etc"
47   !define AFS_WININSTALL_DIR "${AFS_DESTDIR}\WinInstall\Config"
48   !define AFS_BUILD_INCDIR "${AFS_DESTDIR}\include"
49   !define AFS_CLIENT_LIBDIR "${AFS_DESTDIR}\lib"
50   !define AFS_SERVER_BUILDDIR "${AFS_DESTDIR}\root.server\usr\afs\bin"
51   !define AFS_ETC_BUILDDIR "${AFS_DESTDIR}\etc"
52   !define SDK_DIR "X:"
53   
54 ;--------------------------------
55 ;Modern UI Configuration
56
57   !define MUI_CUSTOMPAGECOMMANDS
58   !define MUI_WELCOMEPAGE
59   !define MUI_COMPONENTSPAGE
60   !define MUI_COMPONENTSPAGE_SMALLDESC
61   !define MUI_DIRECTORYPAGE
62
63   !define MUI_ABORTWARNING
64   !define MUI_FINISHPAGE
65   
66   !define MUI_UNINSTALLER
67   !define MUI_UNCONFIRMPAGE
68
69   
70   !insertmacro MUI_PAGECOMMAND_WELCOME
71   !insertmacro MUI_PAGECOMMAND_COMPONENTS
72   !insertmacro MUI_PAGECOMMAND_DIRECTORY
73   Page custom AFSPageGetCellServDB
74   Page custom AFSPageGetCellName
75   !insertmacro MUI_PAGECOMMAND_INSTFILES
76   !insertmacro MUI_PAGECOMMAND_FINISH
77   
78 ;--------------------------------
79 ;Languages
80
81   !insertmacro MUI_LANGUAGE "English"
82   ;!insertmacro MUI_LANGUAGE "French"
83   !insertmacro MUI_LANGUAGE "German"
84   !insertmacro MUI_LANGUAGE "Spanish"
85   !insertmacro MUI_LANGUAGE "SimpChinese"
86   !insertmacro MUI_LANGUAGE "TradChinese"    
87   !insertmacro MUI_LANGUAGE "Japanese"
88   ;!insertmacro MUI_LANGUAGE "Korean"
89   ;!insertmacro MUI_LANGUAGE "Italian"
90   ;!insertmacro MUI_LANGUAGE "Dutch"
91   ;!insertmacro MUI_LANGUAGE "Danish"
92   ;!insertmacro MUI_LANGUAGE "Greek"
93   ;!insertmacro MUI_LANGUAGE "Russian"
94   !insertmacro MUI_LANGUAGE "PortugueseBR"
95   ;!insertmacro MUI_LANGUAGE "Polish"
96   ;!insertmacro MUI_LANGUAGE "Ukrainian"
97   ;!insertmacro MUI_LANGUAGE "Czech"
98   ;!insertmacro MUI_LANGUAGE "Slovak"
99   ;!insertmacro MUI_LANGUAGE "Croatian"
100   ;!insertmacro MUI_LANGUAGE "Bulgarian"
101   ;!insertmacro MUI_LANGUAGE "Hungarian"
102   ;!insertmacro MUI_LANGUAGE "Thai"
103   ;!insertmacro MUI_LANGUAGE "Romanian"
104   ;!insertmacro MUI_LANGUAGE "Macedonian"
105   ;!insertmacro MUI_LANGUAGE "Turkish"
106   
107 ;--------------------------------
108 ;Language Strings
109     
110   ;Descriptions
111   LangString DESC_SecCopyUI ${LANG_ENGLISH} "OpenAFS for Windows: English"
112   ;LangString DESC_SecCopyUI ${LANG_FRENCH} "OpenAFS for Windows: French"
113   LangString DESC_SecCopyUI ${LANG_GERMAN} "OpenAFS for Windows: German"
114   LangString DESC_SecCopyUI ${LANG_SPANISH} "OpenAFS for Windows: Spanish"
115   LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "OpenAFS for Windows: Simplified Chinese"
116   LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "OpenAFS for Windows: Traditional Chinese description"
117   LangString DESC_SecCopyUI ${LANG_JAPANESE} "OpenAFS for Windows: Japanese description"
118   LangString DESC_SecCopyUI ${LANG_KOREAN} "OpenAFS for Windows: Korean description"
119   ;LangString DESC_SecCopyUI ${LANG_ITALIAN} "OpenAFS for Windows: Italian description"
120   ;LangString DESC_SecCopyUI ${LANG_DUTCH} "OpenAFS for Windows: Dutch description"
121   ;LangString DESC_SecCopyUI ${LANG_DANISH} "OpenAFS for Windows: Danish description"
122   ;LangString DESC_SecCopyUI ${LANG_GREEK} "OpenAFS for Windows: Greek description"
123   ;LangString DESC_SecCopyUI ${LANG_RUSSIAN} "OpenAFS for Windows: Russian description"
124   LangString DESC_SecCopyUI ${LANG_PORTUGUESEBR} "OpenAFS for Windows: Portuguese (Brasil) description"
125   ;LangString DESC_SecCopyUI ${LANG_POLISH} "OpenAFS for Windows: Polish description"
126   ;LangString DESC_SecCopyUI ${LANG_UKRAINIAN} "OpenAFS for Windows: Ukrainian description"
127   ;LangString DESC_SecCopyUI ${LANG_CZECH} "OpenAFS for Windows: Czechian description"
128   ;LangString DESC_SecCopyUI ${LANG_SLOVAK} "OpenAFS for Windows: Slovakian description"
129   ;LangString DESC_SecCopyUI ${LANG_CROATIAN} "OpenAFS for Windows: Slovakian description"
130   ;LangString DESC_SecCopyUI ${LANG_BULGARIAN} "OpenAFS for Windows: Bulgarian description"
131   ;LangString DESC_SecCopyUI ${LANG_HUNGARIAN} "OpenAFS for Windows: Hungarian description"
132   ;LangString DESC_SecCopyUI ${LANG_THAI} "OpenAFS for Windows: Thai description"
133   ;LangString DESC_SecCopyUI ${LANG_ROMANIAN} "OpenAFS for Windows: Romanian description"
134   ;LangString DESC_SecCopyUI ${LANG_MACEDONIAN} "OpenAFS for Windows: Macedonian description"
135   ;LangString DESC_SecCopyUI ${LANG_TURKISH} "OpenAFS for Windows: Turkish description"
136
137   LangString DESC_SecClient ${LANG_ENGLISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
138   LangString DESC_SecClient ${LANG_GERMAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
139   LangString DESC_SecClient ${LANG_SPANISH} "OpenAFS Client: Allows you to access AFS from your Windows PC."
140   LangString DESC_SecClient ${LANG_SIMPCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
141   LangString DESC_SecClient ${LANG_TRADCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
142   LangString DESC_SecClient ${LANG_JAPANESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
143   LangString DESC_SecClient ${LANG_KOREAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
144   LangString DESC_SecClient ${LANG_PORTUGUESEBR} "OpenAFS Client: Allows you to access AFS from your Windows PC."
145   
146   LangString DESC_SecServer ${LANG_ENGLISH} "OpenAFS Server: Allows you to run an AFS file server."
147   LangString DESC_SecServer ${LANG_GERMAN} "OpenAFS Server: Allows you to run an AFS file server."
148   LangString DESC_SecServer ${LANG_SPANISH} "OpenAFS Server: Allows you to run an AFS file server."
149   LangString DESC_SecServer ${LANG_SIMPCHINESE} "OpenAFS Server: Allows you to run an AFS file server."
150   LangString DESC_SecServer ${LANG_TRADCHINESE} "OpenAFS Server: Allows you to run an AFS file server."
151   LangString DESC_SecServer ${LANG_JAPANESE} "OpenAFS Server: Allows you to run an AFS file server."
152   LangString DESC_SecServer ${LANG_KOREAN} "OpenAFS Server: Allows you to run an AFS file server."
153   LangString DESC_SecServer ${LANG_PORTUGUESEBR} "OpenAFS Server: Allows you to run an AFS file server."
154   
155   LangString DESC_SecControl ${LANG_ENGLISH} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
156   LangString DESC_SecControl ${LANG_GERMAN} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
157   LangString DESC_SecControl ${LANG_SPANISH} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
158   LangString DESC_SecControl ${LANG_SIMPCHINESE} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
159   LangString DESC_SecControl ${LANG_TRADCHINESE} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
160   LangString DESC_SecControl ${LANG_JAPANESE} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
161   LangString DESC_SecControl ${LANG_KOREAN} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
162   LangString DESC_SecControl ${LANG_PORTUGUESEBR} "OpenAFS Control Center: GUI utilities for managing and configuring AFS."
163   
164   LangString DESC_SecDocs ${LANG_ENGLISH} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
165   LangString DESC_SecDocs ${LANG_GERMAN} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
166   LangString DESC_SecDocs ${LANG_SPANISH} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
167   LangString DESC_SecDocs ${LANG_SIMPCHINESE} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
168   LangString DESC_SecDocs ${LANG_TRADCHINESE} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
169   LangString DESC_SecDocs ${LANG_JAPANESE} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
170   LangString DESC_SecDocs ${LANG_KOREAN} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
171   LangString DESC_SecDocs ${LANG_PORTUGUESEBR} "OpenAFS Supplemental Documentation: Additional documentation for using OpenAFS."
172   
173 ; Popup error messages
174   LangString CellError ${LANG_ENGLISH} "You must specify a valid CellServDB file to copy during install"
175   LangString CellError ${LANG_GERMAN} "You must specify a valid CellServDB file to copy during the install"
176   LangString CellError ${LANG_SPANISH} "You must specify a valid CellServDB file to copy during the install"
177   LangString CellError ${LANG_SIMPCHINESE} "You must specify a valid CellServDB file to copy during the install"
178   LangString CellError ${LANG_TRADCHINESE} "You must specify a valid CellServDB file to copy during the install"
179   LangString CellError ${LANG_JAPANESE} "You must specify a valid CellServDB file to copy during the install"
180   LangString CellError ${LANG_KOREAN} "You must specify a valid CellServDB file to copy during the install"
181   LangString CellError ${LANG_PORTUGUESEBR} "You must specify a valid CellServDB file to copy during the install"
182   
183   
184 ; Upgrade/re-install strings
185    LangString UPGRADE_CLIENT ${LANG_ENGLISH} "Upgrade AFS Client"
186    
187    
188    LangString REINSTALL_SERVER ${LANG_ENGLISH} "Re-install AFS Server"
189   
190 ;--------------------------------
191 ; Macros
192
193
194 ;--------------------------------
195 ;Reserve Files
196   
197   ;Things that need to be extracted on first (keep these lines before any File command!)
198   ;Only useful for BZIP2 compression
199   !insertmacro MUI_RESERVEFILE_LANGDLL
200   
201 ;--------------------------------
202 ;Installer Sections
203
204 ;----------------------
205 ; OpenAFS CLIENT
206 Section "AFS Client" SecClient
207
208   SetShellVarContext all
209    ; Do client components
210   SetOutPath "$INSTDIR\Client\Program"
211   File "${AFS_CLIENT_BUILDDIR}\afsshare.exe"
212   File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
213   File "${AFS_CLIENT_BUILDDIR}\libosi.dll"
214   File "${AFS_BUILD_INCDIR}\afs\kautils.h"
215   File "${AFS_CLIENT_BUILDDIR}\libafsconf.dll"
216   File "${AFS_CLIENT_BUILDDIR}\klog.exe"
217   File "${AFS_CLIENT_BUILDDIR}\tokens.exe"
218   File "${AFS_CLIENT_BUILDDIR}\unlog.exe"
219   File "${AFS_CLIENT_BUILDDIR}\fs.exe"
220   File "${AFS_CLIENT_LIBDIR}\libafsconf.lib"
221   File "${AFS_CLIENT_LIBDIR}\afsauthent.lib"
222   File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
223   File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll"
224   File "${AFS_BUILD_INCDIR}\afs\auth.h"
225   File "${AFS_CLIENT_BUILDDIR}\afsd_service.exe"
226   File "${AFS_CLIENT_BUILDDIR}\afslogon.dll"
227   File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
228   File "${AFS_DESTDIR}\bin\kpasswd.exe"
229   File "${AFS_SERVER_BUILDDIR}\pts.exe"
230   File "${AFS_SERVER_BUILDDIR}\bos.exe"
231   File "${AFS_SERVER_BUILDDIR}\kas.exe"
232   File "${AFS_SERVER_BUILDDIR}\vos.exe"
233   File "${AFS_SERVER_BUILDDIR}\udebug.exe"
234   File "${AFS_DESTDIR}\bin\translate_et.exe"
235   File "${AFS_DESTDIR}\etc\rxdebug.exe"
236   File "${AFS_DESTDIR}\etc\backup.exe"
237   
238   
239   ; Client_headers
240    SetOutPath "$INSTDIR\Client\Program\Include"
241    File "${AFS_BUILD_INCDIR}\lock.h"
242    File "${AFS_BUILD_INCDIR}\lwp.h"
243    File "${AFS_BUILD_INCDIR}\preempt.h"
244    File "${AFS_BUILD_INCDIR}\timer.h"
245    File "${AFS_BUILD_INCDIR}\des.h"
246    File "${AFS_BUILD_INCDIR}\des_conf.h"
247    File "${AFS_BUILD_INCDIR}\mit-cpyright.h"
248    ;File "${AFS_BUILD_INCDIR}\des-odd.h"
249    File "${AFS_BUILD_INCDIR}\crypt.h"
250    File "${AFS_BUILD_INCDIR}\pthread.h"
251    File "${AFS_BUILD_INCDIR}\dbrpc.h"
252    File "${AFS_BUILD_INCDIR}\basic.h"
253    File "${AFS_BUILD_INCDIR}\osidebug.h"
254    File "${AFS_BUILD_INCDIR}\osiltype.h"
255    File "${AFS_BUILD_INCDIR}\osistatl.h"
256    File "${AFS_BUILD_INCDIR}\trylock.h"
257    File "${AFS_BUILD_INCDIR}\main.h"
258    File "${AFS_BUILD_INCDIR}\osibasel.h"
259    File "${AFS_BUILD_INCDIR}\osifd.h"
260    File "${AFS_BUILD_INCDIR}\osiqueue.h"
261    File "${AFS_BUILD_INCDIR}\osiutils.h"
262    File "${AFS_BUILD_INCDIR}\osi.h"
263    File "${AFS_BUILD_INCDIR}\osidb.h"
264    File "${AFS_BUILD_INCDIR}\osilog.h"
265    File "${AFS_BUILD_INCDIR}\osisleep.h"
266    File "${AFS_BUILD_INCDIR}\perf.h"
267    File "${AFS_BUILD_INCDIR}\ubik.h"
268    File "${AFS_BUILD_INCDIR}\ubik_int.h"
269    
270    
271    
272    SetOutPath "$INSTDIR\Client\Program\Include\afs"
273    File "${AFS_BUILD_INCDIR}\afs\afs_args.h"
274    File "${AFS_BUILD_INCDIR}\afs\debug.h"
275    File "${AFS_BUILD_INCDIR}\afs\param.h"
276    File "${AFS_BUILD_INCDIR}\afs\afs_sysnames.h"
277    ;File "${AFS_BUILD_INCDIR}\afs\permit_xprt.h"
278    File "${AFS_BUILD_INCDIR}\afs\stds.h"
279    File "${AFS_BUILD_INCDIR}\afs\icl.h"
280    File "${AFS_BUILD_INCDIR}\afs\procmgmt.h"
281    File "${AFS_BUILD_INCDIR}\afs\afsutil.h"
282    File "${AFS_BUILD_INCDIR}\afs\assert.h"
283    File "${AFS_BUILD_INCDIR}\afs\dirent.h"
284    File "${AFS_BUILD_INCDIR}\afs\errors.h"
285    File "${AFS_BUILD_INCDIR}\afs\itc.h"
286    File "${AFS_BUILD_INCDIR}\afs\vice.h"
287    File "${AFS_BUILD_INCDIR}\afs\pthread_glock.h"
288    File "${AFS_BUILD_INCDIR}\afs\errmap_nt.h"
289    File "${AFS_BUILD_INCDIR}\afs\dirpath.h"
290    File "${AFS_BUILD_INCDIR}\afs\ktime.h"
291    File "${AFS_BUILD_INCDIR}\afs\fileutil.h"
292    File "${AFS_BUILD_INCDIR}\afs\secutil_nt.h"
293    File "${AFS_BUILD_INCDIR}\afs\com_err.h"
294    File "${AFS_BUILD_INCDIR}\afs\error_table.h"
295    ;File "${AFS_BUILD_INCDIR}\afs\mit_sipb-cr.h"
296    File "${AFS_BUILD_INCDIR}\afs\cmd.h"
297    File "${AFS_BUILD_INCDIR}\afs\rxgen_consts.h"
298    File "${AFS_BUILD_INCDIR}\afs\afsint.h"
299    File "${AFS_BUILD_INCDIR}\afs\afscbint.h"
300    File "${AFS_BUILD_INCDIR}\afs\audit.h"
301    File "${AFS_BUILD_INCDIR}\afs\acl.h"
302    File "${AFS_BUILD_INCDIR}\afs\prs_fs.h"
303    File "${AFS_BUILD_INCDIR}\afs\afsd.h"
304    File "${AFS_BUILD_INCDIR}\afs\cm.h"
305    File "${AFS_BUILD_INCDIR}\afs\cm_buf.h"
306    File "${AFS_BUILD_INCDIR}\afs\cm_cell.h"
307    File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
308    File "${AFS_BUILD_INCDIR}\afs\cm_conn.h"
309    File "${AFS_BUILD_INCDIR}\afs\cm_ioctl.h"
310    File "${AFS_BUILD_INCDIR}\afs\cm_scache.h"
311    File "${AFS_BUILD_INCDIR}\afs\cm_server.h"
312    File "${AFS_BUILD_INCDIR}\afs\cm_user.h"
313    File "${AFS_BUILD_INCDIR}\afs\cm_utils.h"
314    File "${AFS_BUILD_INCDIR}\afs\fs_utils.h"
315    File "${AFS_BUILD_INCDIR}\afs\krb.h"
316    File "${AFS_BUILD_INCDIR}\afs\krb_prot.h"
317    File "${AFS_BUILD_INCDIR}\afs\smb.h"
318    File "${AFS_BUILD_INCDIR}\afs\smb3.h"
319    File "${AFS_BUILD_INCDIR}\afs\smb_iocons.h"
320    File "${AFS_BUILD_INCDIR}\afs\smb_ioctl.h"
321    File "${AFS_BUILD_INCDIR}\afs\afsrpc.h"
322    File "${AFS_BUILD_INCDIR}\afs\afssyscalls.h"
323    File "${AFS_BUILD_INCDIR}\afs\pioctl_nt.h"
324    File "${AFS_BUILD_INCDIR}\afs\auth.h"
325    File "${AFS_BUILD_INCDIR}\afs\cellconfig.h"
326    File "${AFS_BUILD_INCDIR}\afs\keys.h"
327    File "${AFS_BUILD_INCDIR}\afs\ptserver.h"
328    File "${AFS_BUILD_INCDIR}\afs\ptint.h"
329    File "${AFS_BUILD_INCDIR}\afs\pterror.h"
330    File "${AFS_BUILD_INCDIR}\afs\ptint.h"
331    File "${AFS_BUILD_INCDIR}\afs\pterror.h"
332    File "${AFS_BUILD_INCDIR}\afs\ptclient.h"
333    File "${AFS_BUILD_INCDIR}\afs\prserver.h"
334    File "${AFS_BUILD_INCDIR}\afs\print.h"
335    File "${AFS_BUILD_INCDIR}\afs\prerror.h"
336    File "${AFS_BUILD_INCDIR}\afs\prclient.h"
337    File "${AFS_BUILD_INCDIR}\afs\kautils.h"
338    File "${AFS_BUILD_INCDIR}\afs\kauth.h"
339    File "${AFS_BUILD_INCDIR}\afs\kaport.h"
340    File "${AFS_BUILD_INCDIR}\afs\vl_opcodes.h"
341    File "${AFS_BUILD_INCDIR}\afs\vlserver.h"
342    File "${AFS_BUILD_INCDIR}\afs\vldbint.h"
343    File "${AFS_BUILD_INCDIR}\afs\usd.h"
344    File "${AFS_BUILD_INCDIR}\afs\bubasics.h"
345    File "${AFS_BUILD_INCDIR}\afs\butc.h"
346    File "${AFS_BUILD_INCDIR}\afs\bumon.h"
347    File "${AFS_BUILD_INCDIR}\afs\butm.h"
348    File "${AFS_BUILD_INCDIR}\afs\tcdata.h"
349    File "${AFS_BUILD_INCDIR}\afs\budb.h"
350    ;File "${AFS_BUILD_INCDIR}\afs\budb_errors.h"
351    File "${AFS_BUILD_INCDIR}\afs\budb_client.h"
352    File "${AFS_BUILD_INCDIR}\afs\dir.h"
353    File "${AFS_BUILD_INCDIR}\afs\fssync.h"
354    File "${AFS_BUILD_INCDIR}\afs\ihandle.h"
355    File "${AFS_BUILD_INCDIR}\afs\nfs.h"
356    File "${AFS_BUILD_INCDIR}\afs\ntops.h"
357    File "${AFS_BUILD_INCDIR}\afs\partition.h"
358    File "${AFS_BUILD_INCDIR}\afs\viceinode.h"
359    File "${AFS_BUILD_INCDIR}\afs\vnode.h"
360    File "${AFS_BUILD_INCDIR}\afs\volume.h"
361    File "${AFS_BUILD_INCDIR}\afs\voldefs.h"
362    File "${AFS_BUILD_INCDIR}\afs\volser.h"
363    File "${AFS_BUILD_INCDIR}\afs\volint.h"
364    File "${AFS_BUILD_INCDIR}\afs\fs_stats.h"
365    File "${AFS_BUILD_INCDIR}\afs\bosint.h"
366    File "${AFS_BUILD_INCDIR}\afs\bnode.h"
367    
368    
369    SetOutPath "$INSTDIR\Client\Program\Include\rx"
370    File "${AFS_BUILD_INCDIR}\rx\rx.h"
371    File "${AFS_BUILD_INCDIR}\rx\rx_packet.h"
372    File "${AFS_BUILD_INCDIR}\rx\rx_user.h"
373    File "${AFS_BUILD_INCDIR}\rx\rx_event.h"
374    File "${AFS_BUILD_INCDIR}\rx\rx_queue.h"
375    File "${AFS_BUILD_INCDIR}\rx\rx_globals.h"
376    File "${AFS_BUILD_INCDIR}\rx\rx_clock.h"
377    File "${AFS_BUILD_INCDIR}\rx\rx_misc.h"
378    File "${AFS_BUILD_INCDIR}\rx\rx_multi.h"
379    File "${AFS_BUILD_INCDIR}\rx\rx_null.h"
380    File "${AFS_BUILD_INCDIR}\rx\rx_lwp.h"
381    File "${AFS_BUILD_INCDIR}\rx\rx_pthread.h"
382    File "${AFS_BUILD_INCDIR}\rx\rx_xmit_nt.h"
383    File "${AFS_BUILD_INCDIR}\rx\xdr.h"
384    File "${AFS_BUILD_INCDIR}\rx\rxkad.h"
385    
386    
387
388    ; Client Sample
389    SetOutPath "$INSTDIR\Client\Program\Sample"
390    File "..\..\afsd\sample\token.c"
391    
392    Call AFSLangFiles
393    
394    ; Do SYSTEM32 DIR
395    SetOutPath "$SYSDIR"
396    File "${AFS_CLIENT_BUILDDIR}\afs_cpa.cpl"
397    ;File "${SDK_DIR}\REDIST\msvcrt.dll"
398    ;File "${SDK_DIR}\REDIST\mfc42.dll"
399    SetOutPath "$INSTDIR\Common"
400    File "${AFS_WININSTALL_DIR}\Msvcr71.dll"
401    
402   ; Do WINDOWSDIR components
403   ; Get AFS CellServDB file
404   Call afs.GetCellServDB
405   
406   ReadINIStr $R0 $0 "Field 2" "State"
407   StrCmp $R0 "1" UsePkg DontUsePkg
408  UsePkg:
409    SetOutPath "$WINDIR"
410    File "afsdcell.ini"
411 DontUsePkg:
412    ReadINIStr $R0 $0 "Field 6" "State"
413    StrCmp $R0 "1" UseFile DontUseFile
414 UseFile:
415    ReadINIStr $R0 $0 "Field 7" "State"
416    CopyFiles $R0 "$WINDIR\afsdcell.ini"
417 DontUseFile:
418    
419   ;Store install folder
420   WriteRegStr HKCU "${AFS_REGKEY_ROOT}\Client" "" $INSTDIR
421   Call AFSCommon.Install
422   
423   
424   ; Write registry entries
425   WriteRegStr HKCR "*\shellex\ContextMenuHandlers\AFS Client Shell Extension" "(Default)" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
426   WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" "(Default)" "AFS Client Shell Extension"
427   WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "(Default)" "$INSTDIR\Client\Program\afs_shl_ext.dll"
428   WriteRegStr HKCR "CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32" "ThreadingModel" "Apartment"
429   WriteRegStr HKCR "FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" "(Default)" "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
430   
431   ; AFS Reg entries
432   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
433   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "VersionString" ${MUI_VERSION}
434   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Title" "AFS Client"
435   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Description" "AFS Client"
436   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PathName" "$INSTDIR\Client\Program"
437   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Software Type" "File System"
438   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
439   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
440   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
441   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
442   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "Title" "AFS Client"
443   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "Description" "AFS Client"
444   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "Software Type" "File System"
445   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "PathName" "$INSTDIR\Client\Program"
446   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
447   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
448   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Client\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
449
450   ; Daemon entries
451   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "(Default)" ""
452   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
453   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Class" 2
454   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonOptions" 0
455   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonScript" "$INSTDIR\Client\Program\afscreds.exe -:%s -x"
456   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Name" "OpenAFSDaemon"
457   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "ProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
458    
459   ;Write start menu entries
460   CreateDirectory "$SMPROGRAMS\OpenAFS\Client"
461   CreateShortCut '"$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk"' '"$INSTDIR\Uninstall.exe"'
462   CreateShortCut '"$SMPROGRAMS\OpenAFS\Client\Authentication.lnk"' '"$INSTDIR\Client\Program\afscreds.exe"'
463   CreateShortCut '"$SMSTARTUP\AFS Credentials.lnk"' '"$INSTDIR\Client\Program\afscreds.exe"'
464
465   Push "$INSTDIR\Client\Program"
466   Call AddToPath
467   Push "$INSTDIR\Common"
468   Call AddToPath
469   
470   ; Create the AFS service
471   GetTempFileName $R0
472   File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
473   nsExec::Exec '$R0 TransarcAFSDaemon "$INSTDIR\Client\Program\afsd_service.exe" "OpenAFS Client Service"'
474   Delete $R0
475
476   ;Write cell name
477   ReadINIStr $R0 $1 "Field 2" "State"
478   WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell" $R0
479   WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "ShowTrayIcon" 1
480   
481   WriteUninstaller "$INSTDIR\Uninstall.exe"
482   
483 SectionEnd
484
485 ;------------------------
486 ; OpenAFS SERVER  
487 Section "AFS Server" SecServer
488
489   SetShellVarContext all
490
491   CreateDirectory "$INSTDIR\Server\usr\afs\etc"
492   CreateDirectory "$INSTDIR\Server\usr\afs\local"
493   CreateDirectory "$INSTDIR\Server\usr\afs\logs"
494   
495   SetOutPath "$INSTDIR\Server\usr\afs\bin"  
496   File "${AFS_SERVER_BUILDDIR}\afskill.exe"
497   File "${AFS_SERVER_BUILDDIR}\afssvrcfg.exe"
498   File "${AFS_SERVER_BUILDDIR}\bosctlsvc.exe"
499   File "${AFS_SERVER_BUILDDIR}\bosserver.exe"
500   File "${AFS_SERVER_BUILDDIR}\buserver.exe"
501   File "${AFS_ETC_BUILDDIR}\butc.exe"
502   File "${AFS_SERVER_BUILDDIR}\fileserver.exe"
503   File "${AFS_ETC_BUILDDIR}\fms.exe"
504   File "${AFS_SERVER_BUILDDIR}\kaserver.exe"
505   File "${AFS_SERVER_BUILDDIR}\ptserver.exe"
506   File "${AFS_SERVER_BUILDDIR}\salvager.exe"
507   File "${AFS_SERVER_BUILDDIR}\upclient.exe"
508   File "${AFS_SERVER_BUILDDIR}\upserver.exe"
509   File "${AFS_SERVER_BUILDDIR}\vlserver.exe"
510   File "${AFS_SERVER_BUILDDIR}\volinfo.exe"
511   File "${AFS_SERVER_BUILDDIR}\volserver.exe"
512  
513  ;AFS Server common files
514  SetOutPath "$INSTDIR\Common"
515  File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
516  File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
517  File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
518  File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
519  File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
520  SetOutPath "$INSTDIR\Common"
521  File "${AFS_WININSTALL_DIR}\Msvcr71.dll"
522    Call AFSLangFiles
523    
524   ;Store install folder
525   WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Server" "" $INSTDIR
526   
527   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
528   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "VersionString" ${MUI_VERSION}
529   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Title" "AFS Server"
530   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Description" "AFS Server for Windows"
531   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PathName" "$INSTDIR\Server"
532   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "Software Type" "File System"
533   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
534   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
535   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
536   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
537   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "Title" "AFS Server"
538   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "Description" "AFS Server for Windows"
539   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "Software Type" "File System"
540   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "PathName" "$INSTDIR\Server"
541   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
542   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
543   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Server\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
544
545   ; Install the service
546   GetTempFileName $R0
547   File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
548   nsExec::Exec '$R0 TransarcAFSServer "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe" "OpenAFS AFS Server"'
549   Delete $R0
550   
551   CreateShortCut "$SMPROGRAMS\OpenAFS\Server\Configuration Wizard.lnk" '"$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe" /wizard'
552   
553   WriteUninstaller "$INSTDIR\Uninstall.exe"
554
555 SectionEnd
556
557
558 ;----------------------------
559 ; OpenAFS Control Center
560 Section "AFS Control Center" SecControl
561
562   SetShellVarContext all
563
564    SetOutPath "$INSTDIR\Control Center"
565   File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager.exe"
566   File "${AFS_SERVER_BUILDDIR}\TaAfsAdmSvr.exe"
567   File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager.exe"
568    
569  ;AFS Server common files
570  Call AFSCommon.Install
571  Call AFSLangFiles
572  SetOutPath "$INSTDIR\Common"
573  File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
574  File "${AFS_SERVER_BUILDDIR}\afsbosadmin.dll"
575  File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
576  File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
577  File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
578
579   SetOutPath "$INSTDIR\Common"
580   File "${AFS_WININSTALL_DIR}\Msvcr71.dll"
581       
582    
583    ;Store install folder
584   WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName" $INSTDIR
585   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "VersionString" ${MUI_VERSION}
586   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
587   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
588   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
589   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
590   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
591   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
592   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
593   
594
595   ;Write start menu entries
596   CreateDirectory "$SMPROGRAMS\OpenAFS\Control Center"
597   CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk" "$INSTDIR\Control Center\TaAfsAccountManager.exe"
598   CreateShortCut "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk" "$INSTDIR\Control Center\TaAfsServerManager.exe"
599   
600   WriteUninstaller "$INSTDIR\Uninstall.exe"
601
602 SectionEnd   
603
604
605 ;----------------------------
606 ; OpenAFS Supplemental Documentation
607 Section "Supplemental Documentation" SecDocs
608   SetShellVarContext all
609
610    StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
611    StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
612    StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
613    StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
614    ;StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
615    StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
616    StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
617    StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
618    
619    
620 DoEnglish:
621    SetOutPath "$INSTDIR\Documentation\html"
622    File "..\..\doc\install\Documentation\en_US\html\*"
623    SetOutPath "$INSTDIR\Documentation\html\CmdRef"
624    File "..\..\doc\install\Documentation\en_US\html\CmdRef\*"
625    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
626    File "..\..\doc\install\Documentation\en_US\html\InstallGd\*"
627    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
628    File "..\..\doc\install\Documentation\en_US\html\ReleaseNotes\*"
629    SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
630    File "..\..\doc\install\Documentation\en_US\html\SysAdminGd\*"
631    goto DoneLanguage
632    
633 DoGerman:
634    SetOutPath "$INSTDIR\Documentation"
635    File "..\..\doc\install\Documentation\de_DE\README.TXT"
636    SetOutPath "$INSTDIR\Documentation\html"
637    File "..\..\doc\install\Documentation\de_DE\html\*"
638    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
639    ;File "..\..\doc\install\Documentation\de_DE\html\CmdRef\*"
640    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
641    File "..\..\doc\install\Documentation\de_DE\html\InstallGd\*"
642    ;SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
643    ;File "..\..\doc\install\Documentation\de_DE\html\ReleaseNotes\*"
644    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
645    ;File "..\..\doc\install\Documentation\de_DE\html\SysAdminGd\*"
646    goto DoneLanguage
647    
648 DoSpanish:
649    SetOutPath "$INSTDIR\Documentation"
650    File "..\..\doc\install\Documentation\es_ES\README.TXT"
651    SetOutPath "$INSTDIR\Documentation\html"
652    File "..\..\doc\install\Documentation\es_ES\html\*"
653    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
654    ;File "..\..\doc\install\Documentation\es_ES\html\CmdRef\*"
655    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
656    File "..\..\doc\install\Documentation\es_ES\html\InstallGd\*"
657    ;SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
658    ;File "..\..\doc\install\Documentation\es_ES\html\ReleaseNotes\*"
659    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
660    ;File "..\..\doc\install\Documentation\es_ES\html\SysAdminGd\*"
661    goto DoneLanguage
662
663 DoJapanese:
664    SetOutPath "$INSTDIR\Documentation"
665    File "..\..\doc\install\Documentation\ja_JP\README.TXT"
666    SetOutPath "$INSTDIR\Documentation\html"
667    File "..\..\doc\install\Documentation\ja_JP\html\*"
668    SetOutPath "$INSTDIR\Documentation\html\CmdRef"
669    File "..\..\doc\install\Documentation\ja_JP\html\CmdRef\*"
670    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
671    File "..\..\doc\install\Documentation\ja_JP\html\InstallGd\*"
672    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
673    File "..\..\doc\install\Documentation\ja_JP\html\ReleaseNotes\*"
674    SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
675    File "..\..\doc\install\Documentation\ja_JP\html\SysAdminGd\*"
676    goto DoneLanguage
677    
678 DoKorean:
679    SetOutPath "$INSTDIR\Documentation"
680    File "..\..\doc\install\Documentation\ko_KR\README.TXT"
681    SetOutPath "$INSTDIR\Documentation\html"
682    File "..\..\doc\install\Documentation\ko_KR\html\*"
683    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
684    ;File "..\..\doc\install\Documentation\ko_KR\html\CmdRef\*"
685    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
686    File "..\..\doc\install\Documentation\ko_KR\html\InstallGd\*"
687    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
688    File "..\..\doc\install\Documentation\ko_KR\html\ReleaseNotes\*"
689    SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
690    File "..\..\doc\install\Documentation\ko_KR\html\SysAdminGd\*"
691    goto DoneLanguage
692    
693 DoPortugueseBR:
694    SetOutPath "$INSTDIR\Documentation"
695    File "..\..\doc\install\Documentation\pt_BR\README.TXT"
696    SetOutPath "$INSTDIR\Documentation\html"
697    File "..\..\doc\install\Documentation\pt_BR\html\*"
698    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
699    ;File "..\..\doc\install\Documentation\pt_BR\html\CmdRef\*"
700    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
701    File "..\..\doc\install\Documentation\pt_BR\html\InstallGd\*"
702    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
703    File "..\..\doc\install\Documentation\pt_BR\html\ReleaseNotes\*"
704    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
705    ;File "..\..\doc\install\Documentation\pt_BR\html\SysAdminGd\*"
706    goto DoneLanguage
707
708 DoSimpChinese:
709    SetOutPath "$INSTDIR\Documentation"
710    File "..\..\doc\install\Documentation\zh_CN\README.TXT"
711    SetOutPath "$INSTDIR\Documentation\html"
712    File "..\..\doc\install\Documentation\zh_CN\html\*"
713    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
714    ;File "..\..\doc\install\Documentation\zh_CN\html\CmdRef\*"
715    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
716    File "..\..\doc\install\Documentation\zh_CN\html\InstallGd\*"
717    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
718    File "..\..\doc\install\Documentation\zh_CN\html\ReleaseNotes\*"
719    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
720    ;File "..\..\doc\install\Documentation\zh_CN\html\SysAdminGd\*"
721    goto DoneLanguage
722    
723 DoTradChinese:
724    SetOutPath "$INSTDIR\Documentation"
725    File "..\..\doc\install\Documentation\zh_TW\README.TXT"
726    SetOutPath "$INSTDIR\Documentation\html"
727    File "..\..\doc\install\Documentation\zh_TW\html\*"
728    ;SetOutPath "$INSTDIR\Documentation\html\CmdRef"
729    ;File "..\..\doc\install\Documentation\zh_TW\html\CmdRef\*"
730    SetOutPath "$INSTDIR\Documentation\html\InstallGd"
731    File "..\..\doc\install\Documentation\zh_TW\html\InstallGd\*"
732    SetOutPath "$INSTDIR\Documentation\html\ReleaseNotes"
733    File "..\..\doc\install\Documentation\zh_TW\html\ReleaseNotes\*"
734    ;SetOutPath "$INSTDIR\Documentation\html\SysAdminGd"
735    ;File "..\..\doc\install\Documentation\zh_TW\html\SysAdminGd\*"
736    goto DoneLanguage
737    
738    
739 DoneLanguage:
740    ;Store install folder
741   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation" "" $INSTDIR
742   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "VersionString" ${MUI_VERSION}
743   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MajorVersion" ${MUI_MAJORVERSION}
744   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "MinorVersion" ${MUI_MINORVERSION}
745   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion" "PatchLevel" ${MUI_PATCHLEVEL}
746   WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "VersionString" ${MUI_VERSION}
747   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "MajorVersion" ${MUI_MAJORVERSION}
748   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "MinorVersion" ${MUI_MINORVERSION}
749   WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\${MUI_VERSION}" "PatchLevel" ${MUI_PATCHLEVEL}
750
751   ; Write start menu shortcut
752   SetOutPath "$SMPROGRAMS\OpenAFS"
753   CreateShortCut "$SMPROGRAMS\OpenAFS\Documentation.lnk" "$INSTDIR\Documentation\html\index.htm"
754   
755   
756   WriteUninstaller "$INSTDIR\Uninstall.exe"
757   CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
758 SectionEnd  
759   
760 ;Display the Finish header
761 ;Insert this macro after the sections if you are not using a finish page
762 ;!insertmacro MUI_SECTIONS_FINISHHEADER
763
764 ;--------------------------------
765 ;Installer Functions
766
767 Function .onInit
768
769   !insertmacro MUI_LANGDLL_DISPLAY
770   
771   ; Set the default install options
772         Push $0
773
774    Call ShouldClientInstall
775    Pop $R2
776    
777    StrCmp $R2 "0" NoClient
778    StrCmp $R2 "2" UpgradeClient
779    
780         StrCpy $1 ${secClient} ; Gotta remember which section we are at now...
781         SectionGetFlags ${secClient} $0
782         IntOp $0 $0 | ${SF_SELECTED}
783         SectionSetFlags ${secClient} $0
784         # !insertmacro SelectSection ${secClient}
785    goto skipClient
786 NoClient:
787         StrCpy $1 ${secClient} ; Gotta remember which section we are at now...
788         SectionGetFlags ${secClient} $0
789         IntOp $0 $0 | ${SECTION_OFF}
790         SectionSetFlags ${secClient} $0
791    goto skipClient
792 UpgradeClient:
793         SectionGetFlags ${secClient} $0
794         IntOp $0 $0 | ${SF_SELECTED}
795         SectionSetFlags ${secClient} $0
796    SectionSetText ${secClient} $(UPGRADE_CLIENT)
797    goto skipClient
798
799    
800 skipClient:   
801    
802    
803    Call IsServerInstalled
804    Pop $R2
805    StrCmp $R2 "0" NoServer
806    
807         SectionGetFlags ${secServer} $0
808         IntOp $0 $0 & ${SF_SELECTED}
809         SectionSetFlags ${secServer} $0
810         # !insertmacro UnselectSection ${secServer}
811    goto skipServer
812
813 NoServer:
814         SectionGetFlags ${secServer} $0
815         IntOp $0 $0 & ${SECTION_OFF}
816         SectionSetFlags ${secServer} $0
817         # !insertmacro UnselectSection ${secServer}
818    
819 skipServer:   
820         SectionGetFlags ${secControl} $0
821         IntOp $0 $0 & ${SECTION_OFF}
822         SectionSetFlags ${secControl} $0
823         # !insertmacro UnselectSection ${secControl}
824
825         SectionGetFlags ${secDocs} $0
826         IntOp $0 $0 | ${SF_SELECTED}
827         SectionSetFlags ${secDocs} $0
828         # !insertmacro UnselectSection ${secDocs}
829
830         Pop $0
831   
832   
833   
834   GetTempFilename $0
835   File /oname=$0 CellServPage.ini
836   GetTempFilename $1
837   File /oname=$1 AFSCell.ini
838    
839   
840 FunctionEnd
841
842
843
844
845
846 ;--------------------------------
847 ; These are our cleanup functions
848 Function .onInstFailed
849 Delete $0
850
851 FunctionEnd
852
853 Function .onInstSuccess
854 Delete $0
855
856 FunctionEnd
857
858
859 ;--------------------------------
860 ;Descriptions
861
862 !insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
863   !insertmacro MUI_DESCRIPTION_TEXT ${SecServer} $(DESC_SecServer)
864   !insertmacro MUI_DESCRIPTION_TEXT ${SecClient} $(DESC_SecClient)
865   !insertmacro MUI_DESCRIPTION_TEXT ${SecControl} $(DESC_SecControl)
866   !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs} $(DESC_SecDocs)
867 !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
868  
869 ;--------------------------------
870 ;Uninstaller Section
871
872 Section "Uninstall"
873   
874   SetShellVarContext all
875   ; Delete the AFS service
876   GetTempFileName $R0
877   File /oname=$R0 "${AFS_WININSTALL_DIR}\Service.exe"
878   nsExec::Exec "net stop TransarcAFSDaemon"
879   nsExec::Exec "net stop TransarcAFSServer"
880   nsExec::Exec '$R0 u TransarcAFSDaemon'
881   nsExec::Exec '$R0 u TransarcAFSServer'
882   Delete $R0
883   
884   Push "$INSTDIR\Client\Program"
885   Call un.RemoveFromPath
886   Push "$INSTDIR\Common"
887   Call un.RemoveFromPath
888   
889   ; Delete documentation
890   Delete "$INSTDIR\Documentation\README.TXT"
891   Delete "$INSTDIR\Documentation\html\*"
892   Delete "$INSTDIR\Documentation\html\CmdRef\*"
893   Delete "$INSTDIR\Documentation\html\InstallGd\*"
894   Delete "$INSTDIR\Documentation\html\ReleaseNotes\*"
895   Delete "$INSTDIR\Documentation\html\SysAdminGd\*"
896
897
898   Delete "$WINDIR\afsdcell.ini"
899   
900   Delete "$INSTDIR\Uninstall.exe"
901
902   ; Remove server
903   Delete "$INSTDIR\Server\usr\afs\bin\afskill.exe"
904   Delete "$INSTDIR\Server\usr\afs\bin\afssvrcfg.exe"
905   Delete "$INSTDIR\Server\usr\afs\bin\bosctlsvc.exe"
906   Delete "$INSTDIR\Server\usr\afs\bin\bosserver.exe"
907   Delete "$INSTDIR\Server\usr\afs\bin\buserver.exe"
908   Delete "$INSTDIR\Server\usr\afs\bin\butc.exe"
909   Delete "$INSTDIR\Server\usr\afs\bin\fileserver.exe"
910   Delete "$INSTDIR\Server\usr\afs\bin\fms.exe"
911   Delete "$INSTDIR\Server\usr\afs\bin\kaserver.exe"
912   Delete "$INSTDIR\Server\usr\afs\bin\ptserver.exe"
913   Delete "$INSTDIR\Server\usr\afs\bin\salvager.exe"
914   Delete "$INSTDIR\Server\usr\afs\bin\ServerUninst.dll"
915   Delete "$INSTDIR\Server\usr\afs\bin\upclient.exe"
916   Delete "$INSTDIR\Server\usr\afs\bin\upserver.exe"
917   Delete "$INSTDIR\Server\usr\afs\bin\vlserver.exe"
918   Delete "$INSTDIR\Server\usr\afs\bin\volinfo.exe"
919   Delete "$INSTDIR\Server\usr\afs\bin\volserver.exe"
920   RMDir "$INSTDIR\Server\usr\afs\bin"
921   RmDir /r "$INSTDIR\Server\usr\afs\etc"
922   RmDir /r "$INSTDIR\Server\usr\afs\local"
923   RMDIR /r "$INSTDIR\Server\usr\afs\logs"
924   
925   RMDir /r "$INSTDIR\Documentation\html\CmdRef"
926   RMDir /r "$INSTDIR\Documentation\html\InstallGd"
927   RMDir /r "$INSTDIR\Documentation\html\ReleaseNotes"
928   RMDir /r "$INSTDIR\Documentation\html\SysAdminGd"
929   RMDIr /r "$INSTDIR\Documentation\html"
930   
931   RMDir "$INSTDIR\Documentation"
932   ; Delete DOC short cut
933   RMDir /r "$INSTDIR\Client\Program"
934   RMDir /r "$INSTDIR\Client"
935   RMDir /r "$INSTDIR\Common"
936
937   Delete "$SMPROGRAMS\OpenAFS\Documentation.lnk"
938
939   ; Remove control center
940   Delete "$INSTDIR\Control Center\TaAfsAccountManager.exe"
941   Delete "$INSTDIR\Control Center\TaAfsAdmSvr.exe"
942   Delete "$INSTDIR\Control Center\TaAfsServerManager.exe"
943   Delete "$INSTDIR\Control Center\CCUninst.dll"
944   RMDir "$INSTDIR\Control Center"
945   
946   RMDir "$INSTDIR"
947
948   Delete "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk"
949   Delete "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk"
950   Delete "$SMPROGRAMS\OpenAFS\Control Center\Account Manager.lnk"
951   Delete "$SMPROGRAMS\OpenAFS\Control Center\Server Manager.lnk"
952   RMDIR "$SMPROGRAMS\OpenAFS\Control Center"
953   RMDir /r "$SMPROGRAMS\OpenAFS\Client"
954   RMDir /r "$SMPROGRAMS\OpenAFS"
955   
956   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion"
957   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Client"
958   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation\CurrentVersion"
959   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Supplemental Documentation"
960   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion"
961   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Control Center"
962   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server\CurrentVersion"
963   DeleteRegKey HKLM "${AFS_REGKEY_ROOT}\AFS Server"
964   DeleteRegKey /ifempty HKLM "${AFS_REGKEY_ROOT}"
965   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS"
966
967   ;Display the Finish header
968   !insertmacro MUI_UNFINISHHEADER
969
970 SectionEnd
971
972 ;--------------------------------
973 ;Uninstaller Functions
974
975 Function un.onInit
976
977   ;Get language from registry
978   ReadRegStr $LANGUAGE HKCU "Software\OpenAFS\AFS" "Installer Language"
979   
980 FunctionEnd
981
982
983 ;------------------------------
984 ; Get the CellServDB file from the Internet
985
986 Function afs.GetCellServDB
987
988 ;Check if we should download CellServDB
989 ReadINIStr $R0 $0 "Field 4" "State"
990 StrCmp $R0 "0" CheckIncl
991
992    ReadINIStr $R0 $0 "Field 5" "State"
993    NSISdl::download $R0 "$WINDIR\afsdcell.ini"
994    Pop $R0 ;Get the return value
995    StrCmp $R0 "success" +2
996       MessageBox MB_OK|MB_ICONSTOP "Download failed: $R0"
997    goto done
998 CheckIncl:
999    ReadINIStr $R0 $0 "Field 3" "State"
1000    StrCmp $R0 "0" CheckOther
1001    SetOutPath "$WINDIR"
1002    File "afsdcell.ini"
1003    goto done
1004    
1005 CheckOther:
1006    ReadINIStr $R0 $0 "Field 7" "State"
1007    CopyFiles $R0 "$WINDIR\afsdcell.ini"
1008    
1009 done:
1010
1011 FunctionEnd
1012
1013
1014
1015 ;-------------------------------
1016 ;Do the page to get the CellServDB
1017
1018 Function AFSPageGetCellServDB
1019   ; Set the install options here
1020   
1021 startOver:
1022   WriteINIStr $0 "Field 2" "Flags" "DISABLED"
1023   WriteINIStr $0 "Field 3" "State" "1"
1024   
1025   InstallOptions::dialog $0
1026   Pop $R1
1027   StrCmp $R1 "cancel" exit
1028   StrCmp $R1 "back" done
1029   StrCmp $R1 "success" done
1030 exit: Quit
1031 done:
1032
1033    ; Check that if a file is set, a filename is entered...
1034    ReadINIStr $R0 $0 "Field 6" "State"
1035    StrCmp $R0 "1" CheckFileName Skip
1036 CheckFileName:
1037    ReadINIStr $R0 $0 "Field 7" "State"
1038    IfFileExists $R0 Skip
1039
1040    MessageBox MB_OK|MB_ICONSTOP $(CellError)
1041    WriteINIStr $0 "Field 6" "State" "0"
1042    goto startOver
1043    
1044    Skip:
1045    
1046 FunctionEnd
1047
1048
1049 Function AFSPageGetCellName
1050    Call IsSilent
1051    Pop $R1
1052    StrCmp $R1 "/S" exit
1053   InstallOptions::dialog $1
1054   Pop $R1
1055   StrCmp $R1 "cancel" exit
1056   StrCmp $R1 "back" done
1057   StrCmp $R1 "success" done
1058 exit: Quit
1059 done:
1060 FunctionEnd
1061
1062 ;-------------
1063 ; Common install routines for each module
1064 Function AFSCommon.Install
1065
1066 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayName" "OpenAFS for Windows"
1067 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "UninstallString" "$INSTDIR\uninstall.exe"
1068 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "DisplayVersion" "${MUI_VERSION}"
1069 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenAFS" "URLInfoAbout" "http://www.openafs.org/"
1070
1071 FunctionEnd
1072
1073
1074 ; Check if install should be silent
1075 Function IsSilent
1076   Push $0
1077   Push $CMDLINE
1078   Push "/S"
1079   Call StrStr
1080   Pop $0
1081   StrCpy $0 $0 3
1082   StrCmp $0 "/S" silent
1083   StrCmp $0 "/S " silent
1084     StrCpy $0 0
1085     Goto notsilent
1086   silent: StrCpy $0 1
1087   notsilent: Exch $0
1088 FunctionEnd
1089
1090
1091 ; StrStr function
1092 Function StrStr
1093   Exch $R1 ; st=haystack,old$R1, $R1=needle
1094   Exch    ; st=old$R1,haystack
1095   Exch $R2 ; st=old$R1,old$R2, $R2=haystack
1096   Push $R3
1097   Push $R4
1098   Push $R5
1099   StrLen $R3 $R1
1100   StrCpy $R4 0
1101   ; $R1=needle
1102   ; $R2=haystack
1103   ; $R3=len(needle)
1104   ; $R4=cnt
1105   ; $R5=tmp
1106   loop:
1107     StrCpy $R5 $R2 $R3 $R4
1108     StrCmp $R5 $R1 done
1109     StrCmp $R5 "" done
1110     IntOp $R4 $R4 + 1
1111     Goto loop
1112   done:
1113   StrCpy $R1 $R2 "" $R4
1114   Pop $R5
1115   Pop $R4
1116   Pop $R3
1117   Pop $R2
1118   Exch $R1
1119 FunctionEnd
1120
1121 ;-------------------
1122 ; Get the currently installed version and place it on the stack
1123 ; Modifies: Nothing
1124 Function GetInstalledVersion
1125    Push $R0
1126    Push $R1
1127    Push $R4
1128    
1129    ReadRegDWORD $R0 HKLM "Software\TransarcCorporation\$R2\CurrentVersion" "VersionString"
1130    StrCmp $R0 "" NotTransarc
1131    
1132    
1133 NotTransarc:
1134    ReadRegDWORD $R0 HKLM "${AFS_REGKEY_ROOT}\$R2\CurrentVersion" "VersionString"
1135    StrCmp $R0 "" done
1136    
1137 done:
1138    Pop $R4
1139    Pop $R1
1140    Exch $R0
1141 FunctionEnd
1142
1143
1144 ;-------------------------------
1145 ; Check if the client should be checked for default install
1146 Function ShouldClientInstall
1147    Push $R0
1148    StrCpy $R2 "Client"
1149    Call GetInstalledVersion
1150    Pop $R0
1151    
1152    StrCmp $R0 "" NotInstalled
1153    
1154    StrCpy $R0 "0"
1155    Exch $R0
1156    goto end
1157    
1158 NotInstalled:
1159    StrCpy $R0 "1"
1160    Exch $R0
1161 end:   
1162 FunctionEnd
1163
1164
1165 ; See if AFS Client is installed
1166 Function IsServerInstalled
1167    Push $R0
1168    StrCpy $R2 "AFS Server"
1169    Call GetInstalledVersion
1170    Pop $R0
1171    
1172    StrCmp $R0 "" NotInstalled
1173    
1174    StrCpy $R0 "1"
1175    Exch $R0
1176    goto end
1177    
1178 NotInstalled:
1179    StrCpy $R0 "0"
1180    Exch $R0
1181 end:   
1182 FunctionEnd
1183
1184
1185 ; See if AFS Server is installed
1186 Function IsClientInstalled
1187    Push $R0
1188    StrCpy $R2 "AFS Client"
1189    Call GetInstalledVersion
1190    Pop $R0
1191    
1192    StrCmp $R0 "" NotInstalled
1193    
1194    StrCpy $R0 "1"
1195    Exch $R0
1196    goto end
1197    
1198 NotInstalled:
1199    StrCpy $R0 "0"
1200    Exch $R0
1201 end:   
1202 FunctionEnd
1203
1204
1205
1206 ; See if AFS Documentation is installed
1207 Function IsDocumentationInstalled
1208    Push $R0
1209    StrCpy $R2 "AFS Supplemental Documentation"
1210    Call GetInstalledVersion
1211    Pop $R0
1212    
1213    StrCmp $R0 "" NotInstalled
1214    
1215    StrCpy $R0 "1"
1216    Exch $R0
1217    goto end
1218    
1219 NotInstalled:
1220    StrCpy $R0 "0"
1221    Exch $R0
1222 end:   
1223 FunctionEnd
1224
1225
1226 ; See if COntrol Center is installed
1227 Function IsControlInstalled
1228    Push $R0
1229    StrCpy $R2 "Control_Center"
1230    Call GetInstalledVersion
1231    Pop $R0
1232    
1233    StrCmp $R0 "" NotInstalled
1234    
1235    StrCpy $R0 "1"
1236    Exch $R0
1237    goto end
1238    
1239 NotInstalled:
1240    StrCpy $R0 "0"
1241    Exch $R0
1242 end:   
1243 FunctionEnd
1244
1245
1246 ; GetParameters
1247 ; input, none
1248 ; output, top of stack (replaces, with e.g. whatever)
1249 ; modifies no other variables.
1250
1251 Function GetParameters
1252   Push $R0
1253   Push $R1
1254   Push $R2
1255   StrCpy $R0 $CMDLINE 1
1256   StrCpy $R1 '"'
1257   StrCpy $R2 1
1258   StrCmp $R0 '"' loop
1259     StrCpy $R1 ' ' ; we're scanning for a space instead of a quote
1260   loop:
1261     StrCpy $R0 $CMDLINE 1 $R2
1262     StrCmp $R0 $R1 loop2
1263     StrCmp $R0 "" loop2
1264     IntOp $R2 $R2 + 1
1265     Goto loop
1266   loop2:
1267     IntOp $R2 $R2 + 1
1268     StrCpy $R0 $CMDLINE 1 $R2
1269     StrCmp $R0 " " loop2
1270   StrCpy $R0 $CMDLINE "" $R2
1271   Pop $R2
1272   Pop $R1
1273   Exch $R0
1274 FunctionEnd
1275
1276
1277 ;Check to see if any AFS component is installed
1278 Function IsAnyAFSInstalled
1279
1280 FunctionEnd
1281
1282
1283 ;Install English Language Files
1284 Function AFSLangFiles
1285    ; Common files
1286    SetOutPath "$INSTDIR\Common"
1287    File "${AFS_CLIENT_BUILDDIR}\afs_config.exe"
1288    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll"
1289    File "${AFS_SERVER_BUILDDIR}\afsadminutil.dll"
1290    File "${AFS_DESTDIR}\lib\afsauthent.dll"
1291    File "${AFS_DESTDIR}\lib\afspthread.dll"
1292    File "${AFS_DESTDIR}\lib\afsrpc.dll"
1293    File "${AFS_SERVER_BUILDDIR}\afsclientadmin.dll"
1294    File "${AFS_SERVER_BUILDDIR}\afsprocmgmt.dll"
1295    File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
1296    File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib.dll"
1297
1298    StrCmp $LANGUAGE ${LANG_ENGLISH} DoEnglish
1299    StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
1300    StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
1301    StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
1302    StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
1303    StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
1304    StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
1305    StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
1306    
1307 DoEnglish:
1308
1309    SetOutPath "$INSTDIR\Documentation"
1310    File "..\..\doc\install\Documentation\en_US\README.TXT"
1311
1312    SetOutPath "$INSTDIR\Common"
1313    File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.dll"
1314    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.dll"
1315    File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.dll"
1316    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.dll"
1317    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1033.dll"
1318    File "${AFS_SERVER_BUILDDIR}\afsserver_1033.dll"
1319    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.dll"
1320    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.dll"
1321    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.dll"
1322    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.dll"
1323    goto done
1324
1325 DoGerman:
1326
1327    SetOutPath "$INSTDIR\Documentation"
1328    File "..\..\doc\install\Documentation\de_DE\README.TXT"
1329
1330    SetOutPath "$INSTDIR\Common"
1331    File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.dll"
1332    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.dll"
1333    File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.dll"
1334    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.dll"
1335    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1032.dll"
1336    File "${AFS_SERVER_BUILDDIR}\afsserver_1032.dll"
1337    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.dll"
1338    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.dll"
1339    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.dll"
1340    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.dll"
1341    goto done   
1342
1343 DoSpanish:
1344
1345    SetOutPath "$INSTDIR\Documentation"
1346    File "..\..\doc\install\Documentation\es_ES\README.TXT"
1347
1348    SetOutPath "$INSTDIR\Common"
1349    File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.dll"
1350    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.dll"
1351    File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.dll"
1352    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.dll"
1353    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1034.dll"
1354    File "${AFS_SERVER_BUILDDIR}\afsserver_1034.dll"
1355    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.dll"
1356    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.dll"
1357    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.dll"
1358    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.dll"
1359    goto done
1360
1361 DoJapanese:
1362
1363    SetOutPath "$INSTDIR\Documentation"
1364    File "..\..\doc\install\Documentation\ja_JP\README.TXT"
1365
1366    SetOutPath "$INSTDIR\Common"
1367    File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.dll"
1368    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.dll"
1369    File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.dll"
1370    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.dll"
1371    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1041.dll"
1372    File "${AFS_SERVER_BUILDDIR}\afsserver_1041.dll"
1373    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.dll"
1374    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.dll"
1375    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.dll"
1376    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.dll"
1377    goto done
1378    
1379 DoKorean:
1380
1381    SetOutPath "$INSTDIR\Documentation"
1382    File "..\..\doc\install\Documentation\ko_KR\README.TXT"
1383
1384    SetOutPath "$INSTDIR\Common"
1385    File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.dll"
1386    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.dll"
1387    File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.dll"
1388    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.dll"
1389    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1042.dll"
1390    File "${AFS_SERVER_BUILDDIR}\afsserver_1042.dll"
1391    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.dll"
1392    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.dll"
1393    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.dll"
1394    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.dll"
1395    goto done
1396
1397
1398 DoPortugueseBR:
1399
1400    SetOutPath "$INSTDIR\Documentation"
1401    File "..\..\doc\install\Documentation\pt_BR\README.TXT"
1402
1403    SetOutPath "$INSTDIR\Common"
1404    File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.dll"
1405    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.dll"
1406    File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.dll"
1407    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.dll"
1408    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1046.dll"
1409    File "${AFS_SERVER_BUILDDIR}\afsserver_1046.dll"
1410    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.dll"
1411    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.dll"
1412    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.dll"
1413    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.dll"
1414    goto done
1415    
1416 DoSimpChinese:
1417
1418    SetOutPath "$INSTDIR\Documentation"
1419    File "..\..\doc\install\Documentation\zh_CN\README.TXT"
1420
1421    SetOutPath "$INSTDIR\Common"
1422    File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.dll"
1423    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.dll"
1424    File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.dll"
1425    File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.dll"
1426    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_2052.dll"
1427    File "${AFS_SERVER_BUILDDIR}\afsserver_2052.dll"
1428    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.dll"
1429    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.dll"
1430    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.dll"
1431    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.dll"
1432    goto done
1433    
1434 DoTradChinese:
1435
1436    SetOutPath "$INSTDIR\Documentation"
1437    File "..\..\doc\install\Documentation\zh_TW\README.TXT"
1438
1439    SetOutPath "$INSTDIR\Common"
1440    File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.dll"
1441    File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.dll"
1442    File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.dll"
1443    File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.dll"
1444    ;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1028.dll"
1445    File "${AFS_SERVER_BUILDDIR}\afsserver_1028.dll"
1446    File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.dll"
1447    File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.dll"
1448    ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.dll"
1449    ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.dll"
1450    goto done
1451    
1452 done:
1453 FunctionEnd
1454
1455
1456
1457 ;====================================================
1458 ; AddToPath - Adds the given dir to the search path.
1459 ;        Input - head of the stack
1460 ;        Note - Win9x systems requires reboot
1461 ;====================================================
1462 Function AddToPath
1463   Exch $0
1464   Push $1
1465   
1466   Call IsNT
1467   Pop $1
1468   StrCmp $1 1 AddToPath_NT
1469     ; Not on NT
1470     StrCpy $1 $WINDIR 2
1471     FileOpen $1 "$1\autoexec.bat" a
1472     FileSeek $1 0 END
1473     GetFullPathName /SHORT $0 $0
1474     FileWrite $1 "$\r$\nSET PATH=%PATH%;$0$\r$\n"
1475     FileClose $1
1476     Goto AddToPath_done
1477
1478   AddToPath_NT:
1479     ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
1480     StrCmp $1 "" AddToPath_NTdoIt
1481       StrCpy $0 "$1;$0"
1482       Goto AddToPath_NTdoIt
1483     AddToPath_NTdoIt:
1484       WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0
1485       SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
1486   
1487   AddToPath_done:
1488     Pop $1
1489     Pop $0
1490 FunctionEnd
1491
1492 ;====================================================
1493 ; RemoveFromPath - Remove a given dir from the path
1494 ;     Input: head of the stack
1495 ;====================================================
1496 Function un.RemoveFromPath
1497   Exch $0
1498   Push $1
1499   Push $2
1500   Push $3
1501   Push $4
1502   
1503   Call un.IsNT
1504   Pop $1
1505   StrCmp $1 1 unRemoveFromPath_NT
1506     ; Not on NT
1507     StrCpy $1 $WINDIR 2
1508     FileOpen $1 "$1\autoexec.bat" r
1509     GetTempFileName $4
1510     FileOpen $2 $4 w
1511     GetFullPathName /SHORT $0 $0
1512     StrCpy $0 "SET PATH=%PATH%;$0"
1513     SetRebootFlag true
1514     Goto unRemoveFromPath_dosLoop
1515     
1516     unRemoveFromPath_dosLoop:
1517       FileRead $1 $3
1518       StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoop
1519       StrCmp $3 "$0$\n" unRemoveFromPath_dosLoop
1520       StrCmp $3 "$0" unRemoveFromPath_dosLoop
1521       StrCmp $3 "" unRemoveFromPath_dosLoopEnd
1522       FileWrite $2 $3
1523       Goto unRemoveFromPath_dosLoop
1524     
1525     unRemoveFromPath_dosLoopEnd:
1526       FileClose $2
1527       FileClose $1
1528       StrCpy $1 $WINDIR 2
1529       Delete "$1\autoexec.bat"
1530       CopyFiles /SILENT $4 "$1\autoexec.bat"
1531       Delete $4
1532       Goto unRemoveFromPath_done
1533
1534   unRemoveFromPath_NT:
1535     StrLen $2 $0
1536     ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
1537     Push $1
1538     Push $0
1539     Call un.StrStr ; Find $0 in $1
1540     Pop $0 ; pos of our dir
1541     IntCmp $0 -1 unRemoveFromPath_done
1542       ; else, it is in path
1543       StrCpy $3 $1 $0 ; $3 now has the part of the path before our dir
1544       IntOp $2 $2 + $0 ; $2 now contains the pos after our dir in the path (';')
1545       IntOp $2 $2 + 1 ; $2 now containts the pos after our dir and the semicolon.
1546       StrLen $0 $1
1547       StrCpy $1 $1 $0 $2
1548       StrCpy $3 "$3$1"
1549
1550       WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3
1551       SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
1552   
1553   unRemoveFromPath_done:
1554     Pop $4
1555     Pop $3
1556     Pop $2
1557     Pop $1
1558     Pop $0
1559 FunctionEnd
1560
1561 ;====================================================
1562 ; IsNT - Returns 1 if the current system is NT, 0
1563 ;        otherwise.
1564 ;     Output: head of the stack
1565 ;====================================================
1566 Function IsNT
1567   Push $0
1568   ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
1569   StrCmp $0 "" 0 IsNT_yes
1570   ; we are not NT.
1571   Pop $0
1572   Push 0
1573   Return
1574
1575   IsNT_yes:
1576     ; NT!!!
1577     Pop $0
1578     Push 1
1579 FunctionEnd
1580
1581 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1582 ; Uninstall sutff
1583 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1584
1585
1586 ;====================================================
1587 ; StrStr - Finds a given string in another given string.
1588 ;               Returns -1 if not found and the pos if found.
1589 ;          Input: head of the stack - string to find
1590 ;                      second in the stack - string to find in
1591 ;          Output: head of the stack
1592 ;====================================================
1593 Function un.StrStr
1594   Push $0
1595   Exch
1596   Pop $0 ; $0 now have the string to find
1597   Push $1
1598   Exch 2
1599   Pop $1 ; $1 now have the string to find in
1600   Exch
1601   Push $2
1602   Push $3
1603   Push $4
1604   Push $5
1605
1606   StrCpy $2 -1
1607   StrLen $3 $0
1608   StrLen $4 $1
1609   IntOp $4 $4 - $3
1610
1611   unStrStr_loop:
1612     IntOp $2 $2 + 1
1613     IntCmp $2 $4 0 0 unStrStrReturn_notFound
1614     StrCpy $5 $1 $3 $2
1615     StrCmp $5 $0 unStrStr_done unStrStr_loop
1616
1617   unStrStrReturn_notFound:
1618     StrCpy $2 -1
1619
1620   unStrStr_done:
1621     Pop $5
1622     Pop $4
1623     Pop $3
1624     Exch $2
1625     Exch 2
1626     Pop $0
1627     Pop $1
1628 FunctionEnd
1629
1630 ;====================================================
1631 ; IsNT - Returns 1 if the current system is NT, 0
1632 ;        otherwise.
1633 ;     Output: head of the stack
1634 ;====================================================
1635 Function un.IsNT
1636   Push $0
1637   ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
1638   StrCmp $0 "" 0 unIsNT_yes
1639   ; we are not NT.
1640   Pop $0
1641   Push 0
1642   Return
1643
1644   unIsNT_yes:
1645     ; NT!!!
1646     Pop $0
1647     Push 1
1648 FunctionEnd
1649
1650