Commit 33a200d7 authored by msvensson@neptunus.(none)'s avatar msvensson@neptunus.(none)

Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint

into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
parents 10f8cdef 6b920ebd
...@@ -27,9 +27,12 @@ ...@@ -27,9 +27,12 @@
#endif /* _WIN32 */ #endif /* _WIN32 */
#if !defined(_SOCKLEN_T) && (defined(_WIN32) || defined(__NETWARE__)) #if !defined(_SOCKLEN_T) && defined(_WIN32)
typedef int socklen_t; typedef int socklen_t;
#endif #endif
#if !defined(_SOCKLEN_T) && defined(__NETWARE__)
typedef size_t socklen_t;
#endif
// Check type of third arg to accept // Check type of third arg to accept
......
...@@ -293,12 +293,6 @@ typedef struct st_mysql ...@@ -293,12 +293,6 @@ typedef struct st_mysql
/* needed for embedded server - no net buffer to store the 'info' */ /* needed for embedded server - no net buffer to store the 'info' */
char *info_buffer; char *info_buffer;
#endif #endif
/*
In embedded server it points to the statement that is processed
in the current query. We store some results directly in statement
fields then.
*/
struct st_mysql_stmt *current_stmt;
} MYSQL; } MYSQL;
typedef struct st_mysql_res { typedef struct st_mysql_res {
......
...@@ -100,7 +100,6 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command, ...@@ -100,7 +100,6 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
mysql->affected_rows= ~(my_ulonglong) 0; mysql->affected_rows= ~(my_ulonglong) 0;
mysql->field_count= 0; mysql->field_count= 0;
net->last_errno= 0; net->last_errno= 0;
mysql->current_stmt= stmt;
thd->store_globals(); // Fix if more than one connect thd->store_globals(); // Fix if more than one connect
/* /*
......
...@@ -1295,6 +1295,54 @@ sub collect_mysqld_features () { ...@@ -1295,6 +1295,54 @@ sub collect_mysqld_features () {
} }
sub executable_setup_im () {
# Look for instance manager binary - mysqlmanager
$exe_im=
mtr_exe_maybe_exists(
"$glob_basedir/server-tools/instance-manager/mysqlmanager",
"$glob_basedir/libexec/mysqlmanager");
return ($exe_im eq "");
}
sub executable_setup_ndb () {
# Look for ndb tols and binaries
my $ndb_path= mtr_file_exists("$glob_basedir/ndb",
"$glob_basedir/storage/ndb",
"$glob_basedir/bin");
$exe_ndbd=
mtr_exe_maybe_exists("$ndb_path/src/kernel/ndbd",
"$ndb_path/ndbd");
$exe_ndb_mgm=
mtr_exe_maybe_exists("$ndb_path/src/mgmclient/ndb_mgm",
"$ndb_path/ndb_mgm");
$exe_ndb_mgmd=
mtr_exe_maybe_exists("$ndb_path/src/mgmsrv/ndb_mgmd",
"$ndb_path/ndb_mgmd");
$exe_ndb_waiter=
mtr_exe_maybe_exists("$ndb_path/tools/ndb_waiter",
"$ndb_path/ndb_waiter");
# May not exist
$path_ndb_tools_dir= mtr_file_exists("$ndb_path/tools",
"$ndb_path");
# May not exist
$path_ndb_examples_dir=
mtr_file_exists("$ndb_path/ndbapi-examples",
"$ndb_path/examples");
# May not exist
$exe_ndb_example=
mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");
return ( $exe_ndbd eq "" or
$exe_ndb_mgm eq "" or
$exe_ndb_mgmd eq "" or
$exe_ndb_waiter eq "");
}
sub executable_setup () { sub executable_setup () {
# #
...@@ -1333,20 +1381,6 @@ sub executable_setup () { ...@@ -1333,20 +1381,6 @@ sub executable_setup () {
"$glob_basedir/extra/release/perror", "$glob_basedir/extra/release/perror",
"$glob_basedir/extra/debug/perror"); "$glob_basedir/extra/debug/perror");
if ( ! $opt_skip_im )
{
# Look for instance manager binary - mysqlmanager
$exe_im=
mtr_exe_exists(
"$glob_basedir/server-tools/instance-manager/mysqlmanager",
"$glob_basedir/libexec/mysqlmanager");
}
else
{
$exe_im= "not_available";
}
# Look for the client binaries # Look for the client binaries
$exe_mysqlcheck= mtr_exe_exists("$path_client_bindir/mysqlcheck"); $exe_mysqlcheck= mtr_exe_exists("$path_client_bindir/mysqlcheck");
$exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump"); $exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
...@@ -1368,35 +1402,25 @@ sub executable_setup () { ...@@ -1368,35 +1402,25 @@ sub executable_setup () {
"$path_client_bindir/mysql_fix_privilege_tables"); "$path_client_bindir/mysql_fix_privilege_tables");
} }
if ( ! $opt_skip_ndbcluster)
{ if ( ! $opt_skip_ndbcluster and executable_setup_ndb())
# Look for ndb tols and binaries {
my $ndb_path= mtr_path_exists("$glob_basedir/ndb", mtr_warning("Could not find all required ndb binaries, " .
"$glob_basedir/storage/ndb", "all ndb tests will fail, use --skip-ndbcluster to " .
"$glob_basedir/bin"); "skip testing it.");
$path_ndb_tools_dir= mtr_path_exists("$ndb_path/tools", foreach my $cluster (@{$clusters})
"$ndb_path"); {
$exe_ndb_mgm= $cluster->{"executable_setup_failed"}= 1;
mtr_exe_exists("$ndb_path/src/mgmclient/ndb_mgm", }
"$ndb_path/ndb_mgm"); }
$exe_ndb_mgmd=
mtr_exe_exists("$ndb_path/src/mgmsrv/ndb_mgmd", if ( ! $opt_skip_im and executable_setup_im())
"$ndb_path/ndb_mgmd"); {
$exe_ndb_waiter= mtr_warning("Could not find all required instance manager binaries, " .
mtr_exe_exists("$ndb_path/tools/ndb_waiter", "all im tests will fail, use --skip-im to " .
"$ndb_path/ndb_waiter"); "continue without instance manager");
$exe_ndbd= $instance_manager->{"executable_setup_failed"}= 1;
mtr_exe_exists("$ndb_path/src/kernel/ndbd",
"$ndb_path/ndbd");
# May not exist
$path_ndb_examples_dir=
mtr_file_exists("$ndb_path/ndbapi-examples",
"$ndb_path/examples");
# May not exist
$exe_ndb_example=
mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");
} }
# Look for the udf_example library # Look for the udf_example library
...@@ -1424,7 +1448,8 @@ sub executable_setup () { ...@@ -1424,7 +1448,8 @@ sub executable_setup () {
if ( $glob_use_embedded_server ) if ( $glob_use_embedded_server )
{ {
$exe_mysql_client_test= $exe_mysql_client_test=
mtr_exe_maybe_exists("$glob_basedir/libmysqld/examples/mysql_client_test_embedded"); mtr_exe_maybe_exists(
"$glob_basedir/libmysqld/examples/mysql_client_test_embedded");
} }
else else
{ {
...@@ -1567,19 +1592,28 @@ sub environment_setup () { ...@@ -1567,19 +1592,28 @@ sub environment_setup () {
# ---------------------------------------------------- # ----------------------------------------------------
# Setup env for IM # Setup env for IM
# ---------------------------------------------------- # ----------------------------------------------------
$ENV{'IM_EXE'}= $exe_im; if ( ! $opt_skip_im )
$ENV{'IM_PATH_PID'}= $instance_manager->{path_pid}; {
$ENV{'IM_PATH_ANGEL_PID'}= $instance_manager->{path_angel_pid}; $ENV{'IM_EXE'}= $exe_im;
$ENV{'IM_PORT'}= $instance_manager->{port}; $ENV{'IM_PATH_PID'}= $instance_manager->{path_pid};
$ENV{'IM_DEFAULTS_PATH'}= $instance_manager->{defaults_file}; $ENV{'IM_PATH_ANGEL_PID'}= $instance_manager->{path_angel_pid};
$ENV{'IM_PASSWORD_PATH'}= $instance_manager->{password_file}; $ENV{'IM_PORT'}= $instance_manager->{port};
$ENV{'IM_DEFAULTS_PATH'}= $instance_manager->{defaults_file};
$ENV{'IM_MYSQLD1_SOCK'}= $instance_manager->{instances}->[0]->{path_sock}; $ENV{'IM_PASSWORD_PATH'}= $instance_manager->{password_file};
$ENV{'IM_MYSQLD1_PORT'}= $instance_manager->{instances}->[0]->{port};
$ENV{'IM_MYSQLD1_PATH_PID'}=$instance_manager->{instances}->[0]->{path_pid}; $ENV{'IM_MYSQLD1_SOCK'}=
$ENV{'IM_MYSQLD2_SOCK'}= $instance_manager->{instances}->[1]->{path_sock}; $instance_manager->{instances}->[0]->{path_sock};
$ENV{'IM_MYSQLD2_PORT'}= $instance_manager->{instances}->[1]->{port}; $ENV{'IM_MYSQLD1_PORT'}=
$ENV{'IM_MYSQLD2_PATH_PID'}=$instance_manager->{instances}->[1]->{path_pid}; $instance_manager->{instances}->[0]->{port};
$ENV{'IM_MYSQLD1_PATH_PID'}=
$instance_manager->{instances}->[0]->{path_pid};
$ENV{'IM_MYSQLD2_SOCK'}=
$instance_manager->{instances}->[1]->{path_sock};
$ENV{'IM_MYSQLD2_PORT'}=
$instance_manager->{instances}->[1]->{port};
$ENV{'IM_MYSQLD2_PATH_PID'}=
$instance_manager->{instances}->[1]->{path_pid};
}
# ---------------------------------------------------- # ----------------------------------------------------
# Setup env so childs can execute mysqlcheck # Setup env so childs can execute mysqlcheck
...@@ -1834,6 +1868,11 @@ sub kill_running_servers () { ...@@ -1834,6 +1868,11 @@ sub kill_running_servers () {
if ( ! -d $opt_vardir ) if ( ! -d $opt_vardir )
{ {
if ( -l $opt_vardir and ! -d readlink($opt_vardir) )
{
mtr_report("Removing $opt_vardir symlink without destination");
unlink($opt_vardir);
}
# The "var" dir does not exist already # The "var" dir does not exist already
# the processes that mtr_kill_leftovers start will write # the processes that mtr_kill_leftovers start will write
# their log files to var/log so it should be created # their log files to var/log so it should be created
...@@ -2037,14 +2076,6 @@ sub check_ndbcluster_support ($) { ...@@ -2037,14 +2076,6 @@ sub check_ndbcluster_support ($) {
$opt_skip_ndbcluster_slave= 1; $opt_skip_ndbcluster_slave= 1;
return; return;
} }
elsif ( -e "$glob_basedir/bin" && ! -f "$glob_basedir/bin/ndbd")
{
# Binary dist with a mysqld that supports ndb, but no ndbd found
mtr_report("Skipping ndbcluster, can't fint binaries");
$opt_skip_ndbcluster= 1;
$opt_skip_ndbcluster_slave= 1;
return;
}
$glob_ndbcluster_supported= 1; $glob_ndbcluster_supported= 1;
mtr_report("Using ndbcluster when necessary, mysqld supports it"); mtr_report("Using ndbcluster when necessary, mysqld supports it");
...@@ -2475,7 +2506,8 @@ sub mysql_install_db () { ...@@ -2475,7 +2506,8 @@ sub mysql_install_db () {
my $cluster_started_ok= 1; # Assume it can be started my $cluster_started_ok= 1; # Assume it can be started
if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster) if ($opt_skip_ndbcluster || $glob_use_running_ndbcluster ||
$clusters->[0]->{executable_setup_failed})
{ {
# Don't install master cluster # Don't install master cluster
} }
...@@ -2486,7 +2518,8 @@ sub mysql_install_db () { ...@@ -2486,7 +2518,8 @@ sub mysql_install_db () {
} }
if ($max_slave_num == 0 || if ($max_slave_num == 0 ||
$opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave) $opt_skip_ndbcluster_slave || $glob_use_running_ndbcluster_slave ||
$clusters->[1]->{executable_setup_failed})
{ {
# Don't install slave cluster # Don't install slave cluster
} }
...@@ -2760,6 +2793,16 @@ sub run_testcase_check_skip_test($) ...@@ -2760,6 +2793,16 @@ sub run_testcase_check_skip_test($)
last if ($opt_skip_ndbcluster_slave and last if ($opt_skip_ndbcluster_slave and
$cluster->{'name'} eq 'Slave'); $cluster->{'name'} eq 'Slave');
# If test needs this cluster, check binaries was found ok
if ( $cluster->{'executable_setup_failed'} )
{
mtr_report_test_name($tinfo);
$tinfo->{comment}=
"Failed to find cluster binaries";
mtr_report_test_failed($tinfo);
return 1;
}
# If test needs this cluster, check it was installed ok # If test needs this cluster, check it was installed ok
if ( !$cluster->{'installed_ok'} ) if ( !$cluster->{'installed_ok'} )
{ {
...@@ -2769,6 +2812,20 @@ sub run_testcase_check_skip_test($) ...@@ -2769,6 +2812,20 @@ sub run_testcase_check_skip_test($)
mtr_report_test_failed($tinfo); mtr_report_test_failed($tinfo);
return 1; return 1;
} }
}
}
if ( $tinfo->{'component_id'} eq 'im' )
{
# If test needs im, check binaries was found ok
if ( $instance_manager->{'executable_setup_failed'} )
{
mtr_report_test_name($tinfo);
$tinfo->{comment}=
"Failed to find MySQL manager binaries";
mtr_report_test_failed($tinfo);
return 1;
} }
} }
...@@ -2880,6 +2937,13 @@ sub find_testcase_skipped_reason($) ...@@ -2880,6 +2937,13 @@ sub find_testcase_skipped_reason($)
sub run_testcase ($) { sub run_testcase ($) {
my $tinfo= shift; my $tinfo= shift;
# -------------------------------------------------------
# Init variables that can change between each test case
# -------------------------------------------------------
$ENV{'TZ'}= $tinfo->{'timezone'};
mtr_verbose("Starting server with timezone: $tinfo->{'timezone'}");
my $master_restart= run_testcase_need_master_restart($tinfo); my $master_restart= run_testcase_need_master_restart($tinfo);
my $slave_restart= run_testcase_need_slave_restart($tinfo); my $slave_restart= run_testcase_need_slave_restart($tinfo);
...@@ -3409,6 +3473,9 @@ sub mysqld_start ($$$) { ...@@ -3409,6 +3473,9 @@ sub mysqld_start ($$$) {
my $type= $mysqld->{'type'}; my $type= $mysqld->{'type'};
my $idx= $mysqld->{'idx'}; my $idx= $mysqld->{'idx'};
mtr_error("Internal error: mysqld should never be started for embedded")
if $glob_use_embedded_server;
if ( $type eq 'master' ) if ( $type eq 'master' )
{ {
$exe= $exe_master_mysqld; $exe= $exe_master_mysqld;
...@@ -3849,12 +3916,6 @@ sub run_testcase_start_servers($) { ...@@ -3849,12 +3916,6 @@ sub run_testcase_start_servers($) {
my $tinfo= shift; my $tinfo= shift;
my $tname= $tinfo->{'name'}; my $tname= $tinfo->{'name'};
# -------------------------------------------------------
# Init variables that can change between server starts
# -------------------------------------------------------
$ENV{'TZ'}= $tinfo->{'timezone'};
mtr_verbose("Starting server with timezone: $tinfo->{'timezone'}");
if ( $tinfo->{'component_id'} eq 'mysqld' ) if ( $tinfo->{'component_id'} eq 'mysqld' )
{ {
if ( ! $opt_skip_ndbcluster and if ( ! $opt_skip_ndbcluster and
......
...@@ -18,8 +18,13 @@ rm -rf Makefile.in.bk ...@@ -18,8 +18,13 @@ rm -rf Makefile.in.bk
# Setup Metrowerks environment # Setup Metrowerks environment
. $path/mwenv . $path/mwenv
# Run autotools(use BUILD/autorun.sh) # Temporary hack to allow building from source dist
. BUILD/autorun.sh if [ ! "$USER"=pushbuild ]
then
# Run autotools(use BUILD/autorun.sh)
echo "Running autotools again(BUILD/autorun.sh)"
. BUILD/autorun.sh
fi
# configure # configure
./configure $base_configs $extra_configs ./configure $base_configs $extra_configs
......
...@@ -27,8 +27,8 @@ WINE_BUILD_DIR="$base/$WINE_BUILD_DIR" ...@@ -27,8 +27,8 @@ WINE_BUILD_DIR="$base/$WINE_BUILD_DIR"
echo "WINE_BUILD_DIR: $WINE_BUILD_DIR" echo "WINE_BUILD_DIR: $WINE_BUILD_DIR"
# Look for libc, MySQL 5.1.x uses libc-2006 by default # Look for libc, MySQL 5.1.x uses libc-2006 by default
libcdir="$MYDEV/libc-2006" libc_dir="$MYDEV/libc-2006"
if test ! -d $libcdir if [ ! -d `winepath $libc_dir` ]
then then
# The libcdir didn't exist, set default # The libcdir didn't exist, set default
libc_dir="$MYDEV/libc" libc_dir="$MYDEV/libc"
...@@ -65,5 +65,11 @@ then ...@@ -65,5 +65,11 @@ then
export TERM=linux export TERM=linux
fi fi
# Temporary hack to allow building from source dist
if [ "$USER"=pushbuild ]
then
export ARFLAGS=$AR_FLAGS
fi
# Print all env. variables # Print all env. variables
export export
...@@ -26,6 +26,10 @@ ...@@ -26,6 +26,10 @@
#ifdef HAVE_OPENSSL #ifdef HAVE_OPENSSL
#ifdef __NETWARE__ #ifdef __NETWARE__
/* yaSSL already uses BSD sockets */
#ifndef HAVE_YASSL
/* /*
The default OpenSSL implementation on NetWare uses WinSock. The default OpenSSL implementation on NetWare uses WinSock.
This code allows us to use the BSD sockets. This code allows us to use the BSD sockets.
...@@ -47,6 +51,7 @@ static int SSL_set_fd_bsd(SSL *s, int fd) ...@@ -47,6 +51,7 @@ static int SSL_set_fd_bsd(SSL *s, int fd)
#define SSL_set_fd(A, B) SSL_set_fd_bsd((A), (B)) #define SSL_set_fd(A, B) SSL_set_fd_bsd((A), (B))
#endif /* HAVE_YASSL */
#endif /* __NETWARE__ */ #endif /* __NETWARE__ */
......
...@@ -180,11 +180,15 @@ void netware_ssl_cleanup() ...@@ -180,11 +180,15 @@ void netware_ssl_cleanup()
/* free memory from SSL_library_init() */ /* free memory from SSL_library_init() */
EVP_cleanup(); EVP_cleanup();
/* OpenSSL NetWare port specific functions */
#ifndef HAVE_YASSL
/* free global X509 method */ /* free global X509 method */
X509_STORE_method_cleanup(); X509_STORE_method_cleanup();
/* free the thread_hash error table */ /* free the thread_hash error table */
ERR_free_state_table(); ERR_free_state_table();
#endif
} }
......
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