Commit f70f527c authored by Jonathan Perkin's avatar Jonathan Perkin

bug#41828: mysql_install_db misses mysqld options when using --basedir

  * pass --languages to mysqld when using --basedir
  * improve error messages when unable to find files in basedir
parent 6f25dee2
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
basedir="" basedir=""
builddir="" builddir=""
ldata="@localstatedir@" ldata="@localstatedir@"
langdir=""
srcdir="" srcdir=""
args="" args=""
...@@ -171,7 +172,20 @@ find_in_basedir() ...@@ -171,7 +172,20 @@ find_in_basedir()
cannot_find_file() cannot_find_file()
{ {
echo echo
echo "FATAL ERROR: Could not find $*" echo "FATAL ERROR: Could not find $1"
shift
if test $# -ne 0
then
echo
echo "The following directories were searched:"
echo
for dir in "$@"
do
echo " $dir"
done
fi
echo echo
echo "If you compiled from source, you need to run 'make install' to" echo "If you compiled from source, you need to run 'make install' to"
echo "copy the software into the correct location ready for operation." echo "copy the software into the correct location ready for operation."
...@@ -210,6 +224,11 @@ then ...@@ -210,6 +224,11 @@ then
elif test -n "$basedir" elif test -n "$basedir"
then then
print_defaults=`find_in_basedir my_print_defaults bin extra` print_defaults=`find_in_basedir my_print_defaults bin extra`
if test -z "$print_defaults"
then
cannot_find_file my_print_defaults $basedir/bin $basedir/extra
exit 1
fi
else else
print_defaults="@bindir@/my_print_defaults" print_defaults="@bindir@/my_print_defaults"
fi fi
...@@ -232,7 +251,7 @@ then ...@@ -232,7 +251,7 @@ then
bindir="$basedir/client" bindir="$basedir/client"
extra_bindir="$basedir/extra" extra_bindir="$basedir/extra"
mysqld="$basedir/sql/mysqld" mysqld="$basedir/sql/mysqld"
mysqld_opt="--language=$srcdir/sql/share/english" langdir="$srcdir/sql/share/english"
pkgdatadir="$srcdir/scripts" pkgdatadir="$srcdir/scripts"
scriptdir="$srcdir/scripts" scriptdir="$srcdir/scripts"
elif test -n "$basedir" elif test -n "$basedir"
...@@ -240,7 +259,23 @@ then ...@@ -240,7 +259,23 @@ then
bindir="$basedir/bin" bindir="$basedir/bin"
extra_bindir="$bindir" extra_bindir="$bindir"
mysqld=`find_in_basedir mysqld libexec sbin bin` mysqld=`find_in_basedir mysqld libexec sbin bin`
if test -z "$mysqld"
then
cannot_find_file mysqld $basedir/libexec $basedir/sbin $basedir/bin
exit 1
fi
langdir=`find_in_basedir --dir errmsg.sys share/english share/mysql/english`
if test -z "$langdir"
then
cannot_find_file errmsg.sys $basedir/share/english $basedir/share/mysql/english
exit 1
fi
pkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql` pkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql`
if test -z "$pkgdatadir"
then
cannot_find_file fill_help_tables.sql $basedir/share $basedir/share/mysql
exit 1
fi
scriptdir="$basedir/scripts" scriptdir="$basedir/scripts"
else else
basedir="@prefix@" basedir="@prefix@"
...@@ -271,6 +306,16 @@ then ...@@ -271,6 +306,16 @@ then
exit 1 exit 1
fi fi
if test -n "$langdir"
then
if test ! -f "$langdir/errmsg.sys"
then
cannot_find_file "$langdir/errmsg.sys"
exit 1
fi
mysqld_opt="--language=$langdir"
fi
# Try to determine the hostname # Try to determine the hostname
hostname=`@HOSTNAME@` hostname=`@HOSTNAME@`
......
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