diff --git a/src/WINNT/install/wix/NTMakefile b/src/WINNT/install/wix/NTMakefile index bf00a0ad71..014cc8ac45 100644 --- a/src/WINNT/install/wix/NTMakefile +++ b/src/WINNT/install/wix/NTMakefile @@ -122,7 +122,8 @@ $(BINWIXOBJ): oafwbins.wxs $(WIXINCLUDES) !ENDIF -v0 \ -w0 \ - $(WIXCYGOPT) $(AFSDEV_AUXWIXDEFINES) oafwbins.wxs + -sw1044 \ + $(AFSDEV_AUXWIXDEFINES) oafwbins.wxs $(BINMSIFILE): $(BINWIXOBJ) light -nologo -out $(BINMSIFILE) \ diff --git a/src/WINNT/install/wix/custom/NTMakefile b/src/WINNT/install/wix/custom/NTMakefile index 01038bdf24..19874bf5db 100644 --- a/src/WINNT/install/wix/custom/NTMakefile +++ b/src/WINNT/install/wix/custom/NTMakefile @@ -13,6 +13,8 @@ DLLRES = $(OUT)\afscustom.res DLLEXPORTS=\ -EXPORT:InstallNetProvider \ -EXPORT:UninstallNetProvider \ + -EXPORT:InstallRedirNetProvider \ + -EXPORT:UninstallRedirNetProvider \ -EXPORT:ConfigureClientService \ -EXPORT:ConfigureServerService \ -EXPORT:AbortMsiImmediate \ @@ -24,7 +26,7 @@ DLLEXPORTS=\ -EXPORT:DetectSavedConfiguration DLLLIBFILES=\ - msi.lib advapi32.lib netapi32.lib + msi.lib advapi32.lib netapi32.lib setupapi.lib LINK=link diff --git a/src/WINNT/install/wix/custom/afscustom.cpp b/src/WINNT/install/wix/custom/afscustom.cpp index 714e8531f2..9adbadf5da 100644 --- a/src/WINNT/install/wix/custom/afscustom.cpp +++ b/src/WINNT/install/wix/custom/afscustom.cpp @@ -172,14 +172,22 @@ _cleanup: provider */ MSIDLLEXPORT InstallNetProvider( MSIHANDLE hInstall ) { - return InstNetProvider( hInstall, 1 ); + return InstNetProvider( hInstall, STR_SERVICE, 1 ); } MSIDLLEXPORT UninstallNetProvider( MSIHANDLE hInstall) { - return InstNetProvider( hInstall, 0 ); + return InstNetProvider( hInstall, STR_SERVICE, 0 ); } -DWORD InstNetProvider(MSIHANDLE hInstall, int bInst) { +MSIDLLEXPORT InstallRedirNetProvider( MSIHANDLE hInstall ) { + return InstNetProvider( hInstall, STR_RDRSVC, 1, STR_LANMAN ); +} + +MSIDLLEXPORT UninstallRedirNetProvider( MSIHANDLE hInstall) { + return InstNetProvider( hInstall, STR_RDRSVC, 0 ); +} + +DWORD InstNetProvider(MSIHANDLE hInstall, LPTSTR svcname, int bInst, LPTSTR before) { LPTSTR strOrder; HKEY hkOrder; LONG rv; @@ -193,11 +201,11 @@ DWORD InstNetProvider(MSIHANDLE hInstall, int bInst) { dwSize = 0; CHECK(rv = RegQueryValueEx( hkOrder, STR_VAL_ORDER, NULL, NULL, NULL, &dwSize ) ); - strOrder = new TCHAR[ (dwSize + STR_SERVICE_LEN) * sizeof(TCHAR) ]; + strOrder = new TCHAR[ dwSize / sizeof(TCHAR) + 2 + _tcslen(svcname) ]; CHECK(rv = RegQueryValueEx( hkOrder, STR_VAL_ORDER, NULL, NULL, (LPBYTE) strOrder, &dwSize)); - npi_CheckAndAddRemove( strOrder, STR_SERVICE , bInst); + npi_CheckAndAddRemove( strOrder, svcname , bInst, before); dwSize = (lstrlen( strOrder ) + 1) * sizeof(TCHAR); @@ -220,10 +228,11 @@ _cleanup: str : target string str2: string to add/remove bInst: == 1 if string should be added to target if not already there, otherwise remove string from target if present. + if before != NULL, add string before */ -int npi_CheckAndAddRemove( LPTSTR str, LPTSTR str2, int bInst ) { +int npi_CheckAndAddRemove( LPTSTR str, LPTSTR str2, int bInst, LPTSTR before ) { - LPTSTR target, charset, match; + LPTSTR target, charset, btarget, match, bmatch; int ret=0; target = new TCHAR[lstrlen(str)+3]; @@ -238,10 +247,23 @@ int npi_CheckAndAddRemove( LPTSTR str, LPTSTR str2, int bInst ) { match = _tcsstr(target, charset); if ((match) && (bInst)) { + if (before != NULL) { + bmatch = _tcsstr(target, before); + if (bmatch == NULL || bmatch > match) { ret = INP_ERR_PRESENT; goto cleanup; } + lstrcpy(str+(match-target), match+lstrlen(str2)+2); + str[lstrlen(str)-1]=_T('\0'); + match = NULL; + + } else { + ret = INP_ERR_PRESENT; + goto cleanup; + } + } + if ((!match) && (!bInst)) { ret = INP_ERR_ABSENT; goto cleanup; @@ -249,8 +271,15 @@ int npi_CheckAndAddRemove( LPTSTR str, LPTSTR str2, int bInst ) { if (bInst) // && !match { + if (before == NULL || (bmatch = _tcsstr(str, before)) == NULL) { lstrcat(str, _T(",")); lstrcat(str, str2); + } else { + size_t s2len = lstrlen(str2); + memmove(bmatch + s2len + 1, bmatch, (lstrlen(bmatch) + 1) * sizeof(TCHAR)); + memcpy(bmatch, str2, s2len * sizeof(TCHAR)); + bmatch[s2len] = _T(','); + } ret = INP_ERR_ADDED; goto cleanup; } diff --git a/src/WINNT/install/wix/custom/afscustom.h b/src/WINNT/install/wix/custom/afscustom.h index f8c0d796e2..4604602475 100644 --- a/src/WINNT/install/wix/custom/afscustom.h +++ b/src/WINNT/install/wix/custom/afscustom.h @@ -52,7 +52,8 @@ SOFTWARE. #define STR_VAL_ORDER _T("ProviderOrder") #define STR_SERVICE _T("TransarcAFSDaemon") -#define STR_SERVICE_LEN 18 +#define STR_RDRSVC _T("AFSRedirector") +#define STR_LANMAN _T("LanmanWorkstation") #define INP_ERR_PRESENT 1 #define INP_ERR_ADDED 2 @@ -68,8 +69,8 @@ SOFTWARE. #define ERR_GROUP_MEMBER_FAILED 4007 /* non-exported */ -int npi_CheckAndAddRemove( LPTSTR, LPTSTR, int ); -DWORD InstNetProvider(MSIHANDLE, int); +int npi_CheckAndAddRemove( LPTSTR, LPTSTR, int, LPTSTR); +DWORD InstNetProvider(MSIHANDLE, LPTSTR, int, LPTSTR = NULL); void ShowMsiError(MSIHANDLE, DWORD, DWORD); DWORD ConfigService(int); UINT createAfsAdminGroup(void); @@ -79,6 +80,8 @@ UINT removeAfsAdminGroup(void); /* exported */ MSIDLLEXPORT InstallNetProvider( MSIHANDLE ); MSIDLLEXPORT UninstallNetProvider ( MSIHANDLE ); +MSIDLLEXPORT InstallRedirNetProvider( MSIHANDLE ); +MSIDLLEXPORT UninstallRedirNetProvider ( MSIHANDLE ); MSIDLLEXPORT ConfigureClientService( MSIHANDLE ); MSIDLLEXPORT ConfigureServerService( MSIHANDLE ); MSIDLLEXPORT AbortMsiImmediate( MSIHANDLE ); diff --git a/src/WINNT/install/wix/feature.wxi b/src/WINNT/install/wix/feature.wxi index d30149d8a7..1d40b728a3 100644 --- a/src/WINNT/install/wix/feature.wxi +++ b/src/WINNT/install/wix/feature.wxi @@ -17,8 +17,9 @@ InstallDefault="followParent" Level="30" Title="$(loc.StrAFSClientDesc)"> + Display="expand" InstallDefault="followParent" Level="1030" Title="$(loc.StrLoopbackDesc)"> + USEREDIRECTOR = 0 VersionNT = 500 And ServicePackLevel < 3 - + - CREDSSTARTUP = 0 + CREDSSTARTUP <> 0 And USEAFSCREDS <> 0 And USEREDIRECTOR = 0 @@ -49,12 +50,56 @@ InstallDefault="$(var.DebugSymInstallDefault)" Level="$(var.DebugSymLowLevel)" Title="$(loc.StrAFSClientDebugDesc)"> - + + + + + USEREDIRECTOR = 0 + + + + + USEREDIRECTOR = 0 + + + + + + + + + USEAFSCREDS <> 0 And USEREDIRECTOR = 0 + + + + USEAFSCREDS <> 0 And USEREDIRECTOR = 0 + + + + + + + + USEAFSCONFIG <> 0 And USEREDIRECTOR = 0 + + + + USEAFSCONFIG <> 0 And USEREDIRECTOR = 0 + + + + @@ -76,12 +121,9 @@ - - - @@ -94,7 +136,6 @@ - @@ -203,7 +244,6 @@ - @@ -214,8 +254,6 @@ - - @@ -227,7 +265,6 @@ - @@ -282,7 +319,9 @@ - + + + @@ -308,6 +347,17 @@ + + + + + + + + + diff --git a/src/WINNT/install/wix/files.wxi b/src/WINNT/install/wix/files.wxi index c53c3ecade..a35301ffe8 100644 --- a/src/WINNT/install/wix/files.wxi +++ b/src/WINNT/install/wix/files.wxi @@ -100,7 +100,7 @@ - + @@ -993,51 +993,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + - + @@ -1174,17 +1174,54 @@ + + + + + + + + + + + + + + - + + @@ -1282,10 +1319,16 @@ - + + + + + + + @@ -1435,7 +1478,7 @@ - + @@ -1450,79 +1493,79 @@ - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - + + - + - - + + - + - + - - + + - - + + - - + + - - + + - + - + @@ -1536,13 +1579,13 @@ - - + + - - + + @@ -1551,30 +1594,30 @@ - - + + - - + + - - + + - + - + - + - + @@ -1605,52 +1648,52 @@ - + - + - - - + + + - + - + - + - + - - - - - - - + + + + + + + - - - + + + - + @@ -1659,40 +1702,40 @@ - - + + - - - + + + - - - + + + - + - + - + - - + + @@ -1708,41 +1751,41 @@ - + - - + + - + - + - + - + - - + + - - + + - + - - + + - - - + + + @@ -1778,6 +1821,34 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/WINNT/install/wix/lang/en_US/strings.wxl b/src/WINNT/install/wix/lang/en_US/strings.wxl index 370e7ca187..368fc3c0e9 100644 --- a/src/WINNT/install/wix/lang/en_US/strings.wxl +++ b/src/WINNT/install/wix/lang/en_US/strings.wxl @@ -31,6 +31,17 @@ OpenAFS plug-in for Network Identity Manager. Adds AFS token management capabilities to Network Identity Manager. Debug symbols for NetIDMgr plug-in Debugging symbols for the OpenAFS NetIDMgr plug-in. + Redirector Driver + OpenAFS File System Redirector Kernel Driver + Debug Symbols + Debuging symbols for the OpenAFS File System Redirector Kernel Driver + AFSCREDS.EXE tool for authenticating to AFS. + Debug symbols for AFS Authentication + Debugging symbols for AFSCREDS.EXE + Client configuration tool + AFS_CONFIG.EXE tool for configuring the AFS client and managing AFS drive mappings. + Debug symbols for configuration tool + Debugging symbols for AFS_CONFIG.EXE. AFS Context Menu Shell Extension AFS Context Menu Shell Extension (32-bit) @@ -67,6 +78,12 @@ Configuring the AFS server service Removing existing installation of OpenAFS Installing Microsoft Internationalized Domain Name Mitigation APIs + Installing network provider for filter driver + Removing network provider for filter driver + Unloading filter driver using FLTMC.EXE + Uninstalling filter driver + Installing filter driver + Loading filter driver using FLTMC.EXE Installation of OpenAFS for Windows was prematurely terminated because OpenAFS [NSISVERSION] was already installed. Uninstall OpenAFS from the local machine. diff --git a/src/WINNT/install/wix/lang/en_US/ui.wxi b/src/WINNT/install/wix/lang/en_US/ui.wxi index a52ef617c2..375292ebcc 100644 --- a/src/WINNT/install/wix/lang/en_US/ui.wxi +++ b/src/WINNT/install/wix/lang/en_US/ui.wxi @@ -690,6 +690,75 @@ {\VerdanaBold13}Resuming the [ProductName] [Wizard] + + + + + [DlgTitleFont]&IFS Based Client + + + Installs the OpenAFS Client as an installable file system driver. This is more robust than the SMB interface. + + + 1 + 1 + 1 + + $(var.DebugSymLowLevel) < 100 + + 1 + 1 + USEAFSCONFIG <> 0 + + USEAFSCONFIG <> 0 And $(var.DebugSymLowLevel) < 100 + 1 + + 1 + + + + [DlgTitleFont]C&ustom + + + Choose which individual components you want to install. This option is only recommended for advanced users. + + + 1 + 1 + + + + [DlgTitleFont]C&omplete + + + Installs the OpenAFS Client, Server and Control Center utilities. The Client installation will use the IFS interface. + + + 1 + 1 + 1 + + + + ShowUserRegistrationDlg <> 1 AND NOT (IBMAFS_UPGRADE OR OPENAFS_UPGRADE) + ShowUserRegistrationDlg = 1 AND NOT (IBMAFS_UPGRADE OR OPENAFS_UPGRADE) + IBMAFS_UPGRADE OR OPENAFS_UPGRADE OR NSISUNINSTALL <> "" + + + + 1 + + + + Choose the setup type that best suits your needs + + + + + [DlgTitleFont]Choose Setup Type + + + [DlgTitleFont]&Typical @@ -752,6 +821,7 @@ Installs the most common program features. Recommended for most users. + @@ -802,7 +872,8 @@ SAVED_CONFIG - 1 + &feaAfsCreds = 3 + &feaAfsCreds <> 3 1 @@ -956,6 +1027,68 @@ Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + 3 ]]> + + + @@ -1123,6 +1256,12 @@ $(loc.ActConfigureServer) $(loc.ActRemoveNsisInstallation) $(loc.ActInstallIDNMRedistributable) + $(loc.ActInstallRedirNetProvider) + $(loc.ActRemoveRedirNetProvider) + $(loc.ActUnloadFilterDriver) + $(loc.ActUninstallRdrDriver) + $(loc.ActInstallRdrDriver) + $(loc.ActLoadFilterDriver) diff --git a/src/WINNT/install/wix/openafs.wxs b/src/WINNT/install/wix/openafs.wxs index e955ea2e74..428d6d4eb0 100644 --- a/src/WINNT/install/wix/openafs.wxs +++ b/src/WINNT/install/wix/openafs.wxs @@ -13,7 +13,7 @@ version of OpenAFS has a different MSI name. Thus, each version needs a unique product code. --> - - + = 500]]> @@ -57,23 +57,43 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RUNDLL32EXE + + + + SETUPAPIDLL + + + Id="BIN_afsCustom" + src="$(var.MediaDllDir)afscustom.dll"/> @@ -98,77 +118,116 @@ Impersonate="no" /> - + + + + + + + + + - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + - @@ -245,34 +304,45 @@ - (Not Installed) And (IBMAFS_UPGRADE OR OPENAFS_UPGRADE OR AFSPLUGIN_UPGRADE) - NSISUNINSTALL <> "" AND UILevel >= 4 - NSISUNINSTALL <> "" AND UILevel < 4 - - - 3 AND !feaClient<>3) OR &feaControlCenter=2 OR (&feaControlCenter<>3 AND !feaControlCenter<>3) ))]]> - - - &feaLoopback=2 OR &feaLoopback=3 - &feaLoopback=3 - &feaLoopback=3 - - &feaLoopback=3 - - &feaClient=3 - &feaClient=3 - &feaClient=2 - !feaClient=2 And &feaClient=3 And (VersionNT=501 Or VersionNT=502) - &feaClient=3 - &feaServer=3 - !feaClient=2 And &feaClient=3 And RESTORE_CONFIG - !feaClient=2 And &feaClient=3 And RESTORE_CONFIG - !feaClient=3 And &feaClient=2 - - &feaClient=3 - &feaClient=3 - - + (Not Installed) And (IBMAFS_UPGRADE OR OPENAFS_UPGRADE OR AFSPLUGIN_UPGRADE) + NSISUNINSTALL <> "" AND UILevel >= 4 + NSISUNINSTALL <> "" AND UILevel < 4 + + + 3 AND !feaClient<>3) OR &feaControlCenter=2 OR (&feaControlCenter<>3 AND !feaControlCenter<>3) ))]]> + + + &feaLoopback=2 OR &feaLoopback=3 + &feaLoopback=3 + &feaLoopback=3 + + &feaLoopback=3 + + !feaClient=2 And &feaClient=3 And (VersionNT=501 Or VersionNT=502) + &feaClient=3 + &feaClient=3 + &feaClient=2 + + &feaClientDriver=3 + &feaClientDriver=3 + &feaClientDriver=2 + + &feaClient=3 + &feaServer=3 + !feaClient=2 And &feaClient=3 And RESTORE_CONFIG + !feaClient=2 And &feaClient=3 And RESTORE_CONFIG + !feaClient=3 And &feaClient=2 + + &feaClient=3 + &feaClient=3 + + + &feaClientDriver=2 And RUNDLL32EXE And SETUPAPIDLL + &feaClientDriver=2 And RUNDLL32EXE And SETUPAPIDLL + &feaClientDriver=3 And RUNDLL32EXE And SETUPAPIDLL + &feaClientDriver=3 And RUNDLL32EXE And SETUPAPIDLL + + &feaClient=3 OR &feaServer=3 OR &feaClient=2 OR &feaServer=2 @@ -281,23 +351,23 @@ - + - + - + - - + + diff --git a/src/WINNT/install/wix/platform.wxi b/src/WINNT/install/wix/platform.wxi index be5ed29b90..4c569cf9d1 100644 --- a/src/WINNT/install/wix/platform.wxi +++ b/src/WINNT/install/wix/platform.wxi @@ -110,6 +110,11 @@ + + + + + @@ -220,6 +225,11 @@ + + + + + diff --git a/src/WINNT/install/wix/property.wxi b/src/WINNT/install/wix/property.wxi index 94468319a6..4ad0299eb0 100644 --- a/src/WINNT/install/wix/property.wxi +++ b/src/WINNT/install/wix/property.wxi @@ -13,12 +13,15 @@ $(var.RxMaxMTU) $(var.HideDotFiles) $(var.SecurityLevel) + 1 1 -a -m -n -q + 1 $(var.SMBAuthType) + 1