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