From: Jeffrey Altman Date: Fri, 20 Aug 2004 23:42:59 +0000 (+0000) Subject: New WiX based MSI installer for KFW X-Git-Tag: krb5-1.4-beta1~137 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8a7d1cdf437405d74b3616fd54aef8219aa722ae;p=thirdparty%2Fkrb5.git New WiX based MSI installer for KFW Requires WiX 2.0.1927.1 patched by Asanka. http://prdownloads.sourceforge.net/wix/sources-2.0.1927.1.zip ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16675 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/windows/installer/wix/Binary/bannrbmp.bmp b/src/windows/installer/wix/Binary/bannrbmp.bmp new file mode 100644 index 0000000000..fe26100177 Binary files /dev/null and b/src/windows/installer/wix/Binary/bannrbmp.bmp differ diff --git a/src/windows/installer/wix/Binary/completi.ico b/src/windows/installer/wix/Binary/completi.ico new file mode 100644 index 0000000000..93a95a1b19 Binary files /dev/null and b/src/windows/installer/wix/Binary/completi.ico differ diff --git a/src/windows/installer/wix/Binary/custicon.ico b/src/windows/installer/wix/Binary/custicon.ico new file mode 100644 index 0000000000..878d3ba54b Binary files /dev/null and b/src/windows/installer/wix/Binary/custicon.ico differ diff --git a/src/windows/installer/wix/Binary/dlgbmp.bmp b/src/windows/installer/wix/Binary/dlgbmp.bmp new file mode 100644 index 0000000000..b67c6c246e Binary files /dev/null and b/src/windows/installer/wix/Binary/dlgbmp.bmp differ diff --git a/src/windows/installer/wix/Binary/exclamic.ico b/src/windows/installer/wix/Binary/exclamic.ico new file mode 100644 index 0000000000..906ce3246d Binary files /dev/null and b/src/windows/installer/wix/Binary/exclamic.ico differ diff --git a/src/windows/installer/wix/Binary/info.bmp b/src/windows/installer/wix/Binary/info.bmp new file mode 100644 index 0000000000..7e0ff7f14c Binary files /dev/null and b/src/windows/installer/wix/Binary/info.bmp differ diff --git a/src/windows/installer/wix/Binary/insticon.ico b/src/windows/installer/wix/Binary/insticon.ico new file mode 100644 index 0000000000..94753ac296 Binary files /dev/null and b/src/windows/installer/wix/Binary/insticon.ico differ diff --git a/src/windows/installer/wix/Binary/new.bmp b/src/windows/installer/wix/Binary/new.bmp new file mode 100644 index 0000000000..27881dfe97 Binary files /dev/null and b/src/windows/installer/wix/Binary/new.bmp differ diff --git a/src/windows/installer/wix/Binary/removico.ico b/src/windows/installer/wix/Binary/removico.ico new file mode 100644 index 0000000000..097cafe274 Binary files /dev/null and b/src/windows/installer/wix/Binary/removico.ico differ diff --git a/src/windows/installer/wix/Binary/repairic.ico b/src/windows/installer/wix/Binary/repairic.ico new file mode 100644 index 0000000000..6fb68610c9 Binary files /dev/null and b/src/windows/installer/wix/Binary/repairic.ico differ diff --git a/src/windows/installer/wix/Binary/up.bmp b/src/windows/installer/wix/Binary/up.bmp new file mode 100644 index 0000000000..86f6b5a847 Binary files /dev/null and b/src/windows/installer/wix/Binary/up.bmp differ diff --git a/src/windows/installer/wix/Makefile b/src/windows/installer/wix/Makefile new file mode 100644 index 0000000000..02de33ca70 --- /dev/null +++ b/src/windows/installer/wix/Makefile @@ -0,0 +1,59 @@ + +# Build language +LANG=1033 + +# Program macros +CANDLE=candle -nologo + +LIGHT=light -nologo + +CD=cd + +RM=del + +MAKE=nmake -nologo + + +# Targets + +OUTPATH=. + +OBJFILE=$(OUTPATH)\kfw.wixobj + +MSIFILE=$(OUTPATH)\kfw.msi + +WIXINCLUDES= \ + config.wxi \ + features.wxi \ + files.wxi \ + property.wxi \ + site-local.wxi \ + lang\strings_$(LANG).wxl \ + lang\ui_$(LANG).wxi \ + lang\config_$(LANG).wxi + +CUSTOMDLL=custom\custom.dll + +all: $(MSIFILE) + +$(OBJFILE): kfw.wxs $(WIXINCLUDES) + $(CANDLE) -out $@ kfw.wxs \ + "-dDate=%DATE%" \ + "-dTime=%TIME%" \ + -dBuildLang=$(LANG) + +$(MSIFILE): $(OBJFILE) $(CUSTOMDLL) + $(LIGHT) -out $@ $(OBJFILE) \ + -loc lang\strings_$(LANG).wxl + +$(CUSTOMDLL): custom\custom.cpp + $(CD) custom + $(MAKE) -f custom.cpp + $(CD) .. + +clean: + $(RM) $(OBJFILE) + $(RM) $(MSIFILE) + $(CD) custom + $(MAKE) -f custom.cpp clean + $(CD) .. diff --git a/src/windows/installer/wix/config.wxi b/src/windows/installer/wix/config.wxi new file mode 100644 index 0000000000..508a93742e --- /dev/null +++ b/src/windows/installer/wix/config.wxi @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windows/installer/wix/custom/custom.cpp b/src/windows/installer/wix/custom/custom.cpp new file mode 100644 index 0000000000..31fc11caad --- /dev/null +++ b/src/windows/installer/wix/custom/custom.cpp @@ -0,0 +1,627 @@ +#ifdef __NMAKE__ + +# NMAKE portion. +# Build with : nmake /f custom.cpp +# Clean with : nmake /f custom.cpp clean + +# Builds custom.dll + +OUTPATH = . + +# program name macros +CC = cl /nologo + +LINK = link /nologo + +RM = del + +DLLFILE = $(OUTPATH)\custom.dll + +DLLEXPORTS =\ + -EXPORT:EnableAllowTgtSessionKey \ + -EXPORT:RevertAllowTgtSessionKey \ + -EXPORT:AbortMsiImmediate \ + -EXPORT:UninstallNsisInstallation \ + -EXPORT:KillRunningProcesses \ + -EXPORT:ListRunningProcesses + +$(DLLFILE): $(OUTPATH)\custom.obj + $(LINK) /OUT:$@ /DLL $** $(DLLEXPORTS) + +$(OUTPATH)\custom.obj: custom.cpp custom.h + $(CC) /c /Fo$@ custom.cpp + +all: $(DLLFILE) + +clean: + $(RM) $(DLLFILE) + $(RM) $(OUTPATH)\custom.obj + $(RM) $(OUTPATH)\custom.exp + +!IFDEF __C_TEXT__ +#else +/* + +Copyright 2004 by the Massachusetts Institute of Technology + +All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of the Massachusetts +Institute of Technology (M.I.T.) not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. + +M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +*/ + +/************************************************************** +* custom.cpp : Dll implementing custom action to install Kerberos for Windows +* +* The functions in this file are for use as entry points +* for calls from MSI only. The specific MSI parameters +* are noted in the comments section of each of the +* functions. +* +* rcsid: $Id$ +**************************************************************/ + +#pragma unmanaged + +// Only works for Win2k and above +#define _WIN32_WINNT 0x500 +#include "custom.h" + +// linker stuff +#pragma comment(lib, "msi") +#pragma comment(lib, "advapi32") + + +void ShowMsiError( MSIHANDLE hInstall, DWORD errcode, DWORD param ){ + MSIHANDLE hRecord; + + hRecord = MsiCreateRecord(3); + MsiRecordClearData(hRecord); + MsiRecordSetInteger(hRecord, 1, errcode); + MsiRecordSetInteger(hRecord, 2, param); + + MsiProcessMessage( hInstall, INSTALLMESSAGE_ERROR, hRecord ); + + MsiCloseHandle( hRecord ); +} + +#define LSA_KERBEROS_KEY "SYSTEM\\CurrentControlSet\\Control\\Lsa\\Kerberos" +#define LSA_KERBEROS_PARM_KEY "SYSTEM\\CurrentControlSet\\Control\\Lsa\\Kerberos\\Parameters" +#define KFW_CLIENT_KEY "SOFTWARE\\MIT\\Kerberos\\Client\\" +#define SESSKEY_VALUE_NAME "AllowTGTSessionKey" + +#define SESSBACKUP_VALUE_NAME "AllowTGTSessionKeyBackup" +#define SESSXPBACKUP_VALUE_NAME "AllowTGTSessionKeyBackupXP" + + +/* Set the AllowTGTSessionKey registry keys on install. Called as a deferred custom action. */ +MSIDLLEXPORT EnableAllowTgtSessionKey( MSIHANDLE hInstall ) { + return SetAllowTgtSessionKey( hInstall, TRUE ); +} + +/* Unset the AllowTGTSessionKey registry keys on uninstall. Called as a deferred custom action. */ +MSIDLLEXPORT RevertAllowTgtSessionKey( MSIHANDLE hInstall ) { + return SetAllowTgtSessionKey( hInstall, FALSE ); +} + +UINT SetAllowTgtSessionKey( MSIHANDLE hInstall, BOOL pInstall ) { + TCHAR tchVersionString[1024]; + TCHAR tchVersionKey[2048]; + DWORD size; + DWORD type; + DWORD value; + HKEY hkKfwClient = NULL; + HKEY hkLsaKerberos = NULL; + HKEY hkLsaKerberosParm = NULL; + UINT rv; + DWORD phase = 0; + + // construct the backup key path + size = sizeof(tchVersionString) / sizeof(TCHAR); + rv = MsiGetProperty( hInstall, _T("CustomActionData"), tchVersionString, &size ); + if(rv != ERROR_SUCCESS) { + if(pInstall) { + ShowMsiError( hInstall, ERR_CUSTACTDATA, rv ); + return rv; + } else { + return ERROR_SUCCESS; + } + } + + _tcscpy( tchVersionKey, _T( KFW_CLIENT_KEY ) ); + _tcscat( tchVersionKey, tchVersionString ); + + phase = 1; + + rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, tchVersionKey, 0, ((pInstall)?KEY_WRITE:KEY_READ), &hkKfwClient ); + if(rv != ERROR_SUCCESS) + goto cleanup; + + phase = 2; + + rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, _T( LSA_KERBEROS_KEY ), 0, KEY_READ | KEY_WRITE, &hkLsaKerberos ); + if(rv != ERROR_SUCCESS) + goto cleanup; + + phase = 3; + + rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, _T( LSA_KERBEROS_PARM_KEY ), 0, KEY_READ | KEY_WRITE, &hkLsaKerberosParm ); + if(rv != ERROR_SUCCESS) { + hkLsaKerberosParm = NULL; + } + + if(pInstall) { + // backup the existing values + if(hkLsaKerberosParm) { + phase = 4; + + size = sizeof(value); + rv = RegQueryValueEx( hkLsaKerberosParm, _T( SESSKEY_VALUE_NAME ), NULL, &type, (LPBYTE) &value, &size ); + if(rv != ERROR_SUCCESS) + value = 0; + + phase = 5; + rv = RegSetValueEx( hkKfwClient, _T( SESSBACKUP_VALUE_NAME ), 0, REG_DWORD, (LPBYTE) &value, sizeof(value)); + if(rv != ERROR_SUCCESS) + goto cleanup; + } + + phase = 6; + size = sizeof(value); + rv = RegQueryValueEx( hkLsaKerberos, _T( SESSKEY_VALUE_NAME ), NULL, &type, (LPBYTE) &value, &size ); + if(rv != ERROR_SUCCESS) + value = 0; + + phase = 7; + rv = RegSetValueEx( hkKfwClient, _T( SESSXPBACKUP_VALUE_NAME ), 0, REG_DWORD, (LPBYTE) &value, sizeof(value)); + if(rv != ERROR_SUCCESS) + goto cleanup; + + // and now write the actual values + phase = 8; + value = 1; + rv = RegSetValueEx( hkLsaKerberos, _T( SESSKEY_VALUE_NAME ), 0, REG_DWORD, (LPBYTE) &value, sizeof(value)); + if(rv != ERROR_SUCCESS) + goto cleanup; + + if(hkLsaKerberosParm) { + phase = 9; + value = 1; + rv = RegSetValueEx( hkLsaKerberosParm, _T( SESSKEY_VALUE_NAME ), 0, REG_DWORD, (LPBYTE) &value, sizeof(value)); + if(rv != ERROR_SUCCESS) + goto cleanup; + } + + } else { // uninstalling + // Don't fail no matter what goes wrong. This is also a rollback action. + if(hkLsaKerberosParm) { + size = sizeof(value); + rv = RegQueryValueEx( hkKfwClient, _T( SESSBACKUP_VALUE_NAME ), NULL, &type, (LPBYTE) &value, &size ); + if(rv != ERROR_SUCCESS) + value = 0; + + RegSetValueEx( hkLsaKerberosParm, _T( SESSKEY_VALUE_NAME ), 0, REG_DWORD, (LPBYTE) &value, sizeof(value)); + } + + size = sizeof(value); + rv = RegQueryValueEx( hkKfwClient, _T( SESSXPBACKUP_VALUE_NAME ), NULL, &type, (LPBYTE) &value, &size ); + if(rv != ERROR_SUCCESS) + value = 0; + + RegSetValueEx( hkLsaKerberos, _T( SESSKEY_VALUE_NAME ), 0, REG_DWORD, (LPBYTE) &value, sizeof(value)); + + RegDeleteValue( hkKfwClient, _T( SESSXPBACKUP_VALUE_NAME ) ); + RegDeleteValue( hkKfwClient, _T( SESSBACKUP_VALUE_NAME ) ); + } + + // all done + rv = ERROR_SUCCESS; + +cleanup: + if(rv != ERROR_SUCCESS && pInstall) { + ShowMsiError(hInstall, 4005, phase); + } + if(hkKfwClient) RegCloseKey( hkKfwClient ); + if(hkLsaKerberos) RegCloseKey( hkLsaKerberos ); + if(hkLsaKerberosParm) RegCloseKey( hkLsaKerberosParm ); + + return rv; +} + +/* Abort the installation (called as an immediate custom action) */ +MSIDLLEXPORT AbortMsiImmediate( MSIHANDLE hInstall ) { + DWORD rv; + DWORD dwSize = 0; + LPTSTR sReason = NULL; + LPTSTR sFormatted = NULL; + MSIHANDLE hRecord = NULL; + LPTSTR cAbortReason = _T("ABORTREASON"); + + rv = MsiGetProperty( hInstall, cAbortReason, _T(""), &dwSize ); + if(rv != ERROR_MORE_DATA) goto _cleanup; + + sReason = new TCHAR[ ++dwSize ]; + + rv = MsiGetProperty( hInstall, cAbortReason, sReason, &dwSize ); + + if(rv != ERROR_SUCCESS) goto _cleanup; + + hRecord = MsiCreateRecord(3); + MsiRecordClearData(hRecord); + MsiRecordSetString(hRecord, 0, sReason); + + dwSize = 0; + + rv = MsiFormatRecord(hInstall, hRecord, "", &dwSize); + if(rv != ERROR_MORE_DATA) goto _cleanup; + + sFormatted = new TCHAR[ ++dwSize ]; + + rv = MsiFormatRecord(hInstall, hRecord, sFormatted, &dwSize); + + if(rv != ERROR_SUCCESS) goto _cleanup; + + MsiCloseHandle(hRecord); + + hRecord = MsiCreateRecord(3); + MsiRecordClearData(hRecord); + MsiRecordSetInteger(hRecord, 1, ERR_ABORT); + MsiRecordSetString(hRecord,2, sFormatted); + MsiProcessMessage(hInstall, INSTALLMESSAGE_ERROR, hRecord); + +_cleanup: + if(sFormatted) delete sFormatted; + if(hRecord) MsiCloseHandle( hRecord ); + if(sReason) delete sReason; + + return ~ERROR_SUCCESS; +} + +/* Kill specified processes that are running on the system */ +/* Uses the custom table KillProcess. Called as an immediate action. */ + +#define MAX_KILL_PROCESSES 255 +#define FIELD_SIZE 256 + +struct _KillProc { + TCHAR * image; + TCHAR * desc; + BOOL found; + DWORD pid; +}; + +#define RV_BAIL if(rv != ERROR_SUCCESS) goto _cleanup + +MSIDLLEXPORT KillRunningProcesses( MSIHANDLE hInstall ) { + return KillRunningProcessesSlave( hInstall, TRUE ); +} + +/* When listing running processes, we populate the ListBox table with + values associated with the property 'KillableProcesses'. If we + actually find any processes worth killing, then we also set the + 'FoundProcceses' property to '1'. Otherwise we set it to ''. +*/ + +MSIDLLEXPORT ListRunningProcesses( MSIHANDLE hInstall ) { + return KillRunningProcessesSlave( hInstall, FALSE ); +} + +UINT KillRunningProcessesSlave( MSIHANDLE hInstall, BOOL bKill ) +{ + UINT rv = ERROR_SUCCESS; + _KillProc * kpList; + int nKpList = 0; + int i; + int rowNum = 1; + DWORD size; + BOOL found = FALSE; + + MSIHANDLE hDatabase = NULL; + MSIHANDLE hView = NULL; + MSIHANDLE hViewInsert = NULL; + MSIHANDLE hRecord = NULL; + MSIHANDLE hRecordInsert = NULL; + + HANDLE hSnapshot = NULL; + + PROCESSENTRY32 pe; + + kpList = new _KillProc[MAX_KILL_PROCESSES]; + memset(kpList, 0, sizeof(*kpList) * MAX_KILL_PROCESSES); + + hDatabase = MsiGetActiveDatabase( hInstall ); + if( hDatabase == NULL ) { + rv = GetLastError(); + goto _cleanup; + } + + // If we are only going to list out the processes, delete all the existing + // entries first. + + if(!bKill) { + + rv = MsiDatabaseOpenView( hDatabase, + _T( "DELETE FROM `ListBox` WHERE `ListBox`.`Property` = 'KillableProcesses'" ), + &hView); RV_BAIL; + + rv = MsiViewExecute( hView, NULL ); RV_BAIL; + + MsiCloseHandle( hView ); + + hView = NULL; + + rv = MsiDatabaseOpenView( hDatabase, + _T( "SELECT * FROM `ListBox` WHERE `Property` = 'KillableProcesses'" ), + &hViewInsert); RV_BAIL; + + MsiViewExecute(hViewInsert, NULL); + + hRecordInsert = MsiCreateRecord(4); + + if(hRecordInsert == NULL) { + rv = GetLastError(); + goto _cleanup; + } + } + + // Open a view + rv = MsiDatabaseOpenView( hDatabase, + _T( "SELECT `Image`,`Desc` FROM `KillProcess`" ), + &hView); RV_BAIL; + + rv = MsiViewExecute( hView, NULL ); RV_BAIL; + + do { + rv = MsiViewFetch( hView, &hRecord ); + if(rv != ERROR_SUCCESS) { + if(hRecord) + MsiCloseHandle(hRecord); + hRecord = NULL; + break; + } + + kpList[nKpList].image = new TCHAR[ FIELD_SIZE ]; kpList[nKpList].image[0] = _T('\0'); + kpList[nKpList].desc = new TCHAR[ FIELD_SIZE ]; kpList[nKpList].desc[0] = _T('\0'); + nKpList++; + + size = FIELD_SIZE; + rv = MsiRecordGetString(hRecord, 1, kpList[nKpList-1].image, &size); RV_BAIL; + + size = FIELD_SIZE; + rv = MsiRecordGetString(hRecord, 2, kpList[nKpList-1].desc, &size); RV_BAIL; + + MsiCloseHandle(hRecord); + } while(nKpList < MAX_KILL_PROCESSES); + + hRecord = NULL; + + // now we have all the processes in the array. Check if they are running. + + hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); + if(hSnapshot == INVALID_HANDLE_VALUE) { + rv = GetLastError(); + goto _cleanup; + } + + pe.dwSize = sizeof( PROCESSENTRY32 ); + + if(!Process32First( hSnapshot, &pe )) { + // technically we should at least find the MSI process, but we let this pass + rv = ERROR_SUCCESS; + goto _cleanup; + } + + do { + for(i=0; i +#include +#include +#include +#include +#include + +#define MSIDLLEXPORT UINT __stdcall + +#define CHECK(x) if((x)) goto _cleanup + +#define CHECKX(x,y) if(!(x)) { msiErr = (y); goto _cleanup; } + +#define CHECK2(x,y) if((x)) { msiErr = (y); goto _cleanup; } + +void ShowMsiError(MSIHANDLE, DWORD, DWORD); +UINT SetAllowTgtSessionKey( MSIHANDLE hInstall, BOOL pInstall ); +UINT KillRunningProcessesSlave( MSIHANDLE hInstall, BOOL bKill ); + +/* exported */ +MSIDLLEXPORT AbortMsiImmediate( MSIHANDLE ); +MSIDLLEXPORT UninstallNsisInstallation( MSIHANDLE hInstall ); +MSIDLLEXPORT RevertAllowTgtSessionKey( MSIHANDLE hInstall ); +MSIDLLEXPORT EnableAllowTgtSessionKey( MSIHANDLE hInstall ); +MSIDLLEXPORT KillRunningProcesses( MSIHANDLE hInstall ) ; +MSIDLLEXPORT ListRunningProcesses( MSIHANDLE hInstall ); + +/* Custom errors */ +#define ERR_CUSTACTDATA 4001 +#define ERR_NSS_FAILED 4003 +#define ERR_ABORT 4004 +#define ERR_PROC_LIST 4006 diff --git a/src/windows/installer/wix/features.wxi b/src/windows/installer/wix/features.wxi new file mode 100644 index 0000000000..aaece45a43 --- /dev/null +++ b/src/windows/installer/wix/features.wxi @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LEASHAUTOSTART = 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windows/installer/wix/files.wxi b/src/windows/installer/wix/files.wxi new file mode 100644 index 0000000000..419e675dd5 --- /dev/null +++ b/src/windows/installer/wix/files.wxi @@ -0,0 +1,666 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windows/installer/wix/kfw.wxs b/src/windows/installer/wix/kfw.wxs new file mode 100644 index 0000000000..233fefdf60 --- /dev/null +++ b/src/windows/installer/wix/kfw.wxs @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + Privileged + Version9X >= 410 Or VersionNT >= 400 + + + + + + + + + + + + + + + + + + + + + + + + + + UPGRADEPISMERE Or UPGRADEKFW + + + UILevel = 0 And (Not Installed) And (CCP_Success <> 1) + UPGRADENSIS <> "" And UILevel >= 4 + UPGRADENSIS <> "" And UILevel < 4 + VersionNT >= 500 And &feaKfwClient=3 + VersionNT >= 500 And &feaKfwClient=3 + VersionNT >= 500 And &feaKfwClient=2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + kpLeash + leash32.exe + Leash Ticket Manager + + + kpKrbcc + krbcc32s.exe + Kerberos Credential Cache + + + kpK95 + k95.exe + + + + kpK95g + k95g.exe + + + + kpkrb5 + krb5.exe + Kerberos Client + + + kpgss + gss.exe + GSSAPI Test Client + + + kpafscreds + afscreds.exe + AFS Credentials Manager + + + + + diff --git a/src/windows/installer/wix/lang/config_1033.wxi b/src/windows/installer/wix/lang/config_1033.wxi new file mode 100644 index 0000000000..0fc62e3d17 --- /dev/null +++ b/src/windows/installer/wix/lang/config_1033.wxi @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windows/installer/wix/lang/strings_1033.wxl b/src/windows/installer/wix/lang/strings_1033.wxl new file mode 100644 index 0000000000..324831d923 --- /dev/null +++ b/src/windows/installer/wix/lang/strings_1033.wxl @@ -0,0 +1,55 @@ + + + + Kerberos for Windows + Kerberos + MIT + Debug/Checked + Beta + + Massachusetts Institute of Technology + + Kerberos for Windows + Kerberos for Windows + + Client + Kerberos client utilities, libraries and documentation + + SDK + Libraries and header files for developing software with Kerberos + + Documentation + Documentation + + You need administrative privileges to install Kerberos for Windows + This product requires Windows 98/ME/2000/XP/2003. The current operating system is not supported. + The NSIS based installation of Kerberos for Windows could not be uninstalled because the NSIS uninstaller must be run in Full UI mode. + Kerberos for Windows requires Microsoft Internet Explorer version 5.01 or higher. Please resolve this and run the installer again. + + Build of + + \ No newline at end of file diff --git a/src/windows/installer/wix/lang/ui_1033.wxi b/src/windows/installer/wix/lang/ui_1033.wxi new file mode 100644 index 0000000000..b2983fc3d1 --- /dev/null +++ b/src/windows/installer/wix/lang/ui_1033.wxi @@ -0,0 +1,1243 @@ + + + + + + 1 + 1 + + + 1 + + + + + + The [Wizard] will create a server image of [ProductName], at a specified network location. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + 1 + + + + + + + Click the Finish button to exit the [Wizard]. + + + {\VerdanaBold13}Completing the [ProductName] [Wizard] + + + + + 1 + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] ended prematurely + + + [ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + 1 + + + + + Please wait while the [Wizard] prepares to guide you through the installation. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + + + 1 + + + + + + Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. + + + + + [DlgTitleFont][Progress1] [ProductName] + + + + + + + + + + + + 1 + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] was interrupted + + + [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + 1 + 1 + + + 1 + 1 + + + + + + + 1 + + + 1 + + + + + + + + Browse to the destination folder + + + [DlgTitleFont]Change current destination folder + + + + + &Enter a new network location or click Browse to browse to one. + + + + 1 + + + 1 + + + 1 + 1 + + + 1 + + + + + + Please specify a network location for the server image of [ProductName] product + + + [DlgTitleFont]Network Location + + + + + &Please enter the name of your organization in the box below. This will be used as default company name for subsequent installations of [ProductName]: + + + + CD &Key: + + + + 1 + + + 0 + ProductID + + + 1 + + + + + + Please enter your company information + + + [DlgTitleFont]Company Information + + + + + + 1 + 1 + + + 1 + 1 + + + + + + + 1 + + + 1 + + + + + + + + Browse to the destination folder + + + [DlgTitleFont]Change current destination folder + + + + + 1 + + + 1 + + + Are you sure you want to cancel [ProductName] installation? + + + + + + + 1 + Installed + + + 1 + + + + Disk &Usage + 1 + + + + InstallMode = "Change" + InstallMode = "Custom" + + + ( &feaKfwClient <> 3 And !feaKfwClient <> 3 ) And Not FoundProcesses + ( &feaKfwClient <> 3 And !feaKfwClient <> 3 ) And FoundProcesses + &feaKfwClient = 3 Or !feaKfwClient = 3 + + + + 1 + + + + Click on the icons in the tree below to change the way features will be installed. + + + + + Select the way you want features to be installed. + + + [DlgTitleFont]Custom Setup + + + + Multiline description of the currently selected item. + + + + The size of the currently selected item. + + + + <The selection's path> + + + Installed + + + + Installed + + + + + 1 + + + + The highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s). + + + + + The disk space required for the installation of the selected features. + + + [DlgTitleFont]Disk Space Requirements + + + {120}{70}{70}{70}{70} + + + + + + 1 + + + 1 + + + 1 + + + + 1 + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. + + + + + Some files that need to be updated are currently in use. + + + [DlgTitleFont]Files in Use + + + + + + + + (InstallMode = "Custom" OR InstallMode = "Change") AND &feaKfwClient <> 3 And !feaKfwClient <> 3 + (InstallMode = "Custom" OR InstallMode = "Change") AND ( &feaKfwClient = 3 Or !feaKfwClient = 3 ) + InstallMode = "Repair" + InstallMode = "Typical" OR InstallMode = "Complete" + + + 1 + + + 1 + + + + + The following applications are currently running and need to be closed in order for the installation to progress. Please close them manually or click Next to let [Wizard] close them for you. + + + + + Some running processes need to be closed. + + + [DlgTitleFont]Close Running Proccesses + + + + + + + + + + + 1 + + + + + + [ProductName] requires a newer version of iphlpapi.dll than the one that is currently installed on this computer. This file is included in Microsoft Internet Explorer version 5.01 or later. Please install this and re-run the [ProductName] installer. + + + + + + [ProgramName] requires a newer version of iphlpapi.dll + + + [DlgTitleFont]Compliance Check Failed! + + + + + + + 1 + + + IAgree = "Yes" AND ShowUserRegistrationDlg = 1 + CostingComplete = 1 + IAgree = "Yes" AND ShowUserRegistrationDlg <> 1 AND (UPGRADEPISMERE OR UPGRADEKFW OR UPGRADENSIS <> "") + IAgree = "Yes" AND ShowUserRegistrationDlg <> 1 AND NOT (UPGRADEPISMERE OR UPGRADEKFW OR UPGRADENSIS <> "") + IAgree <> "Yes" + IAgree = "Yes" + + + 1 + + + + were work performed at Fermi National Accelerator Laboratory, which is operated by Universities Research Association, Inc., under contract DE-AC02-76CHO3000 with the U.S. Department of Energy.\par \par ---- The implementation of the Yarrow pseudo-random number generator in src/lib/crypto/yarrow has the following copyright:\par \par Copyright 2000 by Zero-Knowledge Systems, Inc.\par \par Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Zero-Knowledge Systems, Inc. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Zero-Knowledge Systems, Inc. makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.\par \par ZERO-KNOWLEDGE SYSTEMS, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ZERO-KNOWLEDGE SYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\par ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\par \par ---- The implementation of the AES encryption algorithm in src/lib/crypto/aes has the following copyright:\par \par Copyright (c) 2001, Dr Brian Gladman , Worcester, UK.\par All rights reserved.\par \par LICENSE TERMS\par \par The free distribution and use of this software in both source and binary form is allowed (with or without changes) provided that:\par \par 1. distributions of this source code include the above copyright notice, this list of conditions and the following disclaimer;\par \par 2. distributions in binary form include the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other associated materials;\par \par 3. the copyright holder's name is not used to endorse products built using this software without specific written permission. \par \par DISCLAIMER\par \par This software is provided 'as is' with no explcit or implied warranties in respect of any properties, including, but not limited to, correctness and fitness for purpose.\par \par \par \par Acknowledgements\par ----------------\par \par Appreciation Time!!!! There are far too many people to try to thank them all; many people have contributed to the development of Kerberos V5. This is only a partial listing....\par \par Thanks to Paul Vixie and the Internet Software Consortium for funding the work of Barry Jaspan. This funding was invaluable for the OV administration server integration, as well as the 1.0 release preparation process.\par \par Thanks to John Linn, Scott Foote, and all of the folks at OpenVision Technologies, Inc., who donated their administration server for use in the MIT release of Kerberos.\par \par Thanks to Jeff Bigler, Mark Eichin, Marc Horowitz, Nancy Gilman, Ken Raeburn, and all of the folks at Cygnus Support, who provided innumerable bug fixes and portability enhancements to the Kerberos V5 tree. Thanks especially to Jeff Bigler, for the new user and system administrator's documentation.\par \par Thanks to Doug Engert from ANL for providing many bug fixes, as well as testing to ensure DCE interoperability.\par \par Thanks to Ken Hornstein at NRL for providing many bug fixes and suggestions, and for working on SAM preauthentication.\par \par Thanks to Matt Crawford at FNAL for bugfixes and enhancements.\par \par Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for their many suggestions and bug fixes.\par \par Thanks to Nalin Dahyabhai of RedHat and Chris Evans for locating and providing patches for numerous buffer overruns.\par \par Thanks to Christopher Thompson and Marcus Watts for discovering the ftpd security bug.\par \par Thanks to Paul Nelson of Thursby Software Systems for implementing the Microsoft set password protocol.\par \par Thanks to the members of the Kerberos V5 development team at MIT, both past and present: Danilo Almeida, Jeffrey Altman, Jay Berkenbilt, Richard Basch, Mitch Berger, John Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt Hancher, Sam Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Miroslav Jurisic, Barry Jaspan, Geoffrey King, John Kohl, Peter Litwack, Scott McGuire, Kevin Mitchell, Cliff Neuman, Paul Park, Ezra Peisach, Chris Provenzano, Ken Raeburn, Jon Rochlis, Jeff Schiller, Jen Selby, Brad Thompson, Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.\par \pard\f1\fs24\par } ]]> + + + + + + Please read the following license agreement carefully + + + [DlgTitleFont]End-User License Agreement + + + + + [DlgTitleFont]&Modify + + + 1 + 1 + 1 + 1 + + + [DlgTitleFont]Re&pair + + + 1 + 1 + 1 + 1 + + + [DlgTitleFont]&Remove + + + 1 + 1 + 1 + 1 + + + 1 + + + + 1 + + + + + + Select the operation you wish to perform. + + + [DlgTitleFont]Modify, Repair or Remove installation + + + Allows users to change the way features are installed. + + + Removes [ProductName] from your computer. + + + Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. + + + + + CostingComplete = 1 + 1 + + + 1 + + + + + + The [Wizard] will allow you to change the way [ProductName] features are installed on your computer or even to remove [ProductName] from your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + 1 + + + + The highlighted volumes do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s). + + + + + Disk space required for the installation exceeds available disk space. + + + [DlgTitleFont]Out of Disk Space + + + {120}{70}{70}{70}{70} + + + + + 1 + + + 1 + 1 + + + + The highlighted volumes do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s). + + + + + Disk space required for the installation exceeds available disk space. + + + [DlgTitleFont]Out of Disk Space + + + {120}{70}{70}{70}{70} + + + Alternatively, you may choose to disable the installer's rollback functionality. This allows the installer to restore your computer's original state should the installation be interrupted in any way. Click Yes if you wish to take the risk to disable rollback. + + + + + 1 + + + 1 + + + + ShowUserRegistrationDlg <> 1 + ShowUserRegistrationDlg = 1 + + + Other versions of [ProductName] need to be removed. + + + Click Confirm to uninstall the following version of Kerberos for Windows installed on this computer. Installation of [ProductName] cannot continue unless this program is removed. + + + + + [DlgTitleFont]Uninstall previous versions + + + + + + + + + CostingComplete = 1 + OutOfDiskSpace <> 1 + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST) + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + (OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F") + + + 1 + + + + + + The [Wizard] will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Resuming the [ProductName] [Wizard] + + + + + [DlgTitleFont]&Typical + + + 1 + 1 + Not FoundProcesses + FoundProcesses + + + [DlgTitleFont]C&ustom + + + 1 + 1 + + + [DlgTitleFont]C&omplete + + + 1 + 1 + Not FoundProcesses + FoundProcesses + + + ShowUserRegistrationDlg <> 1 AND NOT (UPGRADEPISMERE OR UPGRADEKFW) + ShowUserRegistrationDlg = 1 AND NOT (UPGRADEPISMERE OR UPGRADEKFW) + UPGRADEPISMERE OR UPGRADEKFW OR UPGRADENSIS <> "" + + + + 1 + + + + + + Choose the setup type that best suits your needs + + + [DlgTitleFont]Choose Setup Type + + + All program features will be installed. (Requires most disk space) + + + Allows users to choose which program features will be installed and where they will be installed. Recommended for advanced users. + + + Installs the most common program features. Recommended for most users. + + + + + + + + + CD &Key: + + + + 1 + + + 0 + CostingComplete = 1 + ProductID + + + 1 + + + + + + Please enter your customer information + + + [DlgTitleFont]Customer Information + + + + + + + The Leash ticket manager maybe installed with the following optional functionality. Please check those items that you wish to activate. + + + + Autostart the Leash ticket manager each time you login to Windows + + + + Ensure that the Kerberos tickets are available throughout the Windows login session + + + + 1 + + + Not FoundProcesses + FoundProcesses + LEASHAUTOSTART = 1 + LEASHAUTOSTART <> 1 + + + 1 + + + + + + + Leash startup options + + + [DlgTitleFont]Kerberos Options + + + + + + OutOfDiskSpace <> 1 + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST) + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + (OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F") + + + 1 + + + + InstallMode = "Server Image" + (InstallMode = "Custom" OR InstallMode = "Change") AND &feaKfwClient <> 3 And !feaKfwClient <> 3 + (InstallMode = "Custom" OR InstallMode = "Change") AND ( &feaKfwClient = 3 Or !feaKfwClient = 3 ) + InstallMode = "Repair" + InstallMode = "Typical" OR InstallMode = "Complete" + + + 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. + + + + + The [Wizard] is ready to begin the [InstallMode] installation + + + [DlgTitleFont]Ready to Install + + + + + 1 + + + OutOfDiskSpace <> 1 + OutOfDiskSpace <> 1 + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST) + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + (OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F") + + + 1 + + + + Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + + You have chosen to remove the program from your computer. + + + [DlgTitleFont]Remove Kerberos for Windows + + + + + OutOfDiskSpace <> 1 + OutOfDiskSpace <> 1 + OutOfDiskSpace <> 1 + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST) + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D" + (OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F") + + + 1 + + + + 1 + + + Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + + The [Wizard] is ready to begin the repair of [ProductName]. + + + [DlgTitleFont]Repair Kerberos for Windows + + + + + 1 + + + Please wait while the installer finishes determining your disk space requirements. + + + + + + (Installed) Or (CCP_Success = 1) + (Not Installed) And (CCP_Success <> 1) + + + 1 + + + + + + The [Wizard] will install [ProductName] on your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + Yes + No + + + + + + bytes + GB + KB + MB + Entire feature will be unavailable + Feature will be installed when required + Entire feature will be installed to run from CD + Entire feature will be installed on local hard drive + Entire feature will be installed to run from network + Will be installed to run from CD + Will be installed on local hard drive + Will be installed to run from network + Gathering required information... + This feature will remain uninstalled + This feature will be set to be installed when required + This feature will be installed to run from CD + This feature will be installed on the local hard drive + This feature will be installed to run from the network + This feature will become unavailable + Will be installed when required + This feature will be available to run from CD + This feature will be installed on your local hard drive + This feature will be available to run from the network + This feature will be uninstalled completely, you won't be able to run it from CD + This feature will change from run from CD state to set to be installed when required + This feature will remain to be run from CD + This feature will change from run from CD state to be installed on the local hard drive + This feature frees up [1] on your hard drive. + This feature requires [1] on your hard drive. + Compiling cost for this feature... + This feature will be completely removed + This feature will be removed from your local hard drive, but will be set to be installed when required + This feature will be removed from your local hard drive, but will be still available to run from CD + This feature will remain on you local hard drive + This feature will be removed from your local hard drive, but will be still available to run from the network + This feature will be uninstalled completely, you won't be able to run it from the network + This feature will change from run from network state to set to be installed when required + This feature will change from run from network state to be installed on the local hard drive + This feature will remain to be run from the network + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + Time remaining: {[1] minutes }{[2] seconds} + Available + Difference + Required + Disk Size + Volume + Validating install + Copying new files + Copying network install files + Computing space requirements + Computing space requirements + Computing space requirements + Creating shortcuts + Publishing Qualified Components + Publishing Product Features + Publishing product information + Registering Class servers + Registering extension servers + Registering MIME info + Registering program identifiers + Allocating registry space + Searching for installed applications + Binding executables + Searching for qualifying products + Creating folders + Deleting services + Creating duplicate files + Searching for related applications + Installing ODBC components + Installing new services + Evaluating launch conditions + Migrating feature states from related applications + Moving files + Patching files + Updating component registration + Registering COM+ Applications and Components + Registering fonts + Registering product + Registering type libraries + Registering user + Removing duplicated files + Updating environment strings + Removing applications + Removing files + Removing folders + Removing INI files entries + Removing ODBC components + Removing system registry values + Removing shortcuts + Searching for qualifying products + Registering modules + Unregistering modules + Initializing ODBC directories + Starting services + Stopping services + Unpublishing Qualified Components + Unpublishing Product Features + Unregister Class servers + Unregistering COM+ Applications and Components + Unregistering extension servers + Unregistering fonts + Unregistering MIME info + Unregistering program identifiers + Unregistering type libraries + Updating environment strings + Writing INI files values + Writing system registry values + Advertising application + Generating script operations for action: + Installing system catalog + Publishing assembly information + Unpublishing assembly information + Rolling back action: + Removing backup files + Removing moved files + Unpublishing product information + {{Fatal error: }} + {{Error [1]. }} + Warning [1]. + + Info [1]. + The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} + + {{Disk full: }} + Action [Time]: [1]. [2] + [ProductName] + {[2]}{, [3]}{, [4]} + Message type: [1], Argument: [2] + === Logging started: [Date] [Time] === + === Logging stopped: [Date] [Time] === + Action start [Time]: [1]. + Action ended [Time]: [1]. Return value [2]. + Time remaining: {[1] minutes }{[2] seconds} + Out of memory. Shut down other applications before retrying. + Installer is no longer responding. + Installer stopped prematurely. + Please wait while Windows configures [ProductName] + Gathering required information... + Removing older versions of this application... + Preparing to remove older versions of this application... + {[ProductName] }Setup completed successfully. + {[ProductName] }Setup failed. + Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. + Please insert the disk: [2] + The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. + Error writing to file: [2]. Verify that you have access to that directory. + Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. + There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. + Source file not found: [2]. Verify that the file exists and that you can access it. + Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. + Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. + Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. + Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit. + The volume [2] is currently unavailable. Please select another. + The specified path '[2]' is unavailable. + Unable to write to the specified folder: [2]. + A network error occurred while attempting to read from the file: [2] + An error occurred while attempting to create the directory: [2] + A network error occurred while attempting to create the directory: [2] + A network error occurred while attempting to open the source file cabinet: [2] + The specified path is too long: [2] + The Installer has insufficient privileges to modify this file: [2]. + A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. + The folder path '[2]' contains words that are not valid in folder paths. + The folder path '[2]' contains an invalid character. + '[2]' is not a valid short file name. + Error getting file security: [3] GetLastError: [2] + Invalid Drive: [2] + Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} + A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. + A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} + Failed to correctly copy [2] file: CRC error. + Failed to correctly move [2] file: CRC error. + Failed to correctly patch [2] file: CRC error. + The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} + Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. + Another installation is in progress. You must complete that installation before continuing this one. + Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. + Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. + Are you sure you want to cancel? + The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. + The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. + There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. + Could not access network location [2]. + The following applications should be closed before continuing the install: + Could not find any previously installed compliant products on the machine for installing this product. + An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} + The key [2] is not valid. Verify that you entered the correct key. + The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. + You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. + An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? + A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? + An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. + Installation completed successfully. + Installation failed. + Product: [2] -- [3] + You may either restore your computer to its previous state or continue the install later. Would you like to restore? + An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. + One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. + [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} + The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} + Installed [2] + Configured [2] + Removed [2] + File [2] was rejected by digital signature policy. + The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. + There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} + There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} + Removal completed successfully. + Removal failed. + Advertisement completed successfully. + Advertisement failed. + Configuration completed successfully. + Configuration failed. + You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. + The path [2] is not valid. Please specify a valid path. + Out of memory. Shut down other applications before retrying. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. + The folder [2] does not exist. Please enter a path to an existing folder. + You have insufficient privileges to read this folder. + A valid destination folder for the install could not be determined. + Error attempting to read from the source install database: [2]. + Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. + Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. + Module [2] failed to register. HRESULT [3]. Contact your support personnel. + Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. + Failed to cache package [2]. Error: [3]. Contact your support personnel. + Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. + Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. + Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. + Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. + Could not register type library for file [2]. Contact your support personnel. + Could not unregister type library for file [2]. Contact your support personnel. + Could not update the ini file [2][3]. Verify that the file exists and that you can access it. + Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. + Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. + Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. + Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. + Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. + Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. + Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. + You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. + Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. + Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. + Error registering COM+ Application. Contact your support personnel for more information. + Error unregistering COM+ Application. Contact your support personnel for more information. + The description for service '[2]' ([3]) could not be changed. + The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} + The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} + The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} + User installations are disabled via policy on the machine. + An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}} + + Custom action data not found. STATUS [2] + NSIS Uninstallation failed. Status [2] + ABORT: [2] + Custom action failed. Phase [2] + Failed to determine running processes. Status [2] + + + + + + + + + + + + + + + NOT Installed + Installed AND (RESUME OR Preselected) + Installed AND NOT RESUME AND NOT Preselected + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@@@@]]> + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windows/installer/wix/property.wxi b/src/windows/installer/wix/property.wxi new file mode 100644 index 0000000000..52a5cf4c00 --- /dev/null +++ b/src/windows/installer/wix/property.wxi @@ -0,0 +1,53 @@ + + + + + + 1 + + -autoinit + 1 + + $(var.ARPComments) + kerberos@mit.edu + http://web.mit.edu/kerberos + http://web.mit.edu/kerberos + 50 + http://web.mit.edu/kerberos + + + + + + + + + + $(loc.CantRemoveNSIS) + $(loc.IE501Required) + + \ No newline at end of file diff --git a/src/windows/installer/wix/site-local.wxi b/src/windows/installer/wix/site-local.wxi new file mode 100644 index 0000000000..5cfbda39fa --- /dev/null +++ b/src/windows/installer/wix/site-local.wxi @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file