Commit 6cfffb50 authored by unknown's avatar unknown

BUG#25530 --with-readline fails with commercial source packages


BUILD/SETUP.sh:
  BUG#25530 --with-readline fails with commercial source packages
  
  The compile-* scripts should not use --with-readline explicitly when no readline is present.
configure.in:
  BUG#25530 --with-readline fails with commercial source packages
  
  Configuring --with-readline should fail when libreadline is not bundled.
  A system libreadline is only used when there is a bundled libreadline too, so the commercial source code isn't linked with GPL libreadline by accident.
parent bb5dccf2
...@@ -84,7 +84,16 @@ debug_extra_cflags="-O1 -Wuninitialized" ...@@ -84,7 +84,16 @@ debug_extra_cflags="-O1 -Wuninitialized"
base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti" base_cxxflags="-felide-constructors -fno-exceptions -fno-rtti"
amd64_cxxflags="" # If dropping '--with-big-tables', add here "-DBIG_TABLES" amd64_cxxflags="" # If dropping '--with-big-tables', add here "-DBIG_TABLES"
base_configs="$prefix_configs --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-readline --with-big-tables" base_configs="$prefix_configs --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables"
if test -d "$path/../cmd-line-utils/readline"
then
base_configs="$base_configs --with-readline"
elif test -d "$path/../cmd-line-utils/libedit"
then
base_configs="$base_configs --with-libedit"
fi
static_link="--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static" static_link="--with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static"
amd64_configs="" amd64_configs=""
alpha_configs="" # Not used yet alpha_configs="" # Not used yet
......
...@@ -2439,6 +2439,7 @@ readline_basedir="" ...@@ -2439,6 +2439,7 @@ readline_basedir=""
readline_dir="" readline_dir=""
readline_h_ln_cmd="" readline_h_ln_cmd=""
readline_link="" readline_link=""
want_to_use_readline="no"
if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then if expr "$SYSTEM_TYPE" : ".*netware.*" > /dev/null; then
# For NetWare, do not need readline # For NetWare, do not need readline
...@@ -2463,6 +2464,7 @@ then ...@@ -2463,6 +2464,7 @@ then
readline_link="\$(top_builddir)/cmd-line-utils/readline/libreadline.a" readline_link="\$(top_builddir)/cmd-line-utils/readline/libreadline.a"
readline_h_ln_cmd="\$(LN) -s \$(top_srcdir)/cmd-line-utils/readline readline" readline_h_ln_cmd="\$(LN) -s \$(top_srcdir)/cmd-line-utils/readline readline"
compile_readline=yes compile_readline=yes
want_to_use_readline="yes"
AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1) AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1)
else else
# Use system readline library # Use system readline library
...@@ -2472,10 +2474,12 @@ else ...@@ -2472,10 +2474,12 @@ else
MYSQL_CHECK_NEW_RL_INTERFACE MYSQL_CHECK_NEW_RL_INTERFACE
MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY MYSQL_CHECK_READLINE_DECLARES_HIST_ENTRY
AC_LANG_RESTORE AC_LANG_RESTORE
if [test "$mysql_cv_new_rl_interface" = "yes"] if [test "$mysql_cv_new_rl_interface" = "yes"] && [test -d "./cmd-line-utils/readline"]
then then
# Use the new readline interface # Use the new readline interface, but only if the package includes a bundled libreadline
# this way we avoid linking commercial source with GPL readline
readline_link="-lreadline" readline_link="-lreadline"
want_to_use_readline="yes"
elif [test "$mysql_cv_libedit_interface" = "yes"]; then elif [test "$mysql_cv_libedit_interface" = "yes"]; then
# Use libedit # Use libedit
readline_link="-ledit" readline_link="-ledit"
...@@ -2485,6 +2489,15 @@ else ...@@ -2485,6 +2489,15 @@ else
versions of libedit or readline]) versions of libedit or readline])
fi fi
fi fi
# if there is no readline, but we want to build with readline, we fail
if [test "$want_to_use_readline" = "yes"] && [test ! -d "./cmd-line-utils/readline"]
then
AC_MSG_ERROR([This commercially licensed MySQL source package can't
be built with libreadline. Please use --with-libedit to use
the bundled version of libedit instead.])
fi
fi fi
AC_SUBST(readline_dir) AC_SUBST(readline_dir)
......
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