Merge commit '2.5.0' into moonshot-packaging-fixes
[shibboleth/sp.git] / msi / WiX / ShibbolethSP-noarch.wxs
diff --git a/msi/WiX/ShibbolethSP-noarch.wxs b/msi/WiX/ShibbolethSP-noarch.wxs
new file mode 100644 (file)
index 0000000..79a1660
--- /dev/null
@@ -0,0 +1,280 @@
+<?xml version='1.0' encoding='UTF-8'?>\r
+<!-- Licensed to the University Corporation for Advanced Internet\r
+     Development, Inc. (UCAID) under one or more contributor license\r
+     agreements.  See the NOTICE file distributed with this work for\r
+     additional information regarding copyright ownership. The UCAID\r
+     licenses this file to You under the Apache License, Version 2.0\r
+     (the 'License'); you may not use this file except in compliance\r
+     with the License.  You may obtain a copy of the License at\r
+     \r
+     http://www.apache.org/licenses/LICENSE-2.0\r
+     \r
+     Unless required by applicable law or agreed to in writing, software\r
+     distributed under the License is distributed on an 'AS IS' BASIS,\r
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\r
+     implied.  See the License for the specific language governing\r
+     permissions and limitations under the License.  -->\r
+\r
+<?include Versions.wxi ?>\r
+\r
+<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\r
+  <!--\r
+    This is where we put all the architecture neutral bits of the\r
+    Shibboleth install.  It turns out that it may not be all the\r
+    architecture insenstive stuff since some GUIDS may have moved\r
+  -->\r
+  <Fragment>\r
+    <!-- Files First -->\r
+    <!-- Configuration, licenses and documentation -->\r
+\r
+    <DirectoryRef Id='INSTALLDIR'>\r
+      <Directory Id='doc' Name='doc' >\r
+        <Directory Id='doc_shibboleth' Name='shibboleth' FileSource='$(var.SPBuildDirectory)\cpp-sp\doc' >\r
+          <Component Id='main.css' Guid='{EA1366EE-0FD1-42E7-9F3F-C19E6C0D12D6}'>\r
+            <File KeyPath='yes' Name='main.css' />\r
+          </Component>\r
+          <Component Id='CREDITS.txt' Guid='{9A792E0C-61F1-4D08-9672-BE82FFB6B7F1}'>\r
+            <File KeyPath='yes' Name='CREDITS.txt' />\r
+          </Component>\r
+          <Component Id='LICENSE.txt' Guid='{404E7A3C-22C2-4A02-8DC0-7D5C0B25DED1}'>\r
+            <File KeyPath='yes' Name='LICENSE.txt' />\r
+          </Component>\r
+          <Component Id='NOTICE.txt' Guid='{80619251-6754-480A-AFAA-D7398482053C}'>\r
+            <File KeyPath='yes' Name='NOTICE.txt' />\r
+          </Component>\r
+          <Component Id='README.txt' Guid='{2E5A28EE-B70B-402B-8E6F-72E8EC1EEF0D}'>\r
+            <File KeyPath='yes' Name='README.txt'/>\r
+          </Component>\r
+          <Component Id='RELEASE.txt' Guid='{5822AF4E-BE53-4952-B662-6BE2D3913D31}'>\r
+            <File KeyPath='yes' Name='RELEASE.txt' />\r
+          </Component>\r
+        </Directory><!-- doc_shibboleth -->\r
+      </Directory><!-- doc -->\r
+      <Directory Id='etc' Name='etc' >\r
+        <Directory Id='etc_shibboleth' Name='shibboleth' FileSource='$(var.SPBuildDirectory)\cpp-sp\configs'>\r
+          <Component Id='upgrade.xsl' Guid='{D8D1270C-2F85-4465-8EC0-F5F30A2B3EDD}'>\r
+            <File KeyPath='yes' Name='upgrade.xsl' />\r
+          </Component>\r
+          <Component Id='example_metadata.xml' Guid='{D9852008-249D-405D-8059-5DAD307D2723}' Permanent='yes'>\r
+            <File KeyPath='yes' Name='example-metadata.xml' />\r
+          </Component>\r
+          <Component Id='example_shibboleth2.xml' Guid='{85415A41-2B4E-406F-9CFC-63CFC360A9C7}' Permanent='yes'>\r
+            <File KeyPath='yes' Name='example-shibboleth2.xml' />\r
+          </Component>\r
+          <Component Id='keygen.bat' Guid='{A5BBCB8B-42B3-4402-B66D-66D2971F509F}'>\r
+            <File KeyPath='yes' Name='keygen.bat'/>\r
+          </Component>\r
+          <Component Id='xsltproc.js' Guid='{B87F4A53-3C37-45DA-BE6F-C46790FA7C2D}'>\r
+            <File KeyPath='yes' Name='xsltproc.js' />\r
+          </Component>\r
+          <Directory Id='etc_shibboleth_dist' Name='dist' FileSource='$(var.SPBuildDirectory)\cpp-sp\configs'>\r
+            <Component Id='apache.config.in' Guid='{AF4EB2B1-2489-4E39-A89E-1CA7AC2B7483}'>\r
+              <File KeyPath='yes' Name='apache.config.in' />\r
+            </Component>\r
+            <Component Id='apache2.config.in' Guid='{85BF72A1-FBA8-4955-ACCF-ABC83B1292C9}'>\r
+              <File KeyPath='yes' Name='apache2.config.in' />\r
+            </Component>\r
+            <Component Id='apache22.config.in' Guid='{6AEBA525-8F52-4D14-BAEE-0292A2E214D1}'>\r
+              <File KeyPath='yes' Name='apache22.config.in' />\r
+            </Component>\r
+            <Component Id='apache24.config.in' Guid='{3562B68A-E54A-4F1B-9F10-BDACB5FFE8CB}'>\r
+              <File KeyPath='yes' Name='apache24.config.in' />\r
+            </Component>\r
+            <Component Id='sslError.html' Guid='{A74BA230-C49F-4151-BBF4-AA80D554D099}'>\r
+              <File KeyPath='yes' Name='sslError.html' />\r
+            </Component>\r
+            <Component Id='bindingTemplate.html' Guid='{F5A3A434-9209-43EC-9314-1F705055DDEC}'>\r
+              <File KeyPath='yes' Name='bindingTemplate.html' />\r
+            </Component>\r
+            <Component Id='globalLogout.html' Guid='{E65F580D-5489-4D79-A8FC-F9FFED666FC1}'>\r
+              <File KeyPath='yes' Name='globalLogout.html' />\r
+            </Component>\r
+            <Component Id='localLogout.html' Guid='{70FA3A47-A950-4074-BC13-C56D94497BD9}'>\r
+              <File KeyPath='yes' Name='localLogout.html' />\r
+            </Component>\r
+            <Component Id='attribute_map.xml' Guid='{878C9456-E65F-4541-A0FA-975379EAC6B6}'>\r
+              <File KeyPath='yes' Name='attribute-map.xml' />\r
+            </Component>\r
+            <Component Id='attribute_policy.xml' Guid='{55B88F7B-E2EA-4B70-87B7-33C566B9F992}'>\r
+              <File KeyPath='yes' Name='attribute-policy.xml'/>\r
+            </Component>\r
+            <Component Id='shibboleth2.xml' Guid='{E520FEDE-3F0E-47C6-9345-47223B82825A}'>\r
+              <File KeyPath='yes' Name='shibboleth2.xml' Source='$(var.SPBuildDirectory)\cpp-sp\configs\win-shibboleth2.xml' />\r
+            </Component>\r
+            <Component Id='console.logger' Guid='{8AC85980-32B9-4EA2-9245-167FB1AB2570}'>\r
+              <File KeyPath='yes' Name='console.logger' />\r
+            </Component>\r
+            <Component Id='discoveryTemplate.html' Guid='{A9573113-4387-46DD-A636-84482AF2C672}'>\r
+              <File KeyPath='yes' Name='discoveryTemplate.html' />\r
+            </Component>\r
+            <Component Id='postTemplate.html' Guid='{5B7111E8-8E04-42F1-AB02-E47AFB7C3D28}'>\r
+              <File KeyPath='yes' Name='postTemplate.html' />\r
+            </Component>\r
+            <Component Id='partialLogout.html' Guid='{E1F6208B-3C70-4632-B84C-C7D141DC4192}'>\r
+              <File KeyPath='yes' Name='partialLogout.html' />\r
+            </Component>\r
+            <Component Id='protocols.xml' Guid='{B226CAAC-2D18-411A-9FBF-3FE237EBEF4D}'>\r
+              <File KeyPath='yes' Name='protocols.xml' />\r
+            </Component>\r
+            <Component Id='security_policy.xml' Guid='{0EC04525-FCCF-4B60-8797-9B0CEC222B8C}'>\r
+              <File KeyPath='yes' Name='security-policy.xml' />\r
+            </Component>\r
+            <Component Id='accessError.html' Guid='{6FAA81A0-A020-4E60-A37D-1EC4D0D5FD06}'>\r
+              <File KeyPath='yes' Name='accessError.html' />\r
+            </Component>\r
+            <Component Id='attrChecker.html' Guid='{BDF4837C-A887-4F1C-841C-DC13DFF8A46E}'>\r
+              <File KeyPath='yes' Name='attrChecker.html' />\r
+            </Component>\r
+            <Component Id='metadataError.html' Guid='{8C46D04A-A943-4FA4-AFCB-9B040306C2C0}'>\r
+              <File KeyPath='yes' Name='metadataError.html' />\r
+            </Component>\r
+            <Component Id='native.logger.in' Guid='{8586D4C7-E237-4C7F-BC79-DE0B06473395}'>\r
+              <File KeyPath='yes' Name='native.logger.in' />\r
+            </Component>\r
+            <Component Id='sessionError.html' Guid='{8AA240B3-DC5D-4687-B321-4F5E1BAEA820}'>\r
+              <File KeyPath='yes' Name='sessionError.html' />\r
+            </Component>\r
+            <Component Id='shibd.logger.in' Guid='{D8DA3D14-F779-4691-A883-4995158D2A74}'>\r
+              <File KeyPath='yes' Name='shibd.logger.in' />\r
+            </Component>\r
+          </Directory><!-- etc_shibboleth_dist -->\r
+        </Directory><!-- etc_shibboleth -->\r
+      </Directory><!-- etc_dist -->\r
+      <Directory Id='var' Name='var'>\r
+        <Directory Id='var_cache' Name='cache'>\r
+          <Directory Id='var_cache_shibboleth' Name='shibboleth'>\r
+            <Component Id='var_cache_shibboleth_folder' Guid='{6C978639-DDCF-40BD-90F8-690B3E05586C}'>\r
+              <CreateFolder />\r
+              <!-- Kill off old env variable from pre 2.5 install.\r
+                   Do it here so it is in the correct tables -->\r
+              <Environment Id='SHIBSP_SCHEMAS' Action='remove' Name='SHIBSP_SCHEMAS'/>\r
+            </Component>\r
+          </Directory><!-- var_cache_shibboleth -->\r
+        </Directory><!-- var_cache -->\r
+        <Directory Id='var_log' Name='log'>\r
+          <Directory Id='var_log_shibboleth' Name='shibboleth'>\r
+            <Component Id='var_log_shibboleth_folder' Guid='{2BFC84E4-634B-4D70-910A-D5640739C8C8}'>\r
+              <CreateFolder />\r
+            </Component>\r
+          </Directory><!-- var_log_shibboleth -->\r
+        </Directory><!-- var_log -->\r
+        <Directory Id='var_run' Name='run'>\r
+          <Directory Id='var_run_shibboleth' Name='shibboleth'>\r
+            <Component Id='var_run_shibboleth_folder' Guid='{35E176B1-965A-4571-B24E-E0C8E69B0459}'>\r
+              <CreateFolder />\r
+            </Component>\r
+          </Directory><!-- var_run_shibboleth -->\r
+        </Directory><!-- var_run -->\r
+      </Directory><!-- var -->\r
+    </DirectoryRef>\r
+\r
+    <!-- Stuff to do the editing and copy of the files -->\r
+\r
+    <Binary Id='EditConfigFileSrc' SourceFile='$(var.SPBuildDirectory)\cpp-sp\msi\scripts\shib_edit_config_files.vbs-wix' />\r
+\r
+    <CustomAction Id='EditConfigFiles' \r
+                  BinaryKey='EditConfigFileSrc' VBScriptCall='' Execute='deferred' Impersonate='no' />\r
+    <CustomAction Id='SetEditConfigFiles' Property='EditConfigFiles' Value='[INSTALLDIR];@;[IS64BITINSTALL];@;[INSTALL_32BIT]' />\r
+\r
+    <CustomAction Id='KeyGen' BinaryKey='WixCA' DllEntry='CAQuietExec' Execute='deferred' Impersonate='no' />\r
+    <CustomAction Id='SetKeyGen' Property='KeyGen' Value='&quot;[INSTALLDIR]etc\shibboleth\keygen.bat&quot;' />\r
+\r
+    <!-- Stuff to configure IIS.  This is a one-shot (first install/last uninstall) -->\r
+\r
+    <Binary Id='install_isapi'\r
+            SourceFile='$(var.SPBuildDirectory)\cpp-sp\msi\scripts\shib_install_isapi_filter.vbs-wix'/>\r
+    <Binary Id='uninstall_isapi' \r
+            SourceFile='$(var.SPBuildDirectory)\cpp-sp\msi\scripts\shib_uninstall_isapi_filter.vbs-wix'/>\r
+\r
+    <CustomAction Id='SetShibInstallISAPIFilter32' Property='ShibInstallISAPIFilter' \r
+                  Value='[INSTALLDIR];@;[INSTALLDIR]lib\shibboleth\isapi_shib.dll;@;[SHIB_FILE_EXTENSION]' />\r
+    <CustomAction Id='SetShibInstallISAPIFilter64' Property='ShibInstallISAPIFilter' \r
+                  Value='[INSTALLDIR];@;[INSTALLDIR]lib64\shibboleth\isapi_shib.dll;@;[SHIB_FILE_EXTENSION]' />\r
+    <CustomAction Id='ShibInstallISAPIFilter' BinaryKey='install_isapi' \r
+                  VBScriptCall='' Execute='deferred' Impersonate='no' />\r
+\r
+    <CustomAction Id='SetShibUninstallISAPIFilter' Property='ShibUninstallISAPIFilter' Value='[INSTALLDIR]'/>\r
+    <CustomAction Id='ShibUninstallISAPIFilter' BinaryKey='uninstall_isapi' \r
+                  VBScriptCall='' Execute='deferred' Impersonate='no' />\r
+\r
+    <CustomAction Id='ServicePath64' BinaryKey='WixCA' DllEntry='CAQuietExec' Execute='deferred' Impersonate='no' />\r
+    <CustomAction Id='SetServicePath64' Property='ServicePath64' Value='&quot;[INSTALLDIR]etc\shibboleth\SetService64.bat&quot;' />\r
+\r
+    <!-- Inherit the installation dir if one was set -->\r
+    <CustomAction Id='InheritInstallDir' Property='INSTALLDIR' Value='[OLD_INSTALLDIR]' />\r
+    <CustomAction Id='InheritInstallDir64' Property='INSTALLDIR' Value='[OLD_INSTALLDIR64]' />\r
+\r
+    <InstallUISequence>\r
+      <!-- All we need to sequence here is setting up inherited INSTALLDIR -->\r
+\r
+      <!-- inherit installationDir if there is something to inherit -->\r
+      <Custom Action='InheritInstallDir' After='AppSearch'>\r
+        OLD_INSTALLDIR\r
+      </Custom>\r
+      <Custom Action='InheritInstallDir64' After='InheritInstallDir'>\r
+        (NOT OLD_INSTALLDIR) AND OLD_INSTALLDIR64\r
+      </Custom>\r
+    </InstallUISequence>\r
+\r
+    <InstallExecuteSequence>\r
+      <Custom Action='SetEditConfigFiles' Before='CostInitialize'>NOT Installed</Custom>\r
+      <Custom Action='EditConfigFiles' After='InstallFiles'>NOT Installed</Custom>\r
+\r
+      <Custom Action='SetKeyGen' Before='CostInitialize'>NOT Installed</Custom>\r
+      <!-- Run KeyGen after WriteEnvironmentStrings so the path is set -->\r
+      <Custom Action='KeyGen' After='WriteEnvironmentStrings'>NOT Installed</Custom>\r
+\r
+      <!-- Install IIS if\r
+           - this is an install\r
+           - AND we were told to\r
+           - AND this is NOT an upgrade\r
+        -->\r
+      <Custom Action='SetShibInstallISAPIFilter32' Before='CostInitialize'>\r
+        (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND (INSTALL_32BIT) AND IISMAJORVERSION\r
+      </Custom>\r
+      <Custom Action='SetShibInstallISAPIFilter64' Before='CostInitialize'>\r
+        (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND IISMAJORVERSION\r
+      </Custom>\r
+      <Custom Action='ShibInstallISAPIFilter' After='InstallFiles'>\r
+        (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND IISMAJORVERSION\r
+      </Custom>\r
+      <ScheduleReboot Before='InstallFinalize'>\r
+        (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND IISMAJORVERSION\r
+      </ScheduleReboot>\r
+\r
+\r
+      <!-- (try to) Uninstall IIS if\r
+           - this is an uninstall\r
+           - this is not an upgrade\r
+           -->\r
+      <Custom Action='SetShibUninstallISAPIFilter' \r
+              After='CostFinalize'>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>\r
+      <Custom Action='ShibUninstallISAPIFilter' \r
+              Before='RemoveFiles'>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>\r
+\r
+      <!-- set service path to 64 bit one if this is an install and if we were told to -->\r
+\r
+      <Custom Action='SetServicePath64' Before='CostInitialize'>\r
+        (NOT Installed) AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND (IS64BITINSTALL = "TRUE")\r
+      </Custom>\r
+      <Custom Action='ServicePath64' After='InstallServices'>\r
+        (NOT Installed) AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND (IS64BITINSTALL = "TRUE")\r
+      </Custom>\r
+\r
+      <!-- Duplicate actions from the UI case -->\r
+      <Custom Action='InheritInstallDir' After='AppSearch'>\r
+        OLD_INSTALLDIR\r
+      </Custom>\r
+      <Custom Action='InheritInstallDir64' After='InheritInstallDir'>\r
+        (NOT OLD_INSTALLDIR) AND OLD_INSTALLDIR64\r
+      </Custom>\r
+\r
+      <!-- Do not mess with SCM if this is an upgrade -->\r
+\r
+      <InstallServices>(NOT Installed) AND (NOT ALREADYINSTALLED)</InstallServices>\r
+      <StartServices>(NOT Installed)</StartServices>\r
+      <DeleteServices>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</DeleteServices>\r
+\r
+    </InstallExecuteSequence>\r
+  </Fragment>\r
+</Wix>\r