-\feff<?xml version="1.0" ?>
+<?xml version="1.0" ?>
<Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi'>
<!-- See config.wxi for the symbols that it defines/asserts -->
<!-- See language_config for localization options. -->
<?include language_config.wxi?>
+ <!--
+ We autogenerate a new product code for each build. According to MSDN we have
+ to change the product code whenever we change the name of the MSI file. Each
+ version of OpenAFS has a different MSI name. Thus, each version needs a
+ unique product code.
+ -->
<Product
- Id="$(var.ProductCode)"
+ Id="????????-????-????-????-????????????"
Codepage="$(var.Codepage)"
Language="$(var.LanguageCode)"
Manufacturer="$(var.Manufacturer)"
Id="$(var.PackageCode)"
-->
<Package
+ Id="????????-????-????-????-????????????"
AdminImage="no"
Comments="$(var.PackageComments)"
Compressed="yes"
Description="$(var.ProductName)"
- InstallerVersion="110"
+ InstallerVersion="$(var.InstallerVersion)"
Keywords="Installer,OpenAFS,$(var.Manufacturer)"
Languages="$(var.Languages)"
Manufacturer="$(var.Manufacturer)"
- Platforms="Intel"
+ Platforms="$(var.Platform)"
ShortNames="no"
SummaryCodepage="1252"
/>
<!-- Launch conditions -->
- <Condition
- Message="$(loc.StrLaunchCond)">
+ <Condition Message="$(loc.StrLaunchCond)">
<![CDATA[VersionNT >= 500]]>
</Condition>
+ <Condition Message="$(loc.AdminRequired)">Privileged</Condition>
+ <?if $(var.Platform) = "x64" ?>
+ <Condition Message="$(loc.StrPlatform64)">
+ <![CDATA[VersionNT64]]>
+ </Condition>
+ <?else?>
+ <Condition Message="$(loc.StrPlatformNot64)">
+ <![CDATA[NOT VersionNT64]]>
+ </Condition>
+ <?endif?>
<!-- Global Properties -->
<?include property.wxi?>
<!-- File system and registry settings -->
<Directory Id="TARGETDIR" Name="SourceDir">
+ <?include platform.wxi?>
<?include registry.wxi?>
<?include files.wxi?>
</Directory>
<?include lang\$(var.Language)\ui.wxi?>
<!-- Custom actions -->
+ <?ifndef UseDllLoopbackInstaller?>
<Binary
- Id="BIN_Instloop"
+ Id="BIN_instloop"
src="$(var.MediaBinDir)instloop.exe"/>
+ <?else?>
<Binary
Id="BIN_afsLoopback"
src="$(var.MediaBinDir)afsloopback.dll"/>
+ <?endif?>
<Binary
Id="BIN_afsCustom"
src="$(var.MediaDllDir)afscustom.dll"/>
+ <Binary
+ Id="BIN_idndl.exe"
+ src="$(var.IDNMRedistDir)\idndl.$(var.Arch).exe" />
+ <CustomAction
+ Id="InstallIDNMRedistributable"
+ BinaryKey="BIN_idndl.exe"
+ ExeCommand="/quiet /norestart"
+ Execute="deferred"
+ Impersonate="no"
+ />
+
+ <?ifdef UseDllLoopbackInstaller?>
<CustomAction
Id="InstallLoopback"
BinaryKey="BIN_afsLoopback"
DllEntry="installLoopbackMSI"
Execute="deferred"
+ Impersonate="no"
/>
<?ifdef RemoveLoopback?>
<CustomAction
BinaryKey="BIN_afsLoopback"
DllEntry="uninstallLoopbackMSI"
Execute="deferred"
+ Impersonate="no"
/>
<CustomAction
Id="RollbackLoopback"
BinaryKey="BIN_afsLoopback"
DllEntry="uninstallLoopbackMSI"
Execute="deferred"
+ Impersonate="no"
/>
<?endif?>
+ <?else?>
+ <CustomAction
+ Id="InstallLoopback"
+ BinaryKey="BIN_instloop"
+ ExeCommand="-i"
+ Impersonate="no"
+ Execute="deferred"
+ />
+ <?ifdef RemoveLoopback?>
+ <CustomAction
+ Id="RollbackLoopback"
+ BinaryKey="BIN_instloop"
+ ExeCommand="-u"
+ Impersonate="no"
+ Execute="rollback"
+ />
+ <CustomAction
+ Id="RemoveLoopback"
+ BinaryKey="BIN_instloop"
+ ExeCommand="-u"
+ Impersonate="no"
+ Execute="deferred"
+ />
+ <?endif?>
+ <?endif?>
<CustomAction
Id="InstallNetProvider"
BinaryKey="BIN_afsCustom"
DllEntry="InstallNetProvider"
- Execute="oncePerProcess" />
+ Execute="deferred"
+ Impersonate="no"
+ />
<CustomAction
Id="RemoveNetProvider"
BinaryKey="BIN_afsCustom"
DllEntry="UninstallNetProvider"
Return="ignore"
- Execute="oncePerProcess" />
+ Execute="deferred"
+ Impersonate="no"
+ />
<CustomAction
Id="RollbackNetProvider"
BinaryKey="BIN_afsCustom"
DllEntry="UninstallNsisInstallation"
Execute="immediate" />
<CustomAction
+ Id="CreateAFSAdminGroup"
+ BinaryKey="BIN_afsCustom"
+ DllEntry="CreateAFSClientAdminGroup"
+ Impersonate="no"
+ Execute="deferred" />
+ <CustomAction
+ Id="RemoveAFSAdminGroup"
+ BinaryKey="BIN_afsCustom"
+ DllEntry="RemoveAFSClientAdminGroup"
+ Impersonate="no"
+ Execute="deferred" />
+ <CustomAction
+ Id="RollbackAFSAdminGroup"
+ BinaryKey="BIN_afsCustom"
+ DllEntry="RemoveAFSClientAdminGroup"
+ Impersonate="no"
+ Execute="rollback" />
+ <CustomAction
Id="AbortInstallationA"
BinaryKey="BIN_afsCustom"
DllEntry="AbortMsiImmediate"
<AdvertiseExecuteSequence />
<AdminExecuteSequence />
<InstallExecuteSequence>
- <RemoveExistingProducts After="InstallValidate">IBMAFS_UPGRADE OR OPENAFS_UPGRADE</RemoveExistingProducts>
+ <RemoveExistingProducts After="InstallValidate">(Not Installed) And (IBMAFS_UPGRADE OR OPENAFS_UPGRADE OR AFSPLUGIN_UPGRADE)</RemoveExistingProducts>
<Custom Action="RemoveNsisInstallation" Before="AbortInstallationA">NSISUNINSTALL <> "" AND UILevel >= 4</Custom>
<Custom Action="AbortInstallationA" Before="CostInitialize">NSISUNINSTALL <> "" AND UILevel < 4</Custom>
<!-- Assert that if the server is going to be installed locally after this session, control center and client are also local -->
<Custom Action="RollbackNetProvider" After="WriteRegistryValues">&feaClient=3</Custom>
<Custom Action="InstallNetProvider" After="RollbackNetProvider">&feaClient=3</Custom>
<Custom Action="RemoveNetProvider" After="InstallNetProvider">&feaClient=2</Custom>
+ <Custom Action="InstallIDNMRedistributable" After="WriteRegistryValues">!feaClient=2 And &feaClient=3 And (VersionNT=501 Or VersionNT=502)</Custom>
<Custom Action="ConfigureClient" After="InstallServices">&feaClient=3</Custom>
<Custom Action="ConfigureServer" After="ConfigureClient">&feaServer=3</Custom>
+ <!-- <Custom Action="RemoveAFSAdminGroup" Before="">&feaClient=2</Custom> -->
+ <Custom Action="RollbackAFSAdminGroup" Before="CreateAFSAdminGroup">&feaClient=3</Custom>
+ <Custom Action="CreateAFSAdminGroup" Before="CreateFolders">&feaClient=3</Custom>
<ScheduleReboot After="PublishProduct">&feaClient=3 OR &feaServer=3 OR &feaClient=2 OR &feaServer=2</ScheduleReboot>
</InstallExecuteSequence>
<!-- Related producs -->
- <!-- MIT's OpenAFS MSI installer -->
+ <!-- OpenAFS MSI installer -->
<Upgrade Id="6823EEDD-84FC-4204-ABB3-A80D25779833">
- <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="no" Maximum="$(var.NumericVersion)" MigrateFeatures="yes" Property="OPENAFS_UPGRADE" />
+ <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="yes" Maximum="$(var.NumericVersion)" MigrateFeatures="yes" Property="OPENAFS_UPGRADE" />
</Upgrade>
<!-- MIT's Transarc AFS MSI Installer -->
<UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="yes" Maximum="3.6.2" MigrateFeatures="no" Property="IBMAFS_UPGRADE" />
</Upgrade>
+ <?if $(env.CPU) = "i386" ?>
+ <!-- Secure-Endpoints OpenAFS NetIDMgr plug-in -->
+ <Upgrade Id="646D643A-73E3-4C77-AE4A-EDBE313DD45D">
+ <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="no" Maximum="$(var.NumericVersion)" MigrateFeatures="no" Property="AFSPLUGIN_UPGRADE" />
+ </Upgrade>
+ <?endif?>
+
<!-- openafs.org NSIS installer is detected using other means -->
<!-- Please let us know if you want other Installers to be detected and upgraded/removed -->
<!-- Media -->
- <Media Id="1" Cabinet="disk1.cab" CompressionLevel="mszip" EmbedCab="yes" />
+ <Media Id="1" Cabinet="disk1.cab" CompressionLevel="high" EmbedCab="yes" />
</Product>
</Wix>