3980 Nirbhay Choubey 2012-06-09
WL#5603 : Revise how we handle passwords on
the command line
Addressing additional review comments.
added:
mysys_ssl/my_default_priv.h
renamed:
mysys_ssl/default.c => mysys_ssl/my_default.cc
mysys_ssl/my_default.h => include/my_default.h
mysys_ssl/my_getopt.c => mysys_ssl/my_getopt.cc
modified:
client/mysql_config_editor.cc
extra/CMakeLists.txt
extra/my_print_defaults.c
libmysql/CMakeLists.txt
libmysqld/CMakeLists.txt
libmysqld/examples/CMakeLists.txt
mysql-test/r/mysql_config_editor.result
mysql-test/t/mysql_config_editor.test
mysys/mysys_priv.h
mysys_ssl/CMakeLists.txt
sql/CMakeLists.txt
storage/myisam/CMakeLists.txt
tests/CMakeLists.txt
mysys_ssl/my_default.cc
include/my_default.h
3979 Bjorn Munch 2012-06-08 [merge]
null upmerge
=== modified file 'client/mysql_config_editor.cc'
--- a/client/mysql_config_editor.cc 2012-05-31 15:33:21 +0000
+++ b/client/mysql_config_editor.cc 2012-06-08 20:03:42 +0000
@@ -31,14 +31,15 @@
#include "my_aes.h"
#include "client_priv.h"
#include "my_default.h"
+#include "my_default_priv.h"
#define MYSQL_CONFIG_EDITOR_VERSION "1.0"
#define MY_LINE_MAX 4096
/*
Header length for the login file.
- 4-byte (unused) + MY_LOGIN_KEY_LEN
+ 4-byte (unused) + LOGIN_KEY_LEN
*/
-#define MY_LOGIN_HEADER_LEN (4 + MY_LOGIN_KEY_LEN)
+#define MY_LOGIN_HEADER_LEN (4 + LOGIN_KEY_LEN)
static int g_fd;
@@ -50,9 +51,10 @@ static size_t file_size;
static char *opt_user= NULL, *opt_password= NULL, *opt_host=NULL,
*opt_login_path= NULL;
-static char my_key[MY_LOGIN_KEY_LEN];
+static char my_login_file[FN_REFLEN];
+static char my_key[LOGIN_KEY_LEN];
-static my_bool opt_verbose, opt_all, tty_password= 0;
+static my_bool opt_verbose, opt_all, tty_password= 0, opt_warn;
int execute_commands(int argc, char **argv);
static void print_login_path(DYNAMIC_STRING *file_buf, const char *path_name);
@@ -125,6 +127,9 @@ static struct my_option my_long_options[
&opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"warn", 'w', "Warn and ask for confirmation if set command attempts to "
+ "overwrite an existing login path (enabled by default).",
+ &opt_warn, &opt_warn, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -135,7 +140,7 @@ get_one_option(int optid, const struct m
{
switch(optid) {
case '#':
- DBUG_PUSH(argument ? argument : "d:t:o,/tmp/mysqladmin.trace");
+ DBUG_PUSH(argument ? argument : "d:t:o,/tmp/mysql_config_editor.trace");
break;
case 'p':
tty_password= 1;
@@ -234,7 +239,22 @@ int execute_commands(int argc, char **ar
dynstr_append(&path_buf, "\n");
- /* Check and remove opt_login_path if it already exists. */
+ /* Warn if login path already exists */
+ if (opt_warn && ((locate_login_path (&file_buf, opt_login_path))
+ != NULL))
+ {
+ int choice;
+ printf ("WARNING : \'%s\' path already exists and will be "
+ "overwritten. \n Continue? (Press y|Y for Yes, any "
+ "other key for No) : ",
+ opt_login_path);
+ choice= getchar();
+
+ if (choice != (int) 'y' && choice != (int) 'Y')
+ break; /* skip */
+ }
+
+ /* Remove the login path. */
remove_login_path(&file_buf, opt_login_path);
/* Append the new login path to the file buffer. */
@@ -329,7 +349,7 @@ static my_bool check_and_create_login_fi
const ushort create_mode_all= (S_IRWXU | S_IRWXG | S_IRWXO);
/* Get the login file name. */
- if (! set_login_file_name())
+ if (! my_default_get_login_file(my_login_file, sizeof(my_login_file)))
{
verbose_msg("Error! Failed to set login file name.\n");
goto error;
@@ -808,7 +828,7 @@ static int encrypt_buffer(const char *pl
aes_len= my_aes_get_size(plain_len);
- if (my_aes_encrypt(plain, plain_len, cipher, my_key, MY_LOGIN_KEY_LEN) == aes_len)
+ if (my_aes_encrypt(plain, plain_len, cipher, my_key, LOGIN_KEY_LEN) == aes_len)
{
DBUG_RETURN(aes_len);
}
@@ -837,7 +857,7 @@ static int decrypt_buffer(const char *ci
int aes_length;
if ((aes_length= my_aes_decrypt(cipher, cipher_len, (char *) plain,
- my_key, MY_LOGIN_KEY_LEN)) > 0)
+ my_key, LOGIN_KEY_LEN)) > 0)
{
DBUG_RETURN(aes_length);
}
@@ -873,8 +893,8 @@ int add_header(void)
}
/* Write the login key. */
- if ((my_write(g_fd, (const uchar *)my_key, MY_LOGIN_KEY_LEN, MYF(MY_WME)))
- != MY_LOGIN_KEY_LEN)
+ if ((my_write(g_fd, (const uchar *)my_key, LOGIN_KEY_LEN, MYF(MY_WME)))
+ != LOGIN_KEY_LEN)
{
verbose_msg("Error! couldn't write to the file.\n");
goto error;
@@ -899,7 +919,7 @@ void generate_login_key()
verbose_msg("Generating a new key.\n");
/* Get a sequence of random non-printable ASCII */
- for (uint i= 0; i < MY_LOGIN_KEY_LEN; i++)
+ for (uint i= 0; i < LOGIN_KEY_LEN; i++)
my_key[i]= (char)((int)(my_rnd_ssl(&rnd) * 100000) % 32);
DBUG_VOID_RETURN;
@@ -921,8 +941,8 @@ int read_login_key(void)
if (my_seek(g_fd, 4, SEEK_SET, MYF(MY_WME)) != 4)
DBUG_RETURN(-1); /* Error while seeking. */
- if (my_read(g_fd, (uchar *)my_key, MY_LOGIN_KEY_LEN, MYF(MY_WME))
- != MY_LOGIN_KEY_LEN)
+ if (my_read(g_fd, (uchar *)my_key, LOGIN_KEY_LEN, MYF(MY_WME))
+ != LOGIN_KEY_LEN)
{
verbose_msg("Failed to read login key.\n");
DBUG_RETURN(-1);
=== modified file 'extra/CMakeLists.txt'
--- a/extra/CMakeLists.txt 2012-05-31 15:33:21 +0000
+++ b/extra/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -15,7 +15,6 @@
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/include
-${CMAKE_SOURCE_DIR}/mysys_ssl
${ZLIB_INCLUDE_DIR}
# Following is for perror, in case NDB is compiled in.
${CMAKE_SOURCE_DIR}/storage/ndb/include
=== modified file 'extra/my_print_defaults.c'
--- a/extra/my_print_defaults.c 2012-05-31 15:33:21 +0000
+++ b/extra/my_print_defaults.c 2012-06-08 20:03:42 +0000
@@ -31,6 +31,7 @@
const char *config_file="my"; /* Default config file */
+static char *my_login_path;
uint verbose= 0, opt_defaults_file_used= 0;
const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace";
=== renamed file 'mysys_ssl/my_default.h' => 'include/my_default.h'
--- a/mysys_ssl/my_default.h 2012-05-31 15:33:21 +0000
+++ b/include/my_default.h 2012-06-08 20:03:42 +0000
@@ -16,45 +16,36 @@
#ifndef MY_DEFAULT_INCLUDED
#define MY_DEFAULT_INCLUDED
-/*
- Number of byte used to store the length of
- cipher that follows.
-*/
-#define MAX_CIPHER_STORE_LEN 4U
-#define MY_LOGIN_KEY_LEN 20U
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+
+#include "my_global.h"
+
+C_MODE_START
+
extern const char *my_defaults_extra_file;
extern const char *my_defaults_group_suffix;
extern const char *my_defaults_file;
-extern const char* my_login_file;
-extern const char* my_login_path;
extern my_bool my_getopt_use_args_separator;
/* Define the type of function to be passed to process_default_option_files */
typedef int (*Process_option_func)(void *ctx, const char *group_name,
const char *option);
-extern my_bool my_getopt_is_args_separator(const char* arg);
-extern int get_defaults_options(int argc, char **argv,
- char **defaults, char **extra_defaults,
- char **group_suffix, char **login_path);
-extern int my_load_defaults(const char *conf_file, const char **groups,
- int *argc, char ***argv, const char ***);
-extern int load_defaults(const char *conf_file, const char **groups,
- int *argc, char ***argv);
-extern int my_search_option_files(const char *conf_file, int *argc,
- char ***argv, uint *args_used,
- Process_option_func func, void *func_ctx,
- const char **default_directories);
-extern void free_defaults(char **argv);
-extern void my_print_default_files(const char *conf_file);
-extern void print_defaults(const char *conf_file, const char **groups);
-extern int set_login_file_name();
-#ifdef __cplusplus
-}
-#endif
+my_bool my_getopt_is_args_separator(const char* arg);
+int get_defaults_options(int argc, char **argv,
+ char **defaults, char **extra_defaults,
+ char **group_suffix, char **login_path);
+int my_load_defaults(const char *conf_file, const char **groups,
+ int *argc, char ***argv, const char ***);
+int load_defaults(const char *conf_file, const char **groups,
+ int *argc, char ***argv);
+int my_search_option_files(const char *conf_file, int *argc,
+ char ***argv, uint *args_used,
+ Process_option_func func, void *func_ctx,
+ const char **default_directories);
+void free_defaults(char **argv);
+void my_print_default_files(const char *conf_file);
+void print_defaults(const char *conf_file, const char **groups);
+
+C_MODE_END
#endif // MY_DEFAULT_INCLUDED
=== modified file 'libmysql/CMakeLists.txt'
--- a/libmysql/CMakeLists.txt 2012-06-04 15:35:18 +0000
+++ b/libmysql/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -19,7 +19,6 @@ INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/regex
${CMAKE_SOURCE_DIR}/sql
${CMAKE_SOURCE_DIR}/strings
- ${CMAKE_SOURCE_DIR}/mysys_ssl
${SSL_INCLUDE_DIRS}
${SSL_INTERNAL_INCLUDE_DIRS}
${ZLIB_INCLUDE_DIR})
=== modified file 'libmysqld/CMakeLists.txt'
--- a/libmysqld/CMakeLists.txt 2012-05-31 15:33:21 +0000
+++ b/libmysqld/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -23,7 +23,6 @@ INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/sql
${CMAKE_BINARY_DIR}/sql
${CMAKE_SOURCE_DIR}/regex
- ${CMAKE_SOURCE_DIR}/mysys_ssl
${ZLIB_INCLUDE_DIR}
${SSL_INCLUDE_DIRS}
${SSL_INTERNAL_INCLUDE_DIRS}
=== modified file 'libmysqld/examples/CMakeLists.txt'
--- a/libmysqld/examples/CMakeLists.txt 2012-05-31 15:33:21 +0000
+++ b/libmysqld/examples/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -16,7 +16,6 @@
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/libmysqld/include
${CMAKE_SOURCE_DIR}/regex
- ${CMAKE_SOURCE_DIR}/mysys_ssl
${READLINE_INCLUDE_DIR}
)
=== modified file 'mysql-test/r/mysql_config_editor.result'
--- a/mysql-test/r/mysql_config_editor.result 2012-05-31 15:33:21 +0000
+++ b/mysql-test/r/mysql_config_editor.result 2012-06-08 20:03:42 +0000
@@ -100,6 +100,9 @@ MySQL Configuration Tool.
-u, --user=name User name to be entered into the login file.
-v, --verbose Write more information.
-V, --version Output version information and exit.
+ -w, --warn Warn and ask for confirmation if set command attempts to
+ overwrite an existing login path (enabled by default).
+ (Defaults to on; use --skip-warn to disable.)
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
@@ -109,6 +112,7 @@ host (No de
login-path client
user (No default value)
verbose FALSE
+warn TRUE
Where command can be any one of the following :
set [options] Sets username/password/hostname for a
=== modified file 'mysql-test/t/mysql_config_editor.test'
--- a/mysql-test/t/mysql_config_editor.test 2012-05-31 15:33:21 +0000
+++ b/mysql-test/t/mysql_config_editor.test 2012-06-08 20:03:42 +0000
@@ -45,8 +45,8 @@
--echo
--echo #
--echo # Overwrite existing paths, test-login-path2 & default
---exec $MYSQL_CONFIG_EDITOR set --user=test_user4 --login-path=test-login-path2
---exec $MYSQL_CONFIG_EDITOR set --user=test_user5
+--exec $MYSQL_CONFIG_EDITOR set --user=test_user4 --login-path=test-login-path2 --skip-warn
+--exec $MYSQL_CONFIG_EDITOR set --user=test_user5 --skip-warn
--echo #
--echo # all the paths again
--exec $MYSQL_CONFIG_EDITOR print --all 2>&1
=== modified file 'mysys/mysys_priv.h'
--- a/mysys/mysys_priv.h 2011-09-07 10:08:09 +0000
+++ b/mysys/mysys_priv.h 2012-06-08 20:03:42 +0000
@@ -66,7 +66,7 @@ extern mysql_mutex_t THR_LOCK_charset;
#ifdef HUGETLB_USE_PROC_MEMINFO
extern PSI_file_key key_file_proc_meminfo;
#endif /* HUGETLB_USE_PROC_MEMINFO */
-extern PSI_file_key key_file_charset, key_file_cnf;
+extern PSI_file_key key_file_charset;
#endif /* HAVE_PSI_INTERFACE */
/*
=== modified file 'mysys_ssl/CMakeLists.txt'
--- a/mysys_ssl/CMakeLists.txt 2012-06-05 12:03:10 +0000
+++ b/mysys_ssl/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -29,7 +29,7 @@ IF(HAVE_VISIBILITY_HIDDEN)
PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
ENDIF()
-SET(MYSYS_SSL_SOURCES default.c my_getopt.c my_aes.cc)
+SET(MYSYS_SSL_SOURCES my_default.cc my_getopt.cc my_aes.cc)
ADD_CONVENIENCE_LIBRARY(mysys_ssl ${MYSYS_SSL_SOURCES})
TARGET_LINK_LIBRARIES(mysys_ssl dbug strings ${SSL_LIBRARIES})
=== renamed file 'mysys_ssl/default.c' => 'mysys_ssl/my_default.cc'
--- a/mysys_ssl/default.c 2012-05-31 15:33:21 +0000
+++ b/mysys_ssl/my_default.cc 2012-06-08 20:03:42 +0000
@@ -38,6 +38,7 @@
#include "../mysys/mysys_priv.h"
#include "my_default.h"
+#include "my_default_priv.h"
#include "m_string.h"
#include "m_ctype.h"
#include <my_dir.h>
@@ -46,6 +47,12 @@
#include <winbase.h>
#endif
+C_MODE_START
+#ifdef HAVE_PSI_INTERFACE
+extern PSI_file_key key_file_cnf;
+#endif
+C_MODE_END
+
/**
arguments separator
@@ -93,14 +100,14 @@ my_bool my_getopt_is_args_separator(cons
const char *my_defaults_file=0;
const char *my_defaults_group_suffix=0;
const char *my_defaults_extra_file=0;
-const char *my_login_path= 0;
-const char *my_login_file= 0;
+
+static const char *my_login_path= 0;
static char my_defaults_file_buffer[FN_REFLEN];
static char my_defaults_extra_file_buffer[FN_REFLEN];
-static char my_login_file_buffer[FN_REFLEN];
-const char my_key[MY_LOGIN_KEY_LEN];
+static char my_login_file[FN_REFLEN];
+static char my_key[LOGIN_KEY_LEN];
static my_bool defaults_already_read= FALSE;
@@ -312,7 +319,8 @@ int my_search_option_files(const char *c
extra_groups[i]= group->type_names[i]; /** copy group */
len= strlen(extra_groups[i]);
- if (!(ptr= alloc_root(ctx->alloc, (uint) (len+instance_len+1))))
+ if (!(ptr= (char *) alloc_root(ctx->alloc,
+ (uint) (len + instance_len + 1))))
DBUG_RETURN(2);
extra_groups[i+group->count]= ptr;
@@ -355,7 +363,8 @@ int my_search_option_files(const char *c
instance_len= strlen(my_defaults_group_suffix);
len= strlen(extra_groups[i]);
- if (!(ptr= alloc_root(ctx->alloc, (uint) (len + instance_len + 1))))
+ if (!(ptr= (char *) alloc_root(ctx->alloc,
+ (uint) (len + instance_len + 1))))
DBUG_RETURN(2);
extra_groups[i + 1]= ptr;
@@ -456,7 +465,7 @@ static int handle_default_option(void *i
if (find_type((char *)group_name, ctx->group, FIND_TYPE_NO_PREFIX))
{
- if (!(tmp= alloc_root(ctx->alloc, strlen(option) + 1)))
+ if (!(tmp= (char *) alloc_root(ctx->alloc, strlen(option) + 1)))
return 1;
if (insert_dynamic(ctx->args, &tmp))
return 1;
@@ -652,8 +661,8 @@ int my_load_defaults(const char *conf_fi
ctx.group= &group;
if ((error= my_search_option_files(conf_file, argc, argv,
- &args_used, handle_default_option,
- (void *) &ctx, dirs)))
+ &args_used, handle_default_option,
+ (void *) &ctx, dirs)))
{
free_root(&alloc,MYF(0));
DBUG_RETURN(error);
@@ -661,7 +670,7 @@ int my_load_defaults(const char *conf_fi
/* Read options from login group. */
is_login_file= TRUE;
- if (set_login_file_name() &&
+ if (my_default_get_login_file(my_login_file, sizeof(my_login_file)) &&
(error= my_search_option_files(my_login_file,argc, argv, &args_used,
handle_default_option, (void *) &ctx,
dirs)))
@@ -1156,8 +1165,8 @@ static my_bool mysql_file_getline(char *
{
/* Move past unused bytes. */
mysql_file_fseek(file, 4, SEEK_SET, MYF(MY_WME));
- if (mysql_file_fread(file, (uchar *) my_key, MY_LOGIN_KEY_LEN,
- MYF(MY_WME)) != MY_LOGIN_KEY_LEN)
+ if (mysql_file_fread(file, (uchar *) my_key, LOGIN_KEY_LEN,
+ MYF(MY_WME)) != LOGIN_KEY_LEN)
return 0;
}
@@ -1173,7 +1182,7 @@ static my_bool mysql_file_getline(char *
mysql_file_fread(file, cipher, cipher_len, MYF(MY_WME));
if ((length= my_aes_decrypt((const char *) cipher, cipher_len, str,
- my_key, MY_LOGIN_KEY_LEN)) < 0)
+ my_key, LOGIN_KEY_LEN)) < 0)
{
/* Attempt to decrypt failed. */
return 0;
@@ -1417,30 +1426,39 @@ static const char **init_default_directo
}
/**
- Generate and store the login file name in my_login_file.
+ Place the login file name in the specified buffer.
+
+ @param file_name [out] Buffer to hold login file name
+ @param file_name_size [in] Length of the buffer
@return 1 - Success
0 - Failure
*/
-int set_login_file_name()
+int my_default_get_login_file(char *file_name, size_t file_name_size)
{
- /* Read options from login group. */
- if (getenv("MYSQL_TEST_LOGIN_FILE"))
- sprintf(my_login_file_buffer, "%s", getenv("MYSQL_TEST_LOGIN_FILE"));
+ size_t rc;
+
+ if (getenv("MYSQL_TEST_LOGIN_FILE"))
+ rc= my_snprintf(file_name, file_name_size, "%s",
+ getenv("MYSQL_TEST_LOGIN_FILE"));
#ifdef _WIN32
- else if (getenv("APPDATA"))
- sprintf(my_login_file_buffer, "%s\\MySQL\\.mylogin.cnf", getenv("APPDATA"));
+ else if (getenv("APPDATA"))
+ rc= my_snprintf(file_name, file_name_size, "%s\\MySQL\\.mylogin.cnf",
+ getenv("APPDATA"));
#else
- else if (getenv("HOME"))
- sprintf(my_login_file_buffer, "%s/.mylogin.cnf", getenv("HOME"));
+ else if (getenv("HOME"))
+ rc= my_snprintf(file_name, file_name_size, "%s/.mylogin.cnf",
+ getenv("HOME"));
#endif
- else
- {
- my_login_file= NULL;
- return 0;
- }
- my_login_file= my_login_file_buffer;
- return 1;
-}
+ else
+ {
+ memset(file_name, 0, sizeof(file_name));
+ return 0;
+ }
+ /* Anything <= 0 will be treated as error. */
+ if (rc <= 0)
+ return 0;
+ return 1;
+}
=== added file 'mysys_ssl/my_default_priv.h'
--- a/mysys_ssl/my_default_priv.h 1970-01-01 00:00:00 +0000
+++ b/mysys_ssl/my_default_priv.h 2012-06-08 20:03:42 +0000
@@ -0,0 +1,43 @@
+/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
+
+#ifndef MY_DEFAULT_PRIV_INCLUDED
+#define MY_DEFAULT_PRIV_INCLUDED
+
+#include "my_global.h" /* C_MODE_START, C_MODE_END */
+
+/*
+ Number of byte used to store the length of
+ cipher that follows.
+*/
+#define MAX_CIPHER_STORE_LEN 4U
+#define LOGIN_KEY_LEN 20U
+
+C_MODE_START
+
+/**
+ Place the login file name in the specified buffer.
+
+ @param file_name [out] Buffer to hold login file name
+ @param file_name_size [in] Length of the buffer
+
+ @return 1 - Success
+ 0 - Failure
+*/
+int my_default_get_login_file(char *file_name, size_t file_name_size);
+
+C_MODE_END
+
+#endif /* MY_DEFAULT_PRIV_INCLUDED */
=== renamed file 'mysys_ssl/my_getopt.c' => 'mysys_ssl/my_getopt.cc'
=== modified file 'sql/CMakeLists.txt'
--- a/sql/CMakeLists.txt 2012-06-04 15:35:18 +0000
+++ b/sql/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -17,7 +17,6 @@ INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/sql
${CMAKE_SOURCE_DIR}/regex
- ${CMAKE_SOURCE_DIR}/mysys_ssl
${ZLIB_INCLUDE_DIR}
${SSL_INCLUDE_DIRS}
${CMAKE_BINARY_DIR}/sql
=== modified file 'storage/myisam/CMakeLists.txt'
--- a/storage/myisam/CMakeLists.txt 2012-05-31 15:33:21 +0000
+++ b/storage/myisam/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -13,7 +13,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/mysys_ssl)
SET(MYISAM_SOURCES ft_boolean_search.c ft_nlq_search.c ft_parser.c ft_static.c
ha_myisam.cc
=== modified file 'tests/CMakeLists.txt'
--- a/tests/CMakeLists.txt 2012-05-31 15:33:21 +0000
+++ b/tests/CMakeLists.txt 2012-06-08 20:03:42 +0000
@@ -15,9 +15,7 @@
ADD_DEFINITIONS("-DMYSQL_CLIENT")
-INCLUDE_DIRECTORIES(
- ${CMAKE_SOURCE_DIR}/include
- ${CMAKE_SOURCE_DIR}/mysys_ssl)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
ADD_EXECUTABLE(mysql_client_test mysql_client_test.c)
TARGET_LINK_LIBRARIES(mysql_client_test mysqlclient)
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (nirbhay.choubey:3979 to 3980) WL#5603 | Nirbhay Choubey | 9 Jun |