Commit 4728b515 authored by Olivier Bertrand's avatar Olivier Bertrand

Commit win packaging & upgrade_wizard files

parent 3810fefc
...@@ -104,48 +104,48 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out, size_t buflen) ...@@ -104,48 +104,48 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out, size_t buflen)
} }
pos= 0; pos= 0;
for(int i = 0 ; ; i++) for(int i = 0 ; ; i++)
{ {
size_t n_backslashes = 0; size_t n_backslashes = 0;
wchar_t c; wchar_t c;
while (in[i] == L'\\') while (in[i] == L'\\')
{ {
i++; i++;
n_backslashes++; n_backslashes++;
} }
c= in[i]; c= in[i];
if (c == 0) if (c == 0)
{ {
/* /*
Escape all backslashes, but let the terminating double quotation mark Escape all backslashes, but let the terminating double quotation mark
that caller adds be interpreted as a metacharacter. that caller adds be interpreted as a metacharacter.
*/ */
for(size_t j= 0; j < 2*n_backslashes;j++) for(size_t j= 0; j < 2*n_backslashes;j++)
{ {
out[pos++]=L'\\'; out[pos++]=L'\\';
} }
break; break;
} }
else if (c == L'"') else if (c == L'"')
{ {
/* /*
Escape all backslashes and the following double quotation mark. Escape all backslashes and the following double quotation mark.
*/ */
for(size_t j= 0; j < 2*n_backslashes + 1; j++) for(size_t j= 0; j < 2*n_backslashes + 1; j++)
{ {
out[pos++]=L'\\'; out[pos++]=L'\\';
} }
out[pos++]= L'"'; out[pos++]= L'"';
} }
else else
{ {
/* Backslashes aren't special here. */ /* Backslashes aren't special here. */
for (size_t j=0; j < n_backslashes; j++) for (size_t j=0; j < n_backslashes; j++)
out[pos++] = L'\\'; out[pos++] = L'\\';
out[pos++]= c; out[pos++]= c;
} }
} }
out[pos++]= 0; out[pos++]= 0;
} }
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment> <Fragment>
<Property Id="PortTemplate" Value="####" /> <Property Id="PortTemplate" Value="####" />
<Property Id="PORT" Value="3306"></Property> <Property Id="PORT" Value="3306"></Property>
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/> <Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
<Property Id="CREATEDBINSTANCE"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Property> <Property Id="CREATEDBINSTANCE"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Property>
<UI> <UI>
<Dialog Id="DatabaseCreationDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <Dialog Id="DatabaseCreationDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="ServiceNameLabel" Type="Text" X="20" Y="73" Width="70" Height="15" TabSkip="no" Text="Service Name:" /> <Control Id="ServiceNameLabel" Type="Text" X="20" Y="73" Width="70" Height="15" TabSkip="no" Text="Service Name:" />
<Control Id="ServiceName" Type="Edit" X="90" Y="73" Width="120" Height="15" Property="SERVICENAME" Text="{20}" /> <Control Id="ServiceName" Type="Edit" X="90" Y="73" Width="120" Height="15" Property="SERVICENAME" Text="{20}" />
<Control Id="RootPasswordLabel" Type="Text" X="20" Y="90" Width="120" Height="15" TabSkip="no" Text="&amp;Root password:" /> <Control Id="RootPasswordLabel" Type="Text" X="20" Y="90" Width="120" Height="15" TabSkip="no" Text="&amp;Root password:" />
<Control Id="RootPassword" Type="Edit" X="20" Y="105" Width="120" Height="18" Property="ROOT_PASSWORD" Password="yes" Text="{20}" /> <Control Id="RootPassword" Type="Edit" X="20" Y="105" Width="120" Height="18" Property="ROOT_PASSWORD" Password="yes" Text="{20}" />
<Control Id="RootPasswordConfirmLabel" Type="Text" X="150" Y="90" Width="150" Height="15" TabSkip="no" Text="&amp;Confirm Root password:" /> <Control Id="RootPasswordConfirmLabel" Type="Text" X="150" Y="90" Width="150" Height="15" TabSkip="no" Text="&amp;Confirm Root password:" />
<Control Id="RootPasswordConfirm" Type="Edit" X="150" Y="105" Width="120" Height="18" Property="ROOT_PASSWORD_CONFIRM" Password="yes" Text="{20}" /> <Control Id="RootPasswordConfirm" Type="Edit" X="150" Y="105" Width="120" Height="18" Property="ROOT_PASSWORD_CONFIRM" Password="yes" Text="{20}" />
<Control Id="BannerLine0" Type="Line" X="0" Y="128" Width="370" Height="0" /> <Control Id="BannerLine0" Type="Line" X="0" Y="128" Width="370" Height="0" />
<Control Id="PortLabel" Type="Text" X="20" Y="137" Width="40" Height="15" TabSkip="no" Text="TCP port:" /> <Control Id="PortLabel" Type="Text" X="20" Y="137" Width="40" Height="15" TabSkip="no" Text="TCP port:" />
<Control Id="Port" Type="MaskedEdit" X="60" Y="136" Width="30" Height="15" Property="PORT" Text="[PortTemplate]"/> <Control Id="Port" Type="MaskedEdit" X="60" Y="136" Width="30" Height="15" Property="PORT" Text="[PortTemplate]"/>
<!--<Control Id="FirewallExceptionCheckBox" Type="CheckBox" X="150" Y="136" Height="15" Property="FIREWALL_EXCEPTION" Width="200" CheckBoxValue="1" <!--<Control Id="FirewallExceptionCheckBox" Type="CheckBox" X="150" Y="136" Height="15" Property="FIREWALL_EXCEPTION" Width="200" CheckBoxValue="1"
Text="Create Firewall exception for this port"/>--> Text="Create Firewall exception for this port"/>-->
<Control Id="BannerLine2" Type="Line" X="0" Y="155" Width="370" Height="0" /> <Control Id="BannerLine2" Type="Line" X="0" Y="155" Width="370" Height="0" />
<Control Id="FolderLabel" Type="Text" X="20" Y="181" Width="100" Height="15" TabSkip="no" Text="Database location:" /> <Control Id="FolderLabel" Type="Text" X="20" Y="181" Width="100" Height="15" TabSkip="no" Text="Database location:" />
<Control Id="Folder" Type="PathEdit" X="20" Y="204" Width="200" Height="18" Property="DATABASELOCATION" Indirect="no" /> <Control Id="Folder" Type="PathEdit" X="20" Y="204" Width="200" Height="18" Property="DATABASELOCATION" Indirect="no" />
<!-- Navigation buttons--> <!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">
<!-- <!--
<Publish Event="ValidateProductID" Value="0">1</Publish> <Publish Event="ValidateProductID" Value="0">1</Publish>
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish> <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish>
--> -->
<!--<Publish Event="NewDialog" Value="SetupTypeDlg">ProductID</Publish>--> <!--<Publish Event="NewDialog" Value="SetupTypeDlg">ProductID</Publish>-->
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Create default [ProductName] instance</Text> <Text>Create default [ProductName] instance</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <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"> <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> <Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog> </Dialog>
<Dialog Id="ConfirmDataCleanupDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <Dialog Id="ConfirmDataCleanupDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="ServiceRemoveText" Type="Text" X="20" Y="73" Width="300" Height="15" TabSkip="no"> <Control Id="ServiceRemoveText" Type="Text" X="20" Y="73" Width="300" Height="15" TabSkip="no">
<Text>Service '[SERVICENAME]' will be removed</Text> <Text>Service '[SERVICENAME]' will be removed</Text>
</Control> </Control>
<Control Id="CleanupDataCheckBox" Type="CheckBox" X="20" Y="100" Height="15" Property="CLEANUP_DATA" Width="15" CheckBoxValue="0"/> <Control Id="CleanupDataCheckBox" Type="CheckBox" X="20" Y="100" Height="15" Property="CLEANUP_DATA" Width="15" CheckBoxValue="0"/>
<Control Id="RemoveDataText" Type="Text" X="37" Y="101" Width="300" Height="200" TabSkip="no"> <Control Id="RemoveDataText" Type="Text" X="37" Y="101" Width="300" Height="200" TabSkip="no">
<Text>Remove default database directory '[DATABASELOCATION]'</Text> <Text>Remove default database directory '[DATABASELOCATION]'</Text>
</Control> </Control>
<!-- Navigation buttons--> <!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">
<Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Remove default [ProductName] database</Text> <Text>Remove default [ProductName] database</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <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"> <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> <Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog> </Dialog>
</UI> </UI>
<UI Id="MyWixUI_Mondo"> <UI Id="MyWixUI_Mondo">
<UIRef Id="WixUI_FeatureTree" /> <UIRef Id="WixUI_FeatureTree" />
<UIRef Id="WixUI_ErrorProgressText" /> <UIRef Id="WixUI_ErrorProgressText" />
<DialogRef Id="DatabaseCreationDlg" /> <DialogRef Id="DatabaseCreationDlg" />
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="DatabaseCreationDlg" Order="999"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish> <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="DatabaseCreationDlg" Order="999"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish>
<Publish Dialog="DatabaseCreationDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">1</Publish> <Publish Dialog="DatabaseCreationDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">1</Publish>
<Publish Dialog="DatabaseCreationDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="3">1</Publish> <Publish Dialog="DatabaseCreationDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="3">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="DatabaseCreationDlg" Order="3" ><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="DatabaseCreationDlg" Order="3" ><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="3" ><![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]></Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="3" ><![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]></Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="999"><![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]></Publish> <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="999"><![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]></Publish>
<Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode = "Change"</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</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="999">!DBInstance=3</Publish>
<Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">WixUI_InstallMode = "Remove"</Publish> <Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">WixUI_InstallMode = "Remove"</Publish>
</UI> </UI>
<DirectoryRef Id='TARGETDIR'> <DirectoryRef Id='TARGETDIR'>
<Directory Id="CommonAppDataFolder"> <Directory Id="CommonAppDataFolder">
<Directory Id="DatabasesRoot" Name="MariaDB"> <Directory Id="DatabasesRoot" Name="MariaDB">
<Directory Id="DATABASELOCATION" Name="MariaDB Server 5.1"> <Directory Id="DATABASELOCATION" Name="MariaDB Server 5.1">
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
</DirectoryRef> </DirectoryRef>
<Feature Id='DBInstance' <Feature Id='DBInstance'
Title='Database instance' Title='Database instance'
Description='Install database instance' Description='Install database instance'
ConfigurableDirectory='DATABASELOCATION' ConfigurableDirectory='DATABASELOCATION'
AllowAdvertise='no' AllowAdvertise='no'
Level='1'> Level='1'>
<Component Id="C.datadir" Guid="*" Directory="DATABASELOCATION"> <Component Id="C.datadir" Guid="*" Directory="DATABASELOCATION">
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\[Manufacturer]\[ProductName]' Key='SOFTWARE\[Manufacturer]\[ProductName]'
Name='DatabaseLocation' Value='[DATABASELOCATION]' Type='string' KeyPath='yes'/> Name='DatabaseLocation' Value='[DATABASELOCATION]' Type='string' KeyPath='yes'/>
<CreateFolder /> <CreateFolder />
</Component> </Component>
<Component Id="C.service" Guid="*" Directory="DATABASELOCATION"> <Component Id="C.service" Guid="*" Directory="DATABASELOCATION">
<Condition>SERVICENAME</Condition> <Condition>SERVICENAME</Condition>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\[Manufacturer]\[ProductName]' Key='SOFTWARE\[Manufacturer]\[ProductName]'
Name='ServiceName' Value='[SERVICENAME]' Type='string' KeyPath='yes'/> Name='ServiceName' Value='[SERVICENAME]' Type='string' KeyPath='yes'/>
<ServiceControl Id='DBInstanceServiceStop' Name='[SERVICENAME]' Stop='uninstall' Wait='yes'></ServiceControl> <ServiceControl Id='DBInstanceServiceStop' Name='[SERVICENAME]' Stop='uninstall' Wait='yes'></ServiceControl>
<ServiceControl Id='DBInstanceServiceStart' Name='[SERVICENAME]' Start='install' Wait='no'></ServiceControl> <ServiceControl Id='DBInstanceServiceStart' Name='[SERVICENAME]' Start='install' Wait='no'></ServiceControl>
<ServiceControl Id='DBInstanceServiceRemove' Name='[SERVICENAME]' Remove='uninstall' Wait='yes'></ServiceControl> <ServiceControl Id='DBInstanceServiceRemove' Name='[SERVICENAME]' Remove='uninstall' Wait='yes'></ServiceControl>
</Component> </Component>
</Feature> </Feature>
<CustomAction Id="QtExecDeferredExampleWithProperty_Cmd" Property="QtExecDeferredExampleWithProperty" <CustomAction Id="QtExecDeferredExampleWithProperty_Cmd" Property="QtExecDeferredExampleWithProperty"
Value="&quot;[#F.bin.mysql_install_db.exe]&quot; &quot;--service=[SERVICENAME]&quot; &quot;--password=[ROOT_PASSWORD]&quot; &quot;--datadir=[DATABASELOCATION]&quot;" Value="&quot;[#F.bin.mysql_install_db.exe]&quot; &quot;--service=[SERVICENAME]&quot; &quot;--password=[ROOT_PASSWORD]&quot; &quot;--datadir=[DATABASELOCATION]&quot;"
Execute="immediate"/> Execute="immediate"/>
<CustomAction Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA" DllEntry="CAQuietExec" <CustomAction Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA" DllEntry="CAQuietExec"
Execute="deferred" Return="check" Impersonate="no"/> Execute="deferred" Return="check" Impersonate="no"/>
<UI> <UI>
<ProgressText Action="QtExecDeferredExampleWithProperty">Running mysql_install_db.exe</ProgressText> <ProgressText Action="QtExecDeferredExampleWithProperty">Running mysql_install_db.exe</ProgressText>
</UI> </UI>
<!-- Use Wix toolset "remember property" pattern to store properties between major upgrades etc --> <!-- Use Wix toolset "remember property" pattern to store properties between major upgrades etc -->
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="QtExecDeferredExampleWithProperty_Cmd" After="CostFinalize"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Custom> <Custom Action="QtExecDeferredExampleWithProperty_Cmd" After="CostFinalize"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Custom>
<Custom Action="QtExecDeferredExampleWithProperty" After="InstallFiles"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Custom> <Custom Action="QtExecDeferredExampleWithProperty" After="InstallFiles"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<Property Id='SERVICENAME'> <Property Id='SERVICENAME'>
<RegistrySearch Id='ServiceNameProperty' Root='HKLM' <RegistrySearch Id='ServiceNameProperty' Root='HKLM'
Key='SOFTWARE\[Manufacturer]\[ProductName]' Key='SOFTWARE\[Manufacturer]\[ProductName]'
Name='ServiceName' Type='raw' /> Name='ServiceName' Type='raw' />
</Property> </Property>
<SetProperty After='AppSearch' Id="SERVICENAME" Value="MariaDB_51"><![CDATA[NOT SERVICENAME]]></SetProperty> <SetProperty After='AppSearch' Id="SERVICENAME" Value="MariaDB_51"><![CDATA[NOT SERVICENAME]]></SetProperty>
<Property Id="DATABASELOCATION"> <Property Id="DATABASELOCATION">
<RegistrySearch Id='DatabaseLocationProperty' Root='HKLM' <RegistrySearch Id='DatabaseLocationProperty' Root='HKLM'
Key='SOFTWARE\[Manufacturer]\[ProductName]' Key='SOFTWARE\[Manufacturer]\[ProductName]'
Name='´DatabaseLocation' Type='raw' /> Name='´DatabaseLocation' Type='raw' />
</Property> </Property>
<SetProperty After='AppSearch' Id="DATABASELOCATION" Value="[CommonAppDataFolder]\MariaDB\[ProductName]"><![CDATA[NOT DATABASELOCATION]]></SetProperty> <SetProperty After='AppSearch' Id="DATABASELOCATION" Value="[CommonAppDataFolder]\MariaDB\[ProductName]"><![CDATA[NOT DATABASELOCATION]]></SetProperty>
<CustomAction Id='SaveCmdLineValue_SERVICENAME' Property='CMDLINE_SERVICENAME' <CustomAction Id='SaveCmdLineValue_SERVICENAME' Property='CMDLINE_SERVICENAME'
Value='[SERVICENAME]' Execute='firstSequence' /> Value='[SERVICENAME]' Execute='firstSequence' />
<CustomAction Id='SetFromCmdLineValue_SERVICENAME' Property='SERVICENAME' Value='[CMDLINE_SERVICENAME]' Execute='firstSequence' /> <CustomAction Id='SetFromCmdLineValue_SERVICENAME' Property='SERVICENAME' Value='[CMDLINE_SERVICENAME]' Execute='firstSequence' />
<CustomAction Id='SaveCmdLineValue_DATABASELOCATION' Property='CMDLINE_DATABASELOCATION' <CustomAction Id='SaveCmdLineValue_DATABASELOCATION' Property='CMDLINE_DATABASELOCATION'
Value='[DATABASELOCATION]' Execute='firstSequence' /> Value='[DATABASELOCATION]' Execute='firstSequence' />
<CustomAction Id='SetFromCmdLineValue_DATABASELOCATION' Property='DATABASELOCATION' Value='[CMDLINE_DATABASELOCATION]' Execute='firstSequence' /> <CustomAction Id='SetFromCmdLineValue_DATABASELOCATION' Property='DATABASELOCATION' Value='[CMDLINE_DATABASELOCATION]' Execute='firstSequence' />
<InstallUISequence> <InstallUISequence>
<Custom Action='SaveCmdLineValue_SERVICENAME' Before='AppSearch' /> <Custom Action='SaveCmdLineValue_SERVICENAME' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_SERVICENAME' After='AppSearch'>CMDLINE_SERVICENAME</Custom> <Custom Action='SetFromCmdLineValue_SERVICENAME' After='AppSearch'>CMDLINE_SERVICENAME</Custom>
<Custom Action='SaveCmdLineValue_DATABASELOCATION' Before='AppSearch' /> <Custom Action='SaveCmdLineValue_DATABASELOCATION' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_DATABASELOCATION' After='AppSearch'>CMDLINE_DATABASELOCATION</Custom> <Custom Action='SetFromCmdLineValue_DATABASELOCATION' After='AppSearch'>CMDLINE_DATABASELOCATION</Custom>
</InstallUISequence> </InstallUISequence>
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action='SaveCmdLineValue_SERVICENAME' Before='AppSearch' /> <Custom Action='SaveCmdLineValue_SERVICENAME' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_SERVICENAME' After='AppSearch'>CMDLINE_SERVICENAME</Custom> <Custom Action='SetFromCmdLineValue_SERVICENAME' After='AppSearch'>CMDLINE_SERVICENAME</Custom>
<Custom Action='SaveCmdLineValue_DATABASELOCATION' Before='AppSearch' /> <Custom Action='SaveCmdLineValue_DATABASELOCATION' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_DATABASELOCATION' After='AppSearch'>CMDLINE_DATABASELOCATION</Custom> <Custom Action='SetFromCmdLineValue_DATABASELOCATION' After='AppSearch'>CMDLINE_DATABASELOCATION</Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
</Fragment> </Fragment>
</Wix> </Wix>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Fragment> <Fragment>
<!-- <!--
Check, if upgrade wizard was built Check, if upgrade wizard was built
It currently requires MFC, which is not in SDK It currently requires MFC, which is not in SDK
neither in express edítions of VS. neither in express edítions of VS.
--> -->
<?ifndef HaveUpgradeWizard ?> <?ifndef HaveUpgradeWizard ?>
<?define HaveUpgradeWizard="1"?> <?define HaveUpgradeWizard="1"?>
<?endif?> <?endif?>
<!-- If Innodb is compiled in, enable "optimize for transactions" checkbox --> <!-- If Innodb is compiled in, enable "optimize for transactions" checkbox -->
<?ifndef HaveInnodb ?> <?ifndef HaveInnodb ?>
<?define HaveInnodb="0"?> <?define HaveInnodb="0"?>
<?endif?> <?endif?>
<Property Id="PortTemplate" Value="#####" /> <Property Id="PortTemplate" Value="#####" />
<?if $(var.HaveInnodb) = "1" ?> <?if $(var.HaveInnodb) = "1" ?>
<Property Id="BufferPoolSizeTemplate" Value="#######" /> <Property Id="BufferPoolSizeTemplate" Value="#######" />
<?endif?> <?endif?>
<!-- <!--
Installation parameters that can be passed via msiexec command line Installation parameters that can be passed via msiexec command line
For "booleans" (like skip networking), just providing any value means property set to "yes". For "booleans" (like skip networking), just providing any value means property set to "yes".
--> -->
<!-- instalation directory (default under program files)--> <!-- instalation directory (default under program files)-->
<!--- (defined elsewhere) <Property Id="INSTALLDIR" Secure="yes" /> --> <!--- (defined elsewhere) <Property Id="INSTALLDIR" Secure="yes" /> -->
<!-- Database data directory (default under INSTALLDIR\data) --> <!-- Database data directory (default under INSTALLDIR\data) -->
<!--- (defined elsewhere) <Property Id="DATADIR" Secure="yes"/> --> <!--- (defined elsewhere) <Property Id="DATADIR" Secure="yes"/> -->
<!-- Service name of database instanced (default MySQL in GUI, nothing with command line) --> <!-- Service name of database instanced (default MySQL in GUI, nothing with command line) -->
<!-- (defined elsewhere) <Property Id="SERVICENAME" Secure="yes" /> --> <!-- (defined elsewhere) <Property Id="SERVICENAME" Secure="yes" /> -->
<!-- Root password --> <!-- Root password -->
<Property Id="PASSWORD" Hidden="yes" Secure="yes" /> <Property Id="PASSWORD" Hidden="yes" Secure="yes" />
<Property Id="ESCAPEDPASSWORD" Hidden="yes" Secure="yes" /> <Property Id="ESCAPEDPASSWORD" Hidden="yes" Secure="yes" />
<!-- Database port --> <!-- Database port -->
<Property Id="PORT" Value="3306" Secure="yes"/> <Property Id="PORT" Value="3306" Secure="yes"/>
<!-- Whether to allow remote access for root user --> <!-- Whether to allow remote access for root user -->
<Property Id="ALLOWREMOTEROOTACCESS" Secure="yes" /> <Property Id="ALLOWREMOTEROOTACCESS" Secure="yes" />
<!-- Skip networking. This will switch configuration to use named pipe--> <!-- Skip networking. This will switch configuration to use named pipe-->
<Property Id="SKIPNETWORKING" Secure="yes"/> <Property Id="SKIPNETWORKING" Secure="yes"/>
<!-- Whether to keep default (unauthenticated) user. Default is no--> <!-- Whether to keep default (unauthenticated) user. Default is no-->
<Property Id="DEFAULTUSER" Secure="yes"/> <Property Id="DEFAULTUSER" Secure="yes"/>
<!-- Set server character set to UTF8 --> <!-- Set server character set to UTF8 -->
<Property Id="UTF8" Secure="yes"/> <Property Id="UTF8" Secure="yes"/>
<!-- Whether to data on uninstall (default yes, after asking user consent) --> <!-- Whether to data on uninstall (default yes, after asking user consent) -->
<Property Id="CLEANUPDATA" Secure="yes" Value="1"/> <Property Id="CLEANUPDATA" Secure="yes" Value="1"/>
<!-- Force per machine installation --> <!-- Force per machine installation -->
<Property Id="ALLUSERS" Secure="yes" Value="1"/> <Property Id="ALLUSERS" Secure="yes" Value="1"/>
<!-- Disable advertised shortcuts weirdness --> <!-- Disable advertised shortcuts weirdness -->
<Property Id="DISABLEADVTSHORTCUTS" Secure="yes" Value="1"/> <Property Id="DISABLEADVTSHORTCUTS" Secure="yes" Value="1"/>
<!-- Activate feedback plugin--> <!-- Activate feedback plugin-->
<Property Id="FEEDBACK" Secure="yes"/> <Property Id="FEEDBACK" Secure="yes"/>
<?if $(var.HaveInnodb) = "1" ?> <?if $(var.HaveInnodb) = "1" ?>
<!-- Quick configuration : set default storage engine to innodb, use strict sql_mode --> <!-- Quick configuration : set default storage engine to innodb, use strict sql_mode -->
<Property Id="STDCONFIG" Secure="yes" Value="1"/> <Property Id="STDCONFIG" Secure="yes" Value="1"/>
<?endif?> <?endif?>
<!-- Innodb Buffer pool size in MB--> <!-- Innodb Buffer pool size in MB-->
<Property Id="BUFFERPOOLSIZE" Secure="yes"/> <Property Id="BUFFERPOOLSIZE" Secure="yes"/>
<CustomAction Id="LaunchUrl" BinaryKey="WixCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" /> <CustomAction Id="LaunchUrl" BinaryKey="WixCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" />
<!-- <!--
User interface dialogs User interface dialogs
--> -->
<WixVariable Id='WixUIBannerBmp' Value='@CMAKE_CURRENT_SOURCE_DIR@\WixUIBannerBmp.jpg' /> <WixVariable Id='WixUIBannerBmp' Value='@CMAKE_CURRENT_SOURCE_DIR@\WixUIBannerBmp.jpg' />
<WixVariable Id='WixUIDialogBmp' Value='@CMAKE_CURRENT_SOURCE_DIR@\WixUIDialogBmp.jpg' /> <WixVariable Id='WixUIDialogBmp' Value='@CMAKE_CURRENT_SOURCE_DIR@\WixUIDialogBmp.jpg' />
<UI> <UI>
<!-- Dialog on uninstall of the database --> <!-- Dialog on uninstall of the database -->
<Dialog Id="ConfirmDataCleanupDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <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" <!--<Control Id="CleanupDataCheckBox" Type="CheckBox" X="20" Y="100" Height="30" Property="CLEANUPDATA" Width="300" CheckBoxValue="1"
Text="{\Font1}Remove default database directory &#xD;&#xA;'[DATADIR]'"/> Text="{\Font1}Remove default database directory &#xD;&#xA;'[DATADIR]'"/>
--> -->
<Control Id="RemoveDatadirButton" Type="PushButton" X="40" Y="65" Width="80" Height="18" <Control Id="RemoveDatadirButton" Type="PushButton" X="40" Y="65" Width="80" Height="18"
Text="Remove data"> Text="Remove data">
<Publish Property="CLEANUPDATA" Value="1">1</Publish> <Publish Property="CLEANUPDATA" Value="1">1</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish> <Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
<Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish> <Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
</Control> </Control>
<Control Id="RemoveDatadirText" Type="Text" X="60" Y="85" Width="280" Height="20"> <Control Id="RemoveDatadirText" Type="Text" X="60" Y="85" Width="280" Height="20">
<Text>Remove default database directory [DATADIR]. Ensures proper cleanup on uninstall.</Text> <Text>Remove default database directory [DATADIR]. Ensures proper cleanup on uninstall.</Text>
</Control> </Control>
<Control Id="KeepDatadirButton" Type="PushButton" X="40" Y="118" Width="80" Height="18" <Control Id="KeepDatadirButton" Type="PushButton" X="40" Y="118" Width="80" Height="18"
Text="Keep data"> Text="Keep data">
<Publish Property="CLEANUPDATA">1</Publish> <Publish Property="CLEANUPDATA">1</Publish>
<Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish> <Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
<Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish> <Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
</Control> </Control>
<Control Id="KeepDataDirText" Type="Text" X="60" Y="138" Width="280" Height="70" > <Control Id="KeepDataDirText" Type="Text" X="60" Y="138" Width="280" Height="70" >
<Text>Do not remove [DATADIR]. Choose this option if you intend to use data in the future</Text> <Text>Do not remove [DATADIR]. Choose this option if you intend to use data in the future</Text>
</Control> </Control>
<!-- Navigation buttons--> <!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode="Change"</Publish> <Publish Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode="Change"</Publish>
<Condition Action="disable">NOT WixUI_InstallMode</Condition> <Condition Action="disable">NOT WixUI_InstallMode</Condition>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="&amp;Next">
<Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish> <Publish Event="NewDialog" Value="VerifyReadyDlg">WixUI_InstallMode</Publish>
<Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish> <Publish Event="EndDialog" Value="Return">NOT WixUI_InstallMode</Publish>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Remove default [ProductName] database</Text> <Text>Remove default [ProductName] database</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <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"> <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> <Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog> </Dialog>
<!-- Dialog new or upgrade instance --> <!-- Dialog new or upgrade instance -->
<Property Id="CreateOrUpgradeChoice" Value="Create"/> <Property Id="CreateOrUpgradeChoice" Value="Create"/>
<Dialog Id="NewOrUpgradeInstanceDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <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"> <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>Setup found existing database instances that can be upgraded to [ProductName].You can create a new instance and/or upgrade existing one.
</Text> </Text>
</Control> </Control>
<Control Id="CreateOrUpgradeButton" <Control Id="CreateOrUpgradeButton"
Type="RadioButtonGroup" X="40" Y="100" Width="300" Height="70" Type="RadioButtonGroup" X="40" Y="100" Width="300" Height="70"
Property="CreateOrUpgradeChoice" Text="Specify what to do"> Property="CreateOrUpgradeChoice" Text="Specify what to do">
<RadioButtonGroup Property="CreateOrUpgradeChoice"> <RadioButtonGroup Property="CreateOrUpgradeChoice">
<RadioButton Value="Create" X="0" Y="0" Width="300" Height="25" <RadioButton Value="Create" X="0" Y="0" Width="300" Height="25"
Text="{\Font1}Create new database instance."/> Text="{\Font1}Create new database instance."/>
<RadioButton Value="Upgrade" X="0" Y="30" Width="300" Height="25" <RadioButton Value="Upgrade" X="0" Y="30" Width="300" Height="25"
Text="{\Font1}Do not create a new database. Optionally upgrade existing instances." /> Text="{\Font1}Do not create a new database. Optionally upgrade existing instances." />
</RadioButtonGroup> </RadioButtonGroup>
</Control> </Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish> <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next">
<Publish Event="Remove" Value="DBInstance">CreateOrUpgradeChoice = "Upgrade" </Publish> <Publish Event="Remove" Value="DBInstance">CreateOrUpgradeChoice = "Upgrade" </Publish>
<Publish Event="AddLocal" Value="DBInstance">CreateOrUpgradeChoice = "Create"</Publish> <Publish Event="AddLocal" Value="DBInstance">CreateOrUpgradeChoice = "Create"</Publish>
<Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish> <Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish>
<Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish> <Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="[NonExistentProperty]">CreateOrUpgradeChoice = "Create"</Publish>
<Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1">CreateOrUpgradeChoice = "Upgrade"</Publish> <Publish Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1">CreateOrUpgradeChoice = "Upgrade"</Publish>
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish> <Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Create or upgrade database instance</Text> <Text>Create or upgrade database instance</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <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"> <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\WixUI_Font_Title}[ProductName] setup</Text> <Text>{\WixUI_Font_Title}[ProductName] setup</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog> </Dialog>
<!-- Feedback dialog --> <!-- Feedback dialog -->
<Dialog Id="Feedback" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> <Dialog Id="Feedback" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
<Control Id="CheckBoxFeedback" Type="CheckBox" X="8" Y="61" Width="360" Height="12" Property="FEEDBACK" CheckBoxValue="1" TabSkip="no"> <Control Id="CheckBoxFeedback" Type="CheckBox" X="8" Y="61" Width="360" Height="12" Property="FEEDBACK" CheckBoxValue="1" TabSkip="no">
<Text>{\Font1}Enable the Feedback plugin and submit anonymous usage information</Text> <Text>{\Font1}Enable the Feedback plugin and submit anonymous usage information</Text>
</Control> </Control>
<Control Id="Text" Type="Text" X="23" Y="82" Width="290" Height="55"> <Control Id="Text" Type="Text" X="23" Y="82" Width="290" Height="55">
<Text>Monty Program has created a Feedback plugin for MariaDB which, if enabled, collects basic anonymous statistical information. This information is used by the developers to improve MariaDB. Enabling this plugin is an easy way to help with MariaDB development. Collected statistics, and more information on the plugin, can be viewed at http://mariadb.org/feedback_plugin </Text> <Text>Monty Program has created a Feedback plugin for MariaDB which, if enabled, collects basic anonymous statistical information. This information is used by the developers to improve MariaDB. Enabling this plugin is an easy way to help with MariaDB development. Collected statistics, and more information on the plugin, can be viewed at http://mariadb.org/feedback_plugin </Text>
</Control> </Control>
<Control Id="MoreInfo" Type="PushButton" X="23" Y="140" Width="56" Height="17" Text="More Info" ToolTip="http://mariadb.org/feedback_plugin" > <Control Id="MoreInfo" Type="PushButton" X="23" Y="140" Width="56" Height="17" Text="More Info" ToolTip="http://mariadb.org/feedback_plugin" >
<Publish Property="WixShellExecTarget" Value="http://mariadb.org/feedback_plugin" Order="1">1</Publish> <Publish Property="WixShellExecTarget" Value="http://mariadb.org/feedback_plugin" Order="1">1</Publish>
<Publish Event="DoAction" Value="LaunchUrl" Order="2">1</Publish> <Publish Event="DoAction" Value="LaunchUrl" Order="2">1</Publish>
</Control> </Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="ServicePortDlg">1</Publish> <Publish Event="NewDialog" Value="ServicePortDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&amp;Next">
<Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>Submit usage information</Text> <Text>Submit usage information</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <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"> <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
<Text>{\WixUI_Font_Title}[ProductName] setup</Text> <Text>{\WixUI_Font_Title}[ProductName] setup</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog> </Dialog>
<!-- Error popup dialog --> <!-- Error popup dialog -->
<Dialog Id="WarningDlg" Width="320" Height="85" Title="[ProductName] Setup" NoMinimize="yes"> <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" <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24"
ToolTip="Information icon" FixedSize="yes" IconSize="32" Text="WixUI_Ico_Info" /> ToolTip="Information icon" FixedSize="yes" IconSize="32" Text="WixUI_Ico_Info" />
<Control Id="Ok" Type="PushButton" X="132" Y="57" Width="56" Height="17" <Control Id="Ok" Type="PushButton" X="132" Y="57" Width="56" Height="17"
Default="yes" Cancel="yes" Text="OK"> Default="yes" Cancel="yes" Text="OK">
<Publish Property="WarningText">1</Publish> <Publish Property="WarningText">1</Publish>
<Publish Event="EndDialog" Value="Return">1</Publish> <Publish Event="EndDialog" Value="Return">1</Publish>
</Control> </Control>
<Control Id="Text" Type="Text" X="48" Y="15" Width="260" Height="30"> <Control Id="Text" Type="Text" X="48" Y="15" Width="260" Height="30">
<Text>[WarningText]</Text> <Text>[WarningText]</Text>
</Control> </Control>
</Dialog> </Dialog>
<Property Id="ModifyRootPassword" Value="1"/> <Property Id="ModifyRootPassword" Value="1"/>
<TextStyle Id="Font1" FaceName="Tahoma" Size="8" Red="0" Green="0" Blue="0" Bold="yes" /> <TextStyle Id="Font1" FaceName="Tahoma" Size="8" Red="0" Green="0" Blue="0" Bold="yes" />
<!-- Root password plus default user dialog --> <!-- Root password plus default user dialog -->
<Dialog Id="UserSettingsDlg" X="50" Y="50" Width="370" Height="270" Title="User settings"> <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"> <Control Id="EditRootPassword" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="PASSWORD" Password="yes" TabSkip="no">
<Text>{100}</Text> <Text>{100}</Text>
<Condition Action="enable">ModifyRootPassword</Condition> <Condition Action="enable">ModifyRootPassword</Condition>
<Condition Action="disable">NOT ModifyRootPassword</Condition> <Condition Action="disable">NOT ModifyRootPassword</Condition>
</Control> </Control>
<Control Id="EditRootPasswordConfirm" Type="Edit" X="104" Y="103" Width="91" Height="15" Property="RootPasswordConfirm" Password="yes" TabSkip="no"> <Control Id="EditRootPasswordConfirm" Type="Edit" X="104" Y="103" Width="91" Height="15" Property="RootPasswordConfirm" Password="yes" TabSkip="no">
<Text>{100}</Text> <Text>{100}</Text>
<Condition Action="enable">ModifyRootPassword</Condition> <Condition Action="enable">ModifyRootPassword</Condition>
<Condition Action="disable">NOT ModifyRootPassword</Condition> <Condition Action="disable">NOT ModifyRootPassword</Condition>
</Control> </Control>
<Control Id="CheckBoxModifyRootPassword" Type="CheckBox" X="8" Y="62" Width="222" Height="18" Property="ModifyRootPassword" CheckBoxValue="1" TabSkip="no"> <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> <Text>{\Font1}Modify password for database user 'root'</Text>
<Publish Property="PASSWORD" >NOT ModifyRootPassword</Publish> <Publish Property="PASSWORD" >NOT ModifyRootPassword</Publish>
<Publish Property="RootPasswordConfirm">NOT ModifyRootPassword</Publish> <Publish Property="RootPasswordConfirm">NOT ModifyRootPassword</Publish>
<Publish Property="ALLOWREMOTEROOTACCESS">NOT ModifyRootPassword</Publish> <Publish Property="ALLOWREMOTEROOTACCESS">NOT ModifyRootPassword</Publish>
<Publish Property="ALLOWREMOTEROOTACCESS" Value="1">ModifyRootPassword</Publish> <Publish Property="ALLOWREMOTEROOTACCESS" Value="1">ModifyRootPassword</Publish>
</Control> </Control>
<Control Id="Text5" Type="Text" X="23" Y="82" Width="77" Height="14" TabSkip="yes"> <Control Id="Text5" Type="Text" X="23" Y="82" Width="77" Height="14" TabSkip="yes">
<Text>New root password:</Text> <Text>New root password:</Text>
</Control> </Control>
<Control Id="Text6" Type="Text" X="201" Y="85" Width="100" Height="17" TabSkip="yes"> <Control Id="Text6" Type="Text" X="201" Y="85" Width="100" Height="17" TabSkip="yes">
<Text>Enter new root password</Text> <Text>Enter new root password</Text>
</Control> </Control>
<Control Id="Text8" Type="Text" X="23" Y="105" Width="75" Height="17" TabSkip="yes"> <Control Id="Text8" Type="Text" X="23" Y="105" Width="75" Height="17" TabSkip="yes">
<Text>Confirm:</Text> <Text>Confirm:</Text>
</Control> </Control>
<Control Id="Text10" Type="Text" X="201" Y="104" Width="100" Height="17" TabSkip="yes"> <Control Id="Text10" Type="Text" X="201" Y="104" Width="100" Height="17" TabSkip="yes">
<Text>Retype the password</Text> <Text>Retype the password</Text>
</Control> </Control>
<Control Id="CheckBoxALLOWREMOTEROOTACCESS" Type="CheckBox" X="23" Y="122" Width="196" Height="18" Property="ALLOWREMOTEROOTACCESS" <Control Id="CheckBoxALLOWREMOTEROOTACCESS" Type="CheckBox" X="23" Y="122" Width="196" Height="18" Property="ALLOWREMOTEROOTACCESS"
CheckBoxValue="--allow-remote-root-access" TabSkip="no"> CheckBoxValue="--allow-remote-root-access" TabSkip="no">
<Text>{\Font1}Enable access from remote machines for 'root' user</Text> <Text>{\Font1}Enable access from remote machines for 'root' user</Text>
<Condition Action="enable">ModifyRootPassword</Condition> <Condition Action="enable">ModifyRootPassword</Condition>
<Condition Action="disable">NOT ModifyRootPassword</Condition> <Condition Action="disable">NOT ModifyRootPassword</Condition>
</Control> </Control>
<Control Id="CheckBoxCreateDefaultUser" Type="CheckBox" X="8" Y="154" Width="200" Height="18" Property="DEFAULTUSER" <Control Id="CheckBoxCreateDefaultUser" Type="CheckBox" X="8" Y="154" Width="200" Height="18" Property="DEFAULTUSER"
CheckBoxValue="--default-user" TabSkip="no"> CheckBoxValue="--default-user" TabSkip="no">
<Text>{\Font1}Create An Anonymous Account</Text> <Text>{\Font1}Create An Anonymous Account</Text>
</Control> </Control>
<Control Id="Text14" Type="Text" X="21" Y="174" Width="268" Height="16" TabSkip="yes"> <Control Id="Text14" Type="Text" X="21" Y="174" Width="268" Height="16" TabSkip="yes">
<Text>This option will create an anonymous account on this server. </Text> <Text>This option will create an anonymous account on this server. </Text>
</Control> </Control>
<Control Id="Text13" Type="Text" X="21" Y="190" Width="254" Height="24" TabSkip="yes"> <Control Id="Text13" Type="Text" X="21" Y="190" Width="254" Height="24" TabSkip="yes">
<Text>Please note: this setting can lead to insecure systems.</Text> <Text>Please note: this setting can lead to insecure systems.</Text>
</Control> </Control>
<Control Id="CheckBoxUTF8" Type="CheckBox" X="8" Y="215" Width="250" Height="18" Property="UTF8" CheckBoxValue="1" TabSkip="no"> <Control Id="CheckBoxUTF8" Type="CheckBox" X="8" Y="215" Width="250" Height="18" Property="UTF8" CheckBoxValue="1" TabSkip="no">
<Text>{\Font1}Use UTF8 as default server's character set</Text> <Text>{\Font1}Use UTF8 as default server's character set</Text>
</Control> </Control>
<!-- Navigation buttons--> <!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish> <Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">
<Publish Property="WarningText" Value="Passwords do not match."><![CDATA[PASSWORD <> RootPasswordConfirm]]></Publish> <Publish Property="WarningText" Value="Passwords do not match."><![CDATA[PASSWORD <> RootPasswordConfirm]]></Publish>
<Publish Event="SpawnDialog" Value="WarningDlg"><![CDATA[WarningText <>""]]></Publish> <Publish Event="SpawnDialog" Value="WarningDlg"><![CDATA[WarningText <>""]]></Publish>
<Publish Property="SERVICENAME" Value="MySQL">NOT SERVICENAME AND NOT WarningText</Publish> <Publish Property="SERVICENAME" Value="MySQL">NOT SERVICENAME AND NOT WarningText</Publish>
<Publish Event="NewDialog" Value="ServicePortDlg"><![CDATA[WarningText=""]]></Publish> <Publish Event="NewDialog" Value="ServicePortDlg"><![CDATA[WarningText=""]]></Publish>
<Condition Action="enable"><![CDATA[NOT ModifyRootPassword OR PASSWORD]]> </Condition> <Condition Action="enable"><![CDATA[NOT ModifyRootPassword OR PASSWORD]]> </Condition>
<Condition Action="disable"><![CDATA[ModifyRootPassword AND (NOT PASSWORD)]]> </Condition> <Condition Action="disable"><![CDATA[ModifyRootPassword AND (NOT PASSWORD)]]> </Condition>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text> [ProductName] database configuration</Text> <Text> [ProductName] database configuration</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> <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"> <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> <Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
</Dialog> </Dialog>
<Property Id="InstallService" Value="1"/> <Property Id="InstallService" Value="1"/>
<Property Id="EnableNetworking" Value="1"/> <Property Id="EnableNetworking" Value="1"/>
<!-- Service and port configuration --> <!-- Service and port configuration -->
<Dialog Id="ServicePortDlg" Width="370" Height="270" Title="Database settings"> <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"> <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> <Text>{\Font1}Install as service</Text>
</Control> </Control>
<Control Id="EditServiceName" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="SERVICENAME" TabSkip="no"> <Control Id="EditServiceName" Type="Edit" X="104" Y="82" Width="91" Height="15" Property="SERVICENAME" TabSkip="no">
<Text>{20}</Text> <Text>{20}</Text>
<Condition Action="enable">InstallService</Condition> <Condition Action="enable">InstallService</Condition>
<Condition Action="disable">Not InstallService</Condition> <Condition Action="disable">Not InstallService</Condition>
</Control> </Control>
<Control Id="Text5" Type="Text" X="25" Y="82" Width="77" Height="14" TabSkip="yes"> <Control Id="Text5" Type="Text" X="25" Y="82" Width="77" Height="14" TabSkip="yes">
<Text>Service Name:</Text> <Text>Service Name:</Text>
</Control> </Control>
<Control Id="CheckBoxEnableNetworking" Type="CheckBox" Height="18" Width="102" X="9" Y="117" Property="EnableNetworking" CheckBoxValue="1"> <Control Id="CheckBoxEnableNetworking" Type="CheckBox" Height="18" Width="102" X="9" Y="117" Property="EnableNetworking" CheckBoxValue="1">
<Text>{\Font1}Enable networking</Text> <Text>{\Font1}Enable networking</Text>
<!--<Publish Property="PORT">NOT EnableNetworking</Publish>--> <!--<Publish Property="PORT">NOT EnableNetworking</Publish>-->
<Publish Property="SKIPNETWORKING" Value="--skip-networking">NOT EnableNetworking</Publish> <Publish Property="SKIPNETWORKING" Value="--skip-networking">NOT EnableNetworking</Publish>
<Publish Property="SKIPNETWORKING">EnableNetworking</Publish> <Publish Property="SKIPNETWORKING">EnableNetworking</Publish>
</Control> </Control>
<Control Id="LabelTCPPort" Type="Text" Height="17" Width="75" X="25" Y="142" Text="TCP port:" /> <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]"> <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="enable" >EnableNetworking</Condition>
<Condition Action="disable">Not EnableNetworking</Condition> <Condition Action="disable">Not EnableNetworking</Condition>
</Control> </Control>
<?if $(var.HaveInnodb) = "1" ?> <?if $(var.HaveInnodb) = "1" ?>
<Control Id="CheckBoxStandardConfig" Type="CheckBox" Height="18" Width="220" X="9" Y="171" Property="STDCONFIG" CheckBoxValue="1"> <Control Id="CheckBoxStandardConfig" Type="CheckBox" Height="18" Width="220" X="9" Y="171" Property="STDCONFIG" CheckBoxValue="1">
<Text>{\Font1}Optimize for transactions</Text> <Text>{\Font1}Optimize for transactions</Text>
</Control> </Control>
<Control Id="StandardConfigExplain" Type="Text" X="25" Y="190" Width="270" Height="14" TabSkip="yes"> <Control Id="StandardConfigExplain" Type="Text" X="25" Y="190" Width="270" Height="14" TabSkip="yes">
<Text>(Uses transactional storage engine and "strict" SQL mode)</Text> <Text>(Uses transactional storage engine and "strict" SQL mode)</Text>
<Condition Action="enable" >STDCONFIG</Condition> <Condition Action="enable" >STDCONFIG</Condition>
<Condition Action="disable">Not STDCONFIG</Condition> <Condition Action="disable">Not STDCONFIG</Condition>
</Control> </Control>
<Control Id="LabelInnodbBufferpool" Type="Text" Height="17" Width="77" X="25" Y="210" Text="Buffer pool size:" > <Control Id="LabelInnodbBufferpool" Type="Text" Height="17" Width="77" X="25" Y="210" Text="Buffer pool size:" >
<Condition Action="enable" >STDCONFIG</Condition> <Condition Action="enable" >STDCONFIG</Condition>
<Condition Action="disable">Not STDCONFIG</Condition> <Condition Action="disable">Not STDCONFIG</Condition>
</Control> </Control>
<Control Id="BPSize" Type="MaskedEdit" X="104" Y="208" Width="40" Height="15" Property="BUFFERPOOLSIZE" Sunken="yes" Text="[BufferPoolSizeTemplate]"> <Control Id="BPSize" Type="MaskedEdit" X="104" Y="208" Width="40" Height="15" Property="BUFFERPOOLSIZE" Sunken="yes" Text="[BufferPoolSizeTemplate]">
<Condition Action="enable" >STDCONFIG</Condition> <Condition Action="enable" >STDCONFIG</Condition>
<Condition Action="disable">Not STDCONFIG</Condition> <Condition Action="disable">Not STDCONFIG</Condition>
</Control> </Control>
<Control Id="LabelMB" Type="Text" Height="17" Width="15" X="150" Y="210" Text="MB" > <Control Id="LabelMB" Type="Text" Height="17" Width="15" X="150" Y="210" Text="MB" >
<Condition Action="enable" >STDCONFIG</Condition> <Condition Action="enable" >STDCONFIG</Condition>
<Condition Action="disable">Not STDCONFIG</Condition> <Condition Action="disable">Not STDCONFIG</Condition>
</Control> </Control>
<?endif?> <?endif?>
<!-- Navigation buttons--> <!-- Navigation buttons-->
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back"> <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
<Publish Event="NewDialog" Value="UserSettingsDlg">1</Publish> <Publish Event="NewDialog" Value="UserSettingsDlg">1</Publish>
</Control> </Control>
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="no" Text="&amp;Next"> <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="no" Text="&amp;Next">
<Publish Property="SERVICENAME">NOT InstallService</Publish> <Publish Property="SERVICENAME">NOT InstallService</Publish>
<Publish Property="WarningText" Value="Please enter valid port or uncheck 'Enable Networking' checkbox"> <Publish Property="WarningText" Value="Please enter valid port or uncheck 'Enable Networking' checkbox">
<![CDATA[EnableNetworking AND NOT PORT AND NOT WarningText]]> <![CDATA[EnableNetworking AND NOT PORT AND NOT WarningText]]>
</Publish> </Publish>
<Publish Property="WarningText" Value="Please enter valid service name port or uncheck 'Install Service' checkbox"> <Publish Property="WarningText" Value="Please enter valid service name port or uncheck 'Install Service' checkbox">
<![CDATA[InstallService AND NOT SERVICENAME AND NOT WarningText]]> <![CDATA[InstallService AND NOT SERVICENAME AND NOT WarningText]]>
</Publish> </Publish>
<Publish Event="DoAction" Value="CheckDatabaseProperties">NOT WarningText</Publish> <Publish Event="DoAction" Value="CheckDatabaseProperties">NOT WarningText</Publish>
<Publish Event="SpawnDialog" Value="WarningDlg">WarningText</Publish> <Publish Event="SpawnDialog" Value="WarningDlg">WarningText</Publish>
<Publish Event="NewDialog" Value="Feedback">Not WarningText</Publish> <Publish Event="NewDialog" Value="Feedback">Not WarningText</Publish>
</Control> </Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="no" Text="Cancel"> <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="no" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish> <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control> </Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" /> <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"> <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
<Text>[ProductName] database configuration</Text> <Text>[ProductName] database configuration</Text>
</Control> </Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" /> <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"> <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> <Text>{\WixUI_Font_Title}Default instance properties</Text>
</Control> </Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="2" /> <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="2" />
</Dialog> </Dialog>
</UI> </UI>
<Property Id="CRLF" Value="&#xD;&#xA;" /> <Property Id="CRLF" Value="&#xD;&#xA;" />
<CustomAction Id="CheckDataDirectoryEmpty" BinaryKey="wixca.dll" DllEntry="CheckDataDirectoryEmpty" Execute="immediate" Impersonate="yes"/> <CustomAction Id="CheckDataDirectoryEmpty" BinaryKey="wixca.dll" DllEntry="CheckDataDirectoryEmpty" Execute="immediate" Impersonate="yes"/>
<!-- What to do when navigation buttons are clicked --> <!-- What to do when navigation buttons are clicked -->
<UI Id="MyWixUI_Mondo"> <UI Id="MyWixUI_Mondo">
<UIRef Id="WixUI_FeatureTree" /> <UIRef Id="WixUI_FeatureTree" />
<UIRef Id="WixUI_ErrorProgressText" /> <UIRef Id="WixUI_ErrorProgressText" />
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="999"> <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="999">
OLDERVERSIONBEINGUPGRADED OLDERVERSIONBEINGUPGRADED
</Publish> </Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999"> <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999">
NOT Installed AND UpgradableServiceFound NOT Installed AND UpgradableServiceFound
</Publish> </Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="Feedback" Order="3" ><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="Feedback" 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="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="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"> <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="NewOrUpgradeInstanceDlg" Order="999">
NOT Installed AND UpgradableServiceFound NOT Installed AND UpgradableServiceFound
</Publish> </Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="DoAction" Value="CheckDataDirectoryEmpty" Order="1"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish> <Publish Dialog="CustomizeDlg" Control="Next" Event="DoAction" Value="CheckDataDirectoryEmpty" Order="1"><![CDATA[&DBInstance=3 AND NOT !DBInstance=3]]></Publish>
<Publish Dialog="CustomizeDlg" Property="DATADIRNOTEMPTY" Control="Next" Order="1"><![CDATA[NOT(&DBInstance=3 AND NOT !DBInstance=3)]]></Publish> <Publish Dialog="CustomizeDlg" Property="DATADIRNOTEMPTY" Control="Next" Order="1"><![CDATA[NOT(&DBInstance=3 AND NOT !DBInstance=3)]]></Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Property="WarningText" Order="2" <Publish Dialog="CustomizeDlg" Control="Next" Property="WarningText" Order="2"
Value="Selected data directory [DATADIR] is not empty. Either clean it, or choose another location for 'Database Instance' feature."> Value="Selected data directory [DATADIR] is not empty. Either clean it, or choose another location for 'Database Instance' feature.">
DATADIRNOTEMPTY DATADIRNOTEMPTY
</Publish> </Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="SpawnDialog" Value="WarningDlg" Order="3">WarningText</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"> <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="4">
<![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]> <![CDATA[(&DBInstance=2) AND (!DBInstance=3)]]>
</Publish> </Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="UserSettingsDlg" Order="5"> <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="UserSettingsDlg" Order="5">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND NOT WarningText]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND NOT WarningText]]>
</Publish> </Publish>
<Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg">WixUI_InstallMode = "Change"</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"> <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="ConfirmDataCleanupDlg" Order="999">
!DBInstance=3 AND (CLEANUPDATA Or USECONFIRMDATACLEANUPDLG) !DBInstance=3 AND (CLEANUPDATA Or USECONFIRMDATACLEANUPDLG)
</Publish> </Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Property="USECONFIRMDATACLEANUPDLG" Value="1" Order="999"> <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Property="USECONFIRMDATACLEANUPDLG" Value="1" Order="999">
!DBInstance=3 AND CLEANUPDATA !DBInstance=3 AND CLEANUPDATA
</Publish> </Publish>
<Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">WixUI_InstallMode = "Remove"</Publish> <Publish Dialog="ConfirmDataCleanupDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">WixUI_InstallMode = "Remove"</Publish>
</UI> </UI>
<!-- End of UI section --> <!-- End of UI section -->
<!-- Extra folders we need (DATADIR and shortcut folder) --> <!-- Extra folders we need (DATADIR and shortcut folder) -->
<DirectoryRef Id='INSTALLDIR'> <DirectoryRef Id='INSTALLDIR'>
<Directory Id="DATADIR" Name="data"> <Directory Id="DATADIR" Name="data">
</Directory> </Directory>
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
<Directory Id="ShortcutFolder" Name="@CPACK_WIX_PACKAGE_NAME@"> <Directory Id="ShortcutFolder" Name="@CPACK_WIX_PACKAGE_NAME@">
</Directory> </Directory>
</Directory> </Directory>
</DirectoryRef> </DirectoryRef>
<!-- Extra feature (database instance). This could be split to several subfeatures if desired (e.g firewall exception)--> <!-- Extra feature (database instance). This could be split to several subfeatures if desired (e.g firewall exception)-->
<Feature Id='DBInstance' <Feature Id='DBInstance'
Title='Database instance' Title='Database instance'
Description= Description=
'Install database instance. Only new database can be installed with this feature.' 'Install database instance. Only new database can be installed with this feature.'
ConfigurableDirectory='DATADIR' ConfigurableDirectory='DATADIR'
AllowAdvertise='no' AllowAdvertise='no'
Level='1'> Level='1'>
<!-- Data directory with some reasonable security settings --> <!-- Data directory with some reasonable security settings -->
<Component Id="C.datadir" Guid="*" Directory="DATADIR"> <Component Id="C.datadir" Guid="*" Directory="DATADIR">
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='DATADIR' Value='[DATADIR]' Type='string' KeyPath='yes'/> Name='DATADIR' Value='[DATADIR]' Type='string' KeyPath='yes'/>
<CreateFolder> <CreateFolder>
<util:PermissionEx User="[LogonUser]" GenericAll="yes" /> <util:PermissionEx User="[LogonUser]" GenericAll="yes" />
<util:PermissionEx User="NetworkService" GenericAll="yes" /> <util:PermissionEx User="NetworkService" GenericAll="yes" />
</CreateFolder> </CreateFolder>
</Component> </Component>
<!-- Database service conditioned on SERVICENAME property--> <!-- Database service conditioned on SERVICENAME property-->
<Component Id="C.service" Guid="*" Directory="DATADIR"> <Component Id="C.service" Guid="*" Directory="DATADIR">
<Condition>SERVICENAME</Condition> <Condition>SERVICENAME</Condition>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='SERVICENAME' Value='[SERVICENAME]' Type='string' KeyPath='yes'/> Name='SERVICENAME' Value='[SERVICENAME]' Type='string' KeyPath='yes'/>
<ServiceControl Id='DBInstanceServiceStop' Name='[SERVICENAME]' Stop='both' Remove='uninstall' Wait='yes'/> <ServiceControl Id='DBInstanceServiceStop' Name='[SERVICENAME]' Stop='both' Remove='uninstall' Wait='yes'/>
<ServiceControl Id='DBInstanceServiceStart' Name='[SERVICENAME]' Start='install' Wait='yes'/> <ServiceControl Id='DBInstanceServiceStart' Name='[SERVICENAME]' Start='install' Wait='yes'/>
</Component> </Component>
<?if $(var.HaveInnodb) = "1" ?> <?if $(var.HaveInnodb) = "1" ?>
<Component Id="C.myiniconfig" Guid="*" Directory="DATADIR"> <Component Id="C.myiniconfig" Guid="*" Directory="DATADIR">
<Condition>STDCONFIG</Condition> <Condition>STDCONFIG</Condition>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='STDCONFIG' Value='1' Type='string' KeyPath='yes'/> Name='STDCONFIG' Value='1' Type='string' KeyPath='yes'/>
<IniFile Id="Ini1" <IniFile Id="Ini1"
Action="createLine" Action="createLine"
Directory="DATADIR" Directory="DATADIR"
Section="mysqld" Section="mysqld"
Name="my.ini" Name="my.ini"
Key="sql_mode" Key="sql_mode"
Value="&quot;STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION&quot;" /> Value="&quot;STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION&quot;" />
<IniFile Id="Ini2" <IniFile Id="Ini2"
Action="createLine" Action="createLine"
Directory="DATADIR" Directory="DATADIR"
Section="mysqld" Section="mysqld"
Name="my.ini" Name="my.ini"
Key="default_storage_engine" Key="default_storage_engine"
Value="innodb" /> Value="innodb" />
<IniFile Id="Ini3" <IniFile Id="Ini3"
Action="createLine" Action="createLine"
Directory="DATADIR" Directory="DATADIR"
Section="mysqld" Section="mysqld"
Name="my.ini" Name="my.ini"
Key="innodb_buffer_pool_size" Key="innodb_buffer_pool_size"
Value="[BUFFERPOOLSIZE]M" /> Value="[BUFFERPOOLSIZE]M" />
<IniFile Id="Ini4" <IniFile Id="Ini4"
Action="createLine" Action="createLine"
Directory="DATADIR" Directory="DATADIR"
Section="mysqld" Section="mysqld"
Name="my.ini" Name="my.ini"
Key="innodb_log_file_size" Key="innodb_log_file_size"
Value="[LOGFILESIZE]M" /> Value="[LOGFILESIZE]M" />
</Component> </Component>
<?endif?> <?endif?>
<Component Id="C.feedback" Guid="*" Directory="DATADIR"> <Component Id="C.feedback" Guid="*" Directory="DATADIR">
<Condition>FEEDBACK</Condition> <Condition>FEEDBACK</Condition>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='FEEDBACK' Value='1' Type='string' KeyPath='yes'/> Name='FEEDBACK' Value='1' Type='string' KeyPath='yes'/>
<IniFile Id="Ini5" <IniFile Id="Ini5"
Action="createLine" Action="createLine"
Directory="DATADIR" Directory="DATADIR"
Section="mysqld" Section="mysqld"
Name="my.ini" Name="my.ini"
Key="feedback" Key="feedback"
Value="ON" /> Value="ON" />
</Component> </Component>
<Component Id="C.utf8" Guid="*" Directory="DATADIR"> <Component Id="C.utf8" Guid="*" Directory="DATADIR">
<Condition>UTF8</Condition> <Condition>UTF8</Condition>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='UTF8' Value='1' Type='string' KeyPath='yes'/> Name='UTF8' Value='1' Type='string' KeyPath='yes'/>
<IniFile Id="Ini6" <IniFile Id="Ini6"
Action="createLine" Action="createLine"
Directory="DATADIR" Directory="DATADIR"
Section="mysqld" Section="mysqld"
Name="my.ini" Name="my.ini"
Key="character-set-server" Key="character-set-server"
Value="utf8" /> Value="utf8" />
</Component> </Component>
<!--- Grant service account permission to the database folder (Windows 7 and later) --> <!--- Grant service account permission to the database folder (Windows 7 and later) -->
<Component Id="C.serviceaccount.permission" Guid="*" Directory='DATADIR' Transitive='yes'> <Component Id="C.serviceaccount.permission" Guid="*" Directory='DATADIR' Transitive='yes'>
<Condition><![CDATA[SERVICENAME AND (VersionNT > 600)]]></Condition> <Condition><![CDATA[SERVICENAME AND (VersionNT > 600)]]></Condition>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='servicepermission' Value='1' Type='string' KeyPath='yes'/> Name='servicepermission' Value='1' Type='string' KeyPath='yes'/>
<CreateFolder> <CreateFolder>
<util:PermissionEx User="NT SERVICE\[SERVICENAME]" GenericAll="yes" /> <util:PermissionEx User="NT SERVICE\[SERVICENAME]" GenericAll="yes" />
</CreateFolder> </CreateFolder>
</Component> </Component>
<!-- Shortcuts in program menu (mysql client etc) --> <!-- Shortcuts in program menu (mysql client etc) -->
<Component Id="c.shortcuts" Guid="*" Directory="ShortcutFolder"> <Component Id="c.shortcuts" Guid="*" Directory="ShortcutFolder">
<!-- shortcut to my.ini--> <!-- shortcut to my.ini-->
<RegistryValue Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Name="shortcuts" Value="1" Type="string" KeyPath="yes" /> <RegistryValue Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Name="shortcuts" Value="1" Type="string" KeyPath="yes" />
<RemoveFolder Id="RemoveShorcutFolder" On="uninstall" /> <RemoveFolder Id="RemoveShorcutFolder" On="uninstall" />
<Shortcut Id="shortcut.my.ini" <Shortcut Id="shortcut.my.ini"
Name="my.ini (@CPACK_WIX_PACKAGE_NAME@)" Name="my.ini (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]notepad.exe" Target="[System64Folder]notepad.exe"
Arguments="&quot;[DATADIR]my.ini&quot;" Arguments="&quot;[DATADIR]my.ini&quot;"
Directory="ShortcutFolder" Directory="ShortcutFolder"
Description="Edit database configuration" /> Description="Edit database configuration" />
<Shortcut Id="shortcut.errorlog" <Shortcut Id="shortcut.errorlog"
Name="Error log (@CPACK_WIX_PACKAGE_NAME@)" Name="Error log (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]notepad.exe" Target="[System64Folder]notepad.exe"
Arguments="&quot;[DATADIR][ComputerName].err&quot;" Arguments="&quot;[DATADIR][ComputerName].err&quot;"
Directory="ShortcutFolder" Directory="ShortcutFolder"
Description="View Database Error log" /> Description="View Database Error log" />
<Shortcut Id="shortcut.dbfolder" Name="Database directory (@CPACK_WIX_PACKAGE_NAME@)" <Shortcut Id="shortcut.dbfolder" Name="Database directory (@CPACK_WIX_PACKAGE_NAME@)"
Target="[DATADIR]" /> Target="[DATADIR]" />
</Component> </Component>
<!-- add reference so mysql client won't get uninstalled and we have a shortcut pointing to nowhere--> <!-- add reference so mysql client won't get uninstalled and we have a shortcut pointing to nowhere-->
<ComponentRef Id="C.bin.mysql.exe"/> <ComponentRef Id="C.bin.mysql.exe"/>
<Component Id="c.shortcuts.commandline" Guid="*" Directory="ShortcutFolder"> <Component Id="c.shortcuts.commandline" Guid="*" Directory="ShortcutFolder">
<RegistryValue <RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.commandline" Name="shortcuts.commandline"
Value="1" Type="string" KeyPath="yes" /> Value="1" Type="string" KeyPath="yes" />
<!-- shortcut to client--> <!-- shortcut to client-->
<Shortcut Id="shortcut.mysql.exe" <Shortcut Id="shortcut.mysql.exe"
Name="MySQL Client (@CPACK_WIX_PACKAGE_NAME@)" Name="MySQL Client (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]cmd.exe" Target="[System64Folder]cmd.exe"
Arguments="/k &quot; &quot;[D.bin]mysql.exe&quot; &quot;--defaults-file=[DATADIR]my.ini&quot; -uroot -p&quot;" Arguments="/k &quot; &quot;[D.bin]mysql.exe&quot; &quot;--defaults-file=[DATADIR]my.ini&quot; -uroot -p&quot;"
Directory="ShortcutFolder" Directory="ShortcutFolder"
WorkingDirectory="D.bin" WorkingDirectory="D.bin"
Description="Starts mysql.exe for root user" /> Description="Starts mysql.exe for root user" />
</Component> </Component>
<Component Id="c.shortcuts.commandprompt.db" Guid="*" Directory="ShortcutFolder" Transitive="yes"> <Component Id="c.shortcuts.commandprompt.db" Guid="*" Directory="ShortcutFolder" Transitive="yes">
<Condition>SERVICENAME</Condition> <Condition>SERVICENAME</Condition>
<RegistryValue <RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.commandprompt.db" Name="shortcuts.commandprompt.db"
Value="1" Type="string" KeyPath="yes" /> Value="1" Type="string" KeyPath="yes" />
<!-- just command prompt in the bin directory (so all utilities can be called) --> <!-- just command prompt in the bin directory (so all utilities can be called) -->
<Shortcut Id="shortcut.commandprompt.exe.db" <Shortcut Id="shortcut.commandprompt.exe.db"
Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)" Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]cmd.exe" Target="[System64Folder]cmd.exe"
Directory="ShortcutFolder" Directory="ShortcutFolder"
Arguments="/k &quot;set MYSQL_HOME=[DATADIR]&amp;&amp; set PATH=[D.bin];%PATH%;&amp;&amp;echo Setting environment for [ProductName] &quot;" Arguments="/k &quot;set MYSQL_HOME=[DATADIR]&amp;&amp; set PATH=[D.bin];%PATH%;&amp;&amp;echo Setting environment for [ProductName] &quot;"
Description="Opens command line in the installation bin directory" /> Description="Opens command line in the installation bin directory" />
</Component> </Component>
</Feature> </Feature>
<Feature Id="SharedClientServerComponents" <Feature Id="SharedClientServerComponents"
Title='Utilities used by both server and client.' Title='Utilities used by both server and client.'
Description= Description=
'Client utilities that are also used with server.Required for upgrade.' 'Client utilities that are also used with server.Required for upgrade.'
ConfigurableDirectory='INSTALLDIR' ConfigurableDirectory='INSTALLDIR'
AllowAdvertise='no' AllowAdvertise='no'
Level='1' Level='1'
Display='hidden'> Display='hidden'>
<ComponentRef Id='C.bin.mysql.exe'/> <ComponentRef Id='C.bin.mysql.exe'/>
<ComponentRef Id='C.bin.mysqladmin.exe'/> <ComponentRef Id='C.bin.mysqladmin.exe'/>
<ComponentRef Id='C.bin.mysql_upgrade.exe'/> <ComponentRef Id='C.bin.mysql_upgrade.exe'/>
<ComponentRef Id='C.bin.mysqlcheck.exe'/> <ComponentRef Id='C.bin.mysqlcheck.exe'/>
<Component Id="c.shortcuts.commandprompt.nodb" Guid="*" Directory="ShortcutFolder" Transitive="yes"> <Component Id="c.shortcuts.commandprompt.nodb" Guid="*" Directory="ShortcutFolder" Transitive="yes">
<Condition>NOT SERVICENAME</Condition> <Condition>NOT SERVICENAME</Condition>
<RegistryValue <RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.commandprompt.nodb" Name="shortcuts.commandprompt.nodb"
Value="1" Type="string" KeyPath="yes" /> Value="1" Type="string" KeyPath="yes" />
<!-- just command prompt in the bin directory (so all utilities can be called) --> <!-- just command prompt in the bin directory (so all utilities can be called) -->
<Shortcut Id="shortcut.commandprompt.exe.nodb" <Shortcut Id="shortcut.commandprompt.exe.nodb"
Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)" Name="Command Prompt (@CPACK_WIX_PACKAGE_NAME@)"
Target="[System64Folder]cmd.exe" Target="[System64Folder]cmd.exe"
Directory="ShortcutFolder" Directory="ShortcutFolder"
Arguments="/k &quot;set PATH=[D.bin];%PATH%;&amp;&amp;echo Setting environment for [ProductName] &quot;" Arguments="/k &quot;set PATH=[D.bin];%PATH%;&amp;&amp;echo Setting environment for [ProductName] &quot;"
Description="Opens command line in the installation bin directory" /> Description="Opens command line in the installation bin directory" />
</Component> </Component>
<?if $(var.HaveUpgradeWizard) != "0" ?> <?if $(var.HaveUpgradeWizard) != "0" ?>
<ComponentRef Id='C.bin.mysql_upgrade_wizard.exe'/> <ComponentRef Id='C.bin.mysql_upgrade_wizard.exe'/>
<!-- <!--
<Component Id="c.shortcuts.upgrade_wizard" Guid="*" Directory="ShortcutFolder" Transitive="yes"> <Component Id="c.shortcuts.upgrade_wizard" Guid="*" Directory="ShortcutFolder" Transitive="yes">
<RegistryValue <RegistryValue
Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall"
Name="shortcuts.upgrade_wizard" Name="shortcuts.upgrade_wizard"
Value="1" Type="string" KeyPath="yes" /> Value="1" Type="string" KeyPath="yes" />
<Shortcut Id="shortcut.upgrade_wizard" <Shortcut Id="shortcut.upgrade_wizard"
Name="Upgrade Wizard (@CPACK_WIX_PACKAGE_NAME@)" Name="Upgrade Wizard (@CPACK_WIX_PACKAGE_NAME@)"
Target="[INSTALLDIR]bin\mysql_upgrade_wizard.exe" Target="[INSTALLDIR]bin\mysql_upgrade_wizard.exe"
Directory="ShortcutFolder" Directory="ShortcutFolder"
Description="Upgrades older instances of MariaDB/MySQL services to version @MAJOR_VERSION@.@MINOR_VERSION@" Description="Upgrades older instances of MariaDB/MySQL services to version @MAJOR_VERSION@.@MINOR_VERSION@"
Advertise="no"/> Advertise="no"/>
</Component> </Component>
--> -->
<?endif?> <?endif?>
</Feature> </Feature>
<!-- Optional 3rd party tools --> <!-- Optional 3rd party tools -->
<DirectoryRef Id='TARGETDIR'> <DirectoryRef Id='TARGETDIR'>
<Directory Id='CommonFilesFolder'> <Directory Id='CommonFilesFolder'>
<Directory Id='MariaDBShared' Name='MariaDBShared'/> <Directory Id='MariaDBShared' Name='MariaDBShared'/>
</Directory> </Directory>
<Directory Id='DesktopFolder'/> <Directory Id='DesktopFolder'/>
</DirectoryRef> </DirectoryRef>
<?if "@WITH_THIRD_PARTY@" != "" ?> <?if "@WITH_THIRD_PARTY@" != "" ?>
<!-- Include definition of 3party components --> <!-- Include definition of 3party components -->
<?foreach tool in @WITH_THIRD_PARTY@ ?> <?foreach tool in @WITH_THIRD_PARTY@ ?>
<?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool).wxi" ?> <?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool).wxi" ?>
<?endforeach ?> <?endforeach ?>
<Feature Id="ThirdPartyTools" <Feature Id="ThirdPartyTools"
Title='Third party tools' Title='Third party tools'
Description= 'Third party tools' Description= 'Third party tools'
AllowAdvertise='no' AllowAdvertise='no'
Level='1' Level='1'
Display='expand'> Display='expand'>
@THIRD_PARTY_FEATURE_CONDITION@ @THIRD_PARTY_FEATURE_CONDITION@
<!-- Include definition of 3rd party features --> <!-- Include definition of 3rd party features -->
<?foreach tool in @WITH_THIRD_PARTY@ ?> <?foreach tool in @WITH_THIRD_PARTY@ ?>
<?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool)_feature.wxi" ?> <?include "${CMAKE_CURRENT_BINARY_DIR}\$(var.tool)_feature.wxi" ?>
<?endforeach ?> <?endforeach ?>
</Feature> </Feature>
<?endif ?> <?endif ?>
<!-- Custom action, call mysql_install_db --> <!-- Custom action, call mysql_install_db -->
<SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="SKIPNETWORKING" Value="--skip-networking" >SKIPNETWORKING</SetProperty> <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="ALLOWREMOTEROOTACCESS" Value="--allow-remote-root-access">ALLOWREMOTEROOTACCESS</SetProperty>
<SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="DEFAULTUSER" Value="--default-user">DEFAULTUSER</SetProperty> <SetProperty Sequence='execute' Before='CreateDatabaseCommand' Id="DEFAULTUSER" Value="--default-user">DEFAULTUSER</SetProperty>
<CustomAction Id='CheckDatabaseProperties' BinaryKey='wixca.dll' DllEntry='CheckDatabaseProperties' /> <CustomAction Id='CheckDatabaseProperties' BinaryKey='wixca.dll' DllEntry='CheckDatabaseProperties' />
<CustomAction Id='PresetDatabaseProperties' BinaryKey='wixca.dll' DllEntry='PresetDatabaseProperties' /> <CustomAction Id='PresetDatabaseProperties' BinaryKey='wixca.dll' DllEntry='PresetDatabaseProperties' />
<CustomAction Id="CreateDatabaseCommand" Property="CreateDatabase" <CustomAction Id="CreateDatabaseCommand" Property="CreateDatabase"
Value= Value=
"&quot;[#F.bin.mysql_install_db.exe]&quot; &quot;--service=[SERVICENAME]&quot; --port=[PORT] &quot;--password=[ESCAPEDPASSWORD]&quot; &quot;--datadir=[DATADIR]\&quot; [SKIPNETWORKING] [ALLOWREMOTEROOTACCESS] [DEFAULTUSER] --verbose-bootstrap" "&quot;[#F.bin.mysql_install_db.exe]&quot; &quot;--service=[SERVICENAME]&quot; --port=[PORT] &quot;--password=[ESCAPEDPASSWORD]&quot; &quot;--datadir=[DATADIR]\&quot; [SKIPNETWORKING] [ALLOWREMOTEROOTACCESS] [DEFAULTUSER] --verbose-bootstrap"
Execute="immediate" Execute="immediate"
HideTarget="yes" HideTarget="yes"
/> />
<CustomAction Id="CreateDatabaseRollbackCommand" Property="CreateDatabaseRollback" <CustomAction Id="CreateDatabaseRollbackCommand" Property="CreateDatabaseRollback"
Value="[SERVICENAME]\[DATADIR]" Value="[SERVICENAME]\[DATADIR]"
Execute="immediate"/> Execute="immediate"/>
<CustomAction Id="CreateDatabase" BinaryKey="WixCA" DllEntry="CAQuietExec" <CustomAction Id="CreateDatabase" BinaryKey="WixCA" DllEntry="CAQuietExec"
Execute="deferred" Return="check" Impersonate="no" /> Execute="deferred" Return="check" Impersonate="no" />
<CustomAction Id="CreateDatabaseRollback" BinaryKey="wixca.dll" DllEntry="CreateDatabaseRollback" <CustomAction Id="CreateDatabaseRollback" BinaryKey="wixca.dll" DllEntry="CreateDatabaseRollback"
Execute="rollback" Return="check" Impersonate="no"/> Execute="rollback" Return="check" Impersonate="no"/>
<UI> <UI>
<ProgressText Action="CreateDatabase">Running mysql_install_db.exe</ProgressText> <ProgressText Action="CreateDatabase">Running mysql_install_db.exe</ProgressText>
</UI> </UI>
<!-- Error injection script activated by TEST_FAIL=1 passed to msiexec (to see how good custom action rollback works) --> <!-- Error injection script activated by TEST_FAIL=1 passed to msiexec (to see how good custom action rollback works) -->
<Property Id="FailureProgram"> <Property Id="FailureProgram">
<![CDATA[ <![CDATA[
Function Main() Function Main()
Main = 3 Main = 3
End Function End Function
]]> ]]>
</Property> </Property>
<CustomAction Id="FakeFailure" <CustomAction Id="FakeFailure"
VBScriptCall="Main" VBScriptCall="Main"
Property="FailureProgram" Property="FailureProgram"
Execute="deferred" /> Execute="deferred" />
<CustomAction Id='ErrorDataDirNotEmpty' <CustomAction Id='ErrorDataDirNotEmpty'
Error='Chosen data directory [DATADIR] is not empty. It must be empty prior to installation.'/> Error='Chosen data directory [DATADIR] is not empty. It must be empty prior to installation.'/>
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="CheckDataDirectoryEmpty" After="CostFinalize"> <Custom Action="CheckDataDirectoryEmpty" After="CostFinalize">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom> </Custom>
<Custom Action="ErrorDataDirNotEmpty" After="CheckDataDirectoryEmpty" >DATADIRNOTEMPTY</Custom> <Custom Action="ErrorDataDirNotEmpty" After="CheckDataDirectoryEmpty" >DATADIRNOTEMPTY</Custom>
<Custom Action="CheckDatabaseProperties" Before="CreateDatabaseCommand">SERVICENAME</Custom> <Custom Action="CheckDatabaseProperties" Before="CreateDatabaseCommand">SERVICENAME</Custom>
<Custom Action="CreateDatabaseCommand" After="CostFinalize" > <Custom Action="CreateDatabaseCommand" After="CostFinalize" >
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom> </Custom>
<Custom Action="CreateDatabase" After="InstallFiles"> <Custom Action="CreateDatabase" After="InstallFiles">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom> </Custom>
<Custom Action="CreateDatabaseRollbackCommand" After="CostFinalize"> <Custom Action="CreateDatabaseRollbackCommand" After="CostFinalize">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom> </Custom>
<Custom Action="CreateDatabaseRollback" Before="CreateDatabase"> <Custom Action="CreateDatabaseRollback" Before="CreateDatabase">
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED=""]]>
</Custom> </Custom>
<Custom Action='FakeFailure' Before='InstallFinalize'> <Custom Action='FakeFailure' Before='InstallFinalize'>
<![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED="" AND TESTFAIL]]> <![CDATA[&DBInstance=3 AND NOT !DBInstance=3 AND OLDERVERSIONBEINGUPGRADED="" AND TESTFAIL]]>
</Custom> </Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<!-- Custom action to remove data on uninstall --> <!-- Custom action to remove data on uninstall -->
<Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' /> <Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' />
<CustomAction Id="RemoveDataDirectory.SetProperty" Return="check" <CustomAction Id="RemoveDataDirectory.SetProperty" Return="check"
Property="RemoveDataDirectory" Value="[DATADIR]" /> Property="RemoveDataDirectory" Value="[DATADIR]" />
<CustomAction Id="RemoveDataDirectory" BinaryKey="wixca.dll" <CustomAction Id="RemoveDataDirectory" BinaryKey="wixca.dll"
DllEntry="RemoveDataDirectory" DllEntry="RemoveDataDirectory"
Execute="deferred" Execute="deferred"
Impersonate="no" Impersonate="no"
Return="ignore" /> Return="ignore" />
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="RemoveDataDirectory.SetProperty" After="CreateDatabaseCommand" > <Custom Action="RemoveDataDirectory.SetProperty" After="CreateDatabaseCommand" >
<![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]> <![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]>
</Custom> </Custom>
<Custom Action="RemoveDataDirectory" Before="RemoveFiles"> <Custom Action="RemoveDataDirectory" Before="RemoveFiles">
<![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]> <![CDATA[($C.datadir=2) AND (CLEANUPDATA) AND NOT UPGRADINGPRODUCTCODE]]>
</Custom> </Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<InstallExecuteSequence> <InstallExecuteSequence>
<StopServices>SERVICENAME</StopServices> <StopServices>SERVICENAME</StopServices>
<DeleteServices>SERVICENAME</DeleteServices> <DeleteServices>SERVICENAME</DeleteServices>
</InstallExecuteSequence> </InstallExecuteSequence>
<CustomAction Id="CheckDBInUse" Return="ignore" <CustomAction Id="CheckDBInUse" Return="ignore"
BinaryKey="wixca.dll" DllEntry="CheckDBInUse" Execute="firstSequence"/> BinaryKey="wixca.dll" DllEntry="CheckDBInUse" Execute="firstSequence"/>
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom> <Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom>
<Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom> <Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<InstallUISequence> <InstallUISequence>
<Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom> <Custom Action="CheckDBInUse" Before="LaunchConditions">Installed</Custom>
<Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom> <Custom Action="PresetDatabaseProperties" After="CheckDBInUse"></Custom>
</InstallUISequence> </InstallUISequence>
<!-- Store some properties persistently in registry, mainly for upgrades --> <!-- Store some properties persistently in registry, mainly for upgrades -->
<Feature Id='StoreInstallLocation' Level='1' Absent='disallow' Display='hidden'> <Feature Id='StoreInstallLocation' Level='1' Absent='disallow' Display='hidden'>
<Component Directory='INSTALLDIR' Guid='*' Id='C.storeinstalllocation'> <Component Directory='INSTALLDIR' Guid='*' Id='C.storeinstalllocation'>
<RegistryValue Root='HKLM' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' <RegistryValue Root='HKLM' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='INSTALLDIR' Value='[INSTALLDIR]' Type='string' KeyPath='yes'/> Name='INSTALLDIR' Value='[INSTALLDIR]' Type='string' KeyPath='yes'/>
</Component> </Component>
</Feature> </Feature>
<?foreach STOREDVAR in SERVICENAME;DATADIR;INSTALLDIR?> <?foreach STOREDVAR in SERVICENAME;DATADIR;INSTALLDIR?>
<Property Id='$(var.STOREDVAR)' Secure='yes'> <Property Id='$(var.STOREDVAR)' Secure='yes'>
<RegistrySearch Id='$(var.STOREDVAR)Property' Root='HKLM' <RegistrySearch Id='$(var.STOREDVAR)Property' Root='HKLM'
Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@' Key='SOFTWARE\Monty Program AB\@CPACK_WIX_PACKAGE_NAME@'
Name='$(var.STOREDVAR)' Type='raw' /> Name='$(var.STOREDVAR)' Type='raw' />
</Property> </Property>
<CustomAction Id='SaveCmdLineValue_$(var.STOREDVAR)' Property='CMDLINE_$(var.STOREDVAR)' <CustomAction Id='SaveCmdLineValue_$(var.STOREDVAR)' Property='CMDLINE_$(var.STOREDVAR)'
Value='[$(var.STOREDVAR)]' Execute='firstSequence' /> Value='[$(var.STOREDVAR)]' Execute='firstSequence' />
<CustomAction Id='SetFromCmdLineValue_$(var.STOREDVAR)' Property='$(var.STOREDVAR)' <CustomAction Id='SetFromCmdLineValue_$(var.STOREDVAR)' Property='$(var.STOREDVAR)'
Value='[CMDLINE_$(var.STOREDVAR)]' Execute='firstSequence' /> Value='[CMDLINE_$(var.STOREDVAR)]' Execute='firstSequence' />
<InstallUISequence> <InstallUISequence>
<Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' /> <Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom> <Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom>
</InstallUISequence> </InstallUISequence>
<InstallExecuteSequence> <InstallExecuteSequence>
<Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' /> <Custom Action='SaveCmdLineValue_$(var.STOREDVAR)' Before='AppSearch' />
<Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom> <Custom Action='SetFromCmdLineValue_$(var.STOREDVAR)' After='AppSearch'>CMDLINE_$(var.STOREDVAR)</Custom>
</InstallExecuteSequence> </InstallExecuteSequence>
<?endforeach?> <?endforeach?>
<!-- <!--
Optionally, start upgrade wizard on exit. Optionally, start upgrade wizard on exit.
--> -->
<?if $(var.HaveUpgradeWizard) != "0" ?> <?if $(var.HaveUpgradeWizard) != "0" ?>
<UI> <UI>
<Publish Dialog="ExitDialog" <Publish Dialog="ExitDialog"
Control="Finish" Control="Finish"
Event="DoAction" Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish> Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI> </UI>
<Property <Property
Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
Value="Launch wizard to upgrade existing MariaDB or MySQL services." /> Value="Launch wizard to upgrade existing MariaDB or MySQL services." />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="0"/> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="0"/>
<Property Id="WixShellExecTarget" Value="[#F.bin.mysql_upgrade_wizard.exe]" /> <Property Id="WixShellExecTarget" Value="[#F.bin.mysql_upgrade_wizard.exe]" />
<CustomAction Id="LaunchApplication" <CustomAction Id="LaunchApplication"
BinaryKey="WixCA" BinaryKey="WixCA"
DllEntry="WixShellExec" DllEntry="WixShellExec"
Impersonate="yes" /> Impersonate="yes" />
<CustomAction <CustomAction
Id="CheckServiceUpgrades" Return="ignore" BinaryKey="wixca.dll" Id="CheckServiceUpgrades" Return="ignore" BinaryKey="wixca.dll"
DllEntry="CheckServiceUpgrades" DllEntry="CheckServiceUpgrades"
Execute="immediate" /> Execute="immediate" />
<InstallUISequence> <InstallUISequence>
<Custom Action="CheckServiceUpgrades" After="CostFinalize"> <Custom Action="CheckServiceUpgrades" After="CostFinalize">
$C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed AND NOT OLDERVERSIONBEINGUPGRADED $C.bin.mysql_upgrade_wizard.exe = 3 AND NOT Installed AND NOT OLDERVERSIONBEINGUPGRADED
</Custom> </Custom>
</InstallUISequence> </InstallUISequence>
<SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" <SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
Sequence="ui" Value="[NonExistentProperty]"> Sequence="ui" Value="[NonExistentProperty]">
<![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]> <![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
</SetProperty> </SetProperty>
<SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" <SetProperty Before="ExecuteAction" Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX"
Sequence="ui" Value="[NonExistentProperty]"> Sequence="ui" Value="[NonExistentProperty]">
<![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]> <![CDATA[($C.bin.mysql_upgrade_wizard.exe <> 3) AND NOT Installed OR OLDERVERSIONBEINGUPGRADED]]>
</SetProperty> </SetProperty>
<?endif ?> <!-- HaveUpgradeWizard --> <?endif ?> <!-- HaveUpgradeWizard -->
<!-- <!--
Author the registry entries for "add or remove programs" Author the registry entries for "add or remove programs"
We choose to define ARPSYSTEMCOMPONENT to 1 because we want to show We choose to define ARPSYSTEMCOMPONENT to 1 because we want to show
"do you want to remove data directory" on uninstall "do you want to remove data directory" on uninstall
--> -->
<Property Id="ARPSYSTEMCOMPONENT" Value="1" Secure="yes" /> <Property Id="ARPSYSTEMCOMPONENT" Value="1" Secure="yes" />
<Property Id="ARPINSTALLLOCATION" Secure="yes"/> <Property Id="ARPINSTALLLOCATION" Secure="yes"/>
<SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLDIR]" After="InstallValidate" Sequence="execute"/> <SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLDIR]" After="InstallValidate" Sequence="execute"/>
<Feature Id='ARPRegistryEntries' <Feature Id='ARPRegistryEntries'
Title='Add or remove program entries' Title='Add or remove program entries'
Description='Add or remove program entries' Description='Add or remove program entries'
AllowAdvertise='no' AllowAdvertise='no'
Absent='disallow' Display='hidden' Absent='disallow' Display='hidden'
Level='1'> Level='1'>
<Component Id="C.arp_entries" Guid="*" Directory="INSTALLDIR"> <Component Id="C.arp_entries" Guid="*" Directory="INSTALLDIR">
<RemoveFolder Id="RemoveINSTALLDIR" On="uninstall"/> <RemoveFolder Id="RemoveINSTALLDIR" On="uninstall"/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='DisplayName' Value='[ProductName]' Type='string' KeyPath='yes'/> Name='DisplayName' Value='[ProductName]' Type='string' KeyPath='yes'/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='Publisher' Value='@MANUFACTURER@' Type='string'/> Name='Publisher' Value='@MANUFACTURER@' Type='string'/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='DisplayVersion' Value='[ProductVersion]' Type='string'/> Name='DisplayVersion' Value='[ProductVersion]' Type='string'/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='InstallLocation' Value='[INSTALLDIR]' Type='string'/> Name='InstallLocation' Value='[INSTALLDIR]' Type='string'/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='UninstallString' Value='msiexec.exe /I [ProductCode]' Type='string'/> Name='UninstallString' Value='msiexec.exe /I [ProductCode]' Type='string'/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='MajorVersion' Value='@MAJOR_VERSION@' Type='string'/> Name='MajorVersion' Value='@MAJOR_VERSION@' Type='string'/>
<RegistryValue Root='HKLM' <RegistryValue Root='HKLM'
Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_WIX_PACKAGE_NAME@'
Name='MinorVersion' Value='@MINOR_VERSION@' Type='string'/> Name='MinorVersion' Value='@MINOR_VERSION@' Type='string'/>
</Component> </Component>
</Feature> </Feature>
<!-- Extra condition to block the installer if NSIS based installation is detected--> <!-- Extra condition to block the installer if NSIS based installation is detected-->
<Property Id="NSISINSTALLKEY"> <Property Id="NSISINSTALLKEY">
<RegistrySearch Id='NSISKey' Type='raw' <RegistrySearch Id='NSISKey' Type='raw'
Root='HKLM' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\MariaDB' Name='DisplayName' /> Root='HKLM' Key='Software\Microsoft\Windows\CurrentVersion\Uninstall\MariaDB' Name='DisplayName' />
</Property> </Property>
<Condition <Condition
Message= Message=
'Previous version of MariaDB was found, that used incompatible installer.&#xD;&#xA;Please remove &quot;[NSISINSTALLKEY]&quot; before you proceed with this installation.' 'Previous version of MariaDB was found, that used incompatible installer.&#xD;&#xA;Please remove &quot;[NSISINSTALLKEY]&quot; before you proceed with this installation.'
> >
<![CDATA[ NOT(NSISINSTALLKEY << "MariaDB @MAJOR_VERSION@.@MINOR_VERSION@.") OR Installed]]> <![CDATA[ NOT(NSISINSTALLKEY << "MariaDB @MAJOR_VERSION@.@MINOR_VERSION@.") OR Installed]]>
</Condition> </Condition>
<Condition Message= <Condition Message=
'Setting the ALLUSERS property is not allowed because [ProductName] is a per-machine application. Setup will now exit.'> 'Setting the ALLUSERS property is not allowed because [ProductName] is a per-machine application. Setup will now exit.'>
<![CDATA[ALLUSERS = "1"]]> <![CDATA[ALLUSERS = "1"]]>
</Condition> </Condition>
</Fragment> </Fragment>
</Wix> </Wix>
<Include> <Include>
<Feature Id="HeidiSQL" <Feature Id="HeidiSQL"
Title='HeidiSQL' Title='HeidiSQL'
Description= 'Powerful, easy and free MySQL/MariaDB GUI client by Ansgar Becker' Description= 'Powerful, easy and free MySQL/MariaDB GUI client by Ansgar Becker'
AllowAdvertise='no' AllowAdvertise='no'
Level='1'> Level='1'>
<Condition Level="0">HEIDISQLINSTALLED AND NOT REMOVE ~= ALL</Condition> <Condition Level="0">HEIDISQLINSTALLED AND NOT REMOVE ~= ALL</Condition>
<ComponentGroupRef Id='HeidiSQL'/> <ComponentGroupRef Id='HeidiSQL'/>
</Feature> </Feature>
</Include> </Include>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product <Product
Id="*" Id="*"
UpgradeCode="@CPACK_WIX_UPGRADE_CODE@" UpgradeCode="@CPACK_WIX_UPGRADE_CODE@"
Name="@CPACK_WIX_PACKAGE_NAME@" Name="@CPACK_WIX_PACKAGE_NAME@"
Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@" Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@"
Language="1033" Language="1033"
Manufacturer="@MANUFACTURER@"> Manufacturer="@MANUFACTURER@">
<Package Id='*' <Package Id='*'
Keywords='Installer' Keywords='Installer'
Description='MariaDB Server' Description='MariaDB Server'
Manufacturer='@MANUFACTURER@' Manufacturer='@MANUFACTURER@'
InstallerVersion='200' InstallerVersion='200'
Languages='1033' Languages='1033'
Compressed='yes' Compressed='yes'
SummaryCodepage='1252' SummaryCodepage='1252'
Platform='@Platform@'/> Platform='@Platform@'/>
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel='high' /> <Media Id='1' Cabinet='product.cab' EmbedCab='yes' CompressionLevel='high' />
<!-- Upgrade --> <!-- Upgrade -->
<Upgrade Id="@CPACK_WIX_UPGRADE_CODE@"> <Upgrade Id="@CPACK_WIX_UPGRADE_CODE@">
<?if "@PATCH_VERSION@" != "0"?> <?if "@PATCH_VERSION@" != "0"?>
<UpgradeVersion <UpgradeVersion
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0" Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0"
IncludeMinimum="yes" IncludeMinimum="yes"
Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@" Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@"
IncludeMaximum="yes" IncludeMaximum="yes"
Property="OLDERVERSIONBEINGUPGRADED" Property="OLDERVERSIONBEINGUPGRADED"
MigrateFeatures="yes" MigrateFeatures="yes"
/> />
<?endif?> <?endif?>
<UpgradeVersion <UpgradeVersion
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@" Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.@TINY_VERSION@"
Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.999" Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.999"
IncludeMinimum="no" IncludeMinimum="no"
OnlyDetect="yes" OnlyDetect="yes"
Property="NEWERVERSIONDETECTED" /> Property="NEWERVERSIONDETECTED" />
</Upgrade> </Upgrade>
<Condition Message="A more recent version of [ProductName] is already installed. Setup will now exit."> <Condition Message="A more recent version of [ProductName] is already installed. Setup will now exit.">
NOT NEWERVERSIONDETECTED OR Installed NOT NEWERVERSIONDETECTED OR Installed
</Condition> </Condition>
<InstallExecuteSequence> <InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize"/> <RemoveExistingProducts After="InstallFinalize"/>
</InstallExecuteSequence> </InstallExecuteSequence>
<InstallUISequence> <InstallUISequence>
<AppSearch After="FindRelatedProducts"/> <AppSearch After="FindRelatedProducts"/>
</InstallUISequence> </InstallUISequence>
<!-- UI --> <!-- UI -->
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property>
<UIRef Id="WixUI_ErrorProgressText" /> <UIRef Id="WixUI_ErrorProgressText" />
<UIRef Id="@CPACK_WIX_UI@" /> <UIRef Id="@CPACK_WIX_UI@" />
<!-- License --> <!-- License -->
<WixVariable <WixVariable
Id="WixUILicenseRtf" Id="WixUILicenseRtf"
Value="@COPYING_RTF@"/> Value="@COPYING_RTF@"/>
<!-- Installation root--> <!-- Installation root-->
<Directory Id='TARGETDIR' Name='SourceDir'> <Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='@PlatformProgramFilesFolder@'> <Directory Id='@PlatformProgramFilesFolder@'>
<Directory Id='INSTALLDIR' Name='@CPACK_WIX_PACKAGE_BASE_NAME@ @MAJOR_VERSION@.@MINOR_VERSION@'> <Directory Id='INSTALLDIR' Name='@CPACK_WIX_PACKAGE_BASE_NAME@ @MAJOR_VERSION@.@MINOR_VERSION@'>
</Directory> </Directory>
</Directory> </Directory>
</Directory> </Directory>
<!-- CPACK_WIX_FEATURES --> <!-- CPACK_WIX_FEATURES -->
@CPACK_WIX_FEATURES@ @CPACK_WIX_FEATURES@
<!-- CPACK_WIX_DIRECTORIES --> <!-- CPACK_WIX_DIRECTORIES -->
@CPACK_WIX_DIRECTORIES@ @CPACK_WIX_DIRECTORIES@
<!--CPACK_WIX_COMPONENTS--> <!--CPACK_WIX_COMPONENTS-->
@CPACK_WIX_COMPONENTS@ @CPACK_WIX_COMPONENTS@
<!--CPACK_WIX_COMPONENTS_GROUPS --> <!--CPACK_WIX_COMPONENTS_GROUPS -->
@CPACK_WIX_COMPONENT_GROUPS@ @CPACK_WIX_COMPONENT_GROUPS@
<!--CPACK_WIX_INCLUDES --> <!--CPACK_WIX_INCLUDES -->
@CPACK_WIX_INCLUDES@ @CPACK_WIX_INCLUDES@
</Product> </Product>
</Wix> </Wix>
// stdafx.h : include file for standard system include files, // stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, // or project specific include files that are used frequently,
// but are changed infrequently // but are changed infrequently
#pragma once #pragma once
#ifndef _SECURE_ATL #ifndef _SECURE_ATL
#define _SECURE_ATL 1 #define _SECURE_ATL 1
#endif #endif
#ifndef VC_EXTRALEAN #ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#endif #endif
#include "targetver.h" #include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
// turns off MFC's hiding of some common and often safely ignored warning messages // turns off MFC's hiding of some common and often safely ignored warning messages
#define _AFX_ALL_WARNINGS #define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC core and standard components #include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions #include <afxext.h> // MFC extensions
#ifndef _AFX_NO_OLE_SUPPORT #ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls #include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#endif #endif
#ifndef _AFX_NO_AFXCMN_SUPPORT #ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls #include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT #endif // _AFX_NO_AFXCMN_SUPPORT
#pragma once #pragma once
// Including SDKDDKVer.h defines the highest available Windows platform. // Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#include <SDKDDKVer.h> #include <SDKDDKVer.h>
// upgrade.cpp : Defines the class behaviors for the application. // upgrade.cpp : Defines the class behaviors for the application.
// //
#include "stdafx.h" #include "stdafx.h"
#include "upgrade.h" #include "upgrade.h"
#include "upgradeDlg.h" #include "upgradeDlg.h"
#ifdef _DEBUG #ifdef _DEBUG
#define new DEBUG_NEW #define new DEBUG_NEW
#endif #endif
// CUpgradeApp // CUpgradeApp
BEGIN_MESSAGE_MAP(CUpgradeApp, CWinApp) BEGIN_MESSAGE_MAP(CUpgradeApp, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP() END_MESSAGE_MAP()
// CUpgradeApp construction // CUpgradeApp construction
CUpgradeApp::CUpgradeApp() CUpgradeApp::CUpgradeApp()
{ {
// TODO: add construction code here, // TODO: add construction code here,
// Place all significant initialization in InitInstance // Place all significant initialization in InitInstance
} }
// The one and only CUpgradeApp object // The one and only CUpgradeApp object
CUpgradeApp theApp; CUpgradeApp theApp;
// CUpgradeApp initialization // CUpgradeApp initialization
BOOL CUpgradeApp::InitInstance() BOOL CUpgradeApp::InitInstance()
{ {
// InitCommonControlsEx() is required on Windows XP if an application // InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable // manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail. // visual styles. Otherwise, any window creation will fail.
INITCOMMONCONTROLSEX InitCtrls; INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls); InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use // Set this to include all the common control classes you want to use
// in your application. // in your application.
InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls); InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance(); CWinApp::InitInstance();
CUpgradeDlg dlg; CUpgradeDlg dlg;
m_pMainWnd = &dlg; m_pMainWnd = &dlg;
dlg.DoModal(); dlg.DoModal();
// Since the dialog has been closed, return FALSE so that we exit the // Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump. // application, rather than start the application's message pump.
return FALSE; return FALSE;
} }
// zzz.h : main header file for the PROJECT_NAME application // zzz.h : main header file for the PROJECT_NAME application
// //
#pragma once #pragma once
#ifndef __AFXWIN_H__ #ifndef __AFXWIN_H__
#error "include 'stdafx.h' before including this file for PCH" #error "include 'stdafx.h' before including this file for PCH"
#endif #endif
#include "resource.h" // main symbols #include "resource.h" // main symbols
// CzzzApp: // CzzzApp:
// See zzz.cpp for the implementation of this class // See zzz.cpp for the implementation of this class
// //
class CUpgradeApp : public CWinApp class CUpgradeApp : public CWinApp
{ {
public: public:
CUpgradeApp(); CUpgradeApp();
// Overrides // Overrides
public: public:
virtual BOOL InitInstance(); virtual BOOL InitInstance();
// Implementation // Implementation
DECLARE_MESSAGE_MAP() DECLARE_MESSAGE_MAP()
}; };
extern CUpgradeApp theApp; extern CUpgradeApp theApp;
\ No newline at end of file
// Microsoft Visual C++ generated resource script. // Microsoft Visual C++ generated resource script.
// //
#include "resource.h" #include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS #define APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#ifndef APSTUDIO_INVOKED #ifndef APSTUDIO_INVOKED
#include "targetver.h" #include "targetver.h"
#endif #endif
#include "afxres.h" #include "afxres.h"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// German (Germany) resources // German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// TEXTINCLUDE // TEXTINCLUDE
// //
1 TEXTINCLUDE 1 TEXTINCLUDE
BEGIN BEGIN
"resource.h\0" "resource.h\0"
END END
2 TEXTINCLUDE 2 TEXTINCLUDE
BEGIN BEGIN
"#ifndef APSTUDIO_INVOKED\r\n" "#ifndef APSTUDIO_INVOKED\r\n"
"#include ""targetver.h""\r\n" "#include ""targetver.h""\r\n"
"#endif\r\n" "#endif\r\n"
"#include ""afxres.h""\r\n" "#include ""afxres.h""\r\n"
"\0" "\0"
END END
3 TEXTINCLUDE 3 TEXTINCLUDE
BEGIN BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n" "#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n" "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n" "\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"LANGUAGE 9, 1\r\n" "LANGUAGE 9, 1\r\n"
"#include ""res\\upgrade.rc2"" // non-Microsoft Visual C++ edited resources\r\n" "#include ""res\\upgrade.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n" "#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n" "#endif\r\n"
"\0" "\0"
END END
#endif // APSTUDIO_INVOKED #endif // APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Icon // Icon
// //
// Icon with lowest ID value placed first to ensure application icon // Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems. // remains consistent on all systems.
IDR_MAINFRAME ICON "res\\upgrade.ico" IDR_MAINFRAME ICON "res\\upgrade.ico"
#endif // German (Germany) resources #endif // German (Germany) resources
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// English (United States) resources // English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Dialog // Dialog
// //
IDD_UPGRADE_DIALOG DIALOGEX 0, 0, 320, 200 IDD_UPGRADE_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW EXSTYLE WS_EX_APPWINDOW
CAPTION "MariaDB Upgrade Wizard" CAPTION "MariaDB Upgrade Wizard"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "OK",IDOK,113,169,50,14 DEFPUSHBUTTON "OK",IDOK,113,169,50,14
PUSHBUTTON "Cancel",IDCANCEL,191,169,50,14 PUSHBUTTON "Cancel",IDCANCEL,191,169,50,14
LISTBOX IDC_LIST1,24,39,216,80,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LISTBOX IDC_LIST1,24,39,216,80,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_EDIT1,97,124,193,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER EDITTEXT IDC_EDIT1,97,124,193,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
EDITTEXT IDC_EDIT2,98,138,181,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER EDITTEXT IDC_EDIT2,98,138,181,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
CONTROL "",IDC_PROGRESS1,"msctls_progress32",PBS_SMOOTH | WS_BORDER,26,153,243,14 CONTROL "",IDC_PROGRESS1,"msctls_progress32",PBS_SMOOTH | WS_BORDER,26,153,243,14
EDITTEXT IDC_EDIT3,98,151,40,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER EDITTEXT IDC_EDIT3,98,151,40,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
EDITTEXT IDC_EDIT7,27,124,65,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER EDITTEXT IDC_EDIT7,27,124,65,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
EDITTEXT IDC_EDIT8,27,137,62,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER EDITTEXT IDC_EDIT8,27,137,62,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
EDITTEXT IDC_EDIT9,27,151,62,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER EDITTEXT IDC_EDIT9,27,151,62,14,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
PUSHBUTTON "Select all",IDC_BUTTON1,245,61,50,14 PUSHBUTTON "Select all",IDC_BUTTON1,245,61,50,14
PUSHBUTTON "Clear all",IDC_BUTTON2,246,88,50,14 PUSHBUTTON "Clear all",IDC_BUTTON2,246,88,50,14
LTEXT "Select services you want to upgrade and click on the [Upgrade] button.\nMake sure to backup data directories prior to upgrade.",IDC_STATIC,25,14,215,26 LTEXT "Select services you want to upgrade and click on the [Upgrade] button.\nMake sure to backup data directories prior to upgrade.",IDC_STATIC,25,14,215,26
END END
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// DESIGNINFO // DESIGNINFO
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO GUIDELINES DESIGNINFO
BEGIN BEGIN
IDD_UPGRADE_DIALOG, DIALOG IDD_UPGRADE_DIALOG, DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7
RIGHTMARGIN, 313 RIGHTMARGIN, 313
TOPMARGIN, 7 TOPMARGIN, 7
BOTTOMMARGIN, 193 BOTTOMMARGIN, 193
END END
END END
#endif // APSTUDIO_INVOKED #endif // APSTUDIO_INVOKED
#endif // English (United States) resources #endif // English (United States) resources
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED #ifndef APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Generated from the TEXTINCLUDE 3 resource. // Generated from the TEXTINCLUDE 3 resource.
// //
#define _AFX_NO_SPLITTER_RESOURCES #define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES #define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES #define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES #define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1 LANGUAGE 9, 1
#include "res\upgrade.rc2" // non-Microsoft Visual C++ edited resources #include "res\upgrade.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components #include "afxres.rc" // Standard components
#endif #endif
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED #endif // not APSTUDIO_INVOKED
// upgradeDlg.h : header file // upgradeDlg.h : header file
// //
#pragma once #pragma once
#include "afxcmn.h" #include "afxcmn.h"
#include "afxwin.h" #include "afxwin.h"
#include <string> #include <string>
// CUpgradeDlg dialog // CUpgradeDlg dialog
class CUpgradeDlg : public CDialog class CUpgradeDlg : public CDialog
{ {
// Construction // Construction
public: public:
CUpgradeDlg(CWnd* pParent = NULL); // standard constructor CUpgradeDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data // Dialog Data
enum { IDD = IDD_UPGRADE_DIALOG }; enum { IDD = IDD_UPGRADE_DIALOG };
protected: protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// job object for current process and children // job object for current process and children
HANDLE m_JobObject; HANDLE m_JobObject;
// Services are being upgraded // Services are being upgraded
BOOL m_UpgradeRunning; BOOL m_UpgradeRunning;
// ProgressBar related: number of services to upgrade // ProgressBar related: number of services to upgrade
int m_ProgressTotal; int m_ProgressTotal;
//ProgressBar related: current service being upgraded //ProgressBar related: current service being upgraded
int m_ProgressCurrent; int m_ProgressCurrent;
protected: protected:
HICON m_hIcon; HICON m_hIcon;
// Generated message map functions // Generated message map functions
virtual BOOL OnInitDialog(); virtual BOOL OnInitDialog();
void PopulateServicesList(); void PopulateServicesList();
afx_msg void OnPaint(); afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon(); afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP() DECLARE_MESSAGE_MAP()
public: public:
void SelectService(int index); void SelectService(int index);
void UpgradeServices(); void UpgradeServices();
void UpgradeOneService(const std::string& name); void UpgradeOneService(const std::string& name);
void ErrorExit(const char *); void ErrorExit(const char *);
std::string m_InstallDir; std::string m_InstallDir;
CCheckListBox m_Services; CCheckListBox m_Services;
CProgressCtrl m_Progress; CProgressCtrl m_Progress;
CButton m_Ok; CButton m_Ok;
CButton m_Cancel; CButton m_Cancel;
CButton m_SelectAll; CButton m_SelectAll;
CButton m_ClearAll; CButton m_ClearAll;
int m_MajorVersion; int m_MajorVersion;
int m_MinorVersion; int m_MinorVersion;
int m_PatchVersion; int m_PatchVersion;
CEdit m_IniFilePath; CEdit m_IniFilePath;
afx_msg void OnLbnSelchangeList1(); afx_msg void OnLbnSelchangeList1();
afx_msg void OnChkChange(); afx_msg void OnChkChange();
CEdit m_DataDir; CEdit m_DataDir;
CEdit m_Version; CEdit m_Version;
afx_msg void OnBnClickedOk(); afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel(); afx_msg void OnBnClickedCancel();
afx_msg void OnBnSelectAll(); afx_msg void OnBnSelectAll();
afx_msg void OnBnClearAll(); afx_msg void OnBnClearAll();
CEdit m_IniFileLabel; CEdit m_IniFileLabel;
CEdit m_DataDirLabel; CEdit m_DataDirLabel;
CEdit m_VersionLabel; CEdit m_VersionLabel;
}; };
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security> <security>
<requestedPrivileges> <requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>
<dependency> <dependency>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly> </dependentAssembly>
</dependency> </dependency>
</assembly> </assembly>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment