mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			839 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			839 lines
		
	
	
	
		
			44 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="utf-8"?>
 | |
| <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"  xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
 | |
|   <Fragment>
 | |
|     <!--
 | |
|       Check, if upgrade wizard was built 
 | |
|       It currently requires MFC, which is not in SDK 
 | |
|       neither in express edítions of VS.
 | |
|     -->
 | |
|     <?ifndef HaveUpgradeWizard ?>
 | |
|       <?define HaveUpgradeWizard="1"?>
 | |
|     <?endif?>
 | |
| 
 | |
|     <!-- If Innodb is compiled in, enable "optimize for transactions" checkbox -->
 | |
|     <?ifndef HaveInnodb ?>
 | |
|       <?define HaveInnodb="1"?>
 | |
|     <?endif?>
 | |
| 
 | |
|     <Property Id="PortTemplate" Value="#####" />
 | |
|     <?if $(var.HaveInnodb) = "1" ?>
 | |
|       <Property Id="BufferPoolSizeTemplate" Value="#######" />
 | |
|     <?endif?>
 | |
|     <!--
 | |
|       Installation parameters that can be passed via msiexec command line
 | |
|       For "booleans" (like skip networking), just providing any value means property set to "yes".
 | |
|     -->
 | |
|     <!-- installation directory (default under program files)-->
 | |
|     <!--- (defined elsewhere) <Property Id="INSTALLDIR" Secure="yes" /> -->
 | |
| 
 | |
|     <!-- Database data directory (default under INSTALLDIR\data) -->
 | |
|     <!--- (defined elsewhere) <Property Id="DATADIR" Secure="yes"/> -->
 | |
| 
 | |
|     <!-- Service name of database instanced (default MySQL in GUI, nothing with command line) -->
 | |
|     <!--  (defined elsewhere) <Property Id="SERVICENAME" Secure="yes" /> -->
 | |
| 
 | |
|     <!-- Root password -->
 | |
|     <Property Id="PASSWORD" Hidden="yes" Secure="yes" />
 | |
|     <Property Id="ESCAPEDPASSWORD" Hidden="yes" Secure="yes" />
 | |
|     <!-- Database port -->
 | |
|     <Property Id="PORT" Value="3306" Secure="yes"/>
 | |
|     <!-- Whether to allow remote access for root user -->
 | |
|     <Property Id="ALLOWREMOTEROOTACCESS" Secure="yes" />
 | |
|     <!-- Skip networking. This will switch configuration to use named pipe-->
 | |
|     <Property Id="SKIPNETWORKING" Secure="yes"/>
 | |
|     <!-- Whether to keep default (unauthenticated) user. Default is no-->
 | |
|     <Property Id="DEFAULTUSER" Secure="yes"/>
 | |
|     <!-- Set server character set to UTF8 -->
 | |
|     <Property Id="UTF8" Secure="yes"/>
 | |
|     <!-- Whether to data on uninstall (default yes, after asking user consent) -->
 | |
|     <Property Id="CLEANUPDATA" Secure="yes" Value="1"/>
 | |
|     <!-- Force per machine installation -->
 | |
|     <Property Id="ALLUSERS" Secure="yes" Value="1"/>
 | |
|     <!-- Disable advertised shortcuts weirdness -->
 | |
|     <Property Id="DISABLEADVTSHORTCUTS" Secure="yes" Value="1"/>
 | |
| 
 | |
|     <!-- Quick configuration : set default storage engine to innodb, use strict sql_mode -->
 | |
|     <Property Id="STDCONFIG" Secure="yes" Value="1"/>
 | |
| 
 | |
|     <!-- Innodb Buffer pool size in MB-->
 | |
|     <Property Id="BUFFERPOOLSIZE" Secure="yes"/>
 | |
|     <!-- Innodb page size -->
 | |
|     <Property Id="PAGESIZE" Secure="yes" Value="16K"/>
 | |
| 
 | |
|     <CustomAction Id="LaunchUrl" BinaryKey="WixCA" DllEntry="WixShellExec"  Execute="immediate" Return="check" Impersonate="yes" />
 | |
| 
 | |
| 
 | |
| 
 | |
|     <!-- 
 | |
|       User interface dialogs 
 | |
|      -->
 | |
|     <WixVariable Id='WixUIBannerBmp' Value='@SRCDIR@\WixUIBannerBmp.jpg' />
 | |
|     <WixVariable Id='WixUIDialogBmp' Value='@SRCDIR@\WixUIDialogBmp.jpg' />
 | |
|     <UI>
 | |
| 
 | |
|       <!-- Dialog on uninstall of the database -->
 | |
|       <Dialog Id="ConfirmDataCleanupDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
 | |
| 
 | |
|         <!--<Control Id="CleanupDataCheckBox" Type="CheckBox" X="20" Y="100" Height="30" Property="CLEANUPDATA" Width="300" CheckBoxValue="1"
 | |
|                 Text="{\Font1}Remove default database directory 
'[DATADIR]'"/>
 | |
|                 -->
 | |
|         <Control Id="RemoveDatadirButton" Type="PushButton" X="40" Y="65" Width="80" Height="18"
 | |
|                   Text="Remove data">
 | |
|           <Publish Property="CLEANUPDATA" Value="1">1</Publish>
 | |
|           <Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
 | |
|           <Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
 | |
| 
 | |
|         </Control>
 | |
|         <Control Id="RemoveDatadirText" Type="Text" X="60" Y="85" Width="280" Height="30">
 | |
|           <Text>Remove [DATADIR]. Ensures proper cleanup on uninstall.</Text>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="KeepDatadirButton" Type="PushButton" X="40" Y="128" Width="80" Height="18"
 | |
|                  Text="Keep data">
 | |
|           <Publish Property="CLEANUPDATA">1</Publish>
 | |
|           <Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
 | |
|           <Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
 | |
|         </Control>
 | |
|         <Control Id="KeepDataDirText" Type="Text" X="60" Y="148" Width="280" Height="70" >
 | |
|           <Text>Do not remove [DATADIR]. Choose this option if you intend to use data in the future</Text>
 | |
|         </Control>
 | |
| 
 | |
| 
 | |
|         <!-- Navigation buttons-->
 | |
|         <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
 | |
|           <Publish Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode="Change"</Publish>
 | |
|           <Condition Action="disable">NOT WixUI_InstallMode</Condition>
 | |
|         </Control>
 | |
|         <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="&Next">
 | |
|           <Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
 | |
|           <Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
 | |
|           <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
 | |
|         <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>Remove default [ProductName] database</Text>
 | |
|         </Control>
 | |
|         <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
 | |
|         <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>{\WixUI_Font_Title}Default instance properties</Text>
 | |
|         </Control>
 | |
|         <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
 | |
|       </Dialog>
 | |
| 
 | |
|       <!-- Dialog new or upgrade instance -->
 | |
| 
 | |
|       <Property Id="CreateOrUpgradeChoice" Value="Create"/>
 | |
|       
 | |
|       <Dialog Id="NewOrUpgradeInstanceDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
 | |
|         <Control Id="Text" Type="Text" X="40" Y="65" Width="270" Height="30">
 | |
|           <Text>Setup found existing database instances that can be upgraded to [ProductName].You can create a new instance and/or upgrade existing one.
 | |
|           </Text>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="CreateOrUpgradeButton" 
 | |
|                  Type="RadioButtonGroup" X="40" Y="100" Width="300" Height="70" 
 | |
|                  Property="CreateOrUpgradeChoice" Text="Specify what to do">
 | |
|           <RadioButtonGroup Property="CreateOrUpgradeChoice">
 | |
|             <RadioButton Value="Create" X="0" Y="0" Width="300" Height="25"
 | |
|                   Text="{\Font1}Create new database instance."/>
 | |
|             <RadioButton Value="Upgrade" X="0" Y="30" Width="300" Height="25"
 | |
|                   Text="{\Font1}Do not create a new database. Optionally upgrade existing instances." />
 | |
|           </RadioButtonGroup>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
 | |
|           <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&Next">
 | |
|           <Publish Event="Remove" Value="DBInstance">CreateOrUpgradeChoice = "Upgrade" </Publish>
 | |
|           <Publish Event="AddLocal" Value="DBInstance">CreateOrUpgradeChoice = "Create"</Publish>
 | |
|           <Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish>
 | |
|           <Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish>
 | |
|           <Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1">CreateOrUpgradeChoice = "Upgrade"</Publish>
 | |
|           <Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
 | |
|           <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
 | |
|         <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>Create or upgrade database instance</Text>
 | |
|         </Control>
 | |
|         <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
 | |
|         <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>{\WixUI_Font_Title}[ProductName] setup</Text>
 | |
|         </Control>
 | |
|         <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
 | |
|       </Dialog>
 | |
|       
 | |
|       <!-- Error popup dialog -->
 | |
|       <Dialog Id="WarningDlg" Width="320" Height="85" Title="[ProductName] Setup" NoMinimize="yes">
 | |
|        <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24"
 | |
|        ToolTip="Information icon" FixedSize="yes" IconSize="32" Text="WixUI_Ico_Info" />
 | |
|         <Control Id="Ok" Type="PushButton" X="132" Y="57" Width="56" Height="17"
 | |
|           Default="yes" Cancel="yes" Text="OK">
 | |
|           <Publish Property="WarningText">1</Publish>
 | |
|           <Publish Event="EndDialog" Value="Return">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Text" Type="Text" X="48" Y="15" Width="260" Height="30">
 | |
|           <Text>[WarningText]</Text>
 | |
|         </Control>
 | |
|       </Dialog>
 | |
| 
 | |
| 
 | |
|       <Property Id="ModifyRootPassword" Value="1"/>
 | |
|       <TextStyle Id="Font1" FaceName="Tahoma" Size="8" Red="0" Green="0" Blue="0" Bold="yes" />
 | |
| 
 | |
|       <!-- Root password plus default user dialog  -->
 | |
|       <Dialog Id="UserSettingsDlg" X="50" Y="50" Width="370" Height="270" Title="User settings">
 | |
|         <Control Id="EditRootPassword" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="PASSWORD" Password="yes" TabSkip="no">
 | |
|           <Text>{100}</Text>
 | |
|           <Condition Action="enable">ModifyRootPassword</Condition>
 | |
|           <Condition Action="disable">NOT ModifyRootPassword</Condition>
 | |
|         </Control>
 | |
|         <Control Id="EditRootPasswordConfirm" Type="Edit" X="104" Y="103" Width="91" Height="15" Property="RootPasswordConfirm"  Password="yes" TabSkip="no">
 | |
|           <Text>{100}</Text>
 | |
|           <Condition Action="enable">ModifyRootPassword</Condition>
 | |
|           <Condition Action="disable">NOT ModifyRootPassword</Condition>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="CheckBoxModifyRootPassword" Type="CheckBox" X="8" Y="62" Width="222" Height="18" Property="ModifyRootPassword" CheckBoxValue="1" TabSkip="no">
 | |
|           <Text>{\Font1}Modify password for database user 'root'</Text>
 | |
|           <Publish Property="PASSWORD" >NOT ModifyRootPassword</Publish>
 | |
|           <Publish Property="RootPasswordConfirm">NOT ModifyRootPassword</Publish>
 | |
|           <Publish Property="ALLOWREMOTEROOTACCESS">NOT ModifyRootPassword</Publish>
 | |
|           <Publish Property="ALLOWREMOTEROOTACCESS" Value="1">ModifyRootPassword</Publish>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="Text5" Type="Text" X="23" Y="82" Width="77" Height="14" TabSkip="yes">
 | |
|           <Text>New root password:</Text>
 | |
|         </Control>
 | |
|         <Control Id="Text6" Type="Text" X="201" Y="85" Width="100" Height="17" TabSkip="yes">
 | |
|           <Text>Enter new root password</Text>
 | |
|         </Control>
 | |
|         <Control Id="Text8" Type="Text" X="23" Y="105" Width="75" Height="17" TabSkip="yes">
 | |
|           <Text>Confirm:</Text>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="Text10" Type="Text" X="201" Y="104" Width="100" Height="17" TabSkip="yes">
 | |
|           <Text>Retype the password</Text>
 | |
|         </Control>
 | |
|         <Control Id="CheckBoxALLOWREMOTEROOTACCESS" Type="CheckBox" X="23" Y="122" Width="196" Height="18" Property="ALLOWREMOTEROOTACCESS"
 | |
|                  CheckBoxValue="--allow-remote-root-access" TabSkip="no">
 | |
|           <Text>{\Font1}Enable access from remote machines for 'root' user</Text>
 | |
|           <Condition Action="enable">ModifyRootPassword</Condition>
 | |
|           <Condition Action="disable">NOT ModifyRootPassword</Condition>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="CheckBoxUTF8" Type="CheckBox" X="8" Y="154" Width="250" Height="18" Property="UTF8" CheckBoxValue="1" TabSkip="no">
 | |
|           <Text>{\Font1}Use UTF8 as default server's character set</Text>
 | |
|         </Control>
 | |
|         <Control Type="Text" Id="Text11" Width="67" Height="17" X="8" Y="190" Text="{\Font1}Data directory" />
 | |
|         <Control Type="PathEdit" Id="TxtDir" Width="175" Height="18" X="80" Y="190" Property="DATADIR">
 | |
|         </Control>
 | |
|         <Control Id="btnDirBrowse" Type="PushButton" Width="56" Height="17" X="278" Y="190" Text="Browse...">
 | |
|          <Publish Property="_BrowseProperty" Value="DATADIR" Order="1">1</Publish>
 | |
|          <Publish Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
 | |
|         </Control>
 | |
|         <!-- Navigation buttons-->
 | |
|         <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
 | |
|           <Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&Next">
 | |
|           <Publish Event="DoAction" Value="CheckDataDirectory">1</Publish>
 | |
|           <Publish Property="WarningText" Value="Invalid data directory, choose a different one. Error: [DATADIRERROR]">
 | |
|             DATADIRERROR
 | |
|           </Publish>
 | |
|           <Publish Property="WarningText" Value="Passwords do not match."><![CDATA[PASSWORD <> RootPasswordConfirm]]></Publish>
 | |
|           <Publish Event="SpawnDialog" Value="WarningDlg"><![CDATA[WarningText <>""]]></Publish>
 | |
|           <Publish Property="SERVICENAME" Value="MariaDB">NOT SERVICENAME AND NOT WarningText</Publish>
 | |
|           <Publish Event="NewDialog" Value="ServicePortDlg"><![CDATA[WarningText=""]]></Publish>
 | |
|           <Condition Action="enable"><![CDATA[NOT ModifyRootPassword OR PASSWORD]]> </Condition>
 | |
|           <Condition Action="disable"><![CDATA[ModifyRootPassword AND (NOT PASSWORD)]]> </Condition>
 | |
|         </Control>
 | |
|         <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
 | |
|           <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
 | |
|         <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text> [ProductName] database configuration</Text>
 | |
|         </Control>
 | |
|         <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
 | |
|         <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>{\WixUI_Font_Title}Default instance properties</Text>
 | |
|         </Control>
 | |
|         <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
 | |
|       </Dialog>
 | |
| 
 | |
|       <Property Id="InstallService" Value="1"/>
 | |
|       <Property Id="EnableNetworking" Value="1"/>
 | |
| 
 | |
|       <!-- Service and port configuration -->
 | |
|       <Dialog Id="ServicePortDlg" Width="370" Height="270" Title="Database settings">
 | |
|         <Control Id="InstallAsService" Type="CheckBox" X="9" Y="61" Width="222" Height="19" Property="InstallService" CheckBoxValue="1" TabSkip="no">
 | |
|           <Text>{\Font1}Install as service</Text>
 | |
|         </Control>
 | |
|         <Control Id="EditServiceName" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="SERVICENAME" TabSkip="no">
 | |
|           <Text>{20}</Text>
 | |
|           <Condition Action="enable">InstallService</Condition>
 | |
|           <Condition Action="disable">Not InstallService</Condition>
 | |
|         </Control>
 | |
|         <Control Id="Text5" Type="Text" X="25" Y="82" Width="77" Height="14" TabSkip="yes">
 | |
|           <Text>Service Name:</Text>
 | |
|         </Control>
 | |
|         <Control Id="CheckBoxEnableNetworking" Type="CheckBox" Height="18" Width="102" X="9" Y="117" Property="EnableNetworking" CheckBoxValue="1">
 | |
|           <Text>{\Font1}Enable networking</Text>
 | |
|           <!--<Publish Property="PORT">NOT EnableNetworking</Publish>-->
 | |
|           <Publish Property="SKIPNETWORKING" Value="--skip-networking">NOT EnableNetworking</Publish>
 | |
|           <Publish Property="SKIPNETWORKING">EnableNetworking</Publish>
 | |
|         </Control>
 | |
|         <Control Id="LabelTCPPort" Type="Text" Height="17" Width="75" X="25" Y="142" Text="TCP port:" />
 | |
|         <Control Id="Port" Type="MaskedEdit" X="104" Y="140" Width="28" Height="15" Property="PORT"  Sunken="yes" Text="[PortTemplate]">
 | |
|           <Condition Action="enable" >EnableNetworking</Condition>
 | |
|           <Condition Action="disable">Not EnableNetworking</Condition>
 | |
|         </Control>
 | |
| 
 | |
|         <Control Id="LabelInnodbSettings" Type="Text" Height="18" Width="220" X="25" Y="171" >
 | |
|           <Text>{\Font1}Innodb engine settings</Text>
 | |
|         </Control>
 | |
|         <Control Id="LabelInnodbBufferpool" Type="Text" Height="17" Width="77" X="25" Y="190" Text="Buffer pool size:" />
 | |
|         <Control Id="BPSize" Type="MaskedEdit" X="104" Y="188" Width="40" Height="15" Property="BUFFERPOOLSIZE"  Sunken="yes" Text="[BufferPoolSizeTemplate]"/>
 | |
|         <Control Id="LabelMB" Type="Text" Height="17" Width="15" X="150" Y="190" Text="MB" />
 | |
|         <Control Id="LabelInnodbPageSize" Type="Text" Height="17" Width="77" X="25" Y="208" Text="Page size:" />
 | |
|         <Control Id="LabelKB" Type="Text" Height="17" Width="15" X="150" Y="210" Text="KB" />
 | |
|         <Control Id="ComboBoxInnodbPageSize" Type="ComboBox" X="104" Y="208" Width="30" Height="17" ComboList="yes" Sorted="yes" Property="PAGESIZE" >
 | |
|         <ComboBox Property="PAGESIZE">
 | |
|           <ListItem Text=" 4" Value="4K"/>
 | |
|           <ListItem Text=" 8" Value="8K"/>
 | |
|           <ListItem Text="16" Value="16K"/>
 | |
|           <ListItem Text="32" Value="32K"/>
 | |
|           <ListItem Text="64" Value="64K"/>
 | |
|         </ComboBox>
 | |
|         </Control>
 | |
| 
 | |
|         <!-- Navigation buttons-->
 | |
|         <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
 | |
|           <Publish Event="NewDialog" Value="UserSettingsDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="no" Text="&Next">
 | |
|           <Publish Property="SERVICENAME">NOT InstallService</Publish>
 | |
|           <Publish Property="WarningText" Value="Please enter valid port or uncheck 'Enable Networking' checkbox">
 | |
|             <![CDATA[EnableNetworking AND NOT PORT AND NOT WarningText]]>
 | |
|           </Publish>
 | |
|           <Publish Property="WarningText" Value="Please enter valid service name port or uncheck 'Install Service' checkbox">
 | |
|             <![CDATA[InstallService AND NOT SERVICENAME AND NOT WarningText]]>
 | |
|           </Publish>
 | |
|           <Publish Event="DoAction" Value="CheckDatabaseProperties">NOT WarningText</Publish>
 | |
|           <Publish Event="SpawnDialog" Value="WarningDlg">WarningText</Publish>
 | |
|           <Publish Event="NewDialog" Value="VerifyReadyDlg">Not WarningText</Publish>
 | |
|         </Control>
 | |
|         <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="no" Text="Cancel">
 | |
|           <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
 | |
|         </Control>
 | |
|         <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
 | |
|         <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>[ProductName] database configuration</Text>
 | |
|         </Control>
 | |
|         <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
 | |
|         <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
 | |
|           <Text>{\WixUI_Font_Title}Default instance properties</Text>
 | |
|         </Control>
 | |
|         <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="2" />
 | |
|       </Dialog>
 | |
|     </UI>
 | |
| 
 | |
|     <Property Id="CRLF" Value="
" />
 | |
|     <CustomAction Id="CheckDataDirectory" BinaryKey="wixca.dll" DllEntry="CheckDataDirectory" Execute="immediate" Impersonate="yes"/>
 | |
| 	<CustomAction Id="CheckInstallDirectory" BinaryKey="wixca.dll" DllEntry="CheckInstallDirectory" Execute="immediate" Impersonate="yes"/>
 | |
|     <!--  What to do when navigation buttons are clicked -->
 | |
|     <UI Id="MyWixUI_Mondo">
 | |
|       <UIRef Id="WixUI_FeatureTree" />
 | |
|       <UIRef Id="WixUI_ErrorProgressText" />
 | |
|       <Publish Dialog="WelcomeDlg"  Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="999">
 | |
|         OLDERVERSIONBEINGUPGRADED
 | |
|       </Publish>
 | |
|       <Publish Dialog="LicenseAgreementDlg"  Control="Next" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999">
 | |
|         NOT Installed AND UpgradableServiceFound
 | |
|       </Publish>
 | |
| 
 | |
|       <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ServicePortDlg" Order="3" ><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish>
 | |
|       <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3"> <![CDATA[OLDERVERSIONBEINGUPGRADED <>""]]></Publish>
 | |
|       <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="1" ><![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]></Publish>
 | |
| 
 | |
| 
 | |
|       <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999">
 | |
|         NOT Installed AND UpgradableServiceFound
 | |
|       </Publish>
 | |
| 	  <Publish Dialog="CustomizeDlg" Control="Next" Event="DoAction" Value="CheckInstallDirectory" Order="1">NOT Installed</Publish>
 | |
|       <Publish  Dialog="CustomizeDlg" Control="Next"  Property="WarningText" Order="2"
 | |
|         Value="[INSTALLDIRERROR]">
 | |
|        INSTALLDIRERROR
 | |
| 	   </Publish>
 | |
|       <Publish Dialog="CustomizeDlg" Control="Next" Event="SpawnDialog" Value="WarningDlg" Order="3">WarningText</Publish>
 | |
|       <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="4">
 | |
|         <![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]>
 | |
|       </Publish>
 | |
|       <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="UserSettingsDlg" Order="5">
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND NOT WarningText]]>
 | |
|       </Publish>
 | |
| 
 | |
|       <Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode = "Change"</Publish>
 | |
|       <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="999">
 | |
|         !DBInstance=3 AND (CLEANUPDATA Or USECONFIRMDATACLEANUPDLG)
 | |
|       </Publish>
 | |
|       <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Property="USECONFIRMDATACLEANUPDLG" Value="1" Order="999">
 | |
|         !DBInstance=3 AND CLEANUPDATA
 | |
|       </Publish>
 | |
|       <Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">WixUI_InstallMode = "Remove"</Publish>
 | |
|     </UI>
 | |
| 
 | |
|     <!-- End of UI section -->
 | |
| 
 | |
|     <!-- Extra folders we need (DATADIR and shortcut folder) -->
 | |
|     <DirectoryRef Id='INSTALLDIR'>
 | |
|       <Directory Id="DATADIR" Name="data">
 | |
|       </Directory>
 | |
|       <Directory Id="ProgramMenuFolder">
 | |
|         <Directory Id="ShortcutFolder" Name="@CPACK_WIX_PACKAGE_NAME@">
 | |
|         </Directory>
 | |
|       </Directory>
 | |
|     </DirectoryRef>
 | |
| 
 | |
| 
 | |
|     <!-- Extra feature (database instance). This could be split to several subfeatures if desired (e.g firewall exception)-->
 | |
|     <Feature Id='DBInstance'
 | |
|          Title='Database instance'
 | |
|          Description=
 | |
|              'Install database instance. Only new database can be installed with this feature.'
 | |
|          ConfigurableDirectory='DATADIR'
 | |
|          AllowAdvertise='no'
 | |
|          Level='1'>
 | |
| 
 | |
|       <!-- Data directory with some reasonable security settings -->
 | |
|       <Component Id="C.datadir" Guid="*" Directory="DATADIR">
 | |
|         <RegistryValue Root='HKLM'
 | |
|            Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
 | |
|            Name='DATADIR' Value='[DATADIR]' Type='string' KeyPath='yes'/>
 | |
|       </Component>
 | |
| 
 | |
|       <Component Id="C.datadir.permissions" Directory="DATADIR">
 | |
|          <Condition>
 | |
|           <!--
 | |
|              Skip setting permissions for LogonUser, if package is installed by
 | |
|              service user (e.g LocalSystem)
 | |
|           -->
 | |
|           <![CDATA[ (UserSID <> "S-1-5-18") AND (UserSID <> "S-1-5-19") AND (UserSID <> "S-1-5-20") ]]>
 | |
|          </Condition>
 | |
|          <RegistryValue Root='HKLM'
 | |
|            Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
 | |
|            Name='InstalledBy' Value='[USER_DOMAIN]\[LogonUser]' Type='string' KeyPath='yes'/>
 | |
|         <CreateFolder>
 | |
|           <util:PermissionEx User="[LogonUser]" Domain="[USER_DOMAIN]" GenericAll="yes" />
 | |
|         </CreateFolder>
 | |
|       </Component>
 | |
| 
 | |
|       <!-- Database service conditioned on SERVICENAME property-->
 | |
|       <Component Id="C.service" Guid="*" Directory="DATADIR">
 | |
|         <Condition>SERVICENAME</Condition>
 | |
|         <RegistryValue Root='HKLM'
 | |
|            Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
 | |
|            Name='SERVICENAME' Value='[SERVICENAME]' Type='string' KeyPath='yes'/>
 | |
|         <ServiceControl Id='DBInstanceServiceStop' Name='[SERVICENAME]'  Stop='both' Remove='uninstall' Wait='yes'/>
 | |
|         <ServiceControl Id='DBInstanceServiceStart' Name='[SERVICENAME]' Start='install' Wait='yes'/>
 | |
|       </Component>
 | |
| 
 | |
|       <Component Id="C.myiniconfig" Guid="*" Directory="DATADIR">
 | |
|         <RegistryValue Root='HKLM'
 | |
|            Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
 | |
|            Name='STDCONFIG' Value='1' Type='string' KeyPath='yes'/>
 | |
|         <IniFile Id="Ini3"
 | |
|             Action="createLine"
 | |
|             Directory="DATADIR"
 | |
|             Section="mysqld"
 | |
|             Name="my.ini"
 | |
|             Key="innodb_buffer_pool_size"
 | |
|             Value="[BUFFERPOOLSIZE]M" />
 | |
|       </Component>
 | |
| 
 | |
|       <Component Id="C.utf8" Guid="*" Directory="DATADIR">
 | |
|         <Condition>UTF8</Condition>
 | |
|         <RegistryValue Root='HKLM'
 | |
|            Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
 | |
|            Name='UTF8' Value='1' Type='string' KeyPath='yes'/>
 | |
|         <IniFile Id="Ini6"
 | |
|             Action="createLine"
 | |
|             Directory="DATADIR"
 | |
|             Section="mysqld"
 | |
|             Name="my.ini"
 | |
|             Key="character-set-server"
 | |
|             Value="utf8mb4" />
 | |
|       </Component>
 | |
| 
 | |
|       <!-- Shortcuts in program menu (mysql client etc) -->
 | |
|       <Component Id="c.shortcuts" Guid="*" Directory="ShortcutFolder">
 | |
|         <!-- shortcut to my.ini-->
 | |
|         <RegistryValue  Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Name="shortcuts" Value="1" Type="string" KeyPath="yes"  />
 | |
|         <RemoveFolder Id="RemoveShorcutFolder" On="uninstall" />
 | |
|         <Shortcut Id="shortcut.my.ini"
 | |
|           Name="my.ini (@CPACK_WIX_PACKAGE_NAME@)"
 | |
|           Target="[System64Folder]notepad.exe"
 | |
|           Arguments=""[DATADIR]my.ini""
 | |
|           Directory="ShortcutFolder"
 | |
|           Description="Edit database configuration" />
 | |
|         <Shortcut Id="shortcut.errorlog"
 | |
|           Name="Error log (@CPACK_WIX_PACKAGE_NAME@)"
 | |
|           Target="[System64Folder]notepad.exe"
 | |
|           Arguments=""[DATADIR][ComputerName].err""
 | |
|           Directory="ShortcutFolder"
 | |
|           Description="View Database Error log" />
 | |
|         <Shortcut Id="shortcut.dbfolder" Name="Database directory (@CPACK_WIX_PACKAGE_NAME@)"
 | |
|           Target="[DATADIR]" />
 | |
|       </Component>
 | |
| 
 | |
|       <!-- add reference so mysql client won't get uninstalled and we have a shortcut pointing to nowhere-->
 | |
|       <ComponentRef Id="C.bin.mysql.exe"/>
 | |
| 
 | |
|       <Component Id="c.shortcuts.commandline" Guid="*" Directory="ShortcutFolder">
 | |
|         <RegistryValue
 | |
|           Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
 | |
|           Name="shortcuts.commandline"
 | |
|           Value="1" Type="string" KeyPath="yes" />
 | |
|         <!-- shortcut to client-->
 | |
|         <Shortcut Id="shortcut.mysql.exe"
 | |
|           Name="MySQL Client (@CPACK_WIX_PACKAGE_NAME@)"
 | |
|           Target="[System64Folder]cmd.exe"
 | |
|           Arguments="/k " "[D.bin]mysql.exe" "--defaults-file=[DATADIR]my.ini" -uroot -p""
 | |
|           Directory="ShortcutFolder"
 | |
|           WorkingDirectory="D.bin"
 | |
|           Description="Starts mysql.exe for root user"  />
 | |
|       </Component>
 | |
|       <Component Id="c.shortcuts.commandprompt.db"  Guid="*"  Directory="ShortcutFolder" Transitive="yes">
 | |
|         <Condition>SERVICENAME</Condition>
 | |
|         <RegistryValue
 | |
|         Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
 | |
|         Name="shortcuts.commandprompt.db"
 | |
|         Value="1" Type="string" KeyPath="yes" />
 | |
|         <!-- just command prompt in the bin directory (so all utilities can be called) -->
 | |
|         <Shortcut Id="shortcut.commandprompt.exe.db"
 | |
|           Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)"
 | |
|           Target="[System64Folder]cmd.exe"
 | |
|           Directory="ShortcutFolder"
 | |
|           Arguments="/k  "set MYSQL_HOME=[DATADIR]&& set PATH=[D.bin];%PATH%;&&echo Setting environment for [ProductName] ""
 | |
|           Description="Opens command line in the installation bin directory" />
 | |
|       </Component>
 | |
| 
 | |
| 
 | |
|     </Feature>
 | |
| 
 | |
|     <Feature Id="SharedClientServerComponents"
 | |
|       Title='Utilities used by both server and client.'
 | |
|       Description=
 | |
|       'Client utilities that are also used with server.Required for upgrade.'
 | |
|       ConfigurableDirectory='INSTALLDIR'
 | |
|       AllowAdvertise='no'
 | |
|       Level='1'
 | |
|       Display='hidden'>
 | |
| 
 | |
|       <Component Id="C_Permissions.bin" Guid="2ce05496-3273-4866-a5b5-1eff2837b4cb" Directory="D.bin">
 | |
|         <!-- in case service is installed now on it the future -->
 | |
|         <CreateFolder>
 | |
|           <util:PermissionEx User="ALL SERVICES" Domain="NT SERVICE" GenericRead="yes"  GenericExecute="yes" />
 | |
|         </CreateFolder>
 | |
|         <Condition>SERVICENAME</Condition>
 | |
|       </Component>
 | |
| 
 | |
|       <Component Id="C_Permissions.lib.plugin" Guid="ff2e8f47-83fd-4dee-9e22-f103600cfc80" Directory="D.lib.plugin">
 | |
|         <CreateFolder>
 | |
|           <util:PermissionEx User="ALL SERVICES" Domain="NT SERVICE" GenericRead="yes" GenericExecute="yes" />
 | |
|         </CreateFolder>
 | |
|         <Condition>SERVICENAME</Condition>
 | |
|       </Component>
 | |
| 
 | |
|       <Component Id="C_Permissions.share" Guid="be8ee2fb-a837-4b31-b59a-68a506d97d81" Directory="D.share">
 | |
|         <CreateFolder>
 | |
|           <util:PermissionEx User="ALL SERVICES" Domain="NT SERVICE" GenericRead="yes" GenericExecute="yes" />
 | |
|         </CreateFolder>
 | |
|         <Condition>SERVICENAME</Condition>
 | |
|       </Component>
 | |
| 
 | |
|       <ComponentRef Id='C.bin.mysql.exe'/>
 | |
|       <ComponentRef Id='C.bin.mysqladmin.exe'/>
 | |
|       <ComponentRef Id='C.bin.mysql_upgrade.exe'/>
 | |
|       <ComponentRef Id='C.bin.mysqlcheck.exe'/>
 | |
|       <Component Id="c.shortcuts.commandprompt.nodb"  Guid="*"  Directory="ShortcutFolder" Transitive="yes">
 | |
|         <Condition>NOT SERVICENAME</Condition>
 | |
|         <RegistryValue
 | |
|           Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
 | |
|           Name="shortcuts.commandprompt.nodb"
 | |
|           Value="1" Type="string" KeyPath="yes" />
 | |
|         <!-- just command prompt in the bin directory (so all utilities can be called) -->
 | |
|         <Shortcut Id="shortcut.commandprompt.exe.nodb"
 | |
|           Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)"
 | |
|           Target="[System64Folder]cmd.exe"
 | |
|           Directory="ShortcutFolder"
 | |
|           Arguments="/k  "set PATH=[D.bin];%PATH%;&&echo Setting environment for [ProductName] ""
 | |
|           Description="Opens command line in the installation bin directory" />
 | |
|       </Component>
 | |
|      <?if $(var.HaveUpgradeWizard) != "0" ?>
 | |
|      <ComponentRef Id='C.bin.mysql_upgrade_wizard.exe'/>
 | |
|      <?endif?>
 | |
|     </Feature>
 | |
| 
 | |
|     <!-- Optional 3rd party tools -->
 | |
|     <DirectoryRef Id='TARGETDIR'>
 | |
|      <Directory Id='CommonFilesFolder'>
 | |
|        <Directory Id='MariaDBShared' Name='MariaDBShared'/>
 | |
|      </Directory>
 | |
|      <Directory Id='DesktopFolder'/>
 | |
|      </DirectoryRef>
 | |
| 
 | |
| 
 | |
|     <?if "@WITH_THIRD_PARTY@" != "" ?>
 | |
| 
 | |
|     <!-- Include definition of 3party components -->
 | |
|     <?foreach tool in @WITH_THIRD_PARTY@ ?>
 | |
|      <?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool).wxi" ?>
 | |
|     <?endforeach ?>
 | |
| 
 | |
|     <Feature Id="ThirdPartyTools"
 | |
|       Title='Third party tools'
 | |
|       Description= 'Third party tools'
 | |
|       AllowAdvertise='no'
 | |
|       Level='1'
 | |
|       Display='expand'>
 | |
|     @THIRD_PARTY_FEATURE_CONDITION@
 | |
|     <!-- Include definition of 3rd party features -->
 | |
|     <?foreach tool in @WITH_THIRD_PARTY@ ?>
 | |
|      <?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool)_feature.wxi" ?>
 | |
|     <?endforeach ?>
 | |
| 
 | |
|    </Feature>
 | |
|    
 | |
|    <?endif ?>
 | |
| 
 | |
| 
 | |
|     <!-- Custom action, call mysql_install_db -->
 | |
|     <SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="SKIPNETWORKING" Value="--skip-networking" >SKIPNETWORKING</SetProperty>
 | |
|     <SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="ALLOWREMOTEROOTACCESS" Value="--allow-remote-root-access">ALLOWREMOTEROOTACCESS</SetProperty>
 | |
|     <SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="DEFAULTUSER" Value="--default-user">DEFAULTUSER</SetProperty>
 | |
|     <CustomAction Id='CheckDatabaseProperties' BinaryKey='wixca.dll' DllEntry='CheckDatabaseProperties' />
 | |
|     <CustomAction Id='PresetDatabaseProperties' BinaryKey='wixca.dll' DllEntry='PresetDatabaseProperties' />
 | |
|     <CustomAction Id="CreateDatabaseCommand" Property="CreateDatabase"
 | |
|     Value=
 | |
|     ""[#F.bin.mysql_install_db.exe]"  "--service=[SERVICENAME]" --port=[PORT] --innodb-page-size=[PAGESIZE] "--password=[ESCAPEDPASSWORD]" "--datadir=[DATADIR]\" [SKIPNETWORKING] [ALLOWREMOTEROOTACCESS] [DEFAULTUSER] --verbose-bootstrap"
 | |
|      Execute="immediate"
 | |
|      HideTarget="yes"
 | |
|      />
 | |
|     <CustomAction Id="CreateDatabaseRollbackCommand" Property="CreateDatabaseRollback"
 | |
|         Value="[SERVICENAME]\[DATADIR]"
 | |
|         Execute="immediate"/>
 | |
|     <CustomAction Id="CreateDatabase" BinaryKey="WixCA" DllEntry="@CA_QUIET_EXEC@"
 | |
|             Execute="deferred" Return="check" Impersonate="no" />
 | |
|     <CustomAction Id="CreateDatabaseRollback" BinaryKey="wixca.dll" DllEntry="CreateDatabaseRollback"
 | |
|         Execute="rollback" Return="check" Impersonate="no"/>
 | |
|     <UI>
 | |
|       <ProgressText Action="CreateDatabase">Running mariadb-install-db.exe</ProgressText>
 | |
|     </UI>
 | |
| 
 | |
|     <!-- Error injection script activated by TEST_FAIL=1 passed to msiexec (to see how good custom action rollback works)  -->
 | |
|     <Property Id="FailureProgram">
 | |
|       <![CDATA[
 | |
|          Function Main()
 | |
|          Main = 3
 | |
|          End Function
 | |
|          ]]>
 | |
|     </Property>
 | |
|     <CustomAction Id="FakeFailure"
 | |
|      VBScriptCall="Main"
 | |
|      Property="FailureProgram"
 | |
|      Execute="deferred" />
 | |
| 
 | |
|     <CustomAction Id='ErrorDataDir'
 | |
|                   Error='Invalid data directory, choose a different one. Error : [DATADIRERROR]'/>
 | |
|     <CustomAction Id="ErrorInstallDir"
 | |
|                   Error="[INSTALLDIRERROR]" />
 | |
|     <InstallExecuteSequence>
 | |
|       <Custom Action="CheckDataDirectory" After="CostFinalize">
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
 | |
|       </Custom>
 | |
|      <Custom Action="ErrorDataDir" After="CheckDataDirectory">DATADIRERROR</Custom>
 | |
|      <Custom Action="CheckInstallDirectory" After="CostFinalize">
 | |
|         NOT Installed AND OLDERVERSIONBEINGUPGRADED=""
 | |
|       </Custom>
 | |
|       <Custom Action="ErrorInstallDir" After="CheckInstallDirectory">INSTALLDIRERROR</Custom>
 | |
|       <Custom Action="CheckDatabaseProperties" Before="CreateDatabaseCommand">SERVICENAME</Custom>
 | |
|       <Custom Action="CreateDatabaseCommand" After="CostFinalize" >
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
 | |
|       </Custom>
 | |
|       <Custom Action="CreateDatabase" After="InstallFiles">
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
 | |
|       </Custom>
 | |
|       <Custom Action="CreateDatabaseRollbackCommand" After="CostFinalize">
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
 | |
|       </Custom>
 | |
|       <Custom Action="CreateDatabaseRollback" Before="CreateDatabase">
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
 | |
|       </Custom>
 | |
|       <Custom Action='FakeFailure' Before='InstallFinalize'>
 | |
|         <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED="" AND TESTFAIL]]>
 | |
|       </Custom>
 | |
|     </InstallExecuteSequence>
 | |
| 
 | |
| 
 | |
|     <!-- Custom action to remove data on uninstall  -->
 | |
|     <Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' />
 | |
|     <CustomAction Id="RemoveDataDirectory.SetProperty" Return="check" 
 | |
|                   Property="RemoveDataDirectory" Value="[DATADIR]" />
 | |
|     <CustomAction Id="RemoveDataDirectory"  BinaryKey="wixca.dll"
 | |
|                   DllEntry="RemoveDataDirectory"
 | |
|                   Execute="deferred"
 | |
|                   Impersonate="no"
 | |
|                   Return="ignore"   />
 | |
|     <InstallExecuteSequence>
 | |
|       <Custom Action="RemoveDataDirectory.SetProperty" After="CreateDatabaseCommand" >
 | |
|         <![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]>
 | |
|       </Custom>
 | |
|       <Custom Action="RemoveDataDirectory" Before="RemoveFiles">
 | |
|         <![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]>
 | |
|       </Custom>
 | |
|     </InstallExecuteSequence>
 | |
| 
 | |
|     <InstallExecuteSequence>
 | |
|       <StopServices>SERVICENAME</StopServices>
 | |
|       <DeleteServices>SERVICENAME</DeleteServices>
 | |
|     </InstallExecuteSequence>
 | |
|     <CustomAction Id="CheckDBInUse" Return="ignore" 
 | |
|                   BinaryKey="wixca.dll" DllEntry="CheckDBInUse"  Execute="firstSequence"/>
 | |
|     <InstallExecuteSequence>
 | |
|       <Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom>
 | |
|       <Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom>
 | |
|     </InstallExecuteSequence>
 | |
|     <InstallUISequence>
 | |
|       <Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom>
 | |
|       <Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom>
 | |
|     </InstallUISequence>
 | |
| 
 | |
|     <!-- Store some properties persistently in registry, mainly for upgrades -->
 | |
| 
 | |
|     <Feature Id='StoreInstallLocation' Level='1' Absent='disallow' Display='hidden'>
 | |
|       <Component Directory='INSTALLDIR' Guid='*' Id='C.storeinstalllocation'>
 | |
|         <RegistryValue Root='HKLM' Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@' 
 | |
|                        Name='INSTALLDIR' Value='[INSTALLDIR]' Type='string'  KeyPath='yes'/>
 | |
|       </Component>
 | |
|     </Feature>
 | |
| 
 | |
|     <?foreach STOREDVAR in SERVICENAME;DATADIR;INSTALLDIR?>
 | |
| 
 | |
|     <Property Id='$(var.STOREDVAR)' Secure='yes'>
 | |
|       <RegistrySearch Id='$(var.STOREDVAR)Property' Root='HKLM'
 | |
|                       Key='SOFTWARE\@CPACK_WIX_PACKAGE_NAME@'
 | |
|                       Name='$(var.STOREDVAR)' Type='raw' />
 | |
|     </Property>
 | |
|     <CustomAction Id='SaveCmdLineValue_$(var.STOREDVAR)' Property='CMDLINE_$(var.STOREDVAR)'
 | |
|               Value='[$(var.STOREDVAR)]' Execute='firstSequence' />
 | |
|     <CustomAction Id='SetFromCmdLineValue_$(var.STOREDVAR)' Property='$(var.STOREDVAR)' 
 | |
|                   Value='[CMDLINE_$(var.STOREDVAR)]' Execute='firstSequence' />
 | |
|     <InstallUISequence>
 | |
|       <Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' />
 | |
|       <Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom>
 | |
|     </InstallUISequence>
 | |
|     <InstallExecuteSequence>
 | |
|       <Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' />
 | |
|       <Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom>
 | |
|     </InstallExecuteSequence>
 | |
| 
 | |
|     <?endforeach?>
 | |
| 
 | |
|     <!-- 
 | |
|       Optionally, start upgrade wizard on exit.
 | |
|     -->
 | |
|     
 | |
| 
 | |
|     
 | |
|     <?if $(var.HaveUpgradeWizard) != "0" ?>
 | |
|     <UI>
 | |
|       <Publish Dialog="ExitDialog"
 | |
|           Control="Finish"
 | |
|           Event="DoAction"
 | |
|           Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
 | |
|     </UI>
 | |
|     <Property 
 | |
|       Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" 
 | |
|       Value="Launch wizard to upgrade existing MariaDB or MySQL services." />
 | |
|     <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="0"/>
 | |
|     <Property Id="WixShellExecTarget" Value="[#F.bin.mysql_upgrade_wizard.exe]" />
 | |
|     <CustomAction Id="LaunchApplication"
 | |
|         BinaryKey="WixCA"
 | |
|         DllEntry="WixShellExec"
 | |
|         Impersonate="yes" />
 | |
|     <CustomAction 
 | |
|       Id="CheckServiceUpgrades"   Return="ignore" BinaryKey="wixca.dll" 
 | |
|       DllEntry="CheckServiceUpgrades"
 | |
|       Execute="immediate" />
 | |
|     <InstallUISequence>
 | |
|       <Custom Action="CheckServiceUpgrades" After="CostFinalize">
 | |
|         $C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed AND NOT OLDERVERSIONBEINGUPGRADED
 | |
|       </Custom>
 | |
|     </InstallUISequence>
 | |
|     <SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" 
 | |
|        Sequence="ui"  Value="[NonExistentProperty]">
 | |
|       <![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
 | |
|     </SetProperty>
 | |
|     <SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" 
 | |
|        Sequence="ui"  Value="[NonExistentProperty]">
 | |
|       <![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
 | |
|     </SetProperty>
 | |
|     
 | |
|     <?endif ?> <!-- HaveUpgradeWizard -->
 | |
| 
 | |
|     <!-- 
 | |
|       Author the registry entries for "add or remove programs" 
 | |
|       We choose to define ARPSYSTEMCOMPONENT to 1 because we want to show 
 | |
|       "do you want to remove data directory" on uninstall
 | |
|     -->
 | |
|     <Property Id="ARPSYSTEMCOMPONENT" Value="1" Secure="yes" />
 | |
|     <Property Id="ARPINSTALLLOCATION" Secure="yes"/>
 | |
|     <SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLDIR]" After="InstallValidate"  Sequence="execute"/>
 | |
|     <SetProperty Id="USER_DOMAIN" Value="[%USERDOMAIN]" After="LaunchConditions" Sequence="first" />
 | |
|     <Feature Id='ARPRegistryEntries'
 | |
|           Title='Add or remove program entries'
 | |
|           Description='Add or remove program entries'
 | |
|           AllowAdvertise='no'
 | |
|           Absent='disallow'  Display='hidden'
 | |
|           Level='1'>
 | |
|       <Component Id="C.arp_entries" Guid="*" Directory="INSTALLDIR">
 | |
|         <RemoveFolder Id="RemoveINSTALLDIR" On="uninstall"/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|            Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|            Name='DisplayName' Value='[ProductName]' Type='string' KeyPath='yes'/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|           Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|           Name='Publisher' Value='@MANUFACTURER@' Type='string'/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|           Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|           Name='DisplayVersion' Value='[ProductVersion]' Type='string'/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|           Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|           Name='InstallLocation' Value='[INSTALLDIR]' Type='string'/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|           Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|           Name='UninstallString' Value='msiexec.exe /I [ProductCode]' Type='string'/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|           Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|           Name='MajorVersion' Value='@MAJOR_VERSION@' Type='string'/>
 | |
|         <RegistryValue Root='HKLM'
 | |
|           Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
 | |
|           Name='MinorVersion' Value='@MINOR_VERSION@' Type='string'/>
 | |
|       </Component>
 | |
|     </Feature>
 | |
|     <Condition Message=
 | |
|        'Setting the ALLUSERS property is not allowed because [ProductName] is a per-machine application. Setup will now exit.'>
 | |
|       <![CDATA[ALLUSERS = "1"]]>
 | |
|     </Condition>
 | |
| 	<Condition Message='This application is only supported on Windows 10, Windows Server 2016, or higher.'>
 | |
|       <![CDATA[Installed OR (VersionNT >= 603)]]>
 | |
|     </Condition>
 | |
|   </Fragment>
 | |
| </Wix>
 | 
