569e3cd3fab23cb906ef3755419789295c2c6555
[shibboleth/cpp-sp.git] / msi / WiX / ShibbolethSP-noarch.wxs
1 <?xml version='1.0' encoding='UTF-8'?>
2 <!-- Licensed to the University Corporation for Advanced Internet
3      Development, Inc. (UCAID) under one or more contributor license
4      agreements.  See the NOTICE file distributed with this work for
5      additional information regarding copyright ownership. The UCAID
6      licenses this file to You under the Apache License, Version 2.0
7      (the 'License'); you may not use this file except in compliance
8      with the License.  You may obtain a copy of the License at
9      
10      http://www.apache.org/licenses/LICENSE-2.0
11      
12      Unless required by applicable law or agreed to in writing, software
13      distributed under the License is distributed on an 'AS IS' BASIS,
14      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
15      implied.  See the License for the specific language governing
16      permissions and limitations under the License.  -->
17
18 <?include Versions.wxi ?>
19
20 <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
21   <!--
22     This is where we put all the architecture neutral bits of the
23     Shibboleth install.  It turns out that it may not be all the
24     architecture insenstive stuff since some GUIDS may have moved
25   -->
26   <Fragment>
27     <!-- Files First -->
28     <!-- Configuration, licenses and documentation -->
29
30     <DirectoryRef Id='INSTALLDIR'>
31       <Directory Id='doc' Name='doc' >
32         <Directory Id='doc_shibboleth' Name='shibboleth' FileSource='$(var.SPBuildDirectory)\cpp-sp\doc' >
33           <Component Id='main.css' Guid='{EA1366EE-0FD1-42E7-9F3F-C19E6C0D12D6}'>
34             <File KeyPath='yes' Name='main.css' />
35           </Component>
36           <Component Id='CREDITS.txt' Guid='{9A792E0C-61F1-4D08-9672-BE82FFB6B7F1}'>
37             <File KeyPath='yes' Name='CREDITS.txt' />
38           </Component>
39           <Component Id='LICENSE.txt' Guid='{404E7A3C-22C2-4A02-8DC0-7D5C0B25DED1}'>
40             <File KeyPath='yes' Name='LICENSE.txt' />
41           </Component>
42           <Component Id='NOTICE.txt' Guid='{80619251-6754-480A-AFAA-D7398482053C}'>
43             <File KeyPath='yes' Name='NOTICE.txt' />
44           </Component>
45           <Component Id='README.txt' Guid='{2E5A28EE-B70B-402B-8E6F-72E8EC1EEF0D}'>
46             <File KeyPath='yes' Name='README.txt'/>
47           </Component>
48           <Component Id='RELEASE.txt' Guid='{5822AF4E-BE53-4952-B662-6BE2D3913D31}'>
49             <File KeyPath='yes' Name='RELEASE.txt' />
50           </Component>
51         </Directory><!-- doc_shibboleth -->
52       </Directory><!-- doc -->
53       <Directory Id='etc' Name='etc' >
54         <Directory Id='etc_shibboleth' Name='shibboleth' FileSource='$(var.SPBuildDirectory)\cpp-sp\configs'>
55           <Component Id='upgrade.xsl' Guid='{D8D1270C-2F85-4465-8EC0-F5F30A2B3EDD}'>
56             <File KeyPath='yes' Name='upgrade.xsl' />
57           </Component>
58           <Component Id='example_metadata.xml' Guid='{D9852008-249D-405D-8059-5DAD307D2723}' Permanent='yes'>
59             <File KeyPath='yes' Name='example-metadata.xml' />
60           </Component>
61           <Component Id='example_shibboleth2.xml' Guid='{85415A41-2B4E-406F-9CFC-63CFC360A9C7}' Permanent='yes'>
62             <File KeyPath='yes' Name='example-shibboleth2.xml' />
63           </Component>
64           <Component Id='keygen.bat' Guid='{A5BBCB8B-42B3-4402-B66D-66D2971F509F}'>
65             <File KeyPath='yes' Name='keygen.bat'/>
66           </Component>
67           <Component Id='xsltproc.js' Guid='{B87F4A53-3C37-45DA-BE6F-C46790FA7C2D}'>
68             <File KeyPath='yes' Name='xsltproc.js' />
69           </Component>
70           <Directory Id='etc_shibboleth_dist' Name='dist' FileSource='$(var.SPBuildDirectory)\cpp-sp\configs'>
71             <Component Id='apache.config.in' Guid='{AF4EB2B1-2489-4E39-A89E-1CA7AC2B7483}'>
72               <File KeyPath='yes' Name='apache.config.in' />
73             </Component>
74             <Component Id='apache2.config.in' Guid='{85BF72A1-FBA8-4955-ACCF-ABC83B1292C9}'>
75               <File KeyPath='yes' Name='apache2.config.in' />
76             </Component>
77             <Component Id='apache22.config.in' Guid='{6AEBA525-8F52-4D14-BAEE-0292A2E214D1}'>
78               <File KeyPath='yes' Name='apache22.config.in' />
79             </Component>
80             <Component Id='apache24.config.in' Guid='{3562B68A-E54A-4F1B-9F10-BDACB5FFE8CB}'>
81               <File KeyPath='yes' Name='apache24.config.in' />
82             </Component>
83             <Component Id='sslError.html' Guid='{A74BA230-C49F-4151-BBF4-AA80D554D099}'>
84               <File KeyPath='yes' Name='sslError.html' />
85             </Component>
86             <Component Id='bindingTemplate.html' Guid='{F5A3A434-9209-43EC-9314-1F705055DDEC}'>
87               <File KeyPath='yes' Name='bindingTemplate.html' />
88             </Component>
89             <Component Id='globalLogout.html' Guid='{E65F580D-5489-4D79-A8FC-F9FFED666FC1}'>
90               <File KeyPath='yes' Name='globalLogout.html' />
91             </Component>
92             <Component Id='localLogout.html' Guid='{70FA3A47-A950-4074-BC13-C56D94497BD9}'>
93               <File KeyPath='yes' Name='localLogout.html' />
94             </Component>
95             <Component Id='attribute_map.xml' Guid='{878C9456-E65F-4541-A0FA-975379EAC6B6}'>
96               <File KeyPath='yes' Name='attribute-map.xml' />
97             </Component>
98             <Component Id='attribute_policy.xml' Guid='{55B88F7B-E2EA-4B70-87B7-33C566B9F992}'>
99               <File KeyPath='yes' Name='attribute-policy.xml'/>
100             </Component>
101             <Component Id='shibboleth2.xml' Guid='{E520FEDE-3F0E-47C6-9345-47223B82825A}'>
102               <File KeyPath='yes' Name='shibboleth2.xml' Source='$(var.SPBuildDirectory)\cpp-sp\configs\win-shibboleth2.xml' />
103             </Component>
104             <Component Id='console.logger' Guid='{8AC85980-32B9-4EA2-9245-167FB1AB2570}'>
105               <File KeyPath='yes' Name='console.logger' />
106             </Component>
107             <Component Id='discoveryTemplate.html' Guid='{A9573113-4387-46DD-A636-84482AF2C672}'>
108               <File KeyPath='yes' Name='discoveryTemplate.html' />
109             </Component>
110             <Component Id='postTemplate.html' Guid='{5B7111E8-8E04-42F1-AB02-E47AFB7C3D28}'>
111               <File KeyPath='yes' Name='postTemplate.html' />
112             </Component>
113             <Component Id='partialLogout.html' Guid='{E1F6208B-3C70-4632-B84C-C7D141DC4192}'>
114               <File KeyPath='yes' Name='partialLogout.html' />
115             </Component>
116             <Component Id='protocols.xml' Guid='{B226CAAC-2D18-411A-9FBF-3FE237EBEF4D}'>
117               <File KeyPath='yes' Name='protocols.xml' />
118             </Component>
119             <Component Id='security_policy.xml' Guid='{0EC04525-FCCF-4B60-8797-9B0CEC222B8C}'>
120               <File KeyPath='yes' Name='security-policy.xml' />
121             </Component>
122             <Component Id='accessError.html' Guid='{6FAA81A0-A020-4E60-A37D-1EC4D0D5FD06}'>
123               <File KeyPath='yes' Name='accessError.html' />
124             </Component>
125             <Component Id='attrChecker.html' Guid='{BDF4837C-A887-4F1C-841C-DC13DFF8A46E}'>
126               <File KeyPath='yes' Name='attrChecker.html' />
127             </Component>
128             <Component Id='metadataError.html' Guid='{8C46D04A-A943-4FA4-AFCB-9B040306C2C0}'>
129               <File KeyPath='yes' Name='metadataError.html' />
130             </Component>
131             <Component Id='native.logger.in' Guid='{8586D4C7-E237-4C7F-BC79-DE0B06473395}'>
132               <File KeyPath='yes' Name='native.logger.in' />
133             </Component>
134             <Component Id='sessionError.html' Guid='{8AA240B3-DC5D-4687-B321-4F5E1BAEA820}'>
135               <File KeyPath='yes' Name='sessionError.html' />
136             </Component>
137             <Component Id='shibd.logger.in' Guid='{D8DA3D14-F779-4691-A883-4995158D2A74}'>
138               <File KeyPath='yes' Name='shibd.logger.in' />
139             </Component>
140           </Directory><!-- etc_shibboleth_dist -->
141         </Directory><!-- etc_shibboleth -->
142       </Directory><!-- etc_dist -->
143       <Directory Id='var' Name='var'>
144         <Directory Id='var_cache' Name='cache'>
145           <Directory Id='var_cache_shibboleth' Name='shibboleth'>
146             <Component Id='var_cache_shibboleth_folder' Guid='{6C978639-DDCF-40BD-90F8-690B3E05586C}'>
147               <CreateFolder />
148               <!-- Kill off old env variable from pre 2.5 install.
149                    Do it here so it is in the correct tables -->
150               <Environment Id='SHIBSP_SCHEMAS' Action='remove' Name='SHIBSP_SCHEMAS'/>
151             </Component>
152           </Directory><!-- var_cache_shibboleth -->
153         </Directory><!-- var_cache -->
154         <Directory Id='var_log' Name='log'>
155           <Directory Id='var_log_shibboleth' Name='shibboleth'>
156             <Component Id='var_log_shibboleth_folder' Guid='{2BFC84E4-634B-4D70-910A-D5640739C8C8}'>
157               <CreateFolder />
158             </Component>
159           </Directory><!-- var_log_shibboleth -->
160         </Directory><!-- var_log -->
161         <Directory Id='var_run' Name='run'>
162           <Directory Id='var_run_shibboleth' Name='shibboleth'>
163             <Component Id='var_run_shibboleth_folder' Guid='{35E176B1-965A-4571-B24E-E0C8E69B0459}'>
164               <CreateFolder />
165             </Component>
166           </Directory><!-- var_run_shibboleth -->
167         </Directory><!-- var_run -->
168       </Directory><!-- var -->
169     </DirectoryRef>
170
171     <!-- Stuff to do the editing and copy of the files -->
172
173     <Binary Id='EditConfigFileSrc' SourceFile='$(var.SPBuildDirectory)\cpp-sp\msi\scripts\shib_edit_config_files.vbs-wix' />
174
175     <CustomAction Id='EditConfigFiles' 
176                   BinaryKey='EditConfigFileSrc' VBScriptCall='' Execute='deferred' Impersonate='no' />
177     <CustomAction Id='SetEditConfigFiles' Property='EditConfigFiles' Value='[INSTALLDIR];@;[IS64BITINSTALL];@;[INSTALL_32BIT]' />
178
179     <CustomAction Id='KeyGen' BinaryKey='WixCA' DllEntry='CAQuietExec' Execute='deferred' Impersonate='no' />
180     <CustomAction Id='SetKeyGen' Property='KeyGen' Value='&quot;[INSTALLDIR]etc\shibboleth\keygen.bat&quot;' />
181
182     <!-- Stuff to configure IIS.  This is a one-shot (first install/last uninstall) -->
183
184     <Binary Id='install_isapi'
185             SourceFile='$(var.SPBuildDirectory)\cpp-sp\msi\scripts\shib_install_isapi_filter.vbs-wix'/>
186     <Binary Id='uninstall_isapi' 
187             SourceFile='$(var.SPBuildDirectory)\cpp-sp\msi\scripts\shib_uninstall_isapi_filter.vbs-wix'/>
188
189     <CustomAction Id='SetShibInstallISAPIFilter32' Property='ShibInstallISAPIFilter' 
190                   Value='[INSTALLDIR];@;[INSTALLDIR]lib\shibboleth\isapi_shib.dll;@;[SHIB_FILE_EXTENSION]' />
191     <CustomAction Id='SetShibInstallISAPIFilter64' Property='ShibInstallISAPIFilter' 
192                   Value='[INSTALLDIR];@;[INSTALLDIR]lib64\shibboleth\isapi_shib.dll;@;[SHIB_FILE_EXTENSION]' />
193     <CustomAction Id='ShibInstallISAPIFilter' BinaryKey='install_isapi' 
194                   VBScriptCall='' Execute='deferred' Impersonate='no' />
195
196     <CustomAction Id='SetShibUninstallISAPIFilter' Property='ShibUninstallISAPIFilter' Value='[INSTALLDIR]'/>
197     <CustomAction Id='ShibUninstallISAPIFilter' BinaryKey='uninstall_isapi' 
198                   VBScriptCall='' Execute='deferred' Impersonate='no' />
199
200     <CustomAction Id='ServicePath64' BinaryKey='WixCA' DllEntry='CAQuietExec' Execute='deferred' Impersonate='no' />
201     <CustomAction Id='SetServicePath64' Property='ServicePath64' Value='&quot;[INSTALLDIR]etc\shibboleth\SetService64.bat&quot;' />
202
203     <!-- Inherit the installation dir if one was set -->
204     <CustomAction Id='InheritInstallDir' Property='INSTALLDIR' Value='[OLD_INSTALLDIR]' />
205     <CustomAction Id='InheritInstallDir64' Property='INSTALLDIR' Value='[OLD_INSTALLDIR64]' />
206
207     <InstallUISequence>
208       <!-- All we need to sequence here is setting up inherited INSTALLDIR -->
209
210       <!-- inherit installationDir if there is something to inherit -->
211       <Custom Action='InheritInstallDir' After='AppSearch'>
212         OLD_INSTALLDIR
213       </Custom>
214       <Custom Action='InheritInstallDir64' After='InheritInstallDir'>
215         (NOT OLD_INSTALLDIR) AND OLD_INSTALLDIR64
216       </Custom>
217     </InstallUISequence>
218
219     <InstallExecuteSequence>
220       <Custom Action='SetEditConfigFiles' Before='CostInitialize'>NOT Installed</Custom>
221       <Custom Action='EditConfigFiles' After='InstallFiles'>NOT Installed</Custom>
222
223       <Custom Action='SetKeyGen' Before='CostInitialize'>NOT Installed</Custom>
224       <!-- Run KeyGen after WriteEnvironmentStrings so the path is set -->
225       <Custom Action='KeyGen' After='WriteEnvironmentStrings'>NOT Installed</Custom>
226
227       <!-- Install IIS if
228            - this is an install
229            - AND we were told to
230            - AND this is NOT an upgrade
231         -->
232       <Custom Action='SetShibInstallISAPIFilter32' Before='CostInitialize'>
233         (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND (INSTALL_32BIT) AND IISMAJORVERSION
234       </Custom>
235       <Custom Action='SetShibInstallISAPIFilter64' Before='CostInitialize'>
236         (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND IISMAJORVERSION
237       </Custom>
238       <Custom Action='ShibInstallISAPIFilter' After='InstallFiles'>
239         (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND IISMAJORVERSION
240       </Custom>
241       <ScheduleReboot Before='InstallFinalize'>
242         (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND IISMAJORVERSION
243       </ScheduleReboot>
244
245
246       <!-- (try to) Uninstall IIS if
247            - this is an uninstall
248            - this is not an upgrade
249            -->
250       <Custom Action='SetShibUninstallISAPIFilter' 
251               After='CostFinalize'>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>
252       <Custom Action='ShibUninstallISAPIFilter' 
253               Before='RemoveFiles'>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>
254
255       <!-- set service path to 64 bit one if this is an install and if we were told to -->
256
257       <Custom Action='SetServicePath64' Before='CostInitialize'>
258         (NOT Installed) AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND (IS64BITINSTALL = "TRUE")
259       </Custom>
260       <Custom Action='ServicePath64' After='InstallServices'>
261         (NOT Installed) AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND (IS64BITINSTALL = "TRUE")
262       </Custom>
263
264       <!-- Duplicate actions from the UI case -->
265       <Custom Action='InheritInstallDir' After='AppSearch'>
266         OLD_INSTALLDIR
267       </Custom>
268       <Custom Action='InheritInstallDir64' After='InheritInstallDir'>
269         (NOT OLD_INSTALLDIR) AND OLD_INSTALLDIR64
270       </Custom>
271
272       <!-- Do not mess with SCM if this is an upgrade -->
273
274       <InstallServices>(NOT Installed) AND (NOT ALREADYINSTALLED)</InstallServices>
275       <StartServices>(NOT Installed)</StartServices>
276       <DeleteServices>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</DeleteServices>
277
278     </InstallExecuteSequence>
279   </Fragment>
280 </Wix>