Remove SHIBSP_SCHEMAS on any type of 2.5 install
[shibboleth/cpp-sp.git] / msi / WiX / ShibbolethSP-noarch.wxs
index 31a32ed..7343d13 100644 (file)
         </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='openssl.cnf' Guid='{1F1B9F9B-6437-46F1-ACE8-8D135612336C}' Permanent='yes'>\r
-            <File KeyPath='yes' Source='$(var.BuildDirectory)\openssl-$(var.OpenSSLDirVersion)\apps\openssl.cnf' />\r
-          </Component>\r
-          <Component Id='upgrade.xsl' Guid='{D8D1270C-2F85-4465-8EC0-F5F30A2B3EDD}' Permanent='yes'>\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
           <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}'  Permanent='yes'>\r
-            <File KeyPath='yes' Name='keygen.bat' Source='$(var.SPBuildDirectory)\cpp-sp\configs\keygen.bat-wix'/>\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}'  Permanent='yes'>\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
+          <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
@@ -83,7 +80,7 @@
             <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='{6AEBA525-8F52-4D14-BAEE-0292A2E214D1}'>\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
           <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><!-- 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]' />\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
     <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
+    <!-- Set INSTALL_SHIBD correctly -->\r
+    <CustomAction Id='ClearInstallShibd' Property='INSTALL_SHIBD_SERVICE' Value='FALSE' />\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
         (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
+        (NOT Installed) AND (INSTALL_ISAPI_FILTER = "TRUE") AND (NOT ALREADYINSTALLED) AND IISMAJORVERSION\r
       </Custom>\r
 \r
       <!-- (try to) Uninstall IIS if\r
               After='CostFinalize'>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>\r
       <Custom Action='ShibUninstallISAPIFilter' \r
               Before='RemoveFiles'>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</Custom>\r
-      <!-- set service path to 64 bit one if this is an install and if we werre told to -->\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 (INSTALL_SHIBD_SERVICE = "TRUE") AND (NOT ALREADYINSTALLED) AND (NOT INSTALL_32BIT) AND (IS64BITINSTALL = "TRUE")\r
         (NOT Installed) AND (INSTALL_SHIBD_SERVICE = "TRUE") 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
+      <!-- Clear out INSTALL_SHIBD_SERVICE (Set it to FALSE) if\r
+           - This is an update\r
+           - We didn't see an appropriate registryEntry\r
+           - TODO - we don't need this here I think\r
+        -->\r
+      <Custom Action='ClearInstallShibd' After='AppSearch'>\r
+        ALREADYINSTALLED AND (NOT OLD_SERVICEINSTALLED)\r
+      </Custom>\r
+\r
       <!-- Do not mess with SCM if this is an upgrade -->\r
 \r
       <InstallServices>(NOT Installed) AND (NOT ALREADYINSTALLED) AND (INSTALL_SHIBD_SERVICE = "TRUE")</InstallServices>\r
+      <StartServices>(NOT Installed) AND (INSTALL_SHIBD_SERVICE = "TRUE")</StartServices>\r
       <DeleteServices>(REMOVE="ALL") AND (NOT UPGRADINGPRODUCTCODE)</DeleteServices>\r
 \r
     </InstallExecuteSequence>\r