xref: /netbsd-src/crypto/external/bsd/heimdal/dist/packages/windows/installer/heimdal-installer.wxs (revision dd75ac5b443e967e26b4d18cc8cd5eb98512bfbf)
1<?xml version='1.0' encoding='windows-1252'?>
2<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
3
4  <?if $(var.Platform)=x64 ?>
5
6  <?define Win64=yes ?>
7  <?define PIProgramFilesFolder=ProgramFiles64Folder ?>
8
9  <?define ToolsBinDir=dirBin64 ?>
10  <?define GuidKinit=BAA5BD92-163E-4AA5-8C99-EA2100F3D9DE ?>
11  <?define GuidKdestroy=289C2C0D-F41D-4E46-9819-6B9B63F83418 ?>
12  <?define GuidKtutil=28B09087-4731-41F4-B734-C71E84EC31FC ?>
13  <?define GuidKdigest=D13DA4C0-B1BB-4C02-8ED2-5DFC7D16B19D ?>
14  <?define GuidKpasswd=20A984EC-5BCB-4B93-A3A9-7AACBDC625E9 ?>
15  <?define GuidKvno=2B932C2B-9167-4051-BDF7-A104E9983CE6 ?>
16  <?define GuidKcpytkt=17734691-7CB3-4E9A-AADC-6D4205795F43 ?>
17  <?define GuidKdeltkt=3E853905-8CDA-4E14-8EBA-C0C4EEDB811A ?>
18  <?define GuidHeimtools=F411A9F1-A186-40CB-B55B-CADBE0166268 ?>
19  <?define GuidKadmin=E628E9AA-43AB-47EE-8A01-815C027555F2 ?>
20
21  <?define ConfigDir=INSTALLDIR64 ?>
22
23  <?else?>
24
25  <?define Win64=no ?>
26  <?define PIProgramFilesFolder=ProgramFilesFolder ?>
27
28  <?define ToolsBinDir=dirBin32 ?>
29  <?define GuidKinit=038F19D7-F7C9-4B6A-8359-321CD1FAD347 ?>
30  <?define GuidKdestroy=07D96FBC-2251-4EBC-AA68-12C6C52F44E6 ?>
31  <?define GuidKtutil=CE082458-E2C5-4744-A423-88C23AD3C81C ?>
32  <?define GuidKdigest=3FFBFAB0-FB37-411C-AF4E-53BCC468D7D1 ?>
33  <?define GuidKpasswd=B66C04B5-EE1D-48C3-A25B-4DCAAA8F459B ?>
34  <?define GuidKvno=4C6015BE-1347-4D12-8841-FF90E0B9D6A8 ?>
35  <?define GuidKcpytkt=CBCDFC80-601B-4F26-A020-7D1278735B95 ?>
36  <?define GuidKdeltkt=6450EE72-E472-4709-B457-B579BFB2472B ?>
37  <?define GuidHeimtools=11800964-4A5F-466E-B2FE-DD2EFC54DDB9 ?>
38  <?define GuidKadmin=B31F9FFC-D588-4A3E-9AEA-C9E9137B08F0 ?>
39
40  <?define ConfigDir=INSTALLDIR32 ?>
41
42  <?endif?>
43
44  <Product Name='!(loc.ProductName) $(var.Version)'
45           Id='*' UpgradeCode='81E64C32-1D09-4E3D-9EA2-EECD9C4D16CE'
46           Language='!(loc.LanguageCode)' Codepage='1252' Version='$(var.Version)'
47           Manufacturer='!(loc.Manufacturer)'>
48
49    <Package Id='*' Description='!(loc.Description)'
50      Manufacturer='!(loc.Manufacturer)'
51      InstallerVersion='300' Languages='!(loc.LanguageCode)'
52      Compressed='yes' SummaryCodepage='1252'
53      Platform='$(var.Platform)'
54      InstallScope='perMachine'
55      InstallPrivileges='elevated'
56      Keywords='Heimdal,Kerberos,GSS' />
57
58    <Directory Id='TARGETDIR' Name='SourceDir' DiskId='1'>
59
60      <?ifdef Target32 ?>
61      <Directory Id='ProgramFilesFolder'>
62        <Directory Id='INSTALLDIR32' Name='Heimdal'>
63          <Directory Id='dirBin32' Name='bin'>
64          </Directory>
65        </Directory>
66      </Directory>
67      <?endif?>
68
69      <?ifdef Target64?>
70      <Directory Id='ProgramFiles64Folder'>
71        <Directory Id='INSTALLDIR64' Name='Heimdal'>
72          <Directory Id='dirBin64' Name='bin'>
73          </Directory>
74        </Directory>
75      </Directory>
76      <?endif?>
77
78    </Directory>
79
80    <?ifdef Target32?>
81    <DirectoryRef Id='dirBin32' DiskId='1'>
82      <Component Id='comp.SearchPath.32' Feature='feature.Main'
83                 Guid='BA6C1A53-E479-4E87-9B61-7BA793DBAE56' Win64='no'>
84	<RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
85		     Key='Software\Heimdal\CurrentVersion'>
86          <RegistryValue Name='InstallPath' Type='string'
87                         Value='[dirBin32]' KeyPath='yes' />
88        </RegistryKey>
89        <Environment Id='env.Path.32' Name='PATH' Action='set' Part='last'
90                     Separator=';' Value='[dirBin32]' System='yes' />
91      </Component>
92
93      <Merge Id='Heimdal.Assemblies.32' Language='0'
94             SourceFile='$(var.InstDir32)\Heimdal.msm' />
95
96      <Merge Id='Heimdal.GSS.32' Language='0'
97	     SourceFile='$(var.InstDir32)\Heimdal.GSS.msm' />
98
99      <Merge Id='Heimdal.Policy.32' Language='0'
100             SourceFile='$(var.InstDir32)\Heimdal.Policy.msm' />
101
102      <?if "$(var.RuntimeModule32)" != "" ?>
103	<Merge Id='Runtime.32' Language='0'
104	       SourceFile='$(var.RuntimeModule32)' />
105      <?endif?>
106    </DirectoryRef>
107    <?endif?>
108
109    <?ifdef Target64?>
110    <DirectoryRef Id='dirBin64' DiskId='1'>
111      <Component Id='comp.SearchPath.64' Feature='feature.Main'
112                 Guid='2F189729-2253-47A1-AA68-06FE3A9697A7' Win64='yes'>
113	<RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
114		     Key='Software\Heimdal\CurrentVersion'>
115          <RegistryValue Name='InstallPath' Type='string'
116                         Value='[dirBin64]' KeyPath='yes' />
117        </RegistryKey>
118        <Environment Id='env.Path' Name='PATH' Action='set' Part='last'
119                     Separator=';' Value='[dirBin64]' System='yes' />
120      </Component>
121
122      <Merge Id='Heimdal.Assemblies.64' Language='0'
123             SourceFile='$(var.InstDir64)\Heimdal.msm' />
124
125      <Merge Id='Heimdal.GSS.64' Language='0'
126	     SourceFile='$(var.InstDir64)\Heimdal.GSS.msm' />
127
128      <Merge Id='Heimdal.Policy.64' Language='0'
129             SourceFile='$(var.InstDir64)\Heimdal.Policy.msm' />
130
131      <?if "$(var.RuntimeModule64)" != "" ?>
132	<Merge Id='Runtime.64' Language='0'
133	       SourceFile='$(var.RuntimeModule64)' />
134      <?endif?>
135    </DirectoryRef>
136    <?endif?>
137
138    <DirectoryRef Id='$(var.ToolsBinDir)' FileSource='$(var.BinDir)'>
139
140      <Component Id='comp.kinit'
141                 Guid='$(var.GuidKinit)'
142                 Win64='$(var.Win64)'>
143        <File Name='kinit.exe' KeyPath='yes' />
144        <File Name='kinit.pdb' />
145      </Component>
146
147      <Component Id='comp.ktutil'
148                 Guid='$(var.GuidKtutil)'
149                 Win64='$(var.Win64)'>
150        <File Name='ktutil.exe' KeyPath='yes' />
151        <File Name='ktutil.pdb' />
152      </Component>
153
154      <Component Id='comp.kdestroy'
155                 Guid='$(var.GuidKdestroy)'
156                 Win64='$(var.Win64)'>
157        <File Name='kdestroy.exe' KeyPath='yes' />
158        <File Name='kdestroy.pdb' />
159      </Component>
160
161      <Component Id='comp.kdigest'
162                 Guid='$(var.GuidKdigest)'
163                 Win64='$(var.Win64)'>
164        <File Name='kdigest.exe' KeyPath='yes' />
165        <File Name='kdigest.pdb' />
166      </Component>
167
168      <Component Id='comp.kpasswd'
169                 Guid='$(var.GuidKpasswd)'
170                 Win64='$(var.Win64)'>
171        <File Name='kpasswd.exe' KeyPath='yes' />
172        <File Name='kpasswd.pdb' />
173      </Component>
174
175      <Component Id='comp.kvno'
176                 Guid='$(var.GuidKvno)'
177                 Win64='$(var.Win64)'>
178        <File Name='kvno.exe' KeyPath='yes' />
179        <File Name='kvno.pdb' />
180      </Component>
181
182      <Component Id='comp.kcpytkt'
183                 Guid='$(var.GuidKcpytkt)'
184                 Win64='$(var.Win64)'>
185        <File Name='kcpytkt.exe' KeyPath='yes' />
186        <File Name='kcpytkt.pdb' />
187      </Component>
188
189      <Component Id='comp.kdeltkt'
190                 Guid='$(var.GuidKdeltkt)'
191                 Win64='$(var.Win64)'>
192        <File Name='kdeltkt.exe' KeyPath='yes' />
193        <File Name='kdeltkt.pdb' />
194      </Component>
195
196      <Component Id='comp.heimtools'
197                 Guid='$(var.GuidHeimtools)'
198                 Win64='$(var.Win64)'>
199        <File Name='heimtools.exe' KeyPath='yes'>
200          <CopyFile Id='klist.exe' DestinationName='klist.exe' DestinationProperty='$(var.ToolsBinDir)' />
201          <CopyFile Id='kswitch.exe' DestinationName='kswitch.exe' DestinationProperty='$(var.ToolsBinDir)' />
202        </File>
203        <File Name='heimtools.pdb'>
204          <CopyFile Id='klist.pdb' DestinationName='klist.pdb' />
205          <CopyFile Id='kswitch.pdb' DestinationName='kswitch.pdb' />
206        </File>
207      </Component>
208
209      <Component Id='comp.kadmin'
210		 Guid='$(var.GuidKadmin)'
211		 Win64='$(var.Win64)'>
212	<File Name='kadmin.exe' KeyPath='yes' />
213	<File Name='kadmin.pdb' />
214      </Component>
215
216      <Component Id='comp.Heimdal.chm'
217                 Guid='785F6668-EBDB-4F18-8BEF-F72ECECB43D6'>
218        <File Source='$(var.DocDir)\heimdal.chm' />
219      </Component>
220
221      <Component Id='comp.HX509.chm'
222                 Guid='CBB379D6-629D-4EB9-AC0D-0167651F14EF'>
223        <File Source='$(var.DocDir)\hx509.chm' />
224      </Component>
225
226    </DirectoryRef>
227
228    <DirectoryRef Id='TARGETDIR'>
229      <Directory Id='CommonAppDataFolder' Name='ProgramData'>
230	<Directory Id='dirCommonKerberos' Name='Kerberos' FileSource='$(var.SrcDir)'>
231
232          <Component Id='comp.krb5.conf'
233                     Guid='ED28951F-7B17-4DF5-91D7-4DC11C810E66'
234                     Permanent='yes' NeverOverwrite='yes'>
235            <File Name='krb5.conf' KeyPath='yes' Id='krb5_conf' />
236            <Environment Id='KRB5_CONFIG_by_krb5.conf' Name='KRB5_CONFIG' Action='set' System='yes' Value='[#krb5_conf]' />
237            <!-- Backwards compatibility -->
238	    <RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
239			 Key='Software\MIT\Kerberos'>
240              <RegistryValue Name='config' Type='string' Value='[#krb_conf]' />
241            </RegistryKey>
242            <Condition>Not LEGACYKRB5INI And Not LEGACYKRB5CONF And Not LEGACYKRB5REG32 And Not LEGACYKRB5REG64</Condition>
243          </Component>
244
245          <Component Id='comp.krb5.ini.move'
246                     Guid='316CB754-4332-4C02-95C1-4AC82590712D'>
247            <CopyFile Id='copy_krb5.ini' Delete='yes'
248                      DestinationDirectory='dirCommonKerberos'
249                      DestinationName='krb5.conf' DestinationShortName='krb5.cnf'
250                      SourceProperty='LEGACYKRB5INI' />
251            <Environment Id='KRB5_CONFIG_by_legacy_krb5.ini' Name='KRB5_CONFIG'
252                         Action='set' System='yes' Value='[dirCommonKerberos]krb5.conf' />
253	    <RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
254			 Key='Software\Heimdal\CurrentVersion'>
255              <RegistryValue Name='LegacyKrb5IniLocation' Type='string'
256                             Value='[LEGACYKRB5INI]' KeyPath='yes' />
257            </RegistryKey>
258            <!-- Backwards compatibility -->
259	    <RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
260			 Key='Software\MIT\Kerberos'>
261              <RegistryValue Name='config' Type='string'
262                             Value='[dirCommonKerberos]krb5.conf' />
263            </RegistryKey>
264            <Condition>LEGACYKRB5INI</Condition>
265          </Component>
266
267          <Component Id='comp.krb5.conf.move'
268                     Guid='ADCE6801-0FD3-46E7-955A-FC9214CFE0AB'>
269            <CopyFile Id='copy_krb5.conf' Delete='yes'
270                      DestinationDirectory='dirCommonKerberos'
271                      DestinationName='krb5.conf' DestinationShortName='krb5.cnf'
272                      SourceProperty='LEGACYKRB5CONF' />
273            <Environment Id='KRB5_CONFIG_by_legacy_krb5.conf' Name='KRB5_CONFIG'
274                         Action='set' System='yes' Value='[dirCommonKerberos]krb5.conf' />
275	    <RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
276			 Key='Software\Heimdal\CurrentVersion'>
277	    <RegistryValue Name='LegacyKrb5ConfLocation' Type='string'
278                             Value='[LEGACYKRB5CONF]' KeyPath='yes' />
279            </RegistryKey>
280            <!-- Backwards compatibility -->
281	    <RegistryKey ForceDeleteOnUninstall='yes' Root='HKLM'
282			 Key='Software\MIT\Kerberos'>
283              <RegistryValue Name='config' Type='string'
284                             Value='[dirCommonKerberos]krb5.conf' />
285            </RegistryKey>
286            <Condition>LEGACYKRB5CONF</Condition>
287          </Component>
288
289        </Directory>
290      </Directory>
291      <Directory Id='WindowsFolder'>
292      </Directory>
293    </DirectoryRef>
294
295    <Media Id='1' Cabinet='Disk1' CompressionLevel='high' EmbedCab='yes' />
296
297    <Upgrade Id='81E64C32-1D09-4E3D-9EA2-EECD9C4D16CE'>
298      <UpgradeVersion IncludeMaximum='no' MigrateFeatures='yes' Maximum='$(var.Version)'
299                      Property='PREVIOUSINSTALLATION' />
300      <UpgradeVersion Minimum='$(var.Version)' IncludeMinimum='yes'
301                      Maximum='127.127.32767.32767'
302                      OnlyDetect='yes' Property='EXISTINGINSTALLATION' />
303    </Upgrade>
304
305    <!-- Search for existing configuration files -->
306
307    <Property Id='LEGACYKRB5INI' Secure='yes'>
308      <DirectorySearch Id='dirSearchKrb5Ini' Depth='1' Path='[WindowsFolder]'>
309        <FileSearch Name='krb5.ini' />
310      </DirectorySearch>
311    </Property>
312
313    <Property Id='LEGACYKRB5CONF' Secure='yes'>
314      <DirectorySearch Id='dirSearchKrb5Conf' Depth='1' Path='[WindowsFolder]'>
315        <FileSearch Name='krb5.conf' />
316      </DirectorySearch>
317    </Property>
318
319    <Property Id='LEGACYKRB5REG32' Secure='yes'>
320      <RegistrySearch Id='regSearchKrb5ConfUser' Key='Software\MIT\Kerberos' Name='config'
321                      Root='HKLM' Type='file' Win64='no'>
322        <FileSearch Name='krb5.ini' />
323      </RegistrySearch>
324    </Property>
325
326    <?if $(var.Platform)=x64 ?>
327    <Property Id='LEGACYKRB5REG64' Secure='yes'>
328      <RegistrySearch Id='regSearchKrb5ConfMach' Key='Software\MIT\Kerberos' Name='config'
329                      Root='HKLM' Type='file' Win64='yes'>
330        <FileSearch Name='krb5.ini' />
331      </RegistrySearch>
332    </Property>
333    <?endif?>
334
335    <InstallExecuteSequence>
336      <RemoveExistingProducts After='InstallFinalize' />
337    </InstallExecuteSequence>
338
339    <Condition Message='!(loc.AdminRequired)'>Installed OR Privileged</Condition>
340    <Condition Message='!(loc.AlreadyInstalled)'>Installed OR NOT EXISTINGINSTALLATION</Condition>
341
342    <Feature Id='feature.Main' ConfigurableDirectory='$(var.ConfigDir)'
343             Title='!(loc.FeaMainTitle)'
344             Description='!(loc.FeaMainDesc)' Display='expand'
345             Level='1' TypicalDefault='install' InstallDefault='local'>
346
347      <ComponentRef Id='comp.HX509.chm' />
348      <ComponentRef Id='comp.Heimdal.chm' />
349      <ComponentRef Id='comp.kcpytkt' />
350      <ComponentRef Id='comp.kdeltkt' />
351      <ComponentRef Id='comp.kdestroy' />
352      <ComponentRef Id='comp.kdigest' />
353      <ComponentRef Id='comp.kinit' />
354      <ComponentRef Id='comp.kpasswd' />
355      <ComponentRef Id='comp.krb5.conf' />
356      <ComponentRef Id='comp.krb5.conf.move' />
357      <ComponentRef Id='comp.krb5.ini.move' />
358      <ComponentRef Id='comp.ktutil' />
359      <ComponentRef Id='comp.kvno' />
360      <ComponentRef Id='comp.heimtools' />
361      <ComponentRef Id='comp.kadmin' />
362
363      <?ifdef MKShim ?>
364      <?ifdef Target64?>
365      <ComponentGroupRef Id='comp.Heimdal.MKShim.64' />
366      <?else?>
367      <ComponentGroupRef Id='comp.Heimdal.MKShim.32' />
368      <?endif?>
369      <?endif?>
370
371      <?ifdef Target64?>
372      <MergeRef Id='Heimdal.Assemblies.64' />
373      <MergeRef Id='Heimdal.GSS.64' />
374      <MergeRef Id='Heimdal.Policy.64' />
375      <?if "$(var.RuntimeModule64)" != "" ?><MergeRef Id='Runtime.64' /><?endif?>
376      <?else?>
377      <MergeRef Id='Heimdal.Assemblies.32' />
378      <MergeRef Id='Heimdal.GSS.32' />
379      <MergeRef Id='Heimdal.Policy.32' />
380      <?if "$(var.RuntimeModule32)" != "" ?><MergeRef Id='Runtime.32' /><?endif?>
381      <?endif?>
382
383      <?ifdef Target32?>
384      <?ifdef Target64?>
385      <!-- If we are building the combined installer, the 32-bit
386           libraries go into a separate feature. -->
387      <Feature Id='feature.32BitLibraries'
388               ConfigurableDirectory='INSTALLDIR32'
389               Title='!(loc.Fea32BitTitle)'
390               Description='!(loc.Fea32BitDesc)'
391               Level='1' TypicalDefault='install' InstallDefault='local'>
392        <?ifdef MKShim ?>
393        <ComponentGroupRef Id='comp.Heimdal.MKShim.32' />
394        <?endif?>
395        <MergeRef Id='Heimdal.Assemblies.32' />
396	<MergeRef Id='Heimdal.GSS.32' />
397        <MergeRef Id='Heimdal.Policy.32' />
398	<?if "$(var.RuntimeModule32)" != "" ?><MergeRef Id='Runtime.32' /><?endif?>
399      </Feature>
400      <?endif?>
401      <?endif?>
402
403    </Feature>
404
405    <!-- Properties for Add/Remove Programs -->
406
407    <Property Id='ARPHELPLINK' Value='http://www.h5l.org' />
408
409    <Property Id='ARPCONTACT' Value='heimdal@h5l.org' />
410
411    <Property Id='ARPURLINFOABOUT' Value='http://www.h5l.org' />
412
413    <!-- Other properties -->
414
415    <UIRef Id='WixUI_FeatureTree' />
416
417    <WixVariable Id="WixUIBannerBmp" Value="images\Heimdal_banner.bmp" />
418    <WixVariable Id="WixUIDialogBmp" Value="images\Heimdal_dialog.bmp" />
419
420  </Product>
421</Wix>
422