diff --git a/community-mysql-5.6.13-major.patch b/community-mysql-5.6.13-major.patch new file mode 100644 index 0000000..8d65acf --- /dev/null +++ b/community-mysql-5.6.13-major.patch @@ -0,0 +1,11 @@ +--- mysql-5.6.13/cmake/mysql_version.cmake.orig 2013-08-15 13:48:26.177017731 +0200 ++++ mysql-5.6.13/cmake/mysql_version.cmake 2013-08-15 13:49:35.478949928 +0200 +@@ -17,7 +17,7 @@ + # Global constants, only to be changed between major releases. + # + +-SET(SHARED_LIB_MAJOR_VERSION "18") ++SET(SHARED_LIB_MAJOR_VERSION "1018") + SET(SHARED_LIB_MINOR_VERSION "1") + SET(PROTOCOL_VERSION "10") + SET(DOT_FRM_VERSION "6") diff --git a/community-mysql-5.6.16-libmysql-version.patch b/community-mysql-5.6.16-libmysql-version.patch new file mode 100644 index 0000000..e16e65a --- /dev/null +++ b/community-mysql-5.6.16-libmysql-version.patch @@ -0,0 +1,960 @@ +diff -rup old/libmysql/libmysql.c new/libmysql/libmysql.c +--- old/libmysql/libmysql.c 2013-11-04 20:15:10.000000000 +0100 ++++ new/libmysql/libmysql.c 2014-01-14 12:10:27.148374504 +0100 +@@ -4898,3 +4898,612 @@ my_bool STDCALL mysql_read_query_result( + return (*mysql->methods->read_query_result)(mysql); + } + ++#ifndef EMBEDDED_LIBRARY ++ ++// Hack to provide both libmysqlclient_16 and libmysqlclient_18 symbol versions ++ ++#define SYM_16(_exportedsym) __asm__(".symver symver16_" #_exportedsym "," #_exportedsym "@libmysqlclient_16") ++ ++void STDCALL symver16_myodbc_remove_escape(MYSQL *mysql,char *name) ++{ ++ return myodbc_remove_escape(mysql, name); ++} ++SYM_16(myodbc_remove_escape); ++ ++ ++my_ulonglong STDCALL symver16_mysql_affected_rows(MYSQL *mysql) ++{ ++ return mysql_affected_rows(mysql); ++} ++SYM_16(mysql_affected_rows); ++ ++ ++my_bool STDCALL symver16_mysql_autocommit(MYSQL * mysql, my_bool auto_mode) ++{ ++ return mysql_autocommit(mysql, auto_mode); ++} ++SYM_16(mysql_autocommit); ++ ++ ++my_bool STDCALL symver16_mysql_change_user(MYSQL *mysql, const char *user, const char *passwd, const char *db) ++{ ++ return mysql_change_user(mysql, user, passwd, db); ++} ++SYM_16(mysql_change_user); ++ ++ ++const char * STDCALL symver16_mysql_character_set_name(MYSQL *mysql) ++{ ++ return mysql_character_set_name(mysql); ++} ++SYM_16(mysql_character_set_name); ++ ++ ++my_bool STDCALL symver16_mysql_commit(MYSQL * mysql) ++{ ++ return mysql_commit(mysql); ++} ++SYM_16(mysql_commit); ++ ++ ++void STDCALL symver16_mysql_data_seek(MYSQL_RES *result, my_ulonglong row) ++{ ++ return mysql_data_seek(result, row); ++} ++SYM_16(mysql_data_seek); ++ ++ ++void STDCALL symver16_mysql_debug(const char *debug __attribute__((unused))) ++{ ++ return mysql_debug(debug); ++} ++SYM_16(mysql_debug); ++ ++ ++int STDCALL symver16_mysql_dump_debug_info(MYSQL *mysql) ++{ ++ return mysql_dump_debug_info(mysql); ++} ++SYM_16(mysql_dump_debug_info); ++ ++ ++my_bool STDCALL symver16_mysql_embedded(void) ++{ ++ return mysql_embedded(); ++} ++SYM_16(mysql_embedded); ++ ++ ++my_bool STDCALL symver16_mysql_eof(MYSQL_RES *res) ++{ ++ return mysql_eof(res); ++} ++SYM_16(mysql_eof); ++ ++ ++ulong STDCALL symver16_mysql_escape_string(char *to,const char *from,ulong length) ++{ ++ return mysql_escape_string(to, from, length); ++} ++SYM_16(mysql_escape_string); ++ ++ ++MYSQL_FIELD * STDCALL symver16_mysql_fetch_field(MYSQL_RES *result) ++{ ++ return mysql_fetch_field(result); ++} ++SYM_16(mysql_fetch_field); ++ ++ ++MYSQL_FIELD * STDCALL symver16_mysql_fetch_field_direct(MYSQL_RES *res,uint fieldnr) ++{ ++ return mysql_fetch_field_direct(res, fieldnr); ++} ++SYM_16(mysql_fetch_field_direct); ++ ++ ++MYSQL_FIELD * STDCALL symver16_mysql_fetch_fields(MYSQL_RES *res) ++{ ++ return mysql_fetch_fields(res); ++} ++SYM_16(mysql_fetch_fields); ++ ++ ++unsigned int STDCALL symver16_mysql_field_count(MYSQL *mysql) ++{ ++ return mysql_field_count(mysql); ++} ++SYM_16(mysql_field_count); ++ ++ ++MYSQL_FIELD_OFFSET STDCALL symver16_mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET field_offset) ++{ ++ return mysql_field_seek(result, field_offset); ++} ++SYM_16(mysql_field_seek); ++ ++ ++MYSQL_FIELD_OFFSET STDCALL symver16_mysql_field_tell(MYSQL_RES *res) ++{ ++ return mysql_field_tell(res); ++} ++SYM_16(mysql_field_tell); ++ ++ ++void STDCALL symver16_mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *csinfo) ++{ ++ return mysql_get_character_set_info(mysql, csinfo); ++} ++SYM_16(mysql_get_character_set_info); ++ ++ ++const char * STDCALL symver16_mysql_get_client_info(void) ++{ ++ return mysql_get_client_info(); ++} ++SYM_16(mysql_get_client_info); ++ ++ulong STDCALL symver16_mysql_get_client_version(void) ++{ ++ return mysql_get_client_version(); ++} ++SYM_16(mysql_get_client_version); ++ ++ ++const char * STDCALL symver16_mysql_get_host_info(MYSQL *mysql) ++{ ++ return mysql_get_host_info(mysql); ++} ++SYM_16(mysql_get_host_info); ++ ++ ++MYSQL_PARAMETERS *STDCALL symver16_mysql_get_parameters(void) ++{ ++ return mysql_get_parameters(); ++} ++SYM_16(mysql_get_parameters); ++ ++ ++uint STDCALL symver16_mysql_get_proto_info(MYSQL *mysql) ++{ ++ return mysql_get_proto_info(mysql); ++} ++SYM_16(mysql_get_proto_info); ++ ++ ++const char * STDCALL symver16_mysql_get_server_info(MYSQL *mysql) ++{ ++ return mysql_get_server_info(mysql); ++} ++SYM_16(mysql_get_server_info); ++ ++ ++ulong STDCALL symver16_mysql_hex_string(char *to, const char *from, ulong length) ++{ ++ return mysql_hex_string(to, from, length); ++} ++SYM_16(mysql_hex_string); ++ ++ ++const char *STDCALL symver16_mysql_info(MYSQL *mysql) ++{ ++ return mysql_info(mysql); ++} ++SYM_16(mysql_info); ++ ++ ++my_ulonglong STDCALL symver16_mysql_insert_id(MYSQL *mysql) ++{ ++ return mysql_insert_id(mysql); ++} ++SYM_16(mysql_insert_id); ++ ++ ++int STDCALL symver16_mysql_kill(MYSQL *mysql,ulong pid) ++{ ++ return mysql_kill(mysql, pid); ++} ++SYM_16(mysql_kill); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_list_dbs(MYSQL *mysql, const char *wild) ++{ ++ return mysql_list_dbs(mysql, wild); ++} ++SYM_16(mysql_list_dbs); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_list_fields(MYSQL *mysql, const char *table, const char *wild) ++{ ++ return mysql_list_fields(mysql, table, wild); ++} ++SYM_16(mysql_list_fields); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_list_processes(MYSQL *mysql) ++{ ++ return mysql_list_processes(mysql); ++} ++SYM_16(mysql_list_processes); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_list_tables(MYSQL *mysql, const char *wild) ++{ ++ return mysql_list_tables(mysql, wild); ++} ++SYM_16(mysql_list_tables); ++ ++ ++my_bool STDCALL symver16_mysql_more_results(MYSQL *mysql) ++{ ++ return mysql_more_results(mysql); ++} ++SYM_16(mysql_more_results); ++ ++ ++int STDCALL symver16_mysql_next_result(MYSQL *mysql) ++{ ++ return mysql_next_result(mysql); ++} ++SYM_16(mysql_next_result); ++ ++ ++int STDCALL symver16_mysql_ping(MYSQL *mysql) ++{ ++ return mysql_ping(mysql); ++} ++SYM_16(mysql_ping); ++ ++ ++int STDCALL symver16_mysql_query(MYSQL *mysql, const char *query) ++{ ++ return mysql_query(mysql, query); ++} ++SYM_16(mysql_query); ++ ++ ++my_bool STDCALL symver16_mysql_read_query_result(MYSQL *mysql) ++{ ++ return mysql_read_query_result(mysql); ++} ++SYM_16(mysql_read_query_result); ++ ++ ++ulong STDCALL symver16_mysql_real_escape_string(MYSQL *mysql, char *to,const char *from, ulong length) ++{ ++ return mysql_real_escape_string(mysql, to, from, length); ++} ++SYM_16(mysql_real_escape_string); ++ ++ ++int STDCALL symver16_mysql_refresh(MYSQL *mysql,uint options) ++{ ++ return mysql_refresh(mysql, options); ++} ++SYM_16(mysql_refresh); ++ ++ ++my_bool STDCALL symver16_mysql_rollback(MYSQL * mysql) ++{ ++ return mysql_rollback(mysql); ++} ++SYM_16(mysql_rollback); ++ ++ ++MYSQL_ROW_OFFSET STDCALL symver16_mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET row) ++{ ++ return mysql_row_seek(result, row); ++} ++SYM_16(mysql_row_seek); ++ ++ ++MYSQL_ROW_OFFSET STDCALL symver16_mysql_row_tell(MYSQL_RES *res) ++{ ++ return mysql_row_tell(res); ++} ++SYM_16(mysql_row_tell); ++ ++ ++void STDCALL symver16_mysql_server_end() ++{ ++ return mysql_server_end(); ++} ++SYM_16(mysql_server_end); ++ ++ ++int STDCALL symver16_mysql_server_init(int argc __attribute__((unused)), char **argv __attribute__((unused)), char **groups __attribute__((unused))) ++{ ++ return mysql_server_init(argc, argv, groups); ++} ++SYM_16(mysql_server_init); ++ ++ ++void symver16_mysql_set_local_infile_default(MYSQL *mysql) ++{ ++ return mysql_set_local_infile_default(mysql); ++} ++SYM_16(mysql_set_local_infile_default); ++ ++ ++void symver16_mysql_set_local_infile_handler(MYSQL *mysql, int (*local_infile_init)(void **, const char *, void *), int (*local_infile_read)(void *, char *, uint), void (*local_infile_end)(void *), int (*local_infile_error)(void *, char *, uint), void *userdata) ++{ ++ return mysql_set_local_infile_handler(mysql, local_infile_init, local_infile_read, local_infile_end, local_infile_error, userdata); ++} ++SYM_16(mysql_set_local_infile_handler); ++ ++ ++int STDCALL symver16_mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option) ++{ ++ return mysql_set_server_option(mysql, option); ++} ++SYM_16(mysql_set_server_option); ++ ++ ++int STDCALL symver16_mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level) ++{ ++ return mysql_shutdown(mysql, shutdown_level); ++} ++SYM_16(mysql_shutdown); ++ ++ ++const char *STDCALL symver16_mysql_sqlstate(MYSQL *mysql) ++{ ++ return mysql_sqlstate(mysql); ++} ++SYM_16(mysql_sqlstate); ++ ++ ++const char * STDCALL symver16_mysql_stat(MYSQL *mysql) ++{ ++ return mysql_stat(mysql); ++} ++SYM_16(mysql_stat); ++ ++ ++my_ulonglong STDCALL symver16_mysql_stmt_affected_rows(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_affected_rows(stmt); ++} ++SYM_16(mysql_stmt_affected_rows); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_attr_get(MYSQL_STMT *stmt, enum enum_stmt_attr_type attr_type, void *value) ++{ ++ return mysql_stmt_attr_get(stmt, attr_type, value); ++} ++SYM_16(mysql_stmt_attr_get); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_attr_set(MYSQL_STMT *stmt, enum enum_stmt_attr_type attr_type, const void *value) ++{ ++ return mysql_stmt_attr_set(stmt, attr_type, value); ++} ++SYM_16(mysql_stmt_attr_set); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_bind_param(MYSQL_STMT *stmt, MYSQL_BIND *my_bind) ++{ ++ return mysql_stmt_bind_param(stmt, my_bind); ++} ++SYM_16(mysql_stmt_bind_param); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *my_bind) ++{ ++ return mysql_stmt_bind_result(stmt, my_bind); ++} ++SYM_16(mysql_stmt_bind_result); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_close(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_close(stmt); ++} ++SYM_16(mysql_stmt_close); ++ ++ ++void STDCALL symver16_mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong row) ++{ ++ return mysql_stmt_data_seek(stmt, row); ++} ++SYM_16(mysql_stmt_data_seek); ++ ++ ++uint STDCALL symver16_mysql_stmt_errno(MYSQL_STMT * stmt) ++{ ++ return mysql_stmt_errno(stmt); ++} ++SYM_16(mysql_stmt_errno); ++ ++ ++const char *STDCALL symver16_mysql_stmt_error(MYSQL_STMT * stmt) ++{ ++ return mysql_stmt_error(stmt); ++} ++SYM_16(mysql_stmt_error); ++ ++ ++int STDCALL symver16_mysql_stmt_execute(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_execute(stmt); ++} ++SYM_16(mysql_stmt_execute); ++ ++ ++int STDCALL symver16_mysql_stmt_fetch(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_fetch(stmt); ++} ++SYM_16(mysql_stmt_fetch); ++ ++ ++int STDCALL symver16_mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *my_bind, uint column, ulong offset) ++{ ++ return mysql_stmt_fetch_column(stmt, my_bind, column, offset); ++} ++SYM_16(mysql_stmt_fetch_column); ++ ++ ++unsigned int STDCALL symver16_mysql_stmt_field_count(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_field_count(stmt); ++} ++SYM_16(mysql_stmt_field_count); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_free_result(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_free_result(stmt); ++} ++SYM_16(mysql_stmt_free_result); ++ ++ ++MYSQL_STMT * STDCALL symver16_mysql_stmt_init(MYSQL *mysql) ++{ ++ return mysql_stmt_init(mysql); ++} ++SYM_16(mysql_stmt_init); ++ ++ ++my_ulonglong STDCALL symver16_mysql_stmt_insert_id(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_insert_id(stmt); ++} ++SYM_16(mysql_stmt_insert_id); ++ ++ ++my_ulonglong STDCALL symver16_mysql_stmt_num_rows(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_num_rows(stmt); ++} ++SYM_16(mysql_stmt_num_rows); ++ ++ ++ulong STDCALL symver16_mysql_stmt_param_count(MYSQL_STMT * stmt) ++{ ++ return mysql_stmt_param_count(stmt); ++} ++SYM_16(mysql_stmt_param_count); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_stmt_param_metadata(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_param_metadata(stmt); ++} ++SYM_16(mysql_stmt_param_metadata); ++ ++ ++int STDCALL symver16_mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, ulong length) ++{ ++ return mysql_stmt_prepare(stmt, query, length); ++} ++SYM_16(mysql_stmt_prepare); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_reset(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_reset(stmt); ++} ++SYM_16(mysql_stmt_reset); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_stmt_result_metadata(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_result_metadata(stmt); ++} ++SYM_16(mysql_stmt_result_metadata); ++ ++ ++MYSQL_ROW_OFFSET STDCALL symver16_mysql_stmt_row_seek(MYSQL_STMT *stmt, MYSQL_ROW_OFFSET row) ++{ ++ return mysql_stmt_row_seek(stmt, row); ++} ++SYM_16(mysql_stmt_row_seek); ++ ++ ++MYSQL_ROW_OFFSET STDCALL symver16_mysql_stmt_row_tell(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_row_tell(stmt); ++} ++SYM_16(mysql_stmt_row_tell); ++ ++ ++my_bool STDCALL symver16_mysql_stmt_send_long_data(MYSQL_STMT *stmt, uint param_number, const char *data, ulong length) ++{ ++ return mysql_stmt_send_long_data(stmt, param_number, data, length); ++} ++SYM_16(mysql_stmt_send_long_data); ++ ++ ++const char *STDCALL symver16_mysql_stmt_sqlstate(MYSQL_STMT * stmt) ++{ ++ return mysql_stmt_sqlstate(stmt); ++} ++SYM_16(mysql_stmt_sqlstate); ++ ++ ++int STDCALL symver16_mysql_stmt_store_result(MYSQL_STMT *stmt) ++{ ++ return mysql_stmt_store_result(stmt); ++} ++SYM_16(mysql_stmt_store_result); ++ ++ ++void STDCALL symver16_mysql_thread_end() ++{ ++ return mysql_thread_end(); ++} ++SYM_16(mysql_thread_end); ++ ++ ++ulong STDCALL symver16_mysql_thread_id(MYSQL *mysql) ++{ ++ return mysql_thread_id(mysql); ++} ++SYM_16(mysql_thread_id); ++ ++ ++my_bool STDCALL symver16_mysql_thread_init() ++{ ++ return mysql_thread_init(); ++} ++SYM_16(mysql_thread_init); ++ ++ ++uint STDCALL symver16_mysql_thread_safe(void) ++{ ++ return mysql_thread_safe(); ++} ++SYM_16(mysql_thread_safe); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_use_result(MYSQL *mysql) ++{ ++ return mysql_use_result(mysql); ++} ++SYM_16(mysql_use_result); ++ ++ ++uint STDCALL symver16_mysql_warning_count(MYSQL *mysql) ++{ ++ return mysql_warning_count(mysql); ++} ++SYM_16(mysql_warning_count); ++ ++/*****/ ++ ++MYSQL * STDCALL symver16_mysql_real_connect(MYSQL *mysql,const char *host, const char *user, const char *passwd, const char *db, uint port, const char *unix_socket,ulong client_flag) ++{ ++ return mysql_real_connect(mysql, host, user, passwd, db, port, unix_socket, client_flag); ++} ++SYM_16(mysql_real_connect); ++ ++/*****/ ++ ++my_bool symver16_my_init(void) ++{ ++ return my_init(); ++} ++SYM_16(my_init); ++ ++#endif +diff -rup old/libmysql/libmysql.ver.in new/libmysql/libmysql.ver.in +--- old/libmysql/libmysql.ver.in 2013-11-04 20:15:10.000000000 +0100 ++++ new/libmysql/libmysql.ver.in 2014-01-14 12:10:27.148374504 +0100 +@@ -1 +1,136 @@ +-libmysqlclient_@SHARED_LIB_MAJOR_VERSION@ { global: *; }; ++libmysqlclient_16 ++{ ++ local: ++ symver16_*; ++}; ++ ++libmysqlclient_18 ++{ ++ global: ++ my_init; ++ myodbc_remove_escape; ++ mysql_affected_rows; ++ mysql_autocommit; ++ mysql_change_user; ++ mysql_character_set_name; ++ mysql_close; ++ mysql_commit; ++ mysql_data_seek; ++ mysql_debug; ++ mysql_dump_debug_info; ++ mysql_embedded; ++ mysql_eof; ++ mysql_errno; ++ mysql_error; ++ mysql_escape_string; ++ mysql_fetch_field; ++ mysql_fetch_field_direct; ++ mysql_fetch_fields; ++ mysql_fetch_lengths; ++ mysql_fetch_row; ++ mysql_field_count; ++ mysql_field_seek; ++ mysql_field_tell; ++ mysql_free_result; ++ mysql_get_character_set_info; ++ mysql_get_client_info; ++ mysql_get_client_version; ++ mysql_get_host_info; ++ mysql_get_parameters; ++ mysql_get_proto_info; ++ mysql_get_server_info; ++ mysql_get_server_version; ++ mysql_get_ssl_cipher; ++ mysql_hex_string; ++ mysql_info; ++ mysql_init; ++ mysql_insert_id; ++ mysql_kill; ++ mysql_list_dbs; ++ mysql_list_fields; ++ mysql_list_processes; ++ mysql_list_tables; ++ mysql_more_results; ++ mysql_next_result; ++ mysql_num_fields; ++ mysql_num_rows; ++ mysql_options; ++ mysql_ping; ++ mysql_query; ++ mysql_read_query_result; ++ mysql_real_connect; ++ mysql_real_escape_string; ++ mysql_real_query; ++ mysql_refresh; ++ mysql_rollback; ++ mysql_row_seek; ++ mysql_row_tell; ++ mysql_select_db; ++ mysql_send_query; ++ mysql_server_end; ++ mysql_server_init; ++ mysql_set_character_set; ++ mysql_set_local_infile_default; ++ mysql_set_local_infile_handler; ++ mysql_set_server_option; ++ mysql_shutdown; ++ mysql_sqlstate; ++ mysql_ssl_set; ++ mysql_stat; ++ mysql_stmt_affected_rows; ++ mysql_stmt_attr_get; ++ mysql_stmt_attr_set; ++ mysql_stmt_bind_param; ++ mysql_stmt_bind_result; ++ mysql_stmt_close; ++ mysql_stmt_data_seek; ++ mysql_stmt_errno; ++ mysql_stmt_error; ++ mysql_stmt_execute; ++ mysql_stmt_fetch; ++ mysql_stmt_fetch_column; ++ mysql_stmt_field_count; ++ mysql_stmt_free_result; ++ mysql_stmt_init; ++ mysql_stmt_insert_id; ++ mysql_stmt_num_rows; ++ mysql_stmt_param_count; ++ mysql_stmt_param_metadata; ++ mysql_stmt_prepare; ++ mysql_stmt_reset; ++ mysql_stmt_result_metadata; ++ mysql_stmt_row_seek; ++ mysql_stmt_row_tell; ++ mysql_stmt_send_long_data; ++ mysql_stmt_sqlstate; ++ mysql_stmt_store_result; ++ mysql_store_result; ++ mysql_thread_end; ++ mysql_thread_id; ++ mysql_thread_init; ++ mysql_thread_safe; ++ mysql_use_result; ++ mysql_warning_count; ++ ++ free_defaults; ++ handle_options; ++ load_defaults; ++ my_print_help; ++ ++ #my_make_scrambled_password; ++ THR_KEY_mysys; ++ ++ mysql_client_find_plugin; ++ mysql_client_register_plugin; ++ mysql_load_plugin; ++ mysql_load_plugin_v; ++ mysql_plugin_options; ++ mysql_stmt_next_result; ++ ++ #mysql_default_charset_info; ++ mysql_get_charset; ++ mysql_get_charset_by_csname; ++ mysql_net_realloc; ++ #mysql_client_errors; ++ *; ++} libmysqlclient_16; +diff -rup old/mysys/charset.c new/mysys/charset.c +--- old/mysys/charset.c 2013-11-04 20:15:10.000000000 +0100 ++++ new/mysys/charset.c 2014-01-14 12:10:27.197377417 +0100 +@@ -1040,3 +1040,20 @@ size_t escape_quotes_for_mysql(CHARSET_I + *to= 0; + return overflow ? (ulong)~0 : (ulong) (to - to_start); + } ++ ++#ifndef EMBEDDED_LIBRARY ++ ++// Hack to provide Fedora symbols ++ ++CHARSET_INFO *mysql_get_charset(uint cs_number, myf flags) ++{ ++ return get_charset(cs_number, flags); ++} ++ ++ ++CHARSET_INFO * mysql_get_charset_by_csname(const char *cs_name, uint cs_flags, myf flags) ++{ ++ return get_charset_by_csname(cs_name, cs_flags, flags); ++} ++ ++#endif +diff -rup old/sql/net_serv.cc new/sql/net_serv.cc +--- old/sql/net_serv.cc 2013-11-04 20:15:10.000000000 +0100 ++++ new/sql/net_serv.cc 2014-01-14 12:10:27.252380688 +0100 +@@ -1047,3 +1047,15 @@ void my_net_set_write_timeout(NET *net, + DBUG_VOID_RETURN; + } + ++#ifndef EMBEDDED_LIBRARY ++C_MODE_START ++ ++// Hack to provide Fedora symbols ++ ++my_bool mysql_net_realloc(NET *net, size_t length) ++{ ++ return net_realloc(net, length); ++} ++ ++C_MODE_END ++#endif +diff -rup old/sql/password.c new/sql/password.c +--- old/sql/password.c 2013-11-04 20:15:10.000000000 +0100 ++++ new/sql/password.c 2014-01-14 12:10:27.309384078 +0100 +@@ -584,3 +584,16 @@ void make_password_from_salt(char *to, c + octet2hex(to, (const char*) hash_stage2, SHA1_HASH_SIZE); + } + ++#ifndef EMBEDDED_LIBRARY ++ ++// Hack to provide both libmysqlclient_16 and libmysqlclient_18 symbol versions ++ ++#define SYM_16(_exportedsym) __asm__(".symver symver16_" #_exportedsym "," #_exportedsym "@libmysqlclient_16") ++ ++void symver16_my_make_scrambled_password(char *to, const char *password, size_t pass_len) ++{ ++ my_make_scrambled_password(to, password, pass_len); ++} ++SYM_16(my_make_scrambled_password); ++ ++#endif +diff -rup old/sql-common/client.c new/sql-common/client.c +--- old/sql-common/client.c 2013-11-04 20:15:10.000000000 +0100 ++++ new/sql-common/client.c 2014-01-14 12:10:27.199377537 +0100 +@@ -4847,3 +4847,136 @@ static int clear_password_auth_client(MY + + return res ? CR_ERROR : CR_OK; + } ++ ++#ifndef EMBEDDED_LIBRARY ++ ++// Hack to provide both libmysqlclient_16 and libmysqlclient_18 symbol versions ++ ++#define SYM_16(_exportedsym) __asm__(".symver symver16_" #_exportedsym "," #_exportedsym "@libmysqlclient_16") ++ ++void STDCALL symver16_mysql_close(MYSQL *mysql) ++{ ++ return mysql_close(mysql); ++} ++SYM_16(mysql_close); ++ ++ ++uint STDCALL symver16_mysql_errno(MYSQL *mysql) ++{ ++ return mysql_errno(mysql); ++} ++SYM_16(mysql_errno); ++ ++ ++const char * STDCALL symver16_mysql_error(MYSQL *mysql) ++{ ++ return mysql_error(mysql); ++} ++SYM_16(mysql_error); ++ ++ ++ulong * STDCALL symver16_mysql_fetch_lengths(MYSQL_RES *res) ++{ ++ return mysql_fetch_lengths(res); ++} ++SYM_16(mysql_fetch_lengths); ++ ++ ++MYSQL_ROW STDCALL symver16_mysql_fetch_row(MYSQL_RES *res) ++{ ++ return mysql_fetch_row(res); ++} ++SYM_16(mysql_fetch_row); ++ ++ ++void STDCALL symver16_mysql_free_result(MYSQL_RES *result) ++{ ++ return mysql_free_result(result); ++} ++SYM_16(mysql_free_result); ++ ++ ++ulong STDCALL symver16_mysql_get_server_version(MYSQL *mysql) ++{ ++ return mysql_get_server_version(mysql); ++} ++SYM_16(mysql_get_server_version); ++ ++ ++const char * STDCALL symver16_mysql_get_ssl_cipher(MYSQL *mysql __attribute__((unused))) ++{ ++ return mysql_get_ssl_cipher(mysql); ++} ++SYM_16(mysql_get_ssl_cipher); ++ ++ ++MYSQL * STDCALL symver16_mysql_init(MYSQL *mysql) ++{ ++ return mysql_init(mysql); ++} ++SYM_16(mysql_init); ++ ++ ++unsigned int STDCALL symver16_mysql_num_fields(MYSQL_RES *res) ++{ ++ return mysql_num_fields(res); ++} ++SYM_16(mysql_num_fields); ++ ++ ++my_ulonglong STDCALL symver16_mysql_num_rows(MYSQL_RES *res) ++{ ++ return mysql_num_rows(res); ++} ++SYM_16(mysql_num_rows); ++ ++ ++int STDCALL symver16_mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg) ++{ ++ return mysql_options(mysql, option, arg); ++} ++SYM_16(mysql_options); ++ ++ ++int STDCALL symver16_mysql_real_query(MYSQL *mysql, const char *query, ulong length) ++{ ++ return mysql_real_query(mysql, query, length); ++} ++SYM_16(mysql_real_query); ++ ++ ++int STDCALL symver16_mysql_select_db(MYSQL *mysql, const char *db) ++{ ++ return mysql_select_db(mysql, db); ++} ++SYM_16(mysql_select_db); ++ ++ ++int STDCALL symver16_mysql_send_query(MYSQL* mysql, const char* query, ulong length) ++{ ++ return mysql_send_query(mysql, query, length); ++} ++SYM_16(mysql_send_query); ++ ++ ++int STDCALL symver16_mysql_set_character_set(MYSQL *mysql, const char *cs_name) ++{ ++ return mysql_set_character_set(mysql, cs_name); ++} ++SYM_16(mysql_set_character_set); ++ ++ ++my_bool STDCALL symver16_mysql_ssl_set(MYSQL *mysql __attribute__((unused)), const char *key __attribute__((unused)), const char *cert __attribute__((unused)), const char *ca __attribute__((unused)), const char *capath __attribute__((unused)), const char *cipher __attribute__((unused))) ++{ ++ return mysql_ssl_set(mysql, key, cert, ca, capath, cipher); ++} ++SYM_16(mysql_ssl_set); ++ ++ ++MYSQL_RES * STDCALL symver16_mysql_store_result(MYSQL *mysql) ++{ ++ return mysql_store_result(mysql); ++} ++SYM_16(mysql_store_result); ++ ++#endif diff --git a/community-mysql-5.7.9-major.patch b/community-mysql-5.7.9-major.patch deleted file mode 100644 index b822aed..0000000 --- a/community-mysql-5.7.9-major.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- mysql-5.7.8/cmake/mysql_version.cmake.orig 2015-09-23 15:43:23.252558904 +0200 -+++ mysql-5.7.8/cmake/mysql_version.cmake 2015-09-23 15:42:58.187604141 +0200 -@@ -17,7 +17,7 @@ - # Global constants, only to be changed between major releases. - # - --SET(SHARED_LIB_MAJOR_VERSION "20") -+SET(SHARED_LIB_MAJOR_VERSION "1020") - SET(SHARED_LIB_MINOR_VERSION "0") - SET(PROTOCOL_VERSION "10") - SET(DOT_FRM_VERSION "6") diff --git a/community-mysql-boost.patch b/community-mysql-boost.patch deleted file mode 100644 index 03e2aa3..0000000 --- a/community-mysql-boost.patch +++ /dev/null @@ -1,160 +0,0 @@ ---- mysql-5.7.9/client/CMakeLists.txt.orig 2015-10-12 08:21:35.000000000 +0200 -+++ mysql-5.7.9/client/CMakeLists.txt 2015-11-10 21:16:37.264522003 +0100 -@@ -30,12 +30,6 @@ INCLUDE_DIRECTORIES( - - INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) - --# Prevent Boost from including external precompiled Boost libraries, use --# threading (not implemented for Solaris) and turn off unused functionality. --ADD_DEFINITIONS( -- -DBOOST_ALL_NO_LIB -- -DBOOST_SYSTEM_NO_DEPRECATED) -- - ## Subdirectory with common client code. - ADD_SUBDIRECTORY(base) - ## Subdirectory for mysqlpump code. -@@ -46,74 +40,6 @@ COPY_OPENSSL_DLLS(copy_openssl_client) - - INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) - --SET(BOOST_SOURCES_DIR ${BOOST_PATCHES_DIR}) -- --IF(WIN32) -- LIST(APPEND BOOST_THREAD_SOURCES -- ${BOOST_SOURCES_DIR}/libs/thread/src/win32/thread.cpp -- ${BOOST_SOURCES_DIR}/libs/thread/src/win32/tss_dll.cpp -- ${BOOST_SOURCES_DIR}/libs/thread/src/win32/tss_pe.cpp -- ) --ELSE() -- LIST(APPEND BOOST_THREAD_SOURCES -- ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp -- ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp -- ) --ENDIF() -- --SET(BOOST_LIB_SOURCES -- ${BOOST_SOURCES_DIR}/libs/atomic/src/lockpool.cpp -- ${BOOST_SOURCES_DIR}/libs/chrono/src/chrono.cpp -- ${BOOST_SOURCES_DIR}/libs/chrono/src/process_cpu_clocks.cpp -- ${BOOST_SOURCES_DIR}/libs/chrono/src/thread_clock.cpp -- ${BOOST_SOURCES_DIR}/libs/system/src/error_code.cpp -- ${BOOST_SOURCES_DIR}/libs/thread/src/future.cpp --) -- --ADD_CONVENIENCE_LIBRARY(boost_lib -- ${BOOST_LIB_SOURCES} -- ${BOOST_THREAD_SOURCES} --) -- --SET_TARGET_PROPERTIES(boost_lib -- PROPERTIES COMPILE_FLAGS "-DBOOST_THREAD_BUILD_LIB") -- --IF(HAVE_clock_gettime_IN_rt) -- TARGET_LINK_LIBRARIES(boost_lib ${LIBRT}) --ENDIF() -- --# Do not build library unless it is needed by some other target. --SET_PROPERTY(TARGET boost_lib PROPERTY EXCLUDE_FROM_ALL TRUE) -- --MY_CHECK_CXX_COMPILER_FLAG("-Wno-logical-op" HAVE_NO_LOGICAL_OP) --IF(HAVE_NO_LOGICAL_OP) -- ADD_COMPILE_FLAGS( -- ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp -- COMPILE_FLAGS "-Wno-logical-op" -- ) --ENDIF() -- --# Boost source has unused local typedefs. --MY_CHECK_CXX_COMPILER_FLAG("-Wno-unused-local-typedefs" HAVE_NO_UNUSED_TYPEDEFS) --IF(HAVE_NO_UNUSED_TYPEDEFS) -- ADD_COMPILE_FLAGS( -- ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp -- ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp -- COMPILE_FLAGS "-Wno-unused-local-typedefs" -- ) --ENDIF() -- --ADD_COMPILE_FLAGS( -- ${BOOST_LIB_SOURCES} -- ${BOOST_THREAD_SOURCES} -- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR} --) -- --# Need explicit pthread for gcc -fsanitize=address --IF(CMAKE_USE_PTHREADS_INIT AND CMAKE_C_FLAGS MATCHES "-fsanitize=") -- TARGET_LINK_LIBRARIES(boost_lib pthread) --ENDIF() -- - ADD_DEFINITIONS(${SSL_DEFINES}) - MYSQL_ADD_EXECUTABLE(mysql completion_hash.cc mysql.cc readline.cc ../sql-common/sql_string.cc) - TARGET_LINK_LIBRARIES(mysql mysqlclient) -@@ -125,9 +51,6 @@ IF(NOT WITHOUT_SERVER) - MYSQL_ADD_EXECUTABLE(mysql_upgrade - upgrade/program.cc - ) --ADD_COMPILE_FLAGS( -- upgrade/program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR} --) - TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient client_base mysqlcheck_core) - ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs GenSysSchema) - ENDIF() ---- mysql-5.7.9/client/base/CMakeLists.txt.orig 2015-11-10 21:38:13.968255057 +0100 -+++ mysql-5.7.9/client/base/CMakeLists.txt 2015-11-10 21:41:47.685928592 +0100 -@@ -45,14 +45,7 @@ ADD_CONVENIENCE_LIBRARY(client_base - ../../sql-common/sql_string.cc - ) - --ADD_COMPILE_FLAGS( -- mutex.cc -- mysql_query_runner.cc -- show_variable_query_extractor.cc -- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR} --) -- --TARGET_LINK_LIBRARIES(client_base mysqlclient boost_lib) -+TARGET_LINK_LIBRARIES(client_base mysqlclient boost_chrono boost_system) - - # Do not build library unless it is needed by some other target. - SET_PROPERTY(TARGET client_base PROPERTY EXCLUDE_FROM_ALL TRUE) ---- mysql-5.7.9/client/dump/CMakeLists.txt.orig 2015-11-10 21:37:51.399289532 +0100 -+++ mysql-5.7.9/client/dump/CMakeLists.txt 2015-11-10 21:40:32.536043387 +0100 -@@ -101,7 +101,7 @@ IF (NOT (CMAKE_CXX_COMPILER_ID STREQUAL - ../../sql-common/my_user.c) - ADD_CONVENIENCE_LIBRARY(mysqlpump_lib ${MYSQLPUMP_LIB_SOURCES}) - TARGET_LINK_LIBRARIES(mysqlpump_lib -- client_base ${LZ4_LIBRARY} boost_lib) -+ client_base ${LZ4_LIBRARY} boost_chrono boost_system) - - # Boost source has unused local typedefs. - MY_CHECK_CXX_COMPILER_FLAG("-Wno-unused-local-typedefs" -@@ -125,19 +125,11 @@ IF (NOT (CMAKE_CXX_COMPILER_ID STREQUAL - ENDIF() - - ADD_COMPILE_FLAGS( -- ${MYSQLPUMP_LIB_SOURCES} -- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR} -- ) -- -- ADD_COMPILE_FLAGS( - compression_writer.cc - mysqldump_tool_chain_maker.cc - COMPILE_FLAGS -I${LZ4_INCLUDE_DIR} - ) - MYSQL_ADD_EXECUTABLE(mysqlpump program.cc) -- ADD_COMPILE_FLAGS( -- program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR} -- ) - - TARGET_LINK_LIBRARIES(mysqlpump mysqlpump_lib) - ---- mysql-5.7.9/CMakeLists.txt.orig 2015-10-12 08:21:33.000000000 +0200 -+++ mysql-5.7.9/CMakeLists.txt 2015-11-11 12:19:26.313509287 +0100 -@@ -432,8 +432,6 @@ ELSE() - SET(DEFAULT_TMPDIR "\"${TMPDIR}\"") - ENDIF() - --INCLUDE(cmake/boost.cmake) -- - IF (CMAKE_SYSTEM_NAME MATCHES "Linux") - OPTION(WITH_SYSTEMD "Enable installation of systemd support files" OFF) - IF (WITH_SYSTEMD) diff --git a/community-mysql-install-db-sharedir.patch b/community-mysql-install-db-sharedir.patch new file mode 100644 index 0000000..4949b6d --- /dev/null +++ b/community-mysql-install-db-sharedir.patch @@ -0,0 +1,38 @@ +Use configured value instead of hardcoded path + +diff -up mariadb-10.0.13/scripts/mysql_install_db.pl.in.pbasedir mariadb-10.0.13/scripts/mysql_install_db.pl.in +--- mariadb-10.0.13/scripts/mysql_install_db.pl.in.pbasedir 2014-09-04 12:50:24.061979080 +0200 ++++ mariadb-10.0.13/scripts/mysql_install_db.pl.in 2014-09-04 12:51:22.929045559 +0200 +@@ -318,7 +318,7 @@ elsif ( $opt->{basedir} ) + find_in_basedir($opt,"file","mysqld-nt", + "bin"); # ,"sql" + $pkgdatadir = find_in_basedir($opt,"dir","fill_help_tables.sql", +- "share","share/mysql"); # ,"scripts" ++ "share","@INSTALL_MYSQLSHAREDIR@"); # ,"scripts" + $scriptdir = "$opt->{basedir}/scripts"; + } + else +diff -up mariadb-10.0.13/scripts/mysql_install_db.sh.pbasedir mariadb-10.0.13/scripts/mysql_install_db.sh +--- mariadb-10.0.13/scripts/mysql_install_db.sh.pbasedir 2014-09-04 12:51:59.005086301 +0200 ++++ mariadb-10.0.13/scripts/mysql_install_db.sh 2014-09-04 12:54:02.794222597 +0200 +@@ -280,16 +280,16 @@ 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` ++ langdir=`find_in_basedir --dir errmsg.sys share/english @INSTALL_MYSQLSHAREDIR@/english` + if test -z "$langdir" + then +- cannot_find_file errmsg.sys $basedir/share/english $basedir/share/mysql/english ++ cannot_find_file errmsg.sys $basedir/share/english $basedir/@INSTALL_MYSQLSHAREDIR@/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 @INSTALL_MYSQLSHAREDIR@` + if test -z "$pkgdatadir" + then +- cannot_find_file fill_help_tables.sql $basedir/share $basedir/share/mysql ++ cannot_find_file fill_help_tables.sql $basedir/share $basedir/@INSTALL_MYSQLSHAREDIR@ + exit 1 + fi + scriptdir="$basedir/scripts" diff --git a/community-mysql-paths.patch b/community-mysql-paths.patch index 7f9ed93..d406b96 100644 --- a/community-mysql-paths.patch +++ b/community-mysql-paths.patch @@ -4,10 +4,10 @@ Software Collections. Removing these hard-coded paths should fix it. Upstream report: https://mariadb.atlassian.net/browse/MDEV-6485 -diff -up --recursive mysql-5.7.8.orig/client/mysql_plugin.c mysql-5.7.8/client/mysql_plugin.c ---- mysql-5.7.8.orig/client/mysql_plugin.c 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/client/mysql_plugin.c 2015-09-23 13:32:57.711495542 +0200 -@@ -94,6 +94,7 @@ static int find_plugin(char *tp_path); +diff -up mysql-5.6.23/client/mysql_plugin.c.hardpaths mysql-5.6.23/client/mysql_plugin.c +--- mysql-5.6.23/client/mysql_plugin.c.hardpaths 2015-01-19 14:48:30.000000000 +0100 ++++ mysql-5.6.23/client/mysql_plugin.c 2015-02-23 13:34:21.328484658 +0100 +@@ -90,6 +90,7 @@ static int find_plugin(char *tp_path); static int build_bootstrap_file(char *operation, char *bootstrap); static int dump_bootstrap_file(char *bootstrap_file); static int bootstrap_server(char *server_path, char *bootstrap_file); @@ -15,7 +15,7 @@ diff -up --recursive mysql-5.7.8.orig/client/mysql_plugin.c mysql-5.7.8/client/m int main(int argc,char *argv[]) -@@ -125,7 +126,7 @@ int main(int argc,char *argv[]) +@@ -121,7 +122,7 @@ int main(int argc,char *argv[]) */ if ((error= process_options(argc, argv, operation)) || (error= check_access()) || @@ -24,7 +24,7 @@ diff -up --recursive mysql-5.7.8.orig/client/mysql_plugin.c mysql-5.7.8/client/m (error= find_plugin(tp_path)) || (error= build_bootstrap_file(operation, bootstrap))) goto exit; -@@ -331,7 +332,7 @@ static int get_default_values() +@@ -324,7 +325,7 @@ static int get_default_values() FILE *file= 0; memset(tool_path, 0, FN_REFLEN); @@ -33,7 +33,7 @@ diff -up --recursive mysql-5.7.8.orig/client/mysql_plugin.c mysql-5.7.8/client/m goto exit; else { -@@ -1014,6 +1015,55 @@ exit: +@@ -989,6 +990,55 @@ exit: } @@ -62,7 +62,7 @@ diff -up --recursive mysql-5.7.8.orig/client/mysql_plugin.c mysql-5.7.8/client/m + { + if (path != pos) + { -+ strxmov(my_stpnmov(to,path,(uint) (pos-path)),dir,name,ext,NullS); ++ strxmov(strnmov(to,path,(uint) (pos-path)),dir,name,ext,NullS); + if (!access(to,F_OK)) + { + if (opt_verbose) @@ -89,10 +89,10 @@ diff -up --recursive mysql-5.7.8.orig/client/mysql_plugin.c mysql-5.7.8/client/m /** Locate the tool and form tool path. -diff -up --recursive mysql-5.7.8.orig/cmake/install_layout.cmake mysql-5.7.8/cmake/install_layout.cmake ---- mysql-5.7.8.orig/cmake/install_layout.cmake 2015-07-20 14:25:07.000000000 +0200 -+++ mysql-5.7.8/cmake/install_layout.cmake 2015-09-23 13:32:57.711495542 +0200 -@@ -107,7 +107,7 @@ IF(UNIX) +diff -up mysql-5.6.23/cmake/install_layout.cmake.hardpaths mysql-5.6.23/cmake/install_layout.cmake +--- mysql-5.6.23/cmake/install_layout.cmake.hardpaths 2015-01-19 14:48:32.000000000 +0100 ++++ mysql-5.6.23/cmake/install_layout.cmake 2015-02-23 13:34:21.330484657 +0100 +@@ -94,7 +94,7 @@ IF(UNIX) " Choose between ${VALID_INSTALL_LAYOUTS}" ) ENDIF() @@ -101,7 +101,7 @@ diff -up --recursive mysql-5.7.8.orig/cmake/install_layout.cmake mysql-5.7.8/cma CACHE PATH "config directory (for my.cnf)") MARK_AS_ADVANCED(SYSCONFDIR) ENDIF() -@@ -321,6 +321,7 @@ SET(INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR +@@ -145,6 +145,7 @@ SET(INSTALL_PLUGINTESTDIR_STANDALONE SET(INSTALL_BINDIR_RPM "bin") SET(INSTALL_SBINDIR_RPM "sbin") SET(INSTALL_SCRIPTDIR_RPM "bin") @@ -109,10 +109,10 @@ diff -up --recursive mysql-5.7.8.orig/cmake/install_layout.cmake mysql-5.7.8/cma # IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") SET(INSTALL_LIBDIR_RPM "lib64") -diff -up --recursive mysql-5.7.8.orig/mysys_ssl/my_default.cc mysql-5.7.8/mysys_ssl/my_default.cc ---- mysql-5.7.8.orig/mysys_ssl/my_default.cc 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/mysys_ssl/my_default.cc 2015-09-23 13:32:57.712495541 +0200 -@@ -1404,12 +1404,12 @@ static const char **init_default_directo +diff -up mysql-5.6.23/mysys_ssl/my_default.cc.hardpaths mysql-5.6.23/mysys_ssl/my_default.cc +--- mysql-5.6.23/mysys_ssl/my_default.cc.hardpaths 2015-01-19 14:48:32.000000000 +0100 ++++ mysql-5.6.23/mysys_ssl/my_default.cc 2015-02-23 13:34:21.329484658 +0100 +@@ -1389,12 +1389,12 @@ static const char **init_default_directo #else @@ -128,11 +128,11 @@ diff -up --recursive mysql-5.7.8.orig/mysys_ssl/my_default.cc mysql-5.7.8/mysys_ #endif /* DEFAULT_SYSCONFDIR */ #endif -diff -up --recursive mysql-5.7.8.orig/scripts/CMakeLists.txt mysql-5.7.8/scripts/CMakeLists.txt ---- mysql-5.7.8.orig/scripts/CMakeLists.txt 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/scripts/CMakeLists.txt 2015-09-23 13:43:47.463665346 +0200 -@@ -295,7 +295,7 @@ ELSE() - ENDIF() +diff -up mysql-5.6.23/scripts/CMakeLists.txt.hardpaths mysql-5.6.23/scripts/CMakeLists.txt +--- mysql-5.6.23/scripts/CMakeLists.txt.hardpaths 2015-02-23 13:34:21.325484657 +0100 ++++ mysql-5.6.23/scripts/CMakeLists.txt 2015-02-23 13:34:21.330484657 +0100 +@@ -219,7 +219,7 @@ INSTALL_SCRIPT( + ) SET(prefix "${CMAKE_INSTALL_PREFIX}") -SET(sysconfdir ${prefix}) @@ -140,9 +140,30 @@ diff -up --recursive mysql-5.7.8.orig/scripts/CMakeLists.txt mysql-5.7.8/scripts SET(bindir ${prefix}/${INSTALL_BINDIR}) SET(libexecdir ${prefix}/${INSTALL_SBINDIR}) SET(scriptdir ${prefix}/${INSTALL_BINDIR}) -diff -up --recursive mysql-5.7.8.orig/scripts/mysqld_multi.sh mysql-5.7.8/scripts/mysqld_multi.sh ---- mysql-5.7.8.orig/scripts/mysqld_multi.sh 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/scripts/mysqld_multi.sh 2015-09-23 13:32:57.712495541 +0200 +diff -up mysql-5.6.23/scripts/mysqlaccess.sh.hardpaths mysql-5.6.23/scripts/mysqlaccess.sh +--- mysql-5.6.23/scripts/mysqlaccess.sh.hardpaths 2015-01-19 14:48:32.000000000 +0100 ++++ mysql-5.6.23/scripts/mysqlaccess.sh 2015-02-23 13:34:21.329484658 +0100 +@@ -483,9 +483,6 @@ MySQLaccess::Report::Print_Header(); + elsif (-f "@sysconfdir@/$script_conf") { + require "@sysconfdir@/$script_conf"; + } +- elsif (-f "/etc/$script_conf") { +- require "/etc/$script_conf"; +- } + + # **************************** + # Read in all parameters +@@ -951,7 +948,6 @@ sub MergeConfigFile { + sub MergeConfigFiles { + my ($name,$pass,$uid,$gid,$quota,$comment,$gcos,$dir,$shell) = getpwuid $<; + MergeConfigFile("@sysconfdir@/my.cnf"); +- MergeConfigFile("/etc/my.cnf"); + MergeConfigFile("$dir/.my.cnf"); + } + +diff -up mysql-5.6.23/scripts/mysqld_multi.sh.hardpaths mysql-5.6.23/scripts/mysqld_multi.sh +--- mysql-5.6.23/scripts/mysqld_multi.sh.hardpaths 2015-01-19 14:48:32.000000000 +0100 ++++ mysql-5.6.23/scripts/mysqld_multi.sh 2015-02-23 13:34:21.329484658 +0100 @@ -573,9 +573,7 @@ sub list_defaults_files my %seen; # Don't list the same file more than once @@ -154,3 +175,15 @@ diff -up --recursive mysql-5.7.8.orig/scripts/mysqld_multi.sh mysql-5.7.8/script ($ENV{MYSQL_HOME} ? "$ENV{MYSQL_HOME}/my.cnf" : undef), $opt{'extra-file'}, ($ENV{HOME} ? "$ENV{HOME}/.my.cnf" : undef)); +diff -up mysql-5.6.23/scripts/mysql_install_db.pl.in.hardpaths mysql-5.6.23/scripts/mysql_install_db.pl.in +--- mysql-5.6.23/scripts/mysql_install_db.pl.in.hardpaths 2015-02-23 13:34:37.995485386 +0100 ++++ mysql-5.6.23/scripts/mysql_install_db.pl.in 2015-02-23 13:35:15.505487028 +0100 +@@ -922,7 +922,7 @@ if ( open(PIPE, "| $mysqld_install_cmd_l + "The new default config file was created as $copy_cfg_file,", + "please compare it with your file and take the changes you need."); + } +- foreach my $cfg ( "/etc/my.$cnfext", "/etc/mysql/my.$cnfext" ) ++ foreach my $cfg ( "@SYSCONFDIR@/my.$cnfext", "@SYSCONFDIR@/mysql/my.$cnfext" ) + { + check_sys_cfg_file ($opt, $cfg); + } diff --git a/community-mysql-pluginerrmsg.patch b/community-mysql-pluginerrmsg.patch new file mode 100644 index 0000000..a781172 --- /dev/null +++ b/community-mysql-pluginerrmsg.patch @@ -0,0 +1,78 @@ +In MySQL 5.5, the InnoDB Plugin is the default version and it's compiled in. +In this case, the plugin cannot be uninstalled and we get error when trying +to do so: + +mysql> uninstall plugin innodb; +ERROR 1305 (42000): PLUGIN innodb does not exist + +But the error message is misleading. The plugin does exist, it just cannot +be installed because it's not dynamically loaded. + +MySQL bug report: http://bugs.mysql.com/bug.php?id=51771 +MariaDB bug report: https://mariadb.atlassian.net/browse/MDEV-4573 +MariaDB fix: http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/3802 + +diff --git a/include/mysql.h b/include/mysql.h +index 38b54de..0b13e92 100644 +--- a/include/mysql.h ++++ b/include/mysql.h +@@ -134,6 +134,7 @@ typedef unsigned long long my_ulonglong; + + /* backward compatibility define - to be removed eventually */ + #define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED ++#define WARN_PLUGIN_DELETE_BUILTIN ER_PLUGIN_DELETE_BUILTIN + + typedef struct st_mysql_rows { + struct st_mysql_rows *next; /* list of rows */ +diff --git a/mysql-test/r/plugin.result b/mysql-test/r/plugin.result +index a3d7437..8ea475d 100644 +--- a/mysql-test/r/plugin.result ++++ b/mysql-test/r/plugin.result +@@ -232,3 +232,5 @@ DROP PROCEDURE p_install; + SET DEBUG_SYNC='RESET'; + disconnect con1; + disconnect con2; ++UNINSTALL PLUGIN MyISAM; ++ERROR HY000: Built-in plugins cannot be deleted +diff --git a/mysql-test/t/plugin.test b/mysql-test/t/plugin.test +index de68d36..bf9fb7d 100644 +--- a/mysql-test/t/plugin.test ++++ b/mysql-test/t/plugin.test +@@ -277,3 +277,9 @@ disconnect con1; + disconnect con2; + + --disable_connect_log ++ ++# ++# MDEV-4573 UNINSTALL PLUGIN misleading error message for non-dynamic plugins ++# ++--error ER_PLUGIN_DELETE_BUILTIN ++UNINSTALL PLUGIN MyISAM; +diff --git a/sql/share/errmsg-utf8.txt b/sql/share/errmsg-utf8.txt +index 15acc66..35e2c3c 100644 +--- a/sql/share/errmsg-utf8.txt ++++ b/sql/share/errmsg-utf8.txt +@@ -6235,7 +6235,7 @@ WARN_NO_MASTER_INFO + WARN_OPTION_IGNORED + eng "<%-.64s> option ignored" + ger "Option <%-.64s> ignoriert" +-WARN_PLUGIN_DELETE_BUILTIN ++ER_PLUGIN_DELETE_BUILTIN + eng "Built-in plugins cannot be deleted" + ger "Eingebaute Plugins können nicht gelöscht werden" + WARN_PLUGIN_BUSY +diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc +index f134e4f..7e34432 100644 +--- a/sql/sql_plugin.cc ++++ b/sql/sql_plugin.cc +@@ -2008,9 +2008,7 @@ bool mysql_uninstall_plugin(THD *thd, const LEX_STRING *name) + } + if (!plugin->plugin_dl) + { +- push_warning(thd, Sql_condition::WARN_LEVEL_WARN, +- WARN_PLUGIN_DELETE_BUILTIN, ER(WARN_PLUGIN_DELETE_BUILTIN)); +- my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "PLUGIN", name->str); ++ my_error(ER_PLUGIN_DELETE_BUILTIN, MYF(0)); + goto err; + } + if (plugin->load_option == PLUGIN_FORCE_PLUS_PERMANENT) diff --git a/community-mysql-s390-tsc.patch b/community-mysql-s390-tsc.patch index 91bfc10..f995266 100644 --- a/community-mysql-s390-tsc.patch +++ b/community-mysql-s390-tsc.patch @@ -2,38 +2,38 @@ Support s390/s390x in performance schema's cycle-counting functions. Filed upstream at http://bugs.mysql.com/bug.php?id=59953 -diff -up --recursive mysql-5.7.9.orig/include/my_rdtsc.h mysql-5.7.9/include/my_rdtsc.h ---- mysql-5.7.9.orig/include/my_rdtsc.h 2015-10-12 08:21:33.000000000 +0200 -+++ mysql-5.7.9/include/my_rdtsc.h 2015-11-10 16:33:36.037432669 +0100 +diff -up mysql-5.5.28/include/my_rdtsc.h.p11 mysql-5.5.28/include/my_rdtsc.h +--- mysql-5.5.28/include/my_rdtsc.h.p11 2012-08-29 10:50:46.000000000 +0200 ++++ mysql-5.5.28/include/my_rdtsc.h 2012-12-06 14:22:13.651823354 +0100 @@ -125,6 +125,7 @@ C_MODE_END + #define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME 25 #define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26 #define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27 - #define MY_TIMER_ROUTINE_ASM_AARCH64 28 -+#define MY_TIMER_ROUTINE_ASM_S390 29 ++#define MY_TIMER_ROUTINE_ASM_S390 28 #endif -diff -up --recursive mysql-5.7.9.orig/mysys/my_rdtsc.c mysql-5.7.9/mysys/my_rdtsc.c ---- mysql-5.7.9.orig/mysys/my_rdtsc.c 2015-10-12 08:21:33.000000000 +0200 -+++ mysql-5.7.9/mysys/my_rdtsc.c 2015-11-10 16:33:36.038432668 +0100 -@@ -183,6 +183,13 @@ ulonglong my_timer_cycles(void) - __asm __volatile__ ("mrs %[rt],cntvct_el0" : [rt] "=r" (result)); - return result; +diff -up mysql-5.5.28/mysys/my_rdtsc.c.p11 mysql-5.5.28/mysys/my_rdtsc.c +--- mysql-5.5.28/mysys/my_rdtsc.c.p11 2012-08-29 10:50:46.000000000 +0200 ++++ mysql-5.5.28/mysys/my_rdtsc.c 2012-12-06 14:22:13.672823375 +0100 +@@ -224,6 +224,13 @@ ulonglong my_timer_cycles(void) + clock_gettime(CLOCK_SGI_CYCLE, &tp); + return (ulonglong) tp.tv_sec * 1000000000 + (ulonglong) tp.tv_nsec; } +#elif defined(__GNUC__) && defined(__s390__) + /* covers both s390 and s390x */ + { + ulonglong result; + __asm__ __volatile__ ("stck %0" : "=Q" (result) : : "cc"); -+ return result; ++ return result; + } #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) /* gethrtime may appear as either cycle or nanosecond counter */ return (ulonglong) gethrtime(); -@@ -487,6 +494,8 @@ void my_timer_init(MY_TIMER_INFO *mti) +@@ -533,6 +540,8 @@ void my_timer_init(MY_TIMER_INFO *mti) mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC32; - #elif defined(__GNUC__) && defined(__aarch64__) - mti->cycles.routine= MY_TIMER_ROUTINE_ASM_AARCH64; + #elif defined(__sgi) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_SGI_CYCLE) + mti->cycles.routine= MY_TIMER_ROUTINE_SGI_CYCLE; +#elif defined(__GNUC__) && defined(__s390__) + mti->cycles.routine= MY_TIMER_ROUTINE_ASM_S390; #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME) diff --git a/community-mysql-scripts.patch b/community-mysql-scripts.patch index db6c70b..e7874ce 100644 --- a/community-mysql-scripts.patch +++ b/community-mysql-scripts.patch @@ -1,10 +1,10 @@ -diff -rup mysql-5.7.8.orig/scripts/CMakeLists.txt mysql-5.7.8/scripts/CMakeLists.txt ---- mysql-5.7.8.orig/scripts/CMakeLists.txt 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/scripts/CMakeLists.txt 2015-09-24 10:47:01.733914088 +0200 -@@ -483,6 +483,34 @@ ELSE() - PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ - ) - ENDIF() +diff -rup mysql-5.6.19-orig/scripts/CMakeLists.txt mysql-5.6.19/scripts/CMakeLists.txt +--- mysql-5.6.19-orig/scripts/CMakeLists.txt 2014-07-22 10:07:12.053410263 +0200 ++++ mysql-5.6.19/scripts/CMakeLists.txt 2014-07-22 10:10:44.102502369 +0200 +@@ -381,6 +381,34 @@ ELSE() + ENDIF() + INSTALL_SCRIPT(${CMAKE_CURRENT_BINARY_DIR}/${file} COMPONENT ${${file}_COMPONENT}) + ENDFOREACH() + + # files for systemd + SET(SYSTEMD_SCRIPTS diff --git a/community-mysql-sharedir.patch b/community-mysql-sharedir.patch index 6ceaed2..19f0b33 100644 --- a/community-mysql-sharedir.patch +++ b/community-mysql-sharedir.patch @@ -1,6 +1,6 @@ -diff -up --recursive mysql-5.7.8.orig/mysql-test/lib/My/ConfigFactory.pm mysql-5.7.8/mysql-test/lib/My/ConfigFactory.pm ---- mysql-5.7.8.orig/mysql-test/lib/My/ConfigFactory.pm 2015-07-20 14:25:09.000000000 +0200 -+++ mysql-5.7.8/mysql-test/lib/My/ConfigFactory.pm 2015-09-23 13:51:18.655091136 +0200 +diff -up mysql-5.5.31/mysql-test/lib/My/ConfigFactory.pm.p22 mysql-5.5.31/mysql-test/lib/My/ConfigFactory.pm +--- mysql-5.5.31/mysql-test/lib/My/ConfigFactory.pm.p22 2013-04-24 20:15:14.085623163 +0200 ++++ mysql-5.5.31/mysql-test/lib/My/ConfigFactory.pm 2013-04-24 20:15:37.456630939 +0200 @@ -36,7 +36,7 @@ my @pre_rules= ); @@ -10,10 +10,10 @@ diff -up --recursive mysql-5.7.8.orig/mysql-test/lib/My/ConfigFactory.pm mysql-5 sub get_basedir { -diff -up --recursive mysql-5.7.8.orig/mysql-test/mysql-test-run.pl mysql-5.7.8/mysql-test/mysql-test-run.pl ---- mysql-5.7.8.orig/mysql-test/mysql-test-run.pl 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/mysql-test/mysql-test-run.pl 2015-09-23 13:52:50.023961144 +0200 -@@ -1282,11 +1282,11 @@ sub command_line_setup { +diff -up mysql-5.5.31/mysql-test/mysql-test-run.pl.p22 mysql-5.5.31/mysql-test/mysql-test-run.pl +--- mysql-5.5.31/mysql-test/mysql-test-run.pl.p22 2013-03-25 14:14:58.000000000 +0100 ++++ mysql-5.5.31/mysql-test/mysql-test-run.pl 2013-04-24 20:18:28.538687866 +0200 +@@ -1238,11 +1238,11 @@ sub command_line_setup { } # Look for language files and charsetsdir, use same share @@ -27,18 +27,18 @@ diff -up --recursive mysql-5.7.8.orig/mysql-test/mysql-test-run.pl mysql-5.7.8/m "$basedir/sql/share/charsets", "$basedir/share/charsets"); -@@ -3729,7 +3729,7 @@ sub mysql_install_db { +@@ -3324,7 +3324,7 @@ sub mysql_install_db { } my $path_sql= my_find_file($install_basedir, - ["mysql", "sql/share", "share/mysql", + ["mysql", "sql/share", "@INSTALL_MYSQLSHAREDIR@", "share", "scripts"], - "mysql_system_tables.sql", + "mysql_system_tables.sql", NOT_REQUIRED); -diff -up --recursive mysql-5.7.8.orig/mysql-test/CMakeLists.txt mysql-5.7.8/mysql-test/CMakeLists.txt ---- mysql-5.7.8.orig/mysql-test/CMakeLists.txt 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/mysql-test/CMakeLists.txt 2015-09-23 13:53:57.694863067 +0200 +diff -up mysql-5.6.23/mysql-test/CMakeLists.txt.sharedir mysql-5.6.23/mysql-test/CMakeLists.txt +--- mysql-5.6.23/mysql-test/CMakeLists.txt.sharedir 2015-01-19 14:48:31.000000000 +0100 ++++ mysql-5.6.23/mysql-test/CMakeLists.txt 2015-02-23 13:11:58.358488693 +0100 @@ -33,6 +33,10 @@ ENDIF() diff --git a/community-mysql-strmov.patch b/community-mysql-strmov.patch new file mode 100644 index 0000000..1c44f55 --- /dev/null +++ b/community-mysql-strmov.patch @@ -0,0 +1,34 @@ +Remove overly optimistic definition of strmov() as stpcpy(). + +mysql uses this macro with overlapping source and destination strings, +which is verboten per spec, and fails on some Red Hat platforms. +Deleting the definition is sufficient to make it fall back to a +byte-at-a-time copy loop, which should consistently give the +expected behavior. + +Note: the particular case that prompted this patch is reported and fixed +at http://bugs.mysql.com/bug.php?id=48864. However, my faith in upstream's +ability to detect this type of error is low, and I also see little evidence +of any real performance gain from optimizing these calls. So I'm keeping +this patch. + + +diff -up mysql-5.6.10/include/m_string.h.orig mysql-5.6.10/include/m_string.h +--- mysql-5.6.10/include/m_string.h.orig 2013-01-22 17:54:49.000000000 +0100 ++++ mysql-5.6.10/include/m_string.h 2013-02-19 14:12:58.866241727 +0100 +@@ -65,15 +65,6 @@ extern void *(*my_str_malloc)(size_t); + extern void *(*my_str_realloc)(void *, size_t); + extern void (*my_str_free)(void *); + +-#if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER) +-#define strmov(A,B) __builtin_stpcpy((A),(B)) +-#elif defined(HAVE_STPCPY) +-#define strmov(A,B) stpcpy((A),(B)) +-#ifndef stpcpy +-extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 */ +-#endif +-#endif +- + /* Declared in int2str() */ + extern char _dig_vec_upper[]; + extern char _dig_vec_lower[]; diff --git a/community-mysql-test-openssl_1.patch b/community-mysql-test-openssl_1.patch deleted file mode 100644 index 26f293c..0000000 --- a/community-mysql-test-openssl_1.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -rup mysql-5.7.8.orig/mysql-test/r/openssl_1.result mysql-5.7.8/mysql-test/r/openssl_1.result ---- mysql-5.7.8.orig/mysql-test/r/openssl_1.result 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/mysql-test/r/openssl_1.result 2015-10-15 11:15:37.719376398 +0200 -@@ -211,8 +211,6 @@ Variable_name Value - Ssl_cipher EDH-RSA-DES-CBC3-SHA - Variable_name Value - Ssl_cipher AES256-SHA --Variable_name Value --Ssl_cipher RC4-SHA - select 'is still running; no cipher request crashed the server' as result from dual; - result - is still running; no cipher request crashed the server -diff -rup mysql-5.7.8.orig/mysql-test/t/openssl_1.test mysql-5.7.8/mysql-test/t/openssl_1.test ---- mysql-5.7.8.orig/mysql-test/t/openssl_1.test 2015-07-20 14:25:08.000000000 +0200 -+++ mysql-5.7.8/mysql-test/t/openssl_1.test 2015-10-15 11:15:07.648425927 +0200 -@@ -218,7 +218,6 @@ DROP TABLE t1; - --exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl --ssl-cipher=DHE-RSA-AES256-SHA - --exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl --ssl-cipher=EDH-RSA-DES-CBC3-SHA - --exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl --ssl-cipher=AES256-SHA ----exec $MYSQL --host=localhost -e "SHOW STATUS LIKE 'Ssl_cipher';" --ssl --ssl-cipher=RC4-SHA - --disable_query_log - --disable_result_log - diff --git a/community-mysql.spec b/community-mysql.spec index 9dad6d6..c0903df 100644 --- a/community-mysql.spec +++ b/community-mysql.spec @@ -7,9 +7,6 @@ # --nocheck is not possible (e.g. in koji build) %{!?runselftest:%global runselftest 1} -# Set this to 1 to see which tests fail -%global check_testsuite 0 - # set to 1 to enable %global with_shared_lib_major_hack 1 @@ -33,6 +30,7 @@ %bcond_without client %bcond_without common %bcond_without errmsg +%bcond_without bench %bcond_without test # When there is already another package that ships /etc/my.cnf, @@ -79,7 +77,7 @@ %global sameevr %{?epoch:%{epoch}:}%{version}-%{release} Name: community-mysql -Version: 5.7.9 +Version: 5.6.27 Release: 1%{?with_debug:.debug}%{?dist} Summary: MySQL client programs and shared libraries Group: Applications/Databases @@ -89,7 +87,7 @@ URL: http://www.mysql.com # not only GPL code. See README.mysql-license License: GPLv2 with exceptions and LGPLv2 and BSD -Source0: https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-%{version}.tar.gz +Source0: https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-%{version}.tar.gz Source2: mysql_config_multilib.sh Source3: my.cnf.in Source4: my_config.h @@ -111,27 +109,28 @@ Source31: server.cnf.in # Comments for these patches are in the patch files # Patches common for more mysql-like packages -Patch1: %{pkgnamepatch}-install-test.patch -Patch2: %{pkgnamepatch}-s390-tsc.patch -Patch3: %{pkgnamepatch}-logrotate.patch -Patch4: %{pkgnamepatch}-file-contents.patch -Patch5: %{pkgnamepatch}-scripts.patch -Patch6: %{pkgnamepatch}-paths.patch -Patch7: %{pkgnamepatch}-boost.patch -Patch8: %{pkgnamepatch}-test-openssl_1.patch +Patch1: %{pkgnamepatch}-strmov.patch +Patch2: %{pkgnamepatch}-install-test.patch +Patch3: %{pkgnamepatch}-s390-tsc.patch +Patch4: %{pkgnamepatch}-logrotate.patch +Patch5: %{pkgnamepatch}-cipherspec.patch +Patch6: %{pkgnamepatch}-file-contents.patch +Patch8: %{pkgnamepatch}-scripts.patch +Patch9: %{pkgnamepatch}-install-db-sharedir.patch +Patch10: %{pkgnamepatch}-paths.patch # Patches specific for this mysql package Patch51: %{pkgnamepatch}-chain-certs.patch Patch52: %{pkgnamepatch}-sharedir.patch -Patch70: %{pkgnamepatch}-5.7.9-major.patch +Patch53: %{pkgnamepatch}-5.6.16-libmysql-version.patch +Patch55: %{pkgnamepatch}-5.6.16-mysql-install.patch +Patch56: %{pkgnamepatch}-pluginerrmsg.patch +Patch70: %{pkgnamepatch}-5.6.13-major.patch -BuildRequires: boost-devel BuildRequires: cmake BuildRequires: libaio-devel BuildRequires: libedit-devel BuildRequires: libevent-devel -BuildRequires: lz4-devel -BuildRequires: mecab-devel BuildRequires: openssl-devel BuildRequires: perl BuildRequires: systemtap-sdt-devel @@ -139,8 +138,6 @@ BuildRequires: zlib-devel # Tests requires time and ps and some perl modules BuildRequires: procps BuildRequires: time -BuildRequires: perl(Digest::file) -BuildRequires: perl(Digest::MD5) BuildRequires: perl(Env) BuildRequires: perl(Exporter) BuildRequires: perl(Fcntl) @@ -260,7 +257,6 @@ Requires: %{name}-common%{?_isa} = %{sameevr} Requires: %{_sysconfdir}/my.cnf Requires: %{_sysconfdir}/my.cnf.d Requires: %{name}-errmsg%{?_isa} = %{sameevr} -%{?mecab:Requires: mecab-ipadic} Requires: sh-utils Requires(pre): /usr/sbin/useradd %if %{with init_systemd} @@ -277,10 +273,7 @@ Provides: mysql-server = %{sameevr} Provides: mysql-server%{?_isa} = %{sameevr} Provides: mysql-compat-server = %{sameevr} Provides: mysql-compat-server%{?_isa} = %{sameevr} -Obsoletes: mysql-bench < 5.7.8 -Obsoletes: mysql-bench%{?_isa} %endif -Obsoletes: community-mysql-bench < 5.7.8 %{?with_conflicts:Conflicts: mariadb-server} %{?with_conflicts:Conflicts: mariadb-galera-server} @@ -336,6 +329,25 @@ package contains files needed for developing and testing with the embedded version of the MySQL server. %endif + +%if %{with bench} +%package bench +Summary: MySQL benchmark scripts and data +Group: Applications/Databases +Requires: %{name}%{?_isa} = %{sameevr} +%{?with_conflicts:Conflicts: mariadb-bench} +%if %{with mysql_names} +Provides: mysql-bench = %{sameevr} +Provides: mysql-bench%{?_isa} = %{sameevr} +%endif + +%description bench +MySQL is a multi-user, multi-threaded SQL database server. This +package contains benchmark scripts and data for use when benchmarking +MySQL. +%endif + + %if %{with test} %package test Summary: The test suite distributed with MySQL @@ -343,8 +355,6 @@ Group: Applications/Databases Requires: %{name}%{?_isa} = %{sameevr} Requires: %{name}-common%{?_isa} = %{sameevr} Requires: %{name}-server%{?_isa} = %{sameevr} -Requires: perl(Digest::file) -Requires: perl(Digest::MD5) Requires: perl(Env) Requires: perl(Exporter) Requires: perl(Fcntl) @@ -377,17 +387,18 @@ the MySQL sources. %patch4 -p1 %patch5 -p1 %patch6 -p1 -%patch7 -p1 %patch8 -p1 +%patch9 -p1 +%patch10 -p1 %patch51 -p1 %patch52 -p1 +%patch53 -p1 +%patch55 -p1 +%patch56 -p1 %if %{with_shared_lib_major_hack} %patch70 -p1 %endif -# Prevent using bundled boost -rm -r include/boost_1_59_0 - # Modify tests to pass on all archs pushd mysql-test @@ -397,65 +408,11 @@ add_test () { touch %{skiplist} -# these tests fail in 5.7.9 -add_test 'main.gis-precise : fails in 5.7.9' -add_test 'main.gis : fails in 5.7.9' -add_test 'gis.gis_bugs_crashes : fails in 5.7.9' -add_test 'gis.spatial_analysis_functions_buffer : fails in 5.7.9' -add_test 'gis.spatial_op_testingfunc_mix : fails in 5.7.9' -add_test 'gis.spatial_operators_difference : fails in 5.7.9' -add_test 'gis.spatial_operators_intersection : fails in 5.7.9' -add_test 'gis.spatial_operators_symdifference : fails in 5.7.9' -add_test 'main.datadir_permission : fails in 5.7.9' -add_test 'main.events_1 : fails in 5.7.9' -# these tests fail in 5.7.9 randomly -add_test 'sysschema.fn_ps_thread_trx_info : randomly fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_shutdown : randomly fails in 5.7.9' -add_test 'main.mysqldump : randomly fails in 5.7.9' -add_test 'perfschema.memory_aggregate_no_a_no_u : randomly fails in 5.7.9' - # Workaround for upstream bug #http://bugs.mysql.com/56342 rm -f t/ssl_8k_key-master.opt -# these tests fail in 5.7.9 on arch -%ifarch %{arm} -add_test 'gis.spatial_operators_union : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_contains : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_crosses : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_disjoint : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_equals : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_intersects : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_overlaps : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_touches : fails in 5.7.9' -add_test 'gis.spatial_testing_functions_within : fails in 5.7.9' -add_test 'innodb_fts.opt : fails in 5.7.9' -add_test 'innodb_gis.gis : fails in 5.7.9' -add_test 'innodb_gis.precise : fails in 5.7.9' -add_test 'innodb_gis.1 : fails in 5.7.9' -add_test 'innodb.log_file : fails in 5.7.9' -add_test 'perfschema.dml_host_cache : fails in 5.7.9' -add_test 'perfschema.dml_hosts : fails in 5.7.9' -add_test 'perfschema.func_file_io : fails in 5.7.9' -add_test 'perfschema.setup_objects : fails in 5.7.9' -add_test 'test_service_sql_api.test_session_detach : fails in 5.7.9' -add_test 'test_service_sql_api.test_session_info : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_all_col_types : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_complex : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_errors : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_general_log : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_processlist : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_replication : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_sqlmode : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_stored_procedures_functions : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_views_triggers : fails in 5.7.9' -add_test 'test_service_sql_api.test_sql_2_sessions : fails in 5.7.9' -# fails sometimes -add_test 'perfschema.func_mutex : fails in 5.7.9' -add_test 'main.xa_prepared_binlog_off : fails in 5.7.9' -%endif - # Archs without hw performance counter, rh 741325 -%ifarch aarch64 sparc64 +%ifarch %{arm} aarch64 sparc64 add_test 'perfschema.func_file_io : rh 741325' add_test 'perfschema.func_mutex : rh 741325' add_test 'perfschema.setup_objects : rh 741325' @@ -463,7 +420,7 @@ add_test 'perfschema.global_read_lock : 77889' %endif # Archs with collation issues, bugs.mysql.com/46895 -%ifarch aarch64 ppc %{power64} s390 s390x +%ifarch %{arm} aarch64 ppc %{power64} s390 s390x add_test 'innodb.innodb_ctype_ldml : 46895' add_test 'main.ctype_ldml : 46895' %endif @@ -523,23 +480,17 @@ cmake .. \ -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \ -DINSTALL_SBINDIR=libexec \ -DINSTALL_SCRIPTDIR=bin \ + -DINSTALL_SQLBENCHDIR=share \ -DINSTALL_SUPPORTFILESDIR=share/%{pkg_name} \ -DMYSQL_DATADIR="%{dbdatadir}" \ -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \ -DENABLED_LOCAL_INFILE=ON \ -DENABLE_DTRACE=ON \ -%if %{with init_systemd} - -DWITH_SYSTEMD=1 \ - -DSYSTEMD_SERVICE_NAME="%{daemon_name}" \ - -DSYSTEMD_PID_DIR="%{pidfiledir}" \ -%endif -DWITH_INNODB_MEMCACHED=ON \ -DWITH_EMBEDDED_SERVER=ON \ -DWITH_EMBEDDED_SHARED_LIBRARY=ON \ -DWITH_EDITLINE=system \ -DWITH_LIBEVENT=system \ - -DWITH_LZ4=system \ - -DWITH_MECAB=system \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DCMAKE_C_FLAGS="%{optflags}%{?with_debug: -fno-strict-overflow -Wno-unused-result -Wno-unused-function -Wno-unused-but-set-variable}" \ @@ -613,8 +564,10 @@ mv %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process %{build ln -s ../../../../../bin/my_safe_process %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process # not needed in rpm package +rm -f %{buildroot}%{_bindir}/mysqlaccess.conf rm -f %{buildroot}%{_bindir}/mysql_embedded rm -f %{buildroot}%{_libdir}/mysql/*.a +rm -f %{buildroot}%{_datadir}/%{pkg_name}/binary-configure rm -f %{buildroot}%{_datadir}/%{pkg_name}/magic rm -f %{buildroot}%{_datadir}/%{pkg_name}/mysql.server rm -f %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server @@ -651,6 +604,7 @@ cp -p %{buildroot}%{_mandir}/man1/mysql_client_test.1 %{buildroot}%{_mandir}/man %if %{without clibrary} unlink %{buildroot}%{_libdir}/mysql/libmysqlclient.so +unlink %{buildroot}%{_libdir}/mysql/libmysqlclient_r.so rm -rf %{buildroot}%{_libdir}/mysql/libmysqlclient*.so.* rm -rf %{buildroot}%{_sysconfdir}/ld.so.conf.d %endif @@ -665,18 +619,17 @@ rm -f %{buildroot}%{_mandir}/man1/{mysql_client_test_embedded,mysqltest_embedded rm -f %{buildroot}%{_bindir}/mysql_config* rm -rf %{buildroot}%{_includedir}/mysql rm -f %{buildroot}%{_datadir}/aclocal/mysql.m4 -rm -f %{buildroot}%{_libdir}/pkgconfig/mysqlclient.pc rm -f %{buildroot}%{_libdir}/mysql/libmysqlclient*.so rm -f %{buildroot}%{_mandir}/man1/mysql_config.1* %endif %if %{without client} -rm -f %{buildroot}%{_bindir}/{mysql,mysql_config_editor,\ -mysql_plugin,mysqladmin,mysqlbinlog,\ -mysqlcheck,mysqldump,mysqlpump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults} -rm -f %{buildroot}%{_mandir}/man1/{mysql,mysql_config_editor,\ -mysql_plugin,mysqladmin,mysqlbinlog,\ -mysqlcheck,mysqldump,mysqlpump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults}.1* +rm -f %{buildroot}%{_bindir}/{msql2mysql,mysql,mysql_config_editor,\ +mysql_find_rows,mysql_plugin,mysql_waitpid,mysqlaccess,mysqladmin,mysqlbinlog,\ +mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults} +rm -f %{buildroot}%{_mandir}/man1/{msql2mysql,mysql,mysql_config_editor,\ +mysql_find_rows,mysql_plugin,mysql_waitpid,mysqlaccess,mysqladmin,mysqlbinlog,\ +mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults}.1* %endif %if %{with config} @@ -696,6 +649,10 @@ french,german,greek,hungarian,italian,japanese,korean,norwegian,norwegian-ny,\ polish,portuguese,romanian,russian,serbian,slovak,spanish,swedish,ukrainian} %endif +%if %{without bench} +rm -rf %{buildroot}%{_datadir}/sql-bench +%endif + %if %{without test} rm -f %{buildroot}%{_bindir}/{mysql_client_test,my_safe_process} rm -rf %{buildroot}%{_datadir}/mysql-test @@ -713,14 +670,10 @@ cp ../../mysql-test/%{skiplist} . export MTR_BUILD_THREAD=%{__isa_bits} ./mtr \ --mem --parallel=auto --force --retry=0 \ + --skip-test-list=%{skiplist} \ --mysqld=--binlog-format=mixed \ --suite-timeout=720 --testcase-timeout=30 \ - --clean-vardir \ -%if %{check_testsuite} - --max-test-fail=0 || : -%else - --skip-test-list=%{skiplist} -%endif + --clean-vardir rm -rf var/* $(readlink var) popd popd @@ -782,28 +735,34 @@ fi %if %{with client} %files +%{_bindir}/msql2mysql %{_bindir}/mysql %{_bindir}/mysql_config_editor +%{_bindir}/mysql_find_rows %{_bindir}/mysql_plugin +%{_bindir}/mysql_waitpid +%{_bindir}/mysqlaccess %{_bindir}/mysqladmin %{_bindir}/mysqlbinlog %{_bindir}/mysqlcheck %{_bindir}/mysqldump %{_bindir}/mysqlimport -%{_bindir}/mysqlpump %{_bindir}/mysqlshow %{_bindir}/mysqlslap %{_bindir}/my_print_defaults +%{_mandir}/man1/msql2mysql.1* %{_mandir}/man1/mysql.1* %{_mandir}/man1/mysql_config_editor.1* +%{_mandir}/man1/mysql_find_rows.1* %{_mandir}/man1/mysql_plugin.1* +%{_mandir}/man1/mysql_waitpid.1* +%{_mandir}/man1/mysqlaccess.1* %{_mandir}/man1/mysqladmin.1* %{_mandir}/man1/mysqlbinlog.1* %{_mandir}/man1/mysqlcheck.1* %{_mandir}/man1/mysqldump.1* %{_mandir}/man1/mysqlimport.1* -%{_mandir}/man1/mysqlpump.1* %{_mandir}/man1/mysqlshow.1* %{_mandir}/man1/mysqlslap.1* %{_mandir}/man1/my_print_defaults.1* @@ -866,16 +825,19 @@ fi %{_bindir}/myisam_ftdump %{_bindir}/myisamlog %{_bindir}/myisampack +%{_bindir}/mysql_convert_table_format +%{_bindir}/mysql_fix_extensions %{_bindir}/mysql_install_db %{_bindir}/mysql_secure_installation -%{_bindir}/mysql_ssl_rsa_setup +%{_bindir}/mysql_setpermission %{_bindir}/mysql_tzinfo_to_sql %{_bindir}/mysql_upgrade -%{_bindir}/mysqlbinlog -%if %{with init_systemd} -%{_bindir}/mysqld_pre_systemd -%endif +%{_bindir}/mysql_zap +%{_bindir}/mysqlbug %{_bindir}/mysqldumpslow +%{_bindir}/mysqld_multi +%{_bindir}/mysqld_safe +%{_bindir}/mysqlhotcopy %{_bindir}/mysqltest %{_bindir}/innochecksum %{_bindir}/perror @@ -898,36 +860,38 @@ fi %{_mandir}/man1/myisamchk.1* %{_mandir}/man1/myisamlog.1* %{_mandir}/man1/myisampack.1* +%{_mandir}/man1/mysql_convert_table_format.1* %{_mandir}/man1/myisam_ftdump.1* %{_mandir}/man1/mysql.server.1* +%{_mandir}/man1/mysql_fix_extensions.1* %{_mandir}/man1/mysql_install_db.1* %{_mandir}/man1/mysql_secure_installation.1* -%{_mandir}/man1/mysql_ssl_rsa_setup.1* -%{_mandir}/man1/mysql_tzinfo_to_sql.1* %{_mandir}/man1/mysql_upgrade.1* +%{_mandir}/man1/mysql_zap.1* +%{_mandir}/man1/mysqlbug.1* %{_mandir}/man1/mysqldumpslow.1* %{_mandir}/man1/mysqld_multi.1* %{_mandir}/man1/mysqld_safe.1* +%{_mandir}/man1/mysqlhotcopy.1* %{_mandir}/man1/mysqlman.1* +%{_mandir}/man1/mysql_setpermission.1* %{_mandir}/man1/mysqltest.1* %{_mandir}/man1/innochecksum.1* %{_mandir}/man1/perror.1* %{_mandir}/man1/replace.1* %{_mandir}/man1/resolve_stack_dump.1* %{_mandir}/man1/resolveip.1* +%{_mandir}/man1/mysql_tzinfo_to_sql.1* %{_mandir}/man8/mysqld.8* %{_datadir}/%{pkg_name}/dictionary.txt %{_datadir}/%{pkg_name}/fill_help_tables.sql %{_datadir}/%{pkg_name}/innodb_memcached_config.sql -%{_datadir}/%{pkg_name}/install_rewriter.sql %{_datadir}/%{pkg_name}/mysql_security_commands.sql -%{_datadir}/%{pkg_name}/mysql_sys_schema.sql %{_datadir}/%{pkg_name}/mysql_system_tables.sql %{_datadir}/%{pkg_name}/mysql_system_tables_data.sql %{_datadir}/%{pkg_name}/mysql_test_data_timezone.sql %{_datadir}/%{pkg_name}/my-*.cnf -%{_datadir}/%{pkg_name}/uninstall_rewriter.sql %{daemondir}/%{daemon_name}* %{_libexecdir}/mysql-prepare-db-dir @@ -937,10 +901,10 @@ fi %{_libexecdir}/mysql-check-upgrade %{_libexecdir}/mysql-scripts-common -%{_tmpfilesdir}/mysql.conf %{?with_init_systemd:%{_tmpfilesdir}/%{name}.conf} %attr(0755,mysql,mysql) %dir %{dbdatadir} %attr(0755,mysql,mysql) %dir %{pidfiledir} +%attr(0755,mysql,mysql) %dir %{_localstatedir}/lib/mysql %attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile} %config(noreplace) %{logrotateddir}/%{daemon_name} @@ -952,8 +916,8 @@ fi %{_datadir}/aclocal/mysql.m4 %if %{with clibrary} %{_libdir}/mysql/libmysqlclient.so +%{_libdir}/mysql/libmysqlclient_r.so %endif -%{_libdir}/pkgconfig/mysqlclient.pc %{_mandir}/man1/mysql_config.1* %endif @@ -969,6 +933,11 @@ fi %{_mandir}/man1/mysqltest_embedded.1* %endif +%if %{with bench} +%files bench +%{_datadir}/sql-bench +%endif + %if %{with test} %files test %{_bindir}/mysql_client_test @@ -978,9 +947,6 @@ fi %endif %changelog -* Fri Oct 2 2015 Jakub Dorňák - 5.7.9-1 -- Update to 5.7.9 - * Thu Oct 1 2015 Jakub Dorňák - 5.6.27-1 - Update to 5.6.27 diff --git a/sources b/sources index 35278c8..16afe97 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6d782dda9046acb81e694934fd513993 mysql-5.7.9.tar.gz +7754df40bb5567b03b041ccb6b5ddffa mysql-5.6.27.tar.gz