Branch: Tag:

2009-02-16

2009-02-16 13:03:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Reworked the mysql-location.txt generation once more.

Rev: server/etc/RoxenUI.wxs:1.62

1182:    <FileSearch LongName="mysql-location.txt" />    </DirectorySearch>    </Property> -  <Property Id="MYSQLDUMMY"> -  <!-- Fallback in case the registry searches fail. --> -  <!-- -  <DirectorySearch Id="MysqlLocation64" Path="[ProgramFiles64Folder]\MySQL" Depth="2"> -  <DirectorySearch Id="MysqlBase64"> -  <DirectorySearch Id="MysqlBin64" Path="bin"/> -  </DirectorySearch> -  </DirectorySearch> -  --> -  <DirectorySearch Id="MysqlLocation32" Path="[ProgramFilesFolder]\MySQL" Depth="2"> -  <DirectorySearch Id="MysqlBase32"> -  <DirectorySearch Id="MysqlBin32" Path="bin"/> -  </DirectorySearch> -  </DirectorySearch> -  </Property> +     <Property Id="MYSQLNAME"> -  <!-- Used to find the proper key in the registry. --> +  <!-- Used to find the proper key in the registry. +  Unfortunately, this doesn't work, since the evaluation order +  is unspecified. +  -->    <RegistrySearch Id="MysqlName" Root="HKLM"    Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{8F5E3B9E-ABBD-4B35-BB68-626CB9BE98D6}"    Name="DisplayName" Type="raw"/>    </Property> -  <Property Id="MYSQLBASE"> +  <Property Id="MYSQLDEXE"> +  <!-- NB: This rule would do the right thing if the evaluation +  order was specified... -->    <RegistrySearch Id="MysqlLocation" Root="HKLM" -  Key="SOFTWARE\MySQL AB\[MYSQLNAME]" Name="Location" Type="raw" /> +  Key="SOFTWARE\MySQL AB\[MYSQLNAME]" Name="Location" Type="directory"> +  <DirectorySearch Id="MysqldBin1" Path="bin"> +  <FileSearch LongName="mysqld.exe" /> +  </DirectorySearch> +  </RegistrySearch> +  <!-- Instead we need to fall back to doing it be hand... -->    <RegistrySearch Id="Mysql51Location" Root="HKLM" -  Key="SOFTWARE\MySQL AB\MySQL Server 5.1" Name="Location" Type="raw" /> +  Key="SOFTWARE\MySQL AB\MySQL Server 5.1" Name="Location" Type="directory"> +  <DirectorySearch Id="MysqldBin2" Path="bin"> +  <FileSearch LongName="mysqld.exe" /> +  </DirectorySearch> +  </RegistrySearch>    <RegistrySearch Id="Mysql50Location" Root="HKLM" -  Key="SOFTWARE\MySQL AB\MySQL Server 5.0" Name="Location" Type="raw" /> +  Key="SOFTWARE\MySQL AB\MySQL Server 5.0" Name="Location" Type="directory"> +  <DirectorySearch Id="MysqldBin3" Path="bin"> +  <FileSearch LongName="mysqld.exe" /> +  </DirectorySearch> +  </RegistrySearch>    <RegistrySearch Id="Mysql41Location" Root="HKLM" -  Key="SOFTWARE\MySQL AB\MySQL Server 4.1" Name="Location" Type="raw" /> -  <!-- -  <DirectorySearchRef Id="MysqlBase64" Parent="MysqlLocation64"/> -  --> -  <DirectorySearchRef Id="MysqlBase32" Parent="MysqlLocation32"/> -  </Property> -  <Property Id="MYSQLDEXE"> -  <DirectorySearch Id="MysqldBase" Path="[MYSQLBASE]"> -  <DirectorySearch Id="MysqldBin" Path="bin"> +  Key="SOFTWARE\MySQL AB\MySQL Server 4.1" Name="Location" Type="directory"> +  <DirectorySearch Id="MysqldBin4" Path="bin">    <FileSearch LongName="mysqld.exe" />    </DirectorySearch> -  +  </RegistrySearch> +  <!-- Not in the registry, try searching in Program Files. --> +  <DirectorySearch Id="MysqlLocation5" Path="[ProgramFilesFolder]\MySQL" Depth="2"> +  <DirectorySearch Id="MysqlBase5"> +  <DirectorySearch Id="MysqlBin5" Path="bin"> +  <FileSearch LongName="mysqld.exe" />    </DirectorySearch> -  +  </DirectorySearch> +  </DirectorySearch>    </Property>    <Property Id="MYISAMCHKEXE"> -  <DirectorySearch Id="MyisamBase" Path="[MYSQLBASE]"> -  <DirectorySearch Id="MyisamBin" Path="bin"> +  <RegistrySearch Id="MysqlLocation" Root="HKLM" +  Key="SOFTWARE\MySQL AB\[MYSQLNAME]" Name="Location" Type="directory"> +  <DirectorySearch Id="MyisamBin1" Path="bin">    <FileSearch LongName="myisamchk.exe" />    </DirectorySearch> -  +  </RegistrySearch> +  <RegistrySearch Id="Mysql51Location" Root="HKLM" +  Key="SOFTWARE\MySQL AB\MySQL Server 5.1" Name="Location" Type="directory"> +  <DirectorySearch Id="MyisamBin2" Path="bin"> +  <FileSearch LongName="myisamchk.exe" />    </DirectorySearch> -  +  </RegistrySearch> +  <RegistrySearch Id="Mysql50Location" Root="HKLM" +  Key="SOFTWARE\MySQL AB\MySQL Server 5.0" Name="Location" Type="directory"> +  <DirectorySearch Id="MyisamBin3" Path="bin"> +  <FileSearch LongName="myisamchk.exe" /> +  </DirectorySearch> +  </RegistrySearch> +  <RegistrySearch Id="Mysql41Location" Root="HKLM" +  Key="SOFTWARE\MySQL AB\MySQL Server 4.1" Name="Location" Type="directory"> +  <DirectorySearch Id="MyisamBin4" Path="bin"> +  <FileSearch LongName="myisamchk.exe" /> +  </DirectorySearch> +  </RegistrySearch> +  <DirectorySearch Id="MyisamLocation5" Path="[ProgramFilesFolder]\MySQL" Depth="2"> +  <DirectorySearch Id="MyisamBase5"> +  <DirectorySearch Id="MyisamBin5" Path="bin"> +  <FileSearch LongName="myisamchk.exe" /> +  </DirectorySearch> +  </DirectorySearch> +  </DirectorySearch>    </Property> -  +  <Property Id="MYSQLBASE"> +  <RegistrySearchRef Id="MysqlLocation" /> +  <RegistrySearchRef Id="Mysql51Location" /> +  <RegistrySearchRef Id="Mysql50Location" /> +  <RegistrySearchRef Id="Mysql41Location" /> +  <DirectorySearchRef Id="MysqlBase5" Parent="MysqlLocation5"/> +  </Property>    <AdminExecuteSequence>    <Custom Action="DONT_INSTALL_SERVICE" Before="DIRCA_TARGETDIR">NOT VersionNT</Custom>    <Custom Action="DIRCA_TARGETDIR" Before="CostInitialize"><![CDATA[TARGETDIR=""]]></Custom>
1256:    <Custom Action="SetCreateConfigInterface" Sequence="5100">REMOVE=""</Custom>    <Custom Action="CreateConfigInterface" After="SetCreateConfigInterface">(REMOVE="") AND (OLDCONFIGDIR="")</Custom>    <Custom Action="SetCreateMysqlLocation" After="CreateConfigInterface" /> -  <Custom Action="CreateMysqlLocation" After="SetCreateMysqlLocation">REMOVE="" AND MYSQLLOCATIONLOCATION</Custom> +  <Custom Action="CreateMysqlLocation" After="SetCreateMysqlLocation">REMOVE="" AND MYSQLLOCATIONLOCATION = ""</Custom>    <Custom Action="SetCreatePikeLocation" After="CreateMysqlLocation">REMOVE=""</Custom>    <Custom Action="CreatePikeLocation" After="SetCreatePikeLocation">REMOVE=""</Custom>    <Custom Action="SetCreateEnvironment" After="CreatePikeLocation">REMOVE=""</Custom>