1 \feff<?xml version="1.0" ?>
2 <Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi'>
4 <!-- See config.wxi for the symbols that it defines/asserts -->
7 <!-- See language_config for localization options. -->
8 <?include language_config.wxi?>
11 Id="$(var.ProductCode)"
12 Codepage="$(var.Codepage)"
13 Language="$(var.LanguageCode)"
14 Manufacturer="$(var.Manufacturer)"
15 Name="$(var.ProductName)"
16 UpgradeCode="6823EEDD-84FC-4204-ABB3-A80D25779833"
17 Version="$(var.NumericVersion)"
21 Note that we are not specifying an explicit Package Code below. That way WiX will
22 generate a new one for each build. If an explicit one needs to be specified, use :
23 Id="$(var.PackageCode)"
26 Id="????????-????-????-????-????????????"
28 Comments="$(var.PackageComments)"
30 Description="$(var.ProductName)"
31 InstallerVersion="110"
32 Keywords="Installer,OpenAFS,$(var.Manufacturer)"
33 Languages="$(var.Languages)"
34 Manufacturer="$(var.Manufacturer)"
37 SummaryCodepage="1252"
40 <!-- Launch conditions -->
41 <Condition Message="$(loc.StrLaunchCond)">
42 <![CDATA[VersionNT >= 500]]>
44 <Condition Message="$(loc.AdminRequired)">Privileged</Condition>
47 <!-- Global Properties -->
48 <?include property.wxi?>
50 <!-- File system and registry settings -->
51 <Directory Id="TARGETDIR" Name="SourceDir">
52 <?include registry.wxi?>
57 <?include feature.wxi?>
59 <!-- User interface -->
60 <?include lang\$(var.Language)\ui.wxi?>
62 <!-- Custom actions -->
63 <?ifndef UseDllLoopbackInstaller?>
66 src="$(var.MediaBinDir)instloop.exe"/>
70 src="$(var.MediaBinDir)afsloopback.dll"/>
74 src="$(var.MediaDllDir)afscustom.dll"/>
75 <?ifdef UseDllLoopbackInstaller?>
78 BinaryKey="BIN_afsLoopback"
79 DllEntry="installLoopbackMSI"
83 <?ifdef RemoveLoopback?>
86 BinaryKey="BIN_afsLoopback"
87 DllEntry="uninstallLoopbackMSI"
92 BinaryKey="BIN_afsLoopback"
93 DllEntry="uninstallLoopbackMSI"
100 BinaryKey="BIN_instloop"
105 <?ifdef RemoveLoopback?>
107 Id="RollbackLoopback"
108 BinaryKey="BIN_instloop"
115 BinaryKey="BIN_instloop"
123 Id="InstallNetProvider"
124 BinaryKey="BIN_afsCustom"
125 DllEntry="InstallNetProvider"
126 Execute="oncePerProcess" />
128 Id="RemoveNetProvider"
129 BinaryKey="BIN_afsCustom"
130 DllEntry="UninstallNetProvider"
132 Execute="oncePerProcess" />
134 Id="RollbackNetProvider"
135 BinaryKey="BIN_afsCustom"
136 DllEntry="UninstallNetProvider"
138 Execute="rollback" />
141 BinaryKey="BIN_afsCustom"
142 DllEntry="ConfigureClientService"
144 Execute="deferred" />
147 BinaryKey="BIN_afsCustom"
148 DllEntry="ConfigureServerService"
150 Execute="deferred" />
152 Id="RemoveNsisInstallation"
153 BinaryKey="BIN_afsCustom"
154 DllEntry="UninstallNsisInstallation"
155 Execute="immediate" />
157 Id="CreateAFSAdminGroup"
158 BinaryKey="BIN_afsCustom"
159 DllEntry="CreateAFSClientAdminGroup"
161 Execute="deferred" />
163 Id="RemoveAFSAdminGroup"
164 BinaryKey="BIN_afsCustom"
165 DllEntry="RemoveAFSClientAdminGroup"
167 Execute="deferred" />
169 Id="RollbackAFSAdminGroup"
170 BinaryKey="BIN_afsCustom"
171 DllEntry="RemoveAFSClientAdminGroup"
173 Execute="rollback" />
175 Id="AbortInstallationA"
176 BinaryKey="BIN_afsCustom"
177 DllEntry="AbortMsiImmediate"
178 Execute="immediate" />
180 Id="AbortInstallationB"
181 BinaryKey="BIN_afsCustom"
182 DllEntry="AbortMsiImmediate"
183 Execute="immediate" />
185 <!-- Installation Sequences -->
186 <AdvertiseExecuteSequence />
187 <AdminExecuteSequence />
188 <InstallExecuteSequence>
189 <RemoveExistingProducts After="InstallValidate">IBMAFS_UPGRADE OR OPENAFS_UPGRADE</RemoveExistingProducts>
190 <Custom Action="RemoveNsisInstallation" Before="AbortInstallationA">NSISUNINSTALL <> "" AND UILevel >= 4</Custom>
191 <Custom Action="AbortInstallationA" Before="CostInitialize">NSISUNINSTALL <> "" AND UILevel < 4</Custom>
192 <!-- Assert that if the server is going to be installed locally after this session, control center and client are also local -->
193 <Custom Action="AbortInstallationB" After="MigrateFeatureStates">
194 <![CDATA[((&feaServer=3 OR (!feaServer=3 AND &feaServer<1)) AND (&feaClient=2 OR (&feaClient<>3 AND !feaClient<>3) OR &feaControlCenter=2 OR (&feaControlCenter<>3 AND !feaControlCenter<>3) ))]]>
196 <?ifdef RemoveLoopback?>
197 <Custom Action="RemoveLoopback" After="SelfRegModules">&feaLoopback=2 OR &feaLoopback=3</Custom>
198 <Custom Action="RollbackLoopback" After="RemoveLoopback">&feaLoopback=3</Custom>
199 <Custom Action="InstallLoopback" After="RollbackLoopback">&feaLoopback=3</Custom>
201 <Custom Action="InstallLoopback" After="SelfRegModules">&feaLoopback=3</Custom>
203 <Custom Action="RollbackNetProvider" After="WriteRegistryValues">&feaClient=3</Custom>
204 <Custom Action="InstallNetProvider" After="RollbackNetProvider">&feaClient=3</Custom>
205 <Custom Action="RemoveNetProvider" After="InstallNetProvider">&feaClient=2</Custom>
206 <Custom Action="ConfigureClient" After="InstallServices">&feaClient=3</Custom>
207 <Custom Action="ConfigureServer" After="ConfigureClient">&feaServer=3</Custom>
208 <!-- <Custom Action="RemoveAFSAdminGroup" Before="">&feaClient=2</Custom> -->
209 <Custom Action="RollbackAFSAdminGroup" Before="CreateAFSAdminGroup">&feaClient=3</Custom>
210 <Custom Action="CreateAFSAdminGroup" Before="CreateFolders">&feaClient=3</Custom>
211 <ScheduleReboot After="PublishProduct">&feaClient=3 OR &feaServer=3 OR &feaClient=2 OR &feaServer=2</ScheduleReboot>
212 </InstallExecuteSequence>
214 <!-- Related producs -->
215 <!-- MIT's OpenAFS MSI installer -->
216 <Upgrade Id="6823EEDD-84FC-4204-ABB3-A80D25779833">
217 <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="no" Maximum="$(var.NumericVersion)" MigrateFeatures="yes" Property="OPENAFS_UPGRADE" />
220 <!-- MIT's Transarc AFS MSI Installer -->
221 <Upgrade Id="5332B94F-DE38-4927-9EAB-51F4A64193A7">
222 <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="yes" Maximum="3.6.2" MigrateFeatures="no" Property="IBMAFS_UPGRADE" />
225 <!-- openafs.org NSIS installer is detected using other means -->
226 <!-- Please let us know if you want other Installers to be detected and upgraded/removed -->
229 <Media Id="1" Cabinet="disk1.cab" CompressionLevel="high" EmbedCab="yes" />