!include ${INCLUDEDIR}\nsi-includes.nsi
; Define DEBUG if building a DEBUG installer
-; This version compiles with NSIS v2.0b3 or NSIS v2.0b4
+; This version compiles with NSIS v2.0
-!ifdef v2.0b3 ; v2.0b3
-!ifndef DEBUG ; !DEBUG
-!define MUI_PRODUCT "OpenAFS" ;Define your own software name here
-!else ; DEBUG on v2.0b3
-!define MUI_PRODUCT "OpenAFS Checked/Debug"
-!endif ; End DEBUG
-!define MUI_VERSION ${AFS_VERSION}
-!else ; v2.0b4
-!ifndef DEBUG ; !DEBUG on v2.0b4
+!ifndef RELEASE
+!ifndef DEBUG
Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__}"
-!else ; DEBUG on v2.0b4
+!else
Name "OpenAFS ${AFS_VERSION} ${__DATE__} ${__TIME__} Checked/Debug"
!endif ; End DEBUG/!DEBUG
+!else
+!ifndef DEBUG
+Name "OpenAFS ${AFS_VERSION}"
+!else ; DEBUG
+Name "OpenAFS ${AFS_VERSION} Checked/Debug"
+!endif ; End DEBUG/!DEBUG
+!endif
VIProductVersion "${AFS_VERSION}.00"
VIAddVersionKey "ProductName" "OpenAFS"
VIAddVersionKey "CompanyName" "OpenAFS.org"
!ifdef DEBUG
VIAddVersionKey "PrivateBuild" "Checked/Debug"
!endif ; End DEBUG
-!endif ; End v2.0b4
!include "MUI.nsh"
SilentInstall normal
SetCompressor bzip2
!define MUI_ICON "..\..\client_config\afs_config.ico"
- !ifdef v2.0b3
- !define MUI_UNICON "${NSISDIR}\Contrib\Icons\normal-uninstall.ico"
- !else
!define MUI_UNICON "..\..\client_config\afs_config.ico"
- !endif
!define AFS_COMPANY_NAME "OpenAFS"
!define AFS_PRODUCT_NAME "OpenAFS"
!define AFS_REGKEY_ROOT "Software\TransarcCorporation"
;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
- !define MUI_LANGDLL_REGISTRY_KEY $(AFS_REGKEY_ROOT}
+ !define MUI_LANGDLL_REGISTRY_KEY ${AFS_REGKEY_ROOT}
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
;Where are the files?
!define AFS_CLIENT_LIBDIR "${AFS_DESTDIR}\lib"
!define AFS_SERVER_BUILDDIR "${AFS_DESTDIR}\root.server\usr\afs\bin"
!define AFS_ETC_BUILDDIR "${AFS_DESTDIR}\etc"
+ !define SYSTEMDIR "$%SystemRoot%\System32"
;--------------------------------
;Modern UI Configuration
!define MUI_UNCONFIRMPAGE
-!IFDEF v2.0b3 ; v2.0b3
- !insertmacro MUI_PAGECOMMAND_WELCOME
- ;!insertmacro MUI_PAGECOMMAND_LICENSE
- !insertmacro MUI_PAGECOMMAND_COMPONENTS
- !insertmacro MUI_PAGECOMMAND_DIRECTORY
- Page custom AFSPageGetCellServDB
- Page custom AFSPageGetCellName
- !insertmacro MUI_PAGECOMMAND_INSTFILES
- !insertmacro MUI_PAGECOMMAND_FINISH
-!ELSE ; v2.0b4
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
Page custom AFSPageGetCellName
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
-!ENDIF
;LicenseData "Licenses.rtf"
;--------------------------------
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "TradChinese"
!insertmacro MUI_LANGUAGE "Japanese"
- !ifndef v2.0b3
!insertmacro MUI_LANGUAGE "Korean"
- !endif
;!insertmacro MUI_LANGUAGE "Italian"
;!insertmacro MUI_LANGUAGE "Dutch"
;!insertmacro MUI_LANGUAGE "Danish"
LangString DESC_SecCopyUI ${LANG_SIMPCHINESE} "OpenAFS for Windows: Simplified Chinese"
LangString DESC_SecCopyUI ${LANG_TRADCHINESE} "OpenAFS for Windows: Traditional Chinese description"
LangString DESC_SecCopyUI ${LANG_JAPANESE} "OpenAFS for Windows: Japanese description"
-!ifndef v2.0b3
LangString DESC_SecCopyUI ${LANG_KOREAN} "OpenAFS for Windows: Korean description"
-!endif
;LangString DESC_SecCopyUI ${LANG_ITALIAN} "OpenAFS for Windows: Italian description"
;LangString DESC_SecCopyUI ${LANG_DUTCH} "OpenAFS for Windows: Dutch description"
;LangString DESC_SecCopyUI ${LANG_DANISH} "OpenAFS for Windows: Danish description"
LangString DESC_secClient ${LANG_SIMPCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
LangString DESC_secClient ${LANG_TRADCHINESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
LangString DESC_secClient ${LANG_JAPANESE} "OpenAFS Client: Allows you to access AFS from your Windows PC."
-!ifndef v2.0b3
LangString DESC_secClient ${LANG_KOREAN} "OpenAFS Client: Allows you to access AFS from your Windows PC."
-!endif
LangString DESC_secClient ${LANG_PORTUGUESEBR} "OpenAFS Client: Allows you to access AFS from your Windows PC."
LangString DESC_secServer ${LANG_ENGLISH} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
LangString DESC_secServer ${LANG_SIMPCHINESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
LangString DESC_secServer ${LANG_TRADCHINESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
LangString DESC_secServer ${LANG_JAPANESE} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
-!ifndef v2.0b3
LangString DESC_secServer ${LANG_KOREAN} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
-!endif
LangString DESC_secServer ${LANG_PORTUGUESEBR} "OpenAFS Server: Allows you to run an AFS file server. This option requires the AFS Client."
LangString DESC_secControl ${LANG_ENGLISH} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
LangString DESC_secControl ${LANG_SIMPCHINESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
LangString DESC_secControl ${LANG_TRADCHINESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
LangString DESC_secControl ${LANG_JAPANESE} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
-!ifndef v2.0b3
LangString DESC_secControl ${LANG_KOREAN} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
-!endif
LangString DESC_secControl ${LANG_PORTUGUESEBR} "Control Center: GUI utilities for managing and configuring AFS servers. This option requires the AFS Client."
LangString DESC_secDocs ${LANG_ENGLISH} "Supplemental Documentation: Additional documentation for using OpenAFS."
LangString DESC_secDocs ${LANG_SIMPCHINESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
LangString DESC_secDocs ${LANG_TRADCHINESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
LangString DESC_secDocs ${LANG_JAPANESE} "Supplemental Documentation: Additional documentation for using OpenAFS."
-!ifndef v2.0b3
LangString DESC_secDocs ${LANG_KOREAN} "Supplemental Documentation: Additional documentation for using OpenAFS."
-!endif
LangString DESC_secDocs ${LANG_PORTUGUESEBR} "Supplemental Documentation: Additional documentation for using OpenAFS."
+ LangString DESC_secSDK ${LANG_ENGLISH} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_GERMAN} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_SPANISH} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_SIMPCHINESE} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_TRADCHINESE} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_JAPANESE} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_KOREAN} "SDK: Header files and libraries for developing software with OpenAFS."
+ LangString DESC_secSDK ${LANG_PORTUGUESEBR} "SDK: Header files and libraries for developing software with OpenAFS."
+
; Popup error messages
LangString CellError ${LANG_ENGLISH} "You must specify a valid CellServDB file to copy during install"
LangString CellError ${LANG_GERMAN} "You must specify a valid CellServDB file to copy during the install"
LangString CellError ${LANG_SIMPCHINESE} "You must specify a valid CellServDB file to copy during the install"
LangString CellError ${LANG_TRADCHINESE} "You must specify a valid CellServDB file to copy during the install"
LangString CellError ${LANG_JAPANESE} "You must specify a valid CellServDB file to copy during the install"
-!ifndef v2.0b3
LangString CellError ${LANG_KOREAN} "You must specify a valid CellServDB file to copy during the install"
-!endif
LangString CellError ${LANG_PORTUGUESEBR} "You must specify a valid CellServDB file to copy during the install"
LangString CellNameError ${LANG_ENGLISH} "You must specify a cell name for your client to use."
LangString CellNameError ${LANG_SIMPCHINESE} "You must specify a cell name for your client to use."
LangString CellNameError ${LANG_TRADCHINESE} "You must specify a cell name for your client to use."
LangString CellNameError ${LANG_JAPANESE} "You must specify a cell name for your client to use."
-!ifndef v2.0b3
LangString CellNameError ${LANG_KOREAN} "You must specify a cell name for your client to use."
-!endif
LangString CellNameError ${LANG_PORTUGUESEBR} "You must specify a cell name for your client to use."
LangString URLError ${LANG_ENGLISH} "You must specify a URL if you choose the option to download the CellServDB."
LangString URLError ${LANG_SIMPCHINESE} "You must specify a URL if you choose the option to download the CellServDB."
LangString URLError ${LANG_TRADCHINESE} "You must specify a URL if you choose the option to download the CellServDB."
LangString URLError ${LANG_JAPANESE} "You must specify a URL if you choose the option to download the CellServDB."
-!ifndef v2.0b3
LangString URLError ${LANG_KOREAN} "You must specify a URL if you choose the option to download the CellServDB."
-!endif
LangString URLError ${LANG_PORTUGUESEBR} "You must specify a URL if you choose the option to download the CellServDB."
LangString UPGRADE_CLIENT ${LANG_SIMPCHINESE} "Upgrade AFS Client"
LangString UPGRADE_CLIENT ${LANG_TRADCHINESE} "Upgrade AFS Client"
LangString UPGRADE_CLIENT ${LANG_JAPANESE} "Upgrade AFS Client"
-!ifndef v2.0b3
LangString UPGRADE_CLIENT ${LANG_KOREAN} "Upgrade AFS Client"
-!endif
LangString UPGRADE_CLIENT ${LANG_PORTUGUESEBR} "Upgrade AFS Client"
LangString REINSTALL_CLIENT ${LANG_ENGLISH} "Re-install AFS Client"
LangString REINSTALL_CLIENT ${LANG_SIMPCHINESE} "Re-install AFS Client"
LangString REINSTALL_CLIENT ${LANG_TRADCHINESE} "Re-install AFS Client"
LangString REINSTALL_CLIENT ${LANG_JAPANESE} "Re-install AFS Client"
-!ifndef v2.0b3
LangString REINSTALL_CLIENT ${LANG_KOREAN} "Re-install AFS Client"
-!endif
LangString REINSTALL_CLIENT ${LANG_PORTUGUESEBR} "Re-install AFS Client"
LangString UPGRADE_SERVER ${LANG_ENGLISH} "Upgrade AFS Server"
LangString UPGRADE_SERVER ${LANG_SIMPCHINESE} "Upgrade AFS Server"
LangString UPGRADE_SERVER ${LANG_TRADCHINESE} "Upgrade AFS Server"
LangString UPGRADE_SERVER ${LANG_JAPANESE} "Upgrade AFS Server"
-!ifndef v2.0b3
LangString UPGRADE_SERVER ${LANG_KOREAN} "Upgrade AFS Server"
-!endif
LangString UPGRADE_SERVER ${LANG_PORTUGUESEBR} "Upgrade AFS Server"
LangString REINSTALL_SERVER ${LANG_ENGLISH} "Re-install AFS Server"
LangString REINSTALL_SERVER ${LANG_SIMPCHINESE} "Re-install AFS Server"
LangString REINSTALL_SERVER ${LANG_TRADCHINESE} "Re-install AFS Server"
LangString REINSTALL_SERVER ${LANG_JAPANESE} "Re-install AFS Server"
-!ifndef v2.0b3
LangString REINSTALL_SERVER ${LANG_KOREAN} "Re-install AFS Server"
-!endif
LangString REINSTALL_SERVER ${LANG_PORTUGUESEBR} "Re-install AFS Server"
ReserveFile "CellServPage.ini"
;--------------------------------
; Macros
; Macro - Upgrade DLL File
- ; Written by Joost Verburg
- ; ------------------------
- ;
- ; Example of usage:
- ; !insertmacro UpgradeDLL "dllname.dll" "$SYSDIR\dllname.dll"
- ;
- ; !define UPGRADEDLL_NOREGISTER if you want to upgrade a DLL which cannot be registered
- ;
- ; Note that this macro sets overwrite to ON (the default) when it has been inserted.
- ; If you are using another setting, set it again after inserting the macro.
+; Written by Joost Verburg
+; ------------------------
+;
+; Parameters:
+; LOCALFILE - Location of the new DLL file (on the compiler system)
+; DESTFILE - Location of the DLL file that should be upgraded
+; (on the user's system)
+; TEMPBASEDIR - Directory on the user's system to store a temporary file
+; when the system has to be rebooted.
+; For Win9x support, this should be on the same volume as the
+; DESTFILE!
+; The Windows temp directory could be located on any volume,
+; so you cannot use this directory.
+;
+; Define UPGRADEDLL_NOREGISTER if you want to upgrade a DLL that does not
+; have to be registered.
+;
+; Note: If you want to support Win9x, you can only use
+; short filenames (8.3).
+;
+; Example of usage:
+; !insertmacro UpgradeDLL "dllname.dll" "$SYSDIR\dllname.dll" "$SYSDIR"
+;
+!macro UpgradeDLL LOCALFILE DESTFILE TEMPBASEDIR
- !macro UpgradeDLL LOCALFILE DESTFILE
+ Push $R0
+ Push $R1
+ Push $R2
+ Push $R3
+ Push $R4
+ Push $R5
- Push $R0
- Push $R1
- Push $R2
- Push $R3
+ ;------------------------
+ ;Unique number for labels
- ;------------------------
- ;Check file and version
+ !define UPGRADEDLL_UNIQUE ${__LINE__}
- IfFileExists "${DESTFILE}" "" "copy_${LOCALFILE}"
+ ;------------------------
+ ;Copy the parameters used on run-time to a variable
+ ;This allows the usage of variables as paramter
- ClearErrors
- GetDLLVersionLocal "${LOCALFILE}" $R0 $R1
- GetDLLVersion "${DESTFILE}" $R2 $R3
- IfErrors "upgrade_${LOCALFILE}"
+ StrCpy $R4 "${DESTFILE}"
+ StrCpy $R5 "${TEMPBASEDIR}"
- IntCmpU $R0 $R2 "" "done_${LOCALFILE}" "upgrade_${LOCALFILE}"
- IntCmpU $R1 $R3 "done_${LOCALFILE}" "done_${LOCALFILE}" "upgrade_${LOCALFILE}"
+ ;------------------------
+ ;Check file and version
- ;------------------------
- ;Let's upgrade the DLL!
+ IfFileExists $R4 0 upgradedll.copy_${UPGRADEDLL_UNIQUE}
- SetOverwrite try
+ ClearErrors
+ GetDLLVersionLocal "${LOCALFILE}" $R0 $R1
+ GetDLLVersion $R4 $R2 $R3
+ IfErrors upgradedll.upgrade_${UPGRADEDLL_UNIQUE}
- "upgrade_${LOCALFILE}:"
- !ifndef UPGRADEDLL_NOREGISTER
- ;Unregister the DLL
- UnRegDLL "${DESTFILE}"
- !endif
+ IntCmpU $R0 $R2 0 upgradedll.done_${UPGRADEDLL_UNIQUE} \
+ upgradedll.upgrade_${UPGRADEDLL_UNIQUE}
+ IntCmpU $R1 $R3 upgradedll.done_${UPGRADEDLL_UNIQUE} \
+ upgradedll.done_${UPGRADEDLL_UNIQUE} \
+ upgradedll.upgrade_${UPGRADEDLL_UNIQUE}
- ;------------------------
- ;Try to copy the DLL directly
+ ;------------------------
+ ;Let's upgrade the DLL!
- ClearErrors
- StrCpy $R0 "${DESTFILE}"
- Call ":file_${LOCALFILE}"
- IfErrors "" "noreboot_${LOCALFILE}"
+ SetOverwrite try
- ;------------------------
- ;DLL is in use. Copy it to a temp file and Rename it on reboot.
+ upgradedll.upgrade_${UPGRADEDLL_UNIQUE}:
+ !ifndef UPGRADEDLL_NOREGISTER
+ ;Unregister the DLL
+ UnRegDLL $R4
+ !endif
- GetTempFileName $R0
- Call ":file_${LOCALFILE}"
- Rename /REBOOTOK $R0 "${DESTFILE}"
+ ;------------------------
+ ;Try to copy the DLL directly
- ;------------------------
- ;Register the DLL on reboot
+ ClearErrors
+ StrCpy $R0 $R4
+ Call :upgradedll.file_${UPGRADEDLL_UNIQUE}
+ IfErrors 0 upgradedll.noreboot_${UPGRADEDLL_UNIQUE}
- !ifndef UPGRADEDLL_NOREGISTER
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \
- "Register ${DESTFILE}" '"$SYSDIR\rundll32.exe" "${DESTFILE},DllRegisterServer"'
- !endif
+ ;------------------------
+ ;DLL is in use. Copy it to a temp file and Rename it on reboot.
- Goto "done_${LOCALFILE}"
+ GetTempFileName $R0 $R5
+ Call :upgradedll.file_${UPGRADEDLL_UNIQUE}
+ Rename /REBOOTOK $R0 $R4
- ;------------------------
- ;DLL does not exist - just extract
+ ;------------------------
+ ;Register the DLL on reboot
- "copy_${LOCALFILE}:"
- StrCpy $R0 "${DESTFILE}"
- Call ":file_${LOCALFILE}"
+ !ifndef UPGRADEDLL_NOREGISTER
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\RunOnce" \
+ "Register $R4" 'rundll32.exe "$R4",DllRegisterServer'
+ !endif
- ;------------------------
- ;Register the DLL
+ Goto upgradedll.done_${UPGRADEDLL_UNIQUE}
- "noreboot_${LOCALFILE}:"
- !ifndef UPGRADEDLL_NOREGISTER
- RegDLL "${DESTFILE}"
- !endif
+ ;------------------------
+ ;DLL does not exist - just extract
- ;------------------------
- ;Done
+ upgradedll.copy_${UPGRADEDLL_UNIQUE}:
+ StrCpy $R0 $R4
+ Call :upgradedll.file_${UPGRADEDLL_UNIQUE}
- "done_${LOCALFILE}:"
+ ;------------------------
+ ;Register the DLL
- Pop $R3
- Pop $R2
- Pop $R1
- Pop $R0
+ upgradedll.noreboot_${UPGRADEDLL_UNIQUE}:
+ !ifndef UPGRADEDLL_NOREGISTER
+ RegDLL $R4
+ !endif
- ;------------------------
- ;End
+ ;------------------------
+ ;Done
- Goto "end_${LOCALFILE}"
+ upgradedll.done_${UPGRADEDLL_UNIQUE}:
- ;------------------------
- ;Called to extract the DLL
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Pop $R0
- "file_${LOCALFILE}:"
- File /oname=$R0 "${LOCALFILE}"
- Return
+ ;------------------------
+ ;End
- "end_${LOCALFILE}:"
+ Goto upgradedll.end_${UPGRADEDLL_UNIQUE}
;------------------------
- ;Set overwrite to default
- ;(was set to TRY above)
+ ;Called to extract the DLL
- SetOverwrite on
+ upgradedll.file_${UPGRADEDLL_UNIQUE}:
+ File /oname=$R0 "${LOCALFILE}"
+ Return
- !macroend
+ upgradedll.end_${UPGRADEDLL_UNIQUE}:
+
+ ;------------------------
+ ;Restore settings
+
+ SetOverwrite lastused
+
+ !undef UPGRADEDLL_UNIQUE
+
+!macroend
;--------------------------------
;Only useful for BZIP2 compression
!insertmacro MUI_RESERVEFILE_LANGDLL
+;--------------------------------
+; User Variables
+
+var REG_SUB_KEY
+var REG_VALUE
+var REG_DATA_1
+var REG_DATA_2
+var REG_DATA_3
+
;--------------------------------
;Installer Sections
SetShellVarContext all
; Stop any running services or we can't replace the files
; Stop the running processes
- ;GetTempFileName $R0
- ;File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
- ;nsExec::Exec '$R0 afscreds.exe'
+ GetTempFileName $R0
+ File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
+ nsExec::Exec '$R0 afscreds.exe'
+ nsExec::Exec "afscreds.exe -z"
!IFDEF INSTALL_KFW
;nsExec::Exec '$R0 krbcc32s.exe'
!ENDIF
; Do client components
SetOutPath "$INSTDIR\Client\Program"
File "${AFS_CLIENT_BUILDDIR}\afsshare.exe"
- File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
- File "${AFS_CLIENT_BUILDDIR}\libosi.dll"
- File "${AFS_BUILD_INCDIR}\afs\kautils.h"
- File "${AFS_CLIENT_BUILDDIR}\libafsconf.dll"
+ !define UPGRADEDLL_NOREGISTER
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\libosi.dll" "$INSTDIR\Client\Program\libosi.dll" "$INSTDIR"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\libafsconf.dll" "$INSTDIR\Client\Program\libafsconf.dll" "$INSTDIR"
File "${AFS_CLIENT_BUILDDIR}\klog.exe"
File "${AFS_CLIENT_BUILDDIR}\tokens.exe"
File "${AFS_CLIENT_BUILDDIR}\unlog.exe"
File "${AFS_CLIENT_BUILDDIR}\fs.exe"
- File "${AFS_CLIENT_LIBDIR}\libafsconf.lib"
- File "${AFS_CLIENT_LIBDIR}\afsauthent.lib"
File "${AFS_CLIENT_BUILDDIR}\afscreds.exe"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll" "$INSTDIR\Client\Program\afs_shl_ext.dll" "$INSTDIR"
File "${AFS_BUILD_INCDIR}\afs\auth.h"
File "${AFS_CLIENT_BUILDDIR}\afsd_service.exe"
- File "${AFS_CLIENT_BUILDDIR}\afslogon.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afslogon.dll" "$INSTDIR\Client\Program\afslogon.dll" "$INSTDIR"
File "${AFS_CLIENT_BUILDDIR}\symlink.exe"
File "${AFS_DESTDIR}\bin\kpasswd.exe"
File "${AFS_SERVER_BUILDDIR}\pts.exe"
File "${AFS_DESTDIR}\etc\backup.pdb"
!endif
- ; Client_headers
- SetOutPath "$INSTDIR\Client\Program\Include"
- File "${AFS_BUILD_INCDIR}\lock.h"
- File "${AFS_BUILD_INCDIR}\lwp.h"
- File "${AFS_BUILD_INCDIR}\preempt.h"
- File "${AFS_BUILD_INCDIR}\timer.h"
- File "${AFS_BUILD_INCDIR}\des.h"
- File "${AFS_BUILD_INCDIR}\des_conf.h"
- File "${AFS_BUILD_INCDIR}\mit-cpyright.h"
- ;File "${AFS_BUILD_INCDIR}\des-odd.h"
- File "${AFS_BUILD_INCDIR}\crypt.h"
- File "${AFS_BUILD_INCDIR}\pthread.h"
- File "${AFS_BUILD_INCDIR}\dbrpc.h"
- File "${AFS_BUILD_INCDIR}\basic.h"
- File "${AFS_BUILD_INCDIR}\osidebug.h"
- File "${AFS_BUILD_INCDIR}\osiltype.h"
- File "${AFS_BUILD_INCDIR}\osistatl.h"
- File "${AFS_BUILD_INCDIR}\trylock.h"
- File "${AFS_BUILD_INCDIR}\main.h"
- File "${AFS_BUILD_INCDIR}\osibasel.h"
- File "${AFS_BUILD_INCDIR}\osifd.h"
- File "${AFS_BUILD_INCDIR}\osiqueue.h"
- File "${AFS_BUILD_INCDIR}\osiutils.h"
- File "${AFS_BUILD_INCDIR}\osi.h"
- File "${AFS_BUILD_INCDIR}\osidb.h"
- File "${AFS_BUILD_INCDIR}\osilog.h"
- File "${AFS_BUILD_INCDIR}\osisleep.h"
- File "${AFS_BUILD_INCDIR}\perf.h"
- File "${AFS_BUILD_INCDIR}\ubik.h"
- File "${AFS_BUILD_INCDIR}\ubik_int.h"
-
-
-
- SetOutPath "$INSTDIR\Client\Program\Include\afs"
- File "${AFS_BUILD_INCDIR}\afs\afs_args.h"
- File "${AFS_BUILD_INCDIR}\afs\debug.h"
- File "${AFS_BUILD_INCDIR}\afs\param.h"
- File "${AFS_BUILD_INCDIR}\afs\afs_sysnames.h"
- ;File "${AFS_BUILD_INCDIR}\afs\permit_xprt.h"
- File "${AFS_BUILD_INCDIR}\afs\stds.h"
- File "${AFS_BUILD_INCDIR}\afs\icl.h"
- File "${AFS_BUILD_INCDIR}\afs\procmgmt.h"
- File "${AFS_BUILD_INCDIR}\afs\afsutil.h"
- File "${AFS_BUILD_INCDIR}\afs\assert.h"
- File "${AFS_BUILD_INCDIR}\afs\dirent.h"
- File "${AFS_BUILD_INCDIR}\afs\errors.h"
- File "${AFS_BUILD_INCDIR}\afs\itc.h"
- File "${AFS_BUILD_INCDIR}\afs\vice.h"
- File "${AFS_BUILD_INCDIR}\afs\pthread_glock.h"
- File "${AFS_BUILD_INCDIR}\afs\errmap_nt.h"
- File "${AFS_BUILD_INCDIR}\afs\dirpath.h"
- File "${AFS_BUILD_INCDIR}\afs\ktime.h"
- File "${AFS_BUILD_INCDIR}\afs\fileutil.h"
- File "${AFS_BUILD_INCDIR}\afs\secutil_nt.h"
- File "${AFS_BUILD_INCDIR}\afs\com_err.h"
- File "${AFS_BUILD_INCDIR}\afs\error_table.h"
- ;File "${AFS_BUILD_INCDIR}\afs\mit_sipb-cr.h"
- File "${AFS_BUILD_INCDIR}\afs\cmd.h"
- File "${AFS_BUILD_INCDIR}\afs\rxgen_consts.h"
- File "${AFS_BUILD_INCDIR}\afs\afsint.h"
- File "${AFS_BUILD_INCDIR}\afs\afscbint.h"
- File "${AFS_BUILD_INCDIR}\afs\audit.h"
- File "${AFS_BUILD_INCDIR}\afs\acl.h"
- File "${AFS_BUILD_INCDIR}\afs\prs_fs.h"
- File "${AFS_BUILD_INCDIR}\afs\afsd.h"
- File "${AFS_BUILD_INCDIR}\afs\cm.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_buf.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_cell.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_conn.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_ioctl.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_scache.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_server.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_user.h"
- File "${AFS_BUILD_INCDIR}\afs\cm_utils.h"
- File "${AFS_BUILD_INCDIR}\afs\fs_utils.h"
- File "${AFS_BUILD_INCDIR}\afs\krb.h"
- File "${AFS_BUILD_INCDIR}\afs\krb_prot.h"
- File "${AFS_BUILD_INCDIR}\afs\smb.h"
- File "${AFS_BUILD_INCDIR}\afs\smb3.h"
- File "${AFS_BUILD_INCDIR}\afs\smb_iocons.h"
- File "${AFS_BUILD_INCDIR}\afs\smb_ioctl.h"
- File "${AFS_BUILD_INCDIR}\afs\afsrpc.h"
- File "${AFS_BUILD_INCDIR}\afs\afssyscalls.h"
- File "${AFS_BUILD_INCDIR}\afs\pioctl_nt.h"
- File "${AFS_BUILD_INCDIR}\afs\auth.h"
- File "${AFS_BUILD_INCDIR}\afs\cellconfig.h"
- File "${AFS_BUILD_INCDIR}\afs\keys.h"
- File "${AFS_BUILD_INCDIR}\afs\ptserver.h"
- File "${AFS_BUILD_INCDIR}\afs\ptint.h"
- File "${AFS_BUILD_INCDIR}\afs\pterror.h"
- File "${AFS_BUILD_INCDIR}\afs\ptint.h"
- File "${AFS_BUILD_INCDIR}\afs\pterror.h"
- File "${AFS_BUILD_INCDIR}\afs\ptclient.h"
- File "${AFS_BUILD_INCDIR}\afs\prserver.h"
- File "${AFS_BUILD_INCDIR}\afs\print.h"
- File "${AFS_BUILD_INCDIR}\afs\prerror.h"
- File "${AFS_BUILD_INCDIR}\afs\prclient.h"
- File "${AFS_BUILD_INCDIR}\afs\kautils.h"
- File "${AFS_BUILD_INCDIR}\afs\kauth.h"
- File "${AFS_BUILD_INCDIR}\afs\kaport.h"
- File "${AFS_BUILD_INCDIR}\afs\vl_opcodes.h"
- File "${AFS_BUILD_INCDIR}\afs\vlserver.h"
- File "${AFS_BUILD_INCDIR}\afs\vldbint.h"
- File "${AFS_BUILD_INCDIR}\afs\usd.h"
- File "${AFS_BUILD_INCDIR}\afs\bubasics.h"
- File "${AFS_BUILD_INCDIR}\afs\butc.h"
- File "${AFS_BUILD_INCDIR}\afs\bumon.h"
- File "${AFS_BUILD_INCDIR}\afs\butm.h"
- File "${AFS_BUILD_INCDIR}\afs\tcdata.h"
- File "${AFS_BUILD_INCDIR}\afs\budb.h"
- ;File "${AFS_BUILD_INCDIR}\afs\budb_errors.h"
- File "${AFS_BUILD_INCDIR}\afs\budb_client.h"
- File "${AFS_BUILD_INCDIR}\afs\dir.h"
- File "${AFS_BUILD_INCDIR}\afs\fssync.h"
- File "${AFS_BUILD_INCDIR}\afs\ihandle.h"
- File "${AFS_BUILD_INCDIR}\afs\nfs.h"
- File "${AFS_BUILD_INCDIR}\afs\ntops.h"
- File "${AFS_BUILD_INCDIR}\afs\partition.h"
- File "${AFS_BUILD_INCDIR}\afs\viceinode.h"
- File "${AFS_BUILD_INCDIR}\afs\vnode.h"
- File "${AFS_BUILD_INCDIR}\afs\volume.h"
- File "${AFS_BUILD_INCDIR}\afs\voldefs.h"
- File "${AFS_BUILD_INCDIR}\afs\volser.h"
- File "${AFS_BUILD_INCDIR}\afs\volint.h"
- File "${AFS_BUILD_INCDIR}\afs\fs_stats.h"
- File "${AFS_BUILD_INCDIR}\afs\bosint.h"
- File "${AFS_BUILD_INCDIR}\afs\bnode.h"
-
-
- SetOutPath "$INSTDIR\Client\Program\Include\rx"
- File "${AFS_BUILD_INCDIR}\rx\rx.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_packet.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_user.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_event.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_queue.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_globals.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_clock.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_misc.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_multi.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_null.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_lwp.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_pthread.h"
- File "${AFS_BUILD_INCDIR}\rx\rx_xmit_nt.h"
- File "${AFS_BUILD_INCDIR}\rx\xdr.h"
- File "${AFS_BUILD_INCDIR}\rx\rxkad.h"
-
-
- ; Client Sample
- SetOutPath "$INSTDIR\Client\Program\Sample"
- File "..\..\afsd\sample\token.c"
-
Call AFSLangFiles
DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Client\CurrentVersion" "Debug"
DeleteRegValue HKLM "${AFS_REGKEY_ROOT}\AFS Client\${AFS_VERSION}" "Debug"
!endif
- ; Set network settings
- WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled" 0
+
+ ; On Windows 2000 work around KB301673. This is fixed in Windows XP and 2003
+ Call GetWindowsVersion
+ Pop $R1
+ StrCmp $R1 "2000" +1 +2
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\NetBT\Parameters" "SmbDeviceEnabled" 0
;Write start menu entries
CreateDirectory "$SMPROGRAMS\OpenAFS\Client"
CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
- CreateShortCut "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk" "$INSTDIR\Client\Program\afscreds.exe"
- CreateShortCut "$SMSTARTUP\AFS Credentials.lnk" "$INSTDIR\Client\Program\afscreds.exe"
+ CreateShortCut "$SMPROGRAMS\OpenAFS\Client\Authentication.lnk" "$INSTDIR\Client\Program\afscreds.exe" "-A -M -N -Q"
+ CreateShortCut "$SMSTARTUP\AFS Credentials.lnk" "$INSTDIR\Client\Program\afscreds.exe" "-A -M -N -Q"
Push "$INSTDIR\Client\Program"
Call AddToPath
;IMPORTANT! If we are not refreshing the config files, do NOT remove the service
;Don't re-install because it must be present or we wouldn't have passed the Reg check
- ReadRegStr $R2 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "Cell"
+ ReadRegStr $R2 HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "Cell"
StrCmp $R2 "" +1 skipremove
nsExec::Exec '$INSTDIR\Common\Service.exe u TransarcAFSDaemon'
nsExec::Exec '$INSTDIR\Common\Service.exe TransarcAFSDaemon "$INSTDIR\Client\Program\afsd_service.exe" "OpenAFS Client Service"'
Delete "$INSTDIR\Common\service.exe"
; Daemon entries
- WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "(Default)" ""
+ WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon" "" ""
+ WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "ProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
+ WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "AuthentProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Class" 2
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "VerboseLogging" 10
ReadINIStr $R0 $1 "Field 7" "State"
ReadINIStr $R1 $1 "Field 9" "State"
; Complicated way to do $R1 = ($R1 *2) + $R0
WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonOptions" $R1
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "LogonScript" "$INSTDIR\Client\Program\afscreds.exe -:%s -x"
WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "Name" "OpenAFSDaemon"
- WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" "ProviderPath" "$INSTDIR\Client\Program\afslogon.dll"
;Write cell name
ReadINIStr $R0 $1 "Field 2" "State"
WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "SecurityLevel" $R0
ReadINIStr $R0 $1 "Field 5" "State"
WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "FreelanceClient" $R0
- WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "UseDNS" 0
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "UseDNS" 1
+ WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "NetbiosName" "AFS"
+ WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "MountRoot" "/afs"
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "RxMaxMTU" 1260
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "IsGateway" 0
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "HideDotFiles" 1
+ WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "TruncateNetbios" "on"
+!IFDEF DEBUG
+ WriteRegDWORD HKLM "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" "NoFindLanaByName" 1
+!ENDIF
+
+ strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon"
+ strcpy $REG_VALUE "DependOnGroup"
+ strcpy $REG_DATA_1 "PNP_TDI"
+ strcpy $REG_DATA_2 ""
+ strcpy $REG_DATA_3 ""
+ Call RegWriteMultiStr
+ strcpy $REG_SUB_KEY "SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider"
+ strcpy $REG_VALUE "DependOnService"
+ strcpy $REG_DATA_1 "Tcpip"
+ strcpy $REG_DATA_2 "NETBIOS"
+ strcpy $REG_DATA_3 "RpcSs"
+ Call RegWriteMultiStr
+
SetRebootFlag true
WriteUninstaller "$INSTDIR\Uninstall.exe"
SetShellVarContext all
; Stop any running services or we can't replace the files
; Stop the running processes
- ;GetTempFileName $R0
- ;File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
- ;nsExec::Exec '$R0 afscreds.exe'
+ GetTempFileName $R0
+ File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe" ; Might not have the MSVCR71.DLL file to run
+ nsExec::Exec '$R0 afscreds.exe'
+ nsExec::Exec "afscreds.exe -z"
!IFDEF INSTALL_KFW
;nsExec::Exec '$R0 krbcc32s.exe'
!ENDIF
SetOutPath "$INSTDIR\Common"
!IFDEF DEBUG
!IFDEF CL_1310
- File "${AFS_WININSTALL_DIR}\msvcr71d.dll"
- File "${AFS_WININSTALL_DIR}\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcr71d.dll"
+ File "${SYSTEMDIR}\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcp71d.dll"
+ File "${SYSTEMDIR}\msvcp71d.pdb"
+ File "${SYSTEMDIR}\mfc71d.dll"
+ File "${SYSTEMDIR}\mfc71d.pdb"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
!ELSE
!IFDEF CL_1300
- File "${AFS_WININSTALL_DIR}\msvcrtd.dll"
- File "${AFS_WININSTALL_DIR}\msvcrtd.pdb"
+ File "${SYSTEMDIR}\msvcr70d.dll"
+ File "${SYSTEMDIR}\msvcr70d.pdb"
+ File "${SYSTEMDIR}\msvcp70d.dll"
+ File "${SYSTEMDIR}\msvcp70d.pdb"
+ File "${SYSTEMDIR}\mfc70d.dll"
+ File "${SYSTEMDIR}\mfc70d.pdb"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- File "${AFS_WININSTALL_DIR}\msvcrtd.dll"
- File "${AFS_WININSTALL_DIR}\msvcrtd.pdb"
+ File "${SYSTEMDIR}\mfc42d.dll"
+ File "${SYSTEMDIR}\mfc42d.pdb"
+ File "${SYSTEMDIR}\msvcp60d.dll"
+ File "${SYSTEMDIR}\msvcp60d.pdb"
+ File "${SYSTEMDIR}\msvcrtd.dll"
+ File "${SYSTEMDIR}\msvcrtd.pdb"
!ENDIF
!ENDIF
!ELSE
!IFDEF CL_1310
- File "${AFS_WININSTALL_DIR}\msvcr71.dll"
+ File "${SYSTEMDIR}\mfc71.dll"
+ File "${SYSTEMDIR}\msvcr71.dll"
+ File "${SYSTEMDIR}\msvcp71.dll"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
!ELSE
!IFDEF CL_1300
- File "${AFS_WININSTALL_DIR}\msvcrt.dll"
+ File "${SYSTEMDIR}\mfc70.dll"
+ File "${SYSTEMDIR}\msvcr70.dll"
+ File "${SYSTEMDIR}\msvcp70.dll"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- File "${AFS_WININSTALL_DIR}\msvcrt.dll"
-!ENDIF
+ File "${SYSTEMDIR}\mfc42.dll"
+ File "${SYSTEMDIR}\msvcp60.dll"
+ File "${SYSTEMDIR}\msvcrt.dll"
!ENDIF
!ENDIF
-
+!ENDIF
;Store install folder
WriteRegStr HKCU "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "PathName" $INSTDIR
WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS Control Center\CurrentVersion" "VersionString" ${AFS_VERSION}
StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
-!ifndef v2.0b3
StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
-!endif
StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
WriteUninstaller "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
+ Call AFSCommon.Install
SectionEnd
+
+Section "Software Development Kit (SDK)" secSDK
+
+ SetOutPath "$INSTDIR\Client\Program"
+
+ File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
+ File "${AFS_BUILD_INCDIR}\afs\kautils.h"
+ File "${AFS_CLIENT_LIBDIR}\libafsconf.lib"
+ File "${AFS_CLIENT_LIBDIR}\afsauthent.lib"
+
+ ; Client_headers
+ SetOutPath "$INSTDIR\Client\Program\Include"
+ File "${AFS_BUILD_INCDIR}\lock.h"
+ File "${AFS_BUILD_INCDIR}\lwp.h"
+ File "${AFS_BUILD_INCDIR}\preempt.h"
+ File "${AFS_BUILD_INCDIR}\timer.h"
+ File "${AFS_BUILD_INCDIR}\des.h"
+ File "${AFS_BUILD_INCDIR}\des_conf.h"
+ File "${AFS_BUILD_INCDIR}\mit-cpyright.h"
+ ;File "${AFS_BUILD_INCDIR}\des-odd.h"
+ File "${AFS_BUILD_INCDIR}\crypt.h"
+ File "${AFS_BUILD_INCDIR}\pthread.h"
+ File "${AFS_BUILD_INCDIR}\dbrpc.h"
+ File "${AFS_BUILD_INCDIR}\basic.h"
+ File "${AFS_BUILD_INCDIR}\osidebug.h"
+ File "${AFS_BUILD_INCDIR}\osiltype.h"
+ File "${AFS_BUILD_INCDIR}\osistatl.h"
+ File "${AFS_BUILD_INCDIR}\trylock.h"
+ File "${AFS_BUILD_INCDIR}\main.h"
+ File "${AFS_BUILD_INCDIR}\osibasel.h"
+ File "${AFS_BUILD_INCDIR}\osifd.h"
+ File "${AFS_BUILD_INCDIR}\osiqueue.h"
+ File "${AFS_BUILD_INCDIR}\osiutils.h"
+ File "${AFS_BUILD_INCDIR}\osi.h"
+ File "${AFS_BUILD_INCDIR}\osidb.h"
+ File "${AFS_BUILD_INCDIR}\osilog.h"
+ File "${AFS_BUILD_INCDIR}\osisleep.h"
+ File "${AFS_BUILD_INCDIR}\perf.h"
+ File "${AFS_BUILD_INCDIR}\ubik.h"
+ File "${AFS_BUILD_INCDIR}\ubik_int.h"
+
+
+
+ SetOutPath "$INSTDIR\Client\Program\Include\afs"
+ File "${AFS_BUILD_INCDIR}\afs\afs_args.h"
+ File "${AFS_BUILD_INCDIR}\afs\debug.h"
+ File "${AFS_BUILD_INCDIR}\afs\param.h"
+ File "${AFS_BUILD_INCDIR}\afs\afs_sysnames.h"
+ ;File "${AFS_BUILD_INCDIR}\afs\permit_xprt.h"
+ File "${AFS_BUILD_INCDIR}\afs\stds.h"
+ File "${AFS_BUILD_INCDIR}\afs\icl.h"
+ File "${AFS_BUILD_INCDIR}\afs\procmgmt.h"
+ File "${AFS_BUILD_INCDIR}\afs\afsutil.h"
+ File "${AFS_BUILD_INCDIR}\afs\assert.h"
+ File "${AFS_BUILD_INCDIR}\afs\dirent.h"
+ File "${AFS_BUILD_INCDIR}\afs\errors.h"
+ File "${AFS_BUILD_INCDIR}\afs\itc.h"
+ File "${AFS_BUILD_INCDIR}\afs\vice.h"
+ File "${AFS_BUILD_INCDIR}\afs\pthread_glock.h"
+ File "${AFS_BUILD_INCDIR}\afs\errmap_nt.h"
+ File "${AFS_BUILD_INCDIR}\afs\dirpath.h"
+ File "${AFS_BUILD_INCDIR}\afs\ktime.h"
+ File "${AFS_BUILD_INCDIR}\afs\fileutil.h"
+ File "${AFS_BUILD_INCDIR}\afs\secutil_nt.h"
+ File "${AFS_BUILD_INCDIR}\afs\com_err.h"
+ File "${AFS_BUILD_INCDIR}\afs\error_table.h"
+ ;File "${AFS_BUILD_INCDIR}\afs\mit_sipb-cr.h"
+ File "${AFS_BUILD_INCDIR}\afs\cmd.h"
+ File "${AFS_BUILD_INCDIR}\afs\rxgen_consts.h"
+ File "${AFS_BUILD_INCDIR}\afs\afsint.h"
+ File "${AFS_BUILD_INCDIR}\afs\afscbint.h"
+ File "${AFS_BUILD_INCDIR}\afs\audit.h"
+ File "${AFS_BUILD_INCDIR}\afs\acl.h"
+ File "${AFS_BUILD_INCDIR}\afs\prs_fs.h"
+ File "${AFS_BUILD_INCDIR}\afs\afsd.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_buf.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_cell.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_config.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_conn.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_ioctl.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_scache.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_server.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_user.h"
+ File "${AFS_BUILD_INCDIR}\afs\cm_utils.h"
+ File "${AFS_BUILD_INCDIR}\afs\fs_utils.h"
+ File "${AFS_BUILD_INCDIR}\afs\krb.h"
+ File "${AFS_BUILD_INCDIR}\afs\krb_prot.h"
+ File "${AFS_BUILD_INCDIR}\afs\smb.h"
+ File "${AFS_BUILD_INCDIR}\afs\smb3.h"
+ File "${AFS_BUILD_INCDIR}\afs\smb_iocons.h"
+ File "${AFS_BUILD_INCDIR}\afs\smb_ioctl.h"
+ File "${AFS_BUILD_INCDIR}\afs\afsrpc.h"
+ File "${AFS_BUILD_INCDIR}\afs\afssyscalls.h"
+ File "${AFS_BUILD_INCDIR}\afs\pioctl_nt.h"
+ File "${AFS_BUILD_INCDIR}\afs\auth.h"
+ File "${AFS_BUILD_INCDIR}\afs\cellconfig.h"
+ File "${AFS_BUILD_INCDIR}\afs\keys.h"
+ File "${AFS_BUILD_INCDIR}\afs\ptserver.h"
+ File "${AFS_BUILD_INCDIR}\afs\ptint.h"
+ File "${AFS_BUILD_INCDIR}\afs\pterror.h"
+ File "${AFS_BUILD_INCDIR}\afs\ptint.h"
+ File "${AFS_BUILD_INCDIR}\afs\pterror.h"
+ File "${AFS_BUILD_INCDIR}\afs\ptclient.h"
+ File "${AFS_BUILD_INCDIR}\afs\prserver.h"
+ File "${AFS_BUILD_INCDIR}\afs\print.h"
+ File "${AFS_BUILD_INCDIR}\afs\prerror.h"
+ File "${AFS_BUILD_INCDIR}\afs\prclient.h"
+ File "${AFS_BUILD_INCDIR}\afs\kautils.h"
+ File "${AFS_BUILD_INCDIR}\afs\kauth.h"
+ File "${AFS_BUILD_INCDIR}\afs\kaport.h"
+ File "${AFS_BUILD_INCDIR}\afs\vl_opcodes.h"
+ File "${AFS_BUILD_INCDIR}\afs\vlserver.h"
+ File "${AFS_BUILD_INCDIR}\afs\vldbint.h"
+ File "${AFS_BUILD_INCDIR}\afs\usd.h"
+ File "${AFS_BUILD_INCDIR}\afs\bubasics.h"
+ File "${AFS_BUILD_INCDIR}\afs\butc.h"
+ File "${AFS_BUILD_INCDIR}\afs\bumon.h"
+ File "${AFS_BUILD_INCDIR}\afs\butm.h"
+ File "${AFS_BUILD_INCDIR}\afs\tcdata.h"
+ File "${AFS_BUILD_INCDIR}\afs\budb.h"
+ ;File "${AFS_BUILD_INCDIR}\afs\budb_errors.h"
+ File "${AFS_BUILD_INCDIR}\afs\budb_client.h"
+ File "${AFS_BUILD_INCDIR}\afs\dir.h"
+ File "${AFS_BUILD_INCDIR}\afs\fssync.h"
+ File "${AFS_BUILD_INCDIR}\afs\ihandle.h"
+ File "${AFS_BUILD_INCDIR}\afs\nfs.h"
+ File "${AFS_BUILD_INCDIR}\afs\ntops.h"
+ File "${AFS_BUILD_INCDIR}\afs\partition.h"
+ File "${AFS_BUILD_INCDIR}\afs\viceinode.h"
+ File "${AFS_BUILD_INCDIR}\afs\vnode.h"
+ File "${AFS_BUILD_INCDIR}\afs\volume.h"
+ File "${AFS_BUILD_INCDIR}\afs\voldefs.h"
+ File "${AFS_BUILD_INCDIR}\afs\volser.h"
+ File "${AFS_BUILD_INCDIR}\afs\volint.h"
+ File "${AFS_BUILD_INCDIR}\afs\fs_stats.h"
+ File "${AFS_BUILD_INCDIR}\afs\bosint.h"
+ File "${AFS_BUILD_INCDIR}\afs\bnode.h"
+
+
+ SetOutPath "$INSTDIR\Client\Program\Include\rx"
+ File "${AFS_BUILD_INCDIR}\rx\rx.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_packet.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_user.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_event.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_queue.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_globals.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_clock.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_misc.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_multi.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_null.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_lwp.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_pthread.h"
+ File "${AFS_BUILD_INCDIR}\rx\rx_xmit_nt.h"
+ File "${AFS_BUILD_INCDIR}\rx\xdr.h"
+ File "${AFS_BUILD_INCDIR}\rx\rxkad.h"
+
+
+
+ ; Client Sample
+ SetOutPath "$INSTDIR\Client\Program\Sample"
+ File "..\..\afsd\sample\token.c"
+
+ ;Store install folder
+ WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK" "" $INSTDIR
+ WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "VersionString" ${AFS_VERSION}
+ WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "MajorVersion" ${AFS_MAJORVERSION}
+ WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "MinorVersion" ${AFS_MINORVERSION}
+ WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\CurrentVersion" "PatchLevel" ${AFS_PATCHLEVEL}
+ WriteRegStr HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "VersionString" ${AFS_VERSION}
+ WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "MajorVersion" ${AFS_MAJORVERSION}
+ WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "MinorVersion" ${AFS_MINORVERSION}
+ WriteRegDWORD HKLM "${AFS_REGKEY_ROOT}\AFS SDK\${AFS_VERSION}" "PatchLevel" ${AFS_PATCHLEVEL}
+
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
+ SetOutPath "$SMPROGRAMS\OpenAFS"
+ CreateShortCut "$SMPROGRAMS\OpenAFS\Uninstall OpenAFS.lnk" "$INSTDIR\Uninstall.exe"
+
+ Call AFSCommon.Install
+SectionEnd
+
;Display the Finish header
;Insert this macro after the sections if you are not using a finish page
;!insertmacro MUI_SECTIONS_FINISHHEADER
StrCmp $R2 "0" NoClient
StrCmp $R2 "1" ReinstallClient
StrCmp $R2 "2" UpgradeClient
- StrCmp $R3 "3" DowngradeClient
+ StrCmp $R2 "3" DowngradeClient
SectionGetFlags ${secClient} $0
IntOp $0 $0 | ${SF_SELECTED}
SectionSetFlags ${secDocs} $0
goto end
+; To check the SDK, we simply look to see if the files exist. If they do,
+; the SDK is installed. If not, we don't need to push it on the user.
+; If they are there, we want to make sure they match the installed version.
+CheckSDK:
+ IfFileExists "$INSTDIR\Client\Program\Include\main.h" +1 NoSDK
+ SectionGetFlags ${secSDK} $0
+ IntOp $0 $0 | ${SF_SELECTED}
+ SectionSetFlags ${secSDK} $0
+ goto end
+
+NoSDK:
+ SectionGetFlags ${secSDK} $0
+ IntOp $0 $0 & ${SECTION_OFF}
+ SectionSetFlags ${secSDK} $0
+ goto end
+
DefaultOptions:
; Client Selected
SectionGetFlags ${secClient} $0
IntOp $0 $0 | ${SF_SELECTED}
SectionSetFlags ${secDocs} $0
;# !insertmacro UnselectSection ${secDocs}
+
+ ; SDK not selected
+ SectionGetFlags ${secSDK} $0
+ IntOp $0 $0 & ${SECTION_OFF}
+ SectionSetFlags ${secSDK} $0
+ ;# !insertmacro UnselectSection ${secSDK}
+
goto end
end:
;--------------------------------
;Descriptions
-!ifdef v2.0b3
-!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
-!else
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
-!endif
+ !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${secServer} $(DESC_secServer)
!insertmacro MUI_DESCRIPTION_TEXT ${secClient} $(DESC_secClient)
!insertmacro MUI_DESCRIPTION_TEXT ${secControl} $(DESC_secControl)
!insertmacro MUI_DESCRIPTION_TEXT ${secDocs} $(DESC_secDocs)
-!ifndef v2.0b4
- !insertmacro MUI_FUNCTIONS_DESCRIPTION_END
-!else
+ !insertmacro MUI_DESCRIPTION_TEXT ${secSDK} $(DESC_secSDK)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
-!endif
;--------------------------------
;Uninstaller Section
Section "Uninstall"
; Make sure the user REALLY wants to do this, unless they did a silent uninstall, in which case...let them!
-#ifdef v2.0b4
IfSilent StartRemove ; New in v2.0b4
-#endif
MessageBox MB_YESNO "Are you sure you want to remove OpenAFS from this machine?" IDYES StartRemove
abort
GetTempFileName $R0
File /oname=$R0 "${AFS_WININSTALL_DIR}\Killer.exe"
nsExec::Exec '$R0 afscreds.exe'
+ nsExec::Exec "afscreds.exe -z"
!IFDEF INSTALL_KFW
nsExec::Exec '$R0 krbcc32s.exe'
!ENDIF
Delete /REBOOTOK "$INSTDIR\Common\afsptsadmin.pdb"
!IFDEF CL_1310
- Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.dll"
- Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcr71d.dll"
+ File "${SYSTEMDIR}\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcp71d.dll"
+ File "${SYSTEMDIR}\msvcp71d.pdb"
+ File "${SYSTEMDIR}\mfc71d.dll"
+ File "${SYSTEMDIR}\mfc71d.pdb"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
+!ELSE
+!IFDEF CL_1300
+ File "${SYSTEMDIR}\msvcr70d.dll"
+ File "${SYSTEMDIR}\msvcr70d.pdb"
+ File "${SYSTEMDIR}\msvcp70d.dll"
+ File "${SYSTEMDIR}\msvcp70d.pdb"
+ File "${SYSTEMDIR}\mfc70d.dll"
+ File "${SYSTEMDIR}\mfc70d.pdb"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.dll"
- Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.pdb"
+ File "${SYSTEMDIR}\mfc42d.dll"
+ File "${SYSTEMDIR}\mfc42d.pdb"
+ File "${SYSTEMDIR}\msvcp60d.dll"
+ File "${SYSTEMDIR}\msvcp60d.pdb"
+ File "${SYSTEMDIR}\msvcrtd.dll"
+ File "${SYSTEMDIR}\msvcrtd.pdb"
+!ENDIF
!ENDIF
!ELSE
!IFDEF CL_1310
- Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll"
+ File "${SYSTEMDIR}\mfc71.dll"
+ File "${SYSTEMDIR}\msvcr71.dll"
+ File "${SYSTEMDIR}\msvcp71.dll"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
+!ELSE
+!IFDEF CL_1300
+ File "${SYSTEMDIR}\mfc70.dll"
+ File "${SYSTEMDIR}\msvcr70.dll"
+ File "${SYSTEMDIR}\msvcp70.dll"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- Delete /REBOOTOK "$INSTDIR\Common\msvcrt.dll"
+ File "${SYSTEMDIR}\mfc42.dll"
+ File "${SYSTEMDIR}\msvcp60.dll"
+ File "${SYSTEMDIR}\msvcrt.dll"
+!ENDIF
!ENDIF
!ENDIF
-!ifdef v2.0b3
- Call un.IsSilent
- Pop $R1
- StrCmp $R1 "/S" SkipAsk
-!else
IfSilent SkipAsk
-!endif
; IfFileExists "$WINDIR\afsdcell.ini" CellExists SkipDelAsk
; CellExists:
MessageBox MB_YESNO "Would you like to keep your configuration files?" IDYES SkipDel
!IFDEF DEBUG
!IFDEF CL_1310
- Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.dll"
- Delete /REBOOTOK "$INSTDIR\Common\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcr71d.dll"
+ File "${SYSTEMDIR}\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcp71d.dll"
+ File "${SYSTEMDIR}\msvcp71d.pdb"
+ File "${SYSTEMDIR}\mfc71d.dll"
+ File "${SYSTEMDIR}\mfc71d.pdb"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
+!ELSE
+!IFDEF CL_1300
+ File "${SYSTEMDIR}\msvcr70d.dll"
+ File "${SYSTEMDIR}\msvcr70d.pdb"
+ File "${SYSTEMDIR}\msvcp70d.dll"
+ File "${SYSTEMDIR}\msvcp70d.pdb"
+ File "${SYSTEMDIR}\mfc70d.dll"
+ File "${SYSTEMDIR}\mfc70d.pdb"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.dll"
- Delete /REBOOTOK "$INSTDIR\Common\msvcrtd.pdb"
+ File "${SYSTEMDIR}\mfc42d.dll"
+ File "${SYSTEMDIR}\mfc42d.pdb"
+ File "${SYSTEMDIR}\msvcp60d.dll"
+ File "${SYSTEMDIR}\msvcp60d.pdb"
+ File "${SYSTEMDIR}\msvcrtd.dll"
+ File "${SYSTEMDIR}\msvcrtd.pdb"
+!ENDIF
!ENDIF
!ELSE
!IFDEF CL_1310
- Delete /REBOOTOK "$INSTDIR\Common\msvcr71.dll"
+ File "${SYSTEMDIR}\mfc71.dll"
+ File "${SYSTEMDIR}\msvcr71.dll"
+ File "${SYSTEMDIR}\msvcp71.dll"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
+!ELSE
+!IFDEF CL_1300
+ File "${SYSTEMDIR}\mfc70.dll"
+ File "${SYSTEMDIR}\msvcr70.dll"
+ File "${SYSTEMDIR}\msvcp70.dll"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- Delete /REBOOTOK "$INSTDIR\Common\msvcrt.dll"
+ File "${SYSTEMDIR}\mfc42.dll"
+ File "${SYSTEMDIR}\msvcp60.dll"
+ File "${SYSTEMDIR}\msvcrt.dll"
+!ENDIF
!ENDIF
!ENDIF
Delete /REBOOTOK "$INSTDIR\Common\*"
RMDir "$INSTDIR"
-!ifdef v2.0b3
- ;Display the Finish header
- !insertmacro MUI_UNFINISHHEADER
-!endif
-
SectionEnd
;--------------------------------
Function AFSPageGetCellName
-!ifndef v2.0b4
- Call IsSilent
- Pop $R1
- StrCmp $R1 "/S" exit
-!else
IfSilent good
-!endif
; Skip this page if we are not installing the client
SectionGetFlags ${secClient} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
FunctionEnd
-; This code is all needed in v2.0b3 to handle the /S switch...
-!ifdef v2.0b3
-; Check if install should be silent
-Function IsSilent
- Push $0
- Push $CMDLINE
- Push "/S"
- Call StrStr
- Pop $0
- StrCpy $0 $0 3
- StrCmp $0 "/S" silent
- StrCmp $0 "/S " silent
- StrCpy $0 0
- Goto notsilent
- silent: StrCpy $0 1
- notsilent: Exch $0
-FunctionEnd
-
-
-; Check if uninstall should be silent
-Function un.IsSilent
- Push $0
- Push $CMDLINE
- Push "/S"
- Call un.StrStr
- Pop $0
- StrCpy $0 $0 3
- StrCmp $0 "/S" silent
- StrCmp $0 "/S " silent
- StrCpy $0 0
- Goto notsilent
- silent: StrCpy $0 1
- notsilent: Exch $0
-FunctionEnd
-
-
-
-; StrStr function
-Function StrStr
- Exch $R1 ; st=haystack,old$R1, $R1=needle
- Exch ; st=old$R1,haystack
- Exch $R2 ; st=old$R1,old$R2, $R2=haystack
- Push $R3
- Push $R4
- Push $R5
- StrLen $R3 $R1
- StrCpy $R4 0
- ; $R1=needle
- ; $R2=haystack
- ; $R3=len(needle)
- ; $R4=cnt
- ; $R5=tmp
- loop:
- StrCpy $R5 $R2 $R3 $R4
- StrCmp $R5 $R1 done
- StrCmp $R5 "" done
- IntOp $R4 $R4 + 1
- Goto loop
- done:
- StrCpy $R1 $R2 "" $R4
- Pop $R5
- Pop $R4
- Pop $R3
- Pop $R2
- Exch $R1
-FunctionEnd
-!endif
-; End of specific v2.0b3 code...
-
;-------------------
; Get the currently installed version and place it on the stack
; Common files
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config.exe"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.dll"
File "${AFS_SERVER_BUILDDIR}\afsadminutil.dll"
- File "${AFS_DESTDIR}\lib\afsauthent.dll"
- File "${AFS_DESTDIR}\lib\afspthread.dll"
- File "${AFS_DESTDIR}\lib\afsrpc.dll"
+ !insertmacro UpgradeDLL "${AFS_DESTDIR}\lib\afsauthent.dll" "$INSTDIR\Common\afsauthent.dll" "$INSTDIR"
+ !insertmacro UpgradeDLL "${AFS_DESTDIR}\lib\afspthread.dll" "$INSTDIR\Common\afspthread.dll" "$INSTDIR"
+ !insertmacro UpgradeDLL "${AFS_DESTDIR}\lib\afsrpc.dll" "$INSTDIR\Common\afsrpc.dll" "$INSTDIR"
File "${AFS_SERVER_BUILDDIR}\afsclientadmin.dll"
File "${AFS_SERVER_BUILDDIR}\afsprocmgmt.dll"
File "${AFS_SERVER_BUILDDIR}\afsvosadmin.dll"
File "${AFS_SERVER_BUILDDIR}\afscfgadmin.dll"
File "${AFS_SERVER_BUILDDIR}\afskasadmin.dll"
File "${AFS_SERVER_BUILDDIR}\afsptsadmin.dll"
+
!IFDEF DEBUG
!IFDEF CL_1310
- File "${AFS_WININSTALL_DIR}\msvcr71d.dll"
- File "${AFS_WININSTALL_DIR}\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcr71d.dll"
+ File "${SYSTEMDIR}\msvcr71d.pdb"
+ File "${SYSTEMDIR}\msvcp71d.dll"
+ File "${SYSTEMDIR}\msvcp71d.pdb"
+ File "${SYSTEMDIR}\mfc71d.dll"
+ File "${SYSTEMDIR}\mfc71d.pdb"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
+!ELSE
+!IFDEF CL_1300
+ File "${SYSTEMDIR}\msvcr70d.dll"
+ File "${SYSTEMDIR}\msvcr70d.pdb"
+ File "${SYSTEMDIR}\msvcp70d.dll"
+ File "${SYSTEMDIR}\msvcp70d.pdb"
+ File "${SYSTEMDIR}\mfc70d.dll"
+ File "${SYSTEMDIR}\mfc70d.pdb"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- File "${AFS_WININSTALL_DIR}\msvcrtd.dll"
- File "${AFS_WININSTALL_DIR}\msvcrtd.pdb"
+ File "${SYSTEMDIR}\mfc42d.dll"
+ File "${SYSTEMDIR}\mfc42d.pdb"
+ File "${SYSTEMDIR}\msvcp60d.dll"
+ File "${SYSTEMDIR}\msvcp60d.pdb"
+ File "${SYSTEMDIR}\msvcrtd.dll"
+ File "${SYSTEMDIR}\msvcrtd.pdb"
+!ENDIF
!ENDIF
!ELSE
!IFDEF CL_1310
- File "${AFS_WININSTALL_DIR}\msvcr71.dll"
+ File "${SYSTEMDIR}\mfc71.dll"
+ File "${SYSTEMDIR}\msvcr71.dll"
+ File "${SYSTEMDIR}\msvcp71.dll"
+ File "${SYSTEMDIR}\MFC71CHS.DLL"
+ File "${SYSTEMDIR}\MFC71CHT.DLL"
+ File "${SYSTEMDIR}\MFC71DEU.DLL"
+ File "${SYSTEMDIR}\MFC71ENU.DLL"
+ File "${SYSTEMDIR}\MFC71ESP.DLL"
+ File "${SYSTEMDIR}\MFC71FRA.DLL"
+ File "${SYSTEMDIR}\MFC71ITA.DLL"
+ File "${SYSTEMDIR}\MFC71JPN.DLL"
+ File "${SYSTEMDIR}\MFC71KOR.DLL"
+!ELSE
+!IFDEF CL_1300
+ File "${SYSTEMDIR}\mfc70.dll"
+ File "${SYSTEMDIR}\msvcr70.dll"
+ File "${SYSTEMDIR}\msvcp70.dll"
+ File "${SYSTEMDIR}\MFC70CHS.DLL"
+ File "${SYSTEMDIR}\MFC70CHT.DLL"
+ File "${SYSTEMDIR}\MFC70DEU.DLL"
+ File "${SYSTEMDIR}\MFC70ENU.DLL"
+ File "${SYSTEMDIR}\MFC70ESP.DLL"
+ File "${SYSTEMDIR}\MFC70FRA.DLL"
+ File "${SYSTEMDIR}\MFC70ITA.DLL"
+ File "${SYSTEMDIR}\MFC70JPN.DLL"
+ File "${SYSTEMDIR}\MFC70KOR.DLL"
!ELSE
- File "${AFS_WININSTALL_DIR}\msvcrt.dll"
+ File "${SYSTEMDIR}\mfc42.dll"
+ File "${SYSTEMDIR}\msvcp60.dll"
+ File "${SYSTEMDIR}\msvcrt.dll"
+!ENDIF
!ENDIF
!ENDIF
!ifdef DEBUG
File "${AFS_CLIENT_BUILDDIR}\afs_config.pdb"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext.pdb"
File "${AFS_SERVER_BUILDDIR}\afsadminutil.pdb"
File "${AFS_DESTDIR}\lib\afsauthent.pdb"
File "${AFS_DESTDIR}\lib\afspthread.pdb"
StrCmp $LANGUAGE ${LANG_GERMAN} DoGerman
StrCmp $LANGUAGE ${LANG_SPANISH} DoSpanish
StrCmp $LANGUAGE ${LANG_JAPANESE} DoJapanese
-!ifdef v2.0b4
StrCmp $LANGUAGE ${LANG_KOREAN} DoKorean
-!endif
StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} DoPortugueseBR
StrCmp $LANGUAGE ${LANG_SIMPCHINESE} DoSimpChinese
StrCmp $LANGUAGE ${LANG_TRADCHINESE} DoTradChinese
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\en_US\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.dll" "$INSTDIR\Client\Program\afs_shl_ext_1033.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1033.dll"
File "..\..\doc\help\en_US\taafssvrmgr.hlp"
File "..\..\doc\help\en_US\taafsusrmgr.CNT"
File "..\..\doc\help\en_US\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1033.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.pdb"
+!ENDIF
goto done
DoGerman:
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\de_DE\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.dll" "$INSTDIR\Client\Program\afs_shl_ext_1032.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1032.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1032.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1032.dll"
File "..\..\doc\help\de_DE\taafsusrmgr.hlp"
!ifdef DEBUG
- ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1033.pdb"
- ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1033.pdb"
- ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1033.pdb"
- ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1033.pdb"
- ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1033.pdb"
- ;File "${AFS_SERVER_BUILDDIR}\afsserver_1033.pdb"
- ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1033.pdb"
- ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1033.pdb"
- ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1033.pdb"
- ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1033.pdb"
-!IFDEF CL_1310
- File "${AFS_WININSTALL_DIR}\msvcr71d.dll"
- File "${AFS_WININSTALL_DIR}\msvcr71d.pdb"
-!ELSE
- File "${AFS_WININSTALL_DIR}\msvcrtd.dll"
- File "${AFS_WININSTALL_DIR}\msvcrtd.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1032.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1032.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1032.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1032.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1032.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1032.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1032.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1032.pdb"
!ENDIF
-!endif
goto done
DoSpanish:
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\es_ES\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.dll" "$INSTDIR\Client\Program\afs_shl_ext_1034.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1034.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1034.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1034.dll"
File "..\..\doc\help\es_ES\taafssvrmgr.hlp"
File "..\..\doc\help\es_ES\taafsusrmgr.CNT"
File "..\..\doc\help\es_ES\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1034.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1034.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1034.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1034.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1034.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1034.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1034.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1034.pdb"
+!ENDIF
goto done
DoJapanese:
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\ja_JP\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.dll" "$INSTDIR\Client\Program\afs_shl_ext_1041.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1041.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1041.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1041.dll"
File "..\..\doc\help\ja_JP\taafssvrmgr.hlp"
File "..\..\doc\help\ja_JP\taafsusrmgr.CNT"
File "..\..\doc\help\ja_JP\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1041.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1041.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1041.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1041.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1041.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1041.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1041.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1041.pdb"
+!ENDIF
goto done
DoKorean:
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\ko_KR\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.dll" "$INSTDIR\Client\Program\afs_shl_ext_1042.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1042.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1042.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1042.dll"
File "..\..\doc\help\ko_KR\taafssvrmgr.hlp"
File "..\..\doc\help\ko_KR\taafsusrmgr.CNT"
File "..\..\doc\help\ko_KR\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1042.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1042.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1042.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1042.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1042.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1042.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1042.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1042.pdb"
+!ENDIF
goto done
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\pt_BR\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.dll" "$INSTDIR\Client\Program\afs_shl_ext_1046.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1046.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1046.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1046.dll"
File "..\..\doc\help\pt_BR\taafssvrmgr.hlp"
File "..\..\doc\help\pt_BR\taafsusrmgr.CNT"
File "..\..\doc\help\pt_BR\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1046.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1046.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1046.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1046.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1046.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1046.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1046.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1046.pdb"
+!ENDIF
goto done
DoSimpChinese:
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\zh_CN\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.dll" "$INSTDIR\Client\Program\afs_shl_ext_2052.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_2052.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_2052.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_2052.dll"
File "..\..\doc\help\zh_CN\taafssvrmgr.hlp"
File "..\..\doc\help\zh_CN\taafsusrmgr.CNT"
File "..\..\doc\help\zh_CN\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_2052.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_2052.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_2052.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_2052.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_2052.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_2052.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_2052.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_2052.pdb"
+!ENDIF
goto done
DoTradChinese:
SetOutPath "$INSTDIR\Documentation"
File "..\..\doc\install\Documentation\zh_TW\README.TXT"
+ SetOutPath "$INSTDIR\Client\Program"
+ File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.dll"
+ !insertmacro UpgradeDLL "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.dll" "$INSTDIR\Client\Program\afs_shl_ext_1028.dll" "$INSTDIR"
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.pdb"
+!endif
+
SetOutPath "$INSTDIR\Common"
File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.dll"
- File "${AFS_CLIENT_BUILDDIR}\afs_shl_ext_1028.dll"
- File "${AFS_CLIENT_BUILDDIR}\afscreds_1028.dll"
File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.dll"
File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.dll"
;File "${AFS_SERVER_BUILDDIR}\afs_setup_utils_1028.dll"
File "..\..\doc\help\zh_TW\taafssvrmgr.hlp"
File "..\..\doc\help\zh_TW\taafsusrmgr.CNT"
File "..\..\doc\help\zh_TW\taafsusrmgr.hlp"
+
+!ifdef DEBUG
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_config_1028.pdb"
+ ;File "${AFS_CLIENT_BUILDDIR}\afs_cpa_1028.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afseventmsg_1028.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afsserver_1028.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\afssvrcfg_1028.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAccountManager_1028.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsAppLib_1028.pdb"
+ ;File "${AFS_SERVER_BUILDDIR}\TaAfsServerManager_1028.pdb"
+!ENDIF
goto done
done:
Function AddToPath
Exch $0
Push $1
-
+ Push $2
+ Push $3
+
+ # don't add if the path doesn't exist
+ IfFileExists $0 "" AddToPath_done
+
+ ReadEnvStr $1 PATH
+ Push "$1;"
+ Push "$0;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+ Push "$1;"
+ Push "$0\;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+ GetFullPathName /SHORT $3 $0
+ Push "$1;"
+ Push "$3;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+ Push "$1;"
+ Push "$3\;"
+ Call StrStr
+ Pop $2
+ StrCmp $2 "" "" AddToPath_done
+
Call IsNT
Pop $1
StrCmp $1 1 AddToPath_NT
; Not on NT
StrCpy $1 $WINDIR 2
FileOpen $1 "$1\autoexec.bat" a
- FileSeek $1 0 END
- GetFullPathName /SHORT $0 $0
- FileWrite $1 "$\r$\nSET PATH=%PATH%;$0$\r$\n"
+ FileSeek $1 -1 END
+ FileReadByte $1 $2
+ IntCmp $2 26 0 +2 +2 # DOS EOF
+ FileSeek $1 -1 END # write over EOF
+ FileWrite $1 "$\r$\nSET PATH=%PATH%;$3$\r$\n"
FileClose $1
+ SetRebootFlag true
Goto AddToPath_done
AddToPath_NT:
ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
+ StrCpy $2 $1 1 -1 # copy last char
+ StrCmp $2 ";" 0 +2 # if last char == ;
+ StrCpy $1 $1 -1 # remove last char
StrCmp $1 "" AddToPath_NTdoIt
StrCpy $0 "$1;$0"
- Goto AddToPath_NTdoIt
AddToPath_NTdoIt:
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $0
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
+
AddToPath_done:
+ Pop $3
+ Pop $2
Pop $1
Pop $0
FunctionEnd
Push $2
Push $3
Push $4
-
+ Push $5
+ Push $6
+
+ IntFmt $6 "%c" 26 # DOS EOF
+
Call un.IsNT
Pop $1
StrCmp $1 1 unRemoveFromPath_NT
FileOpen $2 $4 w
GetFullPathName /SHORT $0 $0
StrCpy $0 "SET PATH=%PATH%;$0"
- SetRebootFlag true
Goto unRemoveFromPath_dosLoop
-
+
unRemoveFromPath_dosLoop:
FileRead $1 $3
- StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoop
- StrCmp $3 "$0$\n" unRemoveFromPath_dosLoop
- StrCmp $3 "$0" unRemoveFromPath_dosLoop
+ StrCpy $5 $3 1 -1 # read last char
+ StrCmp $5 $6 0 +2 # if DOS EOF
+ StrCpy $3 $3 -1 # remove DOS EOF so we can compare
+ StrCmp $3 "$0$\r$\n" unRemoveFromPath_dosLoopRemoveLine
+ StrCmp $3 "$0$\n" unRemoveFromPath_dosLoopRemoveLine
+ StrCmp $3 "$0" unRemoveFromPath_dosLoopRemoveLine
StrCmp $3 "" unRemoveFromPath_dosLoopEnd
FileWrite $2 $3
Goto unRemoveFromPath_dosLoop
-
+ unRemoveFromPath_dosLoopRemoveLine:
+ SetRebootFlag true
+ Goto unRemoveFromPath_dosLoop
+
unRemoveFromPath_dosLoopEnd:
FileClose $2
FileClose $1
Goto unRemoveFromPath_done
unRemoveFromPath_NT:
- StrLen $2 $0
ReadRegStr $1 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH"
+ StrCpy $5 $1 1 -1 # copy last char
+ StrCmp $5 ";" +2 # if last char != ;
+ StrCpy $1 "$1;" # append ;
Push $1
- Push $0
- Call un.StrStr ; Find $0 in $1
- Pop $0 ; pos of our dir
- IntCmp $0 -1 unRemoveFromPath_done
+ Push "$0;"
+ Call un.StrStr ; Find `$0;` in $1
+ Pop $2 ; pos of our dir
+ StrCmp $2 "" unRemoveFromPath_done
; else, it is in path
- StrCpy $3 $1 $0 ; $3 now has the part of the path before our dir
- IntOp $2 $2 + $0 ; $2 now contains the pos after our dir in the path (';')
- IntOp $2 $2 + 1 ; $2 now containts the pos after our dir and the semicolon.
- StrLen $0 $1
- StrCpy $1 $1 $0 $2
- StrCpy $3 "$3$1"
+ # $0 - path to add
+ # $1 - path var
+ StrLen $3 "$0;"
+ StrLen $4 $2
+ StrCpy $5 $1 -$4 # $5 is now the part before the path to remove
+ StrCpy $6 $2 "" $3 # $6 is now the part after the path to remove
+ StrCpy $3 $5$6
+
+ StrCpy $5 $3 1 -1 # copy last char
+ StrCmp $5 ";" 0 +2 # if last char == ;
+ StrCpy $3 $3 -1 # remove last char
WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "PATH" $3
SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
-
+
unRemoveFromPath_done:
+ Pop $6
+ Pop $5
Pop $4
Pop $3
Pop $2
; otherwise.
; Output: head of the stack
;====================================================
-Function IsNT
+!macro IsNT un
+Function ${un}IsNT
Push $0
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
StrCmp $0 "" 0 IsNT_yes
Pop $0
Push 1
FunctionEnd
+!macroend
+!insertmacro IsNT ""
+!insertmacro IsNT "un."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Uninstall sutff
+; Uninstall stuff
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-
;====================================================
; StrStr - Finds a given string in another given string.
; Returns -1 if not found and the pos if found.
; second in the stack - string to find in
; Output: head of the stack
;====================================================
-Function un.StrStr
- Push $0
- Exch
- Pop $0 ; $0 now have the string to find
- Push $1
- Exch 2
- Pop $1 ; $1 now have the string to find in
- Exch
- Push $2
- Push $3
- Push $4
- Push $5
-
- StrCpy $2 -1
- StrLen $3 $0
- StrLen $4 $1
- IntOp $4 $4 - $3
-
- unStrStr_loop:
- IntOp $2 $2 + 1
- IntCmp $2 $4 0 0 unStrStrReturn_notFound
- StrCpy $5 $1 $3 $2
- StrCmp $5 $0 unStrStr_done unStrStr_loop
-
- unStrStrReturn_notFound:
- StrCpy $2 -1
-
- unStrStr_done:
- Pop $5
- Pop $4
- Pop $3
- Exch $2
- Exch 2
- Pop $0
- Pop $1
+!macro StrStr un
+Function ${un}StrStr
+Exch $R1 ; st=haystack,old$R1, $R1=needle
+ Exch ; st=old$R1,haystack
+ Exch $R2 ; st=old$R1,old$R2, $R2=haystack
+ Push $R3
+ Push $R4
+ Push $R5
+ StrLen $R3 $R1
+ StrCpy $R4 0
+ ; $R1=needle
+ ; $R2=haystack
+ ; $R3=len(needle)
+ ; $R4=cnt
+ ; $R5=tmp
+ loop:
+ StrCpy $R5 $R2 $R3 $R4
+ StrCmp $R5 $R1 done
+ StrCmp $R5 "" done
+ IntOp $R4 $R4 + 1
+ Goto loop
+done:
+ StrCpy $R1 $R2 "" $R4
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Exch $R1
FunctionEnd
+!macroend
+!insertmacro StrStr ""
+!insertmacro StrStr "un."
-;====================================================
-; IsNT - Returns 1 if the current system is NT, 0
-; otherwise.
-; Output: head of the stack
-;====================================================
-Function un.IsNT
- Push $0
- ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
- StrCmp $0 "" 0 unIsNT_yes
- ; we are not NT.
- Pop $0
- Push 0
- Return
-
- unIsNT_yes:
- ; NT!!!
- Pop $0
- Push 1
-FunctionEnd
!ifdef ADDSHAREDDLLUSED
; AddSharedDLL
FunctionEnd
!endif
+
+
!ifdef INSTALL_LOOPBACK
Function afs.InstallMSLoopback
GetTempFileName $R0
end:
FunctionEnd
+Function RegWriteMultiStr
+!define HKEY_CLASSES_ROOT 0x80000000
+!define HKEY_CURRENT_USER 0x80000001
+!define HKEY_LOCAL_MACHINE 0x80000002
+!define HKEY_USERS 0x80000003
+!define HKEY_PERFORMANCE_DATA 0x80000004
+!define HKEY_PERFORMANCE_TEXT 0x80000050
+!define HKEY_PERFORMANCE_NLSTEXT 0x80000060
+!define HKEY_CURRENT_CONFIG 0x80000005
+!define HKEY_DYN_DATA 0x80000006
+
+!define KEY_QUERY_VALUE 0x0001
+!define KEY_SET_VALUE 0x0002
+!define KEY_CREATE_SUB_KEY 0x0004
+!define KEY_ENUMERATE_SUB_KEYS 0x0008
+!define KEY_NOTIFY 0x0010
+!define KEY_CREATE_LINK 0x0020
+
+!define REG_NONE 0
+!define REG_SZ 1
+!define REG_EXPAND_SZ 2
+!define REG_BINARY 3
+!define REG_DWORD 4
+!define REG_DWORD_LITTLE_ENDIAN 4
+!define REG_DWORD_BIG_ENDIAN 5
+!define REG_LINK 6
+!define REG_MULTI_SZ 7
+
+!define RegCreateKey "Advapi32::RegCreateKeyA(i, t, *i) i"
+!define RegSetValueEx "Advapi32::RegSetValueExA(i, t, i, i, i, i) i"
+!define RegCloseKey "Advapi32::RegCloseKeyA(i) i"
+
+ Exch $R0
+ Push $1
+ Push $2
+ Push $9
+
+ SetPluginUnload alwaysoff
+ ; Create a buffer for the multi_sz value
+ System::Call "*(&t${NSIS_MAX_STRLEN}) i.r1"
+ ; Open/create the registry key
+ System::Call "${RegCreateKey}(${HKEY_LOCAL_MACHINE}, '$REG_SUB_KEY', .r0) .r9"
+ ; Failed?
+ IntCmp $9 0 write
+ MessageBox MB_OK|MB_ICONSTOP "Can't create registry key! ($9)"
+ Goto noClose
+
+ write:
+ ; Fill in the buffer with our strings
+ StrCpy $2 $1 ; Initial position
+
+ StrLen $9 '$REG_DATA_1' ; Length of first string
+ IntOp $9 $9 + 1 ; Plus null
+ System::Call "*$2(&t$9 '$REG_DATA_1')" ; Place the string
+ IntOp $2 $2 + $9 ; Advance to the next position
+
+ StrCmp '$REG_DATA_2' "" terminate
+ StrLen $9 '$REG_DATA_2' ; Length of second string
+ IntOp $9 $9 + 1 ; Plus null
+ System::Call "*$2(&t$9 '$REG_DATA_2')" ; Place the string
+ IntOp $2 $2 + $9 ; Advance to the next position
+
+ StrCmp '$REG_DATA_3' "" terminate
+ StrLen $9 '$REG_DATA_3' ; Length of third string
+ IntOp $9 $9 + 1 ; Plus null
+ System::Call "*$2(&t$9 '$REG_DATA_3')" ; Place the string
+ IntOp $2 $2 + $9 ; Advance to the next position
+
+ terminate:
+ System::Call "*$2(&t1 '')" ; Place the terminating null
+ IntOp $2 $2 + 1 ; Advance to the next position
+
+ ; Create/write the value
+ IntOp $2 $2 - $1 ; Total length
+ System::Call "${RegSetValueEx}(r0, '$REG_VALUE', 0, ${REG_MULTI_SZ}, r1, r2) .r9"
+ ; Failed?
+ IntCmp $9 0 done
+ MessageBox MB_OK|MB_ICONSTOP "Can't set key value! ($9)"
+ Goto done
+
+ done:
+ ; Close the registry key
+ System::Call "${RegCloseKey}(r0)"
+
+noClose:
+ ; Clear the buffer
+ SetPluginUnload manual
+ System::Free $1
+
+ Pop $9
+ Pop $2
+ Pop $1
+ Exch $R0
+FunctionEnd
\ No newline at end of file