windows-vista-wix-install-20051230
[openafs.git] / src / WINNT / install / wix / openafs.wxs
1 <?xml version="1.0" ?>
2 <Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi'>
3
4     <!-- See config.wxi for the symbols that it defines/asserts -->
5     <?include config.wxi?>
6
7     <!-- See language_config for localization options. -->
8     <?include language_config.wxi?>
9
10     <!--
11       We autogenerate a new product code for each build.  According to MSDN we have
12       to change the product code whenever we change the name of the MSI file.  Each
13       version of OpenAFS has a different MSI name.  Thus, each version needs a
14       unique product code.
15       -->
16     <Product 
17         Id="????????-????-????-????-????????????"
18         Codepage="$(var.Codepage)"
19         Language="$(var.LanguageCode)"
20         Manufacturer="$(var.Manufacturer)"
21         Name="$(var.ProductName)"
22         UpgradeCode="6823EEDD-84FC-4204-ABB3-A80D25779833"
23         Version="$(var.NumericVersion)"
24         >
25
26                 <!--
27                 Note that we are not specifying an explicit Package Code below.  That way WiX will
28                 generate a new one for each build.  If an explicit one needs to be specified, use :
29                          Id="$(var.PackageCode)"
30                 -->
31         <Package
32                  Id="????????-????-????-????-????????????"
33          AdminImage="no"
34          Comments="$(var.PackageComments)"
35          Compressed="yes"
36          Description="$(var.ProductName)"
37          InstallerVersion="$(var.InstallerVersion)"
38          Keywords="Installer,OpenAFS,$(var.Manufacturer)"
39          Languages="$(var.Languages)"
40          Manufacturer="$(var.Manufacturer)"
41          Platforms="$(var.Platform)"
42          ShortNames="no"
43          SummaryCodepage="1252"
44          />
45         
46         <!-- Launch conditions -->
47         <Condition Message="$(loc.StrLaunchCond)">
48          <![CDATA[VersionNT >= 500]]>
49         </Condition>
50         <Condition Message="$(loc.AdminRequired)">Privileged</Condition>
51     <?if $(var.Platform) = "x64" ?>
52         <Condition Message="$(loc.StrPlatform64)">
53          <![CDATA[VersionNT64]]>
54         </Condition>
55     <?else?>
56         <Condition Message="$(loc.StrPlatformNot64)">
57          <![CDATA[NOT VersionNT64]]>
58         </Condition>
59     <?endif?>
60         
61         <!-- Global Properties -->
62         <?include property.wxi?>
63         
64         <!-- File system and registry settings -->
65         <Directory Id="TARGETDIR" Name="SourceDir">
66             <?include platform.wxi?>
67             <?include registry.wxi?>
68             <?include files.wxi?>
69         </Directory>
70         
71         <!-- Features -->
72         <?include feature.wxi?>
73         
74         <!-- User interface -->
75         <?include lang\$(var.Language)\ui.wxi?>
76         
77         <!-- Custom actions -->
78     <?ifndef UseDllLoopbackInstaller?>
79         <Binary
80          Id="BIN_instloop"
81          src="$(var.MediaBinDir)instloop.exe"/>
82     <?else?>
83         <Binary
84          Id="BIN_afsLoopback"
85          src="$(var.MediaBinDir)afsloopback.dll"/>
86     <?endif?>
87         <Binary
88                  Id="BIN_afsCustom"
89                  src="$(var.MediaDllDir)afscustom.dll"/>
90         <?ifdef UseDllLoopbackInstaller?>
91         <CustomAction
92          Id="InstallLoopback"
93          BinaryKey="BIN_afsLoopback"
94          DllEntry="installLoopbackMSI"
95          Execute="deferred" 
96          Impersonate="no"
97          />
98         <?ifdef RemoveLoopback?>
99         <CustomAction
100          Id="RemoveLoopback"
101          BinaryKey="BIN_afsLoopback"
102          DllEntry="uninstallLoopbackMSI"
103          Execute="deferred" 
104          Impersonate="no"
105          />
106         <CustomAction
107          Id="RollbackLoopback"
108          BinaryKey="BIN_afsLoopback"
109          DllEntry="uninstallLoopbackMSI"
110          Execute="deferred" 
111          Impersonate="no"
112          />
113         <?endif?>
114         <?else?>
115                 <CustomAction
116                  Id="InstallLoopback"
117                  BinaryKey="BIN_instloop"
118                  ExeCommand="-i"
119                  Impersonate="no"
120                  Execute="deferred"
121                  />
122                 <?ifdef RemoveLoopback?>
123                         <CustomAction
124                         Id="RollbackLoopback"
125                         BinaryKey="BIN_instloop"
126                         ExeCommand="-u"
127                         Impersonate="no"
128                         Execute="rollback"
129                         />
130                         <CustomAction
131                         Id="RemoveLoopback"
132                         BinaryKey="BIN_instloop"
133                         ExeCommand="-u"
134                         Impersonate="no"
135                         Execute="deferred"
136                         />
137                 <?endif?>
138         <?endif?>
139         <CustomAction
140          Id="InstallNetProvider" 
141          BinaryKey="BIN_afsCustom" 
142          DllEntry="InstallNetProvider"
143          Execute="deferred" 
144          Impersonate="no"
145         />
146                 <CustomAction 
147                  Id="RemoveNetProvider" 
148                  BinaryKey="BIN_afsCustom"
149                  DllEntry="UninstallNetProvider"
150                  Return="ignore"
151                  Execute="deferred" 
152                  Impersonate="no"
153                 />
154                 <CustomAction 
155                  Id="RollbackNetProvider" 
156                  BinaryKey="BIN_afsCustom"
157                  DllEntry="UninstallNetProvider"
158                  Return="ignore"
159                  Execute="rollback" />
160                 <CustomAction
161                  Id="ConfigureClient"
162                  BinaryKey="BIN_afsCustom"
163                  DllEntry="ConfigureClientService"
164                  Impersonate="no"
165                  Execute="deferred" />
166                 <CustomAction
167                  Id="ConfigureServer"
168                  BinaryKey="BIN_afsCustom"
169                  DllEntry="ConfigureServerService"
170                  Impersonate="no"
171                  Execute="deferred" />
172                 <CustomAction 
173                  Id="RemoveNsisInstallation" 
174                  BinaryKey="BIN_afsCustom"
175                  DllEntry="UninstallNsisInstallation"
176                  Execute="immediate" />
177                 <CustomAction
178                  Id="CreateAFSAdminGroup"
179                  BinaryKey="BIN_afsCustom"
180                  DllEntry="CreateAFSClientAdminGroup"
181                  Impersonate="no"
182                  Execute="deferred" />
183                 <CustomAction
184                  Id="RemoveAFSAdminGroup"
185                  BinaryKey="BIN_afsCustom"
186                  DllEntry="RemoveAFSClientAdminGroup"
187                  Impersonate="no"
188                  Execute="deferred" />
189                 <CustomAction
190                  Id="RollbackAFSAdminGroup"
191                  BinaryKey="BIN_afsCustom"
192                  DllEntry="RemoveAFSClientAdminGroup"
193                  Impersonate="no"
194                  Execute="rollback" />
195                 <CustomAction
196                  Id="AbortInstallationA"
197                  BinaryKey="BIN_afsCustom"
198                  DllEntry="AbortMsiImmediate"
199                  Execute="immediate" />
200                 <CustomAction
201                  Id="AbortInstallationB"
202                  BinaryKey="BIN_afsCustom"
203                  DllEntry="AbortMsiImmediate"
204                  Execute="immediate" />
205
206         <!-- Installation Sequences -->
207         <AdvertiseExecuteSequence />
208         <AdminExecuteSequence />
209         <InstallExecuteSequence>
210                         <RemoveExistingProducts After="InstallValidate">IBMAFS_UPGRADE OR OPENAFS_UPGRADE</RemoveExistingProducts>
211                         <Custom Action="RemoveNsisInstallation" Before="AbortInstallationA">NSISUNINSTALL &lt;&gt; "" AND UILevel &gt;= 4</Custom>
212                         <Custom Action="AbortInstallationA" Before="CostInitialize">NSISUNINSTALL &lt;&gt; "" AND UILevel &lt; 4</Custom>
213                         <!-- Assert that if the server is going to be installed locally after this session, control center and client are also local -->
214                         <Custom Action="AbortInstallationB" After="MigrateFeatureStates">
215                                 <![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) ))]]>
216                         </Custom>
217                 <?ifdef RemoveLoopback?>
218                         <Custom Action="RemoveLoopback" After="SelfRegModules">&amp;feaLoopback=2 OR &amp;feaLoopback=3</Custom>
219             <Custom Action="RollbackLoopback" After="RemoveLoopback">&amp;feaLoopback=3</Custom>
220             <Custom Action="InstallLoopback" After="RollbackLoopback">&amp;feaLoopback=3</Custom>
221                 <?else?>
222             <Custom Action="InstallLoopback" After="SelfRegModules">&amp;feaLoopback=3</Custom>
223         <?endif?>
224             <Custom Action="RollbackNetProvider" After="WriteRegistryValues">&amp;feaClient=3</Custom>
225                         <Custom Action="InstallNetProvider" After="RollbackNetProvider">&amp;feaClient=3</Custom>
226                         <Custom Action="RemoveNetProvider" After="InstallNetProvider">&amp;feaClient=2</Custom>
227                         <Custom Action="ConfigureClient" After="InstallServices">&amp;feaClient=3</Custom>
228                         <Custom Action="ConfigureServer" After="ConfigureClient">&amp;feaServer=3</Custom>
229                         <!-- <Custom Action="RemoveAFSAdminGroup" Before="">&amp;feaClient=2</Custom> -->
230                         <Custom Action="RollbackAFSAdminGroup" Before="CreateAFSAdminGroup">&amp;feaClient=3</Custom>
231                         <Custom Action="CreateAFSAdminGroup" Before="CreateFolders">&amp;feaClient=3</Custom>
232             <ScheduleReboot After="PublishProduct">&amp;feaClient=3 OR &amp;feaServer=3 OR &amp;feaClient=2 OR &amp;feaServer=2</ScheduleReboot>
233         </InstallExecuteSequence>
234
235         <!-- Related producs -->
236         <!-- MIT's OpenAFS MSI installer -->
237         <Upgrade Id="6823EEDD-84FC-4204-ABB3-A80D25779833">
238             <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="no" Maximum="$(var.NumericVersion)" MigrateFeatures="yes" Property="OPENAFS_UPGRADE" />
239         </Upgrade>
240         
241         <!-- MIT's Transarc AFS MSI Installer -->
242         <Upgrade Id="5332B94F-DE38-4927-9EAB-51F4A64193A7">
243             <UpgradeVersion IgnoreRemoveFailure="no" IncludeMaximum="yes" Maximum="3.6.2" MigrateFeatures="no" Property="IBMAFS_UPGRADE" />
244         </Upgrade>
245         
246         <!-- openafs.org NSIS installer is detected using other means -->
247         <!-- Please let us know if you want other Installers to be detected and upgraded/removed -->
248
249                 <!-- Media -->
250                 <Media Id="1" Cabinet="disk1.cab" CompressionLevel="high" EmbedCab="yes" />
251     </Product>
252 </Wix>