The WiX installation package suffered from several problems:
* The Beta ID was not being included in the package name.
Fixed this by swapping the priority of "Release" and "Beta".
"Beta" is an official release that has a beta value.
A non-release has a datestamp as part of the package name.
* There were duplicate GUID values being used for registry components.
This would prevent proper removal of the components on uninstall.
* 64-bit Installers were being constructed with the 32-bit installer
schema. This prevented side-by-side installation of the 64-bit and
32-bit versions. This also permitted 64-bit installers to be
installed on 32-bit systems.
* The 64-bit and 32-bit installers had the same package name.
64-bit and 32-bit are now identified in the package name.
* 64-bit files were being installed to the WOW64 environment.
ticket: new
component: windows
tags: pullup
target_version: 1.6.3
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20117
dc483132-0cff-0310-8789-
dd5450dbe970
<?define InstallerVersion="110"?>
<?define Platform="Intel"?>
<?define Win64="no"?>
+ <?define BinDir="$(var.TargetDir)bin\i386\"?>
+ <?define LibDir="$(var.TargetDir)lib\i386\"?>
<?elseif $(env.CPU) = "AMD64"?>
<?define InstallerVersion="200"?>
<?define Platform="x64"?>
<?define Win64="yes"?>
+ <?define BinDir="$(var.TargetDir)bin\amd64\"?>
+ <?define LibDir="$(var.TargetDir)lib\amd64\"?>
<?else?>
<?error Unknown build type?>
<?endif?>
<?define KfwRegRoot="SOFTWARE\MIT\Kerberos"?>
- <?if $(env.CPU) = "i386"?>
- <?define BinDir="$(var.TargetDir)bin\i386\"?>
- <?define LibDir="$(var.TargetDir)lib\i386\"?>
- <?else?>
- <?define BinDir="$(var.TargetDir)bin\amd64\"?>
- <?define LibDir="$(var.TargetDir)lib\amd64\"?>
- <?endif?>
<?define DocDir="$(var.TargetDir)doc\"?>
<?define IncDir="$(var.TargetDir)inc\"?>
<?define InstallDir="$(var.TargetDir)install\"?>
-->
<Include xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<Directory Id="TARGETDIR" Name="SourceDir">
- <Directory Id="SystemFolder" SourceName="System">
+ <Directory Id="$(var.PISystemFolder)" SourceName="System">
<Component Win64="$(var.Win64)" Id="cmf_kfwlogon_DLL" Guid="$(var.cmf_kfwlogon_DLL_guid)">
<File Id="filekfwlogon_DLL" Name="kfwlogon.dll" LongName="kfwlogon.dll" KeyPath="yes" DiskId="1" src="$(var.BinDir)kfwlogon.dll" />
<Registry Id="reg_kfwlogon01" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\MIT_KFW" Action="createKeyAndRemoveKeyOnUninstall" />
<Registry Id="reg_kfwlogon05" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\MIT_KFW" Name="DLLName" Type="string" Value="[#filekfwlogon_DLL]" />
<Registry Id="reg_kfwlogon06" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\MIT_KFW" Name="Logon" Type="string" Value="KFW_Logon_Event" />
<Registry Id="reg_kfwlogon07" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Action="createKeyAndRemoveKeyOnUninstall" />
- <Registry Id="reg_kfwlogon08" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="AuthentProviderPath" Type="expandable" Value="[SystemFolder]kfwlogon.dll"/>
+ <Registry Id="reg_kfwlogon08" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="AuthentProviderPath" Type="expandable" Value="[$(var.PISystemFolder)]kfwlogon.dll"/>
<Registry Id="reg_kfwlogon09" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider"/>
<Registry Id="reg_kfwlogon10" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="VerboseLogging" Type="integer" Value="10"/>
- <Registry Id="reg_kfwlogon11" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="ProviderPath" Type="expandable" Value="[SystemFolder]kfwlogon.dll"/>
+ <Registry Id="reg_kfwlogon11" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="ProviderPath" Type="expandable" Value="[$(var.PISystemFolder)]kfwlogon.dll"/>
<Registry Id="reg_kfwlogon12" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="Class" Type="integer" Value="2" />
<Registry Id="reg_kfwlogon13" Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\MIT Kerberos\NetworkProvider" Name="Name" Type="string" Value="MIT Kerberos"/>
</Component>
</Component>
<?endif?>
</Directory>
- <Directory Id="ProgramFilesFolder">
+ <Directory Id="$(var.PIProgramFilesFolder)">
<Directory Id="dirMIT" Name="MIT" SourceName=".">
<Directory Id="KERBEROSDIR" Name="Kerberos">
<Directory Id="dirbin" Name="bin" src="$(var.BinDir)">
Description="$(var.ProductName)"
Comments="$(var.ProductFullName)"
Manufacturer="$(loc.Manufacturer)"
- InstallerVersion="110"
+ InstallerVersion="$(var.InstallerVersion)"
Languages="$(var.Language)"
Compressed="yes"
- SummaryCodepage="$(var.CodePage)"
+ SummaryCodepage="$(var.CodePage)"
+ Platforms="$(var.Platform)"
/>
<?include lang\ui_$(var.BuildLang).wxi?>
<Condition Message="$(loc.OsVersionRequired)">VersionNT >= 500</Condition>
<Condition Message="$(loc.CMNotSelected)">USELEASH Or USENETIDMGR</Condition>
<Condition Message="$(loc.CMDupSelected)">Not (USELEASH And USENETIDMGR)</Condition>
+ <?if $(var.Platform) = "x64" ?>
+ <Condition Message="$(loc.StrPlatform64)">
+ <![CDATA[VersionNT64]]>
+ </Condition>
+ <?endif?>
<!-- Custom actions -->
<Binary Id="binCustom" src="custom\custom.dll" />
<Include xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<?define VersionString="$(var.VersionMajor).$(var.VersionMinor).$(var.VersionPatch)"?>
+ <?if $(var.Platform) = "x64" ?>
+ <?define BaseProductName="$(loc.ProductName64)"?>
+ <?define BaseProductNameShort="$(loc.ProductNameShort64)"?>
+ <?elseif $(var.Platform) = "Intel" ?>
+ <?define BaseProductName="$(loc.ProductName)"?>
+ <?define BaseProductNameShort="$(loc.ProductNameShort)"?>
+ <?else?>
+ <?error Unknown build type?>
+ <?endif?>
- <?ifdef var.Release?>
+ <?ifdef var.Beta?>
<?ifndef var.Debug?>
- <?define ProductFullName="$(loc.ProductMIT) $(loc.ProductName) $(var.VersionString)"?>
+ <?define ProductFullName="$(loc.ProductMIT) $(var.BaseProductName) $(var.VersionString) $(loc.ProductBeta) $(var.Beta) "?>
<?else?>
- <?define ProductFullName="$(loc.ProductMIT) $(loc.ProductName) $(var.VersionString) $(loc.ProductDebug)"?>
+ <?define ProductFullName="$(loc.ProductMIT) $(var.BaseProductName) $(var.VersionString) $(loc.ProductBeta) $(var.Beta) $(loc.ProductDebug)"?>
<?endif?>
<?else?>
- <?ifdef var.Beta?>
+ <?ifdef var.Release?>
<?ifndef var.Debug?>
- <?define ProductFullName="$(loc.ProductMIT) $(loc.ProductName) $(var.VersionString) $(loc.ProductBeta) $(var.Beta) "?>
+ <?define ProductFullName="$(loc.ProductMIT) $(var.BaseProductName) $(var.VersionString)"?>
<?else?>
- <?define ProductFullName="$(loc.ProductMIT) $(loc.ProductName) $(var.VersionString) $(loc.ProductBeta) $(var.Beta) $(loc.ProductDebug)"?>
+ <?define ProductFullName="$(loc.ProductMIT) $(var.BaseProductName) $(var.VersionString) $(loc.ProductDebug)"?>
<?endif?>
<?else?>
-
<?ifndef var.Date?>
<?error Date string must be specified?>
<?endif?>
<?endif?>
<?ifndef var.Debug?>
- <?define ProductFullName="$(loc.ProductMIT) $(loc.ProductName) $(var.VersionString) $(var.Date) $(var.Time)"?>
+ <?define ProductFullName="$(loc.ProductMIT) $(var.BaseProductName) $(var.VersionString) $(var.Date) $(var.Time)"?>
<?else?>
- <?define ProductFullName="$(loc.ProductMIT) $(loc.ProductName) $(var.VersionString) $(var.Date) $(var.Time) $(loc.ProductDebug)"?>
+ <?define ProductFullName="$(loc.ProductMIT) $(var.BaseProductName) $(var.VersionString) $(var.Date) $(var.Time) $(loc.ProductDebug)"?>
<?endif?>
<?endif?>
<?endif?>
or implied warranty.
-->
- <String Id="ProductName">Kerberos for Windows</String>
- <String Id="ProductNameShort">KFW</String>
+ <String Id="ProductName64">Kerberos for Windows (64-bit)</String>
+ <String Id="ProductNameShort64">KFW64</String>
+ <String Id="ProductName">Kerberos for Windows (32-bit)</String>
+ <String Id="ProductNameShort">KFW32</String>
<String Id="ProductMIT">MIT</String>
<String Id="ProductDebug">Debug/Checked</String>
<String Id="ProductBeta">Beta</String>
<String Id="ARPComments">Build of</String>
+ <String Id="StrPlatform64">This build of Kerberos for Windows is for 64-bit Windows versions. Please install the 32-bit version on this operating system.</String>
+ <String Id="StrPlatformNot64">This build of Kerberos for Windows is for 32-bit Windows versions. Please install the 64-bit version on this operating system.</String>
</WixLocalization>
\ No newline at end of file
<!-- Platform specific GUID's and other definitions -->
<?if $(var.Platform) = "x64" ?>
<?define UpgradeCode="6DA9CD86-6028-4852-8C94-452CAC229244"?>
+ <?define PISystemFolder="System64Folder"?>
+ <?define PIProgramFilesFolder="ProgramFiles64Folder"?>
+
<?define cmf_kfwlogon_DLL_guid="CFC0B7C9-9A59-4022-89B3-25E0941D0369"?>
<?define cmf_kfwcpcc_EXE_guid="83F51B6D-F3C6-44cf-AC91-D1D6498FFA44"?>
<?define cmp_ClientSystemDebug_guid="7B25B1E0-A22A-43c7-BA97-C30FCA3B1230"?>
<?define csc_leash32_exe_guid="9D43350A-A8AE-4405-AB82-64E90E5A1A70"?>
<?define rcm_leash_1_guid="7E5517FF-FB76-431f-A92B-2895C9BE7E98"?>
<?define rcm_leash_2_guid="008208AC-46BE-4ca4-BEA7-8FCAAD8BA7C3"?>
- <?define rcm_leash_3_guid="008208AC-46BE-4ca4-BEA7-8FCAAD8BA7C3"?>
+ <?define rcm_leash_3_guid="66D97178-E735-499b-961F-C7B8B8074E1A"?>
<?define rcm_leash_4_guid="D20180CC-B68D-4a6d-95E4-5EB07B9EADCD"?>
<?define rcm_leash_5_guid="AF3B73AE-86ED-42f5-987A-9831B8799D2F"?>
<?define rcm_leash_6_guid="0C72D4F8-096B-4295-8F0A-6B5723A8593D"?>
<?define csc_LeashStartup_guid="228192C5-D847-4c46-A726-0E8211742349"?>
- <?define cmf_leash32_hlp_guid="228192C5-D847-4c46-A726-0E8211742349"?>
+ <?define cmf_leash32_hlp_guid="EF1B0ED6-9C01-4adb-9F11-C3FF07F669D5"?>
<?define cmf_leash32_chm_guid="769B54EB-9B96-4abe-9B72-9EF346C8C03D"?>
<?define cmf_leashw32_dll_guid="7222B9E1-EE70-4ccb-929F-43D45574AA83"?>
<?define cmf_leashw32_dll_name="leashw64.dll"?>
<?define rcm_leashdll_1_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>
- <?define rcm_leashdll_2_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>
- <?define rcm_leashdll_3_guid="64BC62DF-F1D6-423a-B4E0-E75E214BAC26"?>
+ <?define rcm_leashdll_2_guid="2CEF4DC7-684B-4a53-9053-5EB26264B009"?>
+ <?define rcm_leashdll_3_guid="D93DE8B4-919E-48ef-812D-BFCC26460608"?>
<?define rcm_leashdll_4_guid="989B5FC5-63DC-47d6-BBBC-EE1B355127F6"?>
- <?define rcm_leashdll_5_guid="989B5FC5-63DC-47d6-BBBC-EE1B355127F6"?>
+ <?define rcm_leashdll_5_guid="BF38025F-ED64-4dde-8BDD-250C1BB73909"?>
<?define rcm_leashdll_6_guid="AC35CE64-9D8D-4a21-AB1F-18803C69E7B4"?>
<?define rcm_leashdll_7_guid="02014C27-BAC8-4b86-95F8-43F9BF55064A"?>
<?define rcm_leashdll_8_guid="DE70F57C-D3F8-4c1d-B868-A77DA04D9DD3"?>
<?define cmf_bin_debug_guid="F3432C85-89D9-4bd6-BD82-4ED49A118338"?>
<?elseif $(var.Platform) = "Intel"?>
<?define UpgradeCode="61211594-AAA1-4A98-A299-757326763CC7"?>
+ <?define PISystemFolder="SystemFolder"?>
+ <?define PIProgramFilesFolder="ProgramFilesFolder"?>
+
<?define cmf_kfwlogon_DLL_guid="2F104FEB-2D61-458A-BAE3-B153F151E728"?>
<?define cmf_kfwcpcc_EXE_guid="C3284E7A-3665-45A6-B64E-C909B1D1BAA6"?>
<?define cmp_ClientSystemDebug_guid="2D13ED48-53C2-4878-B196-2AD7F4100998"?>