mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
dd9ff1276d
Fix some issues with WiX packaging, particularly major upgrade and change scenarios. * remember binary location and data location (for major upgrade) * use custom UI, which is WiX Mondo extended for major upgrade dialog (no feature selection screen shown on major upgrade, only upgrade confirmation). This is necessary to prevent changing installation path during upgrade (services are not reregistered, so they would have invalid binary path is it is changed) * Hide datafiles that are installed into ProgramFiles, show ones that are installed in ProgramData * Make MSI buildable with nmake * Fix autotools "make dist"
163 lines
No EOL
5.9 KiB
Text
163 lines
No EOL
5.9 KiB
Text
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
|
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
|
<Product
|
|
Id="*"
|
|
UpgradeCode="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3"
|
|
Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@"
|
|
Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH@"
|
|
Language="1033"
|
|
Manufacturer="@MANUFACTURER@">
|
|
|
|
<Package Id='*'
|
|
Keywords='Installer'
|
|
Description="MySQL Database Server"
|
|
Manufacturer='@MANUFACTURER@'
|
|
InstallerVersion='200'
|
|
Languages='1033'
|
|
Compressed='yes'
|
|
SummaryCodepage='1252'
|
|
Platform='@Platform@'/>
|
|
|
|
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' />
|
|
|
|
<!-- Upgrade -->
|
|
<Upgrade Id="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3">
|
|
<UpgradeVersion
|
|
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.0"
|
|
IncludeMinimum="yes"
|
|
Maximum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH@"
|
|
Property="OLDERVERSIONBEINGUPGRADED"
|
|
MigrateFeatures="yes"
|
|
/>
|
|
<UpgradeVersion
|
|
Minimum="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH@"
|
|
OnlyDetect="yes"
|
|
Property="NEWERVERSIONDETECTED" />
|
|
</Upgrade>
|
|
<Condition Message="A later version of [ProductName] is already installed. Setup will now exit.">
|
|
NOT NEWERVERSIONDETECTED OR Installed
|
|
</Condition>
|
|
<InstallExecuteSequence>
|
|
<RemoveExistingProducts After="InstallInitialize"/>
|
|
</InstallExecuteSequence>
|
|
|
|
<!-- Save/restore install location -->
|
|
<CustomAction Id="SaveTargetDir" Property="ARPINSTALLLOCATION" Value="[INSTALLDIR]" />
|
|
<InstallExecuteSequence>
|
|
<Custom Action="SaveTargetDir" After="InstallValidate">
|
|
NOT
|
|
Installed
|
|
</Custom>
|
|
</InstallExecuteSequence>
|
|
<InstallUISequence>
|
|
<!-- App search is what does FindInstallLocation, and it is dependent on FindRelatedProducts -->
|
|
<AppSearch After="FindRelatedProducts"/>
|
|
</InstallUISequence>
|
|
|
|
<!-- Find previous installation -->
|
|
<Property Id="INSTALLDIR">
|
|
<RegistrySearch Id="FindInstallLocation"
|
|
Root="HKLM"
|
|
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
|
|
Name="InstallLocation"
|
|
Type="raw" />
|
|
</Property>
|
|
<Property Id="OLDERVERSION">
|
|
<RegistrySearch Id="FindOlderVersion"
|
|
Root="HKLM"
|
|
Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[OLDERVERSIONBEINGUPGRADED]"
|
|
Name="DisplayVersion"
|
|
Type="raw" />
|
|
</Property>
|
|
<Property Id="DATADIR">
|
|
<RegistrySearch Id="FindDataDir"
|
|
Root="HKLM"
|
|
Key="SOFTWARE\MySQL AB\[ProductName]"
|
|
Name="DataLocation"
|
|
Type="raw" />
|
|
</Property>
|
|
<Property Id="INSTALLDIR2">
|
|
<RegistrySearch Id="FindInstallLocation2"
|
|
Root="HKLM"
|
|
Key="SOFTWARE\MySQL AB\[ProductName]"
|
|
Name="Location"
|
|
Type="raw" />
|
|
</Property>
|
|
<CustomAction Id="SetInstallDir2" Property="INSTALLDIR" Value="[INSTALLDIR2]" />
|
|
<InstallUISequence>
|
|
<Custom Action="SetInstallDir2" After="AppSearch">INSTALLDIR2</Custom>
|
|
</InstallUISequence>
|
|
|
|
|
|
<!-- UI -->
|
|
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"></Property>
|
|
<UIRef Id="@CPACK_WIX_UI@" />
|
|
<UIRef Id="WixUI_ErrorProgressText" />
|
|
<WixVariable
|
|
Id="WixUIBannerBmp"
|
|
Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminHeader.jpg" />
|
|
<WixVariable
|
|
Id="WixUIDialogBmp"
|
|
Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminBackground.jpg" />
|
|
<Icon
|
|
Id="icon.ico"
|
|
SourceFile="@CMAKE_CURRENT_SOURCE_DIR@/MySQLServer.ico"/>
|
|
<Property
|
|
Id="ARPPRODUCTICON"
|
|
Value="icon.ico" />
|
|
|
|
<!-- License -->
|
|
<WixVariable
|
|
Id="WixUILicenseRtf"
|
|
Value="@COPYING_RTF@"/>
|
|
|
|
<!-- How to remove the service on uninstall -->
|
|
<Binary Id='wixca.dll' SourceFile='@WIXCA_LOCATION@' />
|
|
<CustomAction Id="UnregisterProperty" Property="UnregisterService" Value="[INSTALLDIR]" Return="check" />
|
|
<CustomAction Id="UnregisterPropertySilent" Property="UnregisterServiceSilently" Value="[INSTALLDIR]" Return="check" />
|
|
<CustomAction Id="UnregisterService"
|
|
BinaryKey="wixca.dll"
|
|
DllEntry="RemoveService"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Return="check" />
|
|
<CustomAction Id="UnregisterServiceSilently"
|
|
BinaryKey="wixca.dll"
|
|
DllEntry="RemoveServiceNoninteractive"
|
|
Execute="deferred"
|
|
Impersonate="no"
|
|
Return="check" />
|
|
<InstallExecuteSequence>
|
|
<Custom Action="UnregisterProperty" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE</Custom>
|
|
<Custom Action="UnregisterPropertySilent" After="InstallInitialize">Installed And Not UPGRADINGPRODUCTCODE</Custom>
|
|
<Custom Action="UnregisterService" After="UnregisterProperty">Installed And Not UPGRADINGPRODUCTCODE And UILevel>4</Custom>
|
|
<Custom Action="UnregisterServiceSilently" After="UnregisterPropertySilent">Installed And Not UPGRADINGPRODUCTCODE And UILevel<=4</Custom>
|
|
</InstallExecuteSequence>
|
|
|
|
<!-- Installation root-->
|
|
<Directory Id='TARGETDIR' Name='SourceDir'>
|
|
<Directory Id='@PlatformProgramFilesFolder@'>
|
|
<Directory Id='directory.MySQL' Name='MySQL'>
|
|
<Directory Id='INSTALLDIR' Name='MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@'>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
</Directory>
|
|
|
|
<!-- CPACK_WIX_FEATURES -->
|
|
@CPACK_WIX_FEATURES@
|
|
|
|
<!-- CPACK_WIX_DIRECTORIES -->
|
|
@CPACK_WIX_DIRECTORIES@
|
|
|
|
<!--CPACK_WIX_COMPONENTS-->
|
|
@CPACK_WIX_COMPONENTS@
|
|
|
|
<!--CPACK_WIX_COMPONENTS_GROUPS -->
|
|
@CPACK_WIX_COMPONENT_GROUPS@
|
|
|
|
<!--CPACK_WIX_INCLUDES -->
|
|
@CPACK_WIX_INCLUDES@
|
|
</Product>
|
|
|
|
</Wix> |