--- /dev/null
+--- Percona-Server-5.5.32-rel31.0/sql/sql_yacc.yy.orig 2013-07-01 05:16:34.000000000 +0200
++++ Percona-Server-5.5.32-rel31.0/sql/sql_yacc.yy 2013-08-18 21:33:19.181583895 +0200
+@@ -26,8 +26,6 @@
+ ** The type will be void*, so it must be cast to (THD*) when used.
+ ** Use the YYTHD macro for this.
+ */
+-#define YYPARSE_PARAM yythd
+-#define YYLEX_PARAM yythd
+ #define YYTHD ((THD *)yythd)
+ #define YYLIP (& YYTHD->m_parser_state->m_lip)
+ #define YYPS (& YYTHD->m_parser_state->m_yacc)
+@@ -76,7 +74,7 @@
+ ulong val= *(F); \
+ if (my_yyoverflow((B), (D), &val)) \
+ { \
+- yyerror((char*) (A)); \
++ yyerror(yythd, (char*) (A)); \
+ return 2; \
+ } \
+ else \
+@@ -174,7 +172,7 @@
+ to abort from the parser.
+ */
+
+-void MYSQLerror(const char *s)
++void MYSQLerror(void *yythd, const char *s)
+ {
+ THD *thd= current_thd;
+
+@@ -780,7 +778,9 @@
+ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
+ %}
+
+-%pure_parser /* We have threads */
++%pure-parser /* We have threads */
++%parse-param { void *yythd }
++%lex-param { void *yythd }
+ /*
+ Currently there are 168 shift/reduce conflicts.
+ We should not introduce new conflicts any more.
--- /dev/null
+
+Upstream-Bugtracker: http://bugs.mysql.com/67402
+
+--- 5.5.27/scripts/mysqlhotcopy.sh~ 2012-10-28 21:20:46.000000000 +0200
++++ 5.5.27/scripts/mysqlhotcopy.sh 2012-10-28 21:23:12.574442093 +0200
+@@ -895,7 +895,7 @@
+
+ CREATE TABLE log_pos (
+ host varchar(60) NOT null,
+- time_stamp timestamp(14) NOT NULL,
++ time_stamp timestamp NOT NULL,
+ log_file varchar(32) default NULL,
+ log_pos int(11) default NULL,
+ master_host varchar(60) NULL,
--- /dev/null
+# symbols exported from mysql 5.1
+libmysqlclient_16 {
+ global:
+ _fini;
+ _init;
+ 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;
+# These are documented in Paul DuBois' MySQL book, so we treat them as part
+# of the de-facto API.
+ free_defaults;
+ handle_options;
+ load_defaults;
+ my_print_help;
+ client_errors;
+# This isn't really documented anywhere, but it seems to be part of the
+# de-facto API as well. We're not going to export the deprecated version
+# make_scrambled_password, however.
+ my_make_scrambled_password;
+ local:
+ *;
+};
+# symbols added in mysql 5.5
+libmysqlclient_18 {
+ global:
+ mysql_client_find_plugin;
+ mysql_client_register_plugin;
+ mysql_load_plugin;
+ mysql_load_plugin_v;
+ mysql_plugin_options;
+ mysql_stmt_next_result;
+#
+# Ideally the following symbols wouldn't be exported, but various applications
+# require them. We limit the namespace damage by prefixing mysql_
+# (see mysql-dubious-exports.patch), which means the symbols are not present
+# in libmysqlclient_16.
+#
+# mysql-connector-odbc requires these
+ mysql_default_charset_info;
+ mysql_get_charset;
+ mysql_get_charset_by_csname;
+ mysql_net_realloc;
+# PHP's mysqli.so requires this (via the ER() macro)
+ mysql_client_errors;
+# perl-DBD-mysql-4.018 for is_prefix
+ mysql_is_prefix;
+# hiphop-php: TODO: added mysql_ prefix
+ cli_safe_read;
+ net_field_length;
+ free_root;
+};
--- /dev/null
+[client]
+user=mysql
--- /dev/null
+=== modified file 'scripts/mysqlhotcopy.sh'
+--- scripts/mysqlhotcopy.sh 2008-03-07 20:45:40 +0000
++++ scripts/mysqlhotcopy.sh 2009-03-12 13:06:42 +0000
+@@ -777,7 +777,24 @@ sub get_list_of_tables {
+ } || [];
+ warn "Unable to retrieve list of tables in $db: $@" if $@;
+
+- return (map { $_->[0] } @$tables);
++ my @ignore_tables = ();
++
++ # Ignore tables for the mysql database
++ if ($db eq 'mysql') {
++ @ignore_tables = qw(general_log slow_log schema apply_status);
++ }
++
++ my @res = ();
++ if ($#ignore_tables > 1) {
++ my @tmp = (map { $_->[0] } @$tables);
++ for my $t (@tmp) {
++ push(@res, $t) if not exists { map { $_=>1 } @ignore_tables }->{$t};
++ }
++ } else {
++ @res = (map { $_->[0] } @$tables);
++ }
++
++ return @res;
+ }
+
+ sub quote_names {
+
--- /dev/null
+diff -urNbB mysql-5.0.13-rc.org/sql/mysqld.cc mysql-5.0.13-rc/sql/mysqld.cc
+--- mysql-5.0.13-rc.org/sql/mysqld.cc 2005-09-22 21:39:56.000000000 +0200
++++ mysql-5.0.13-rc/sql/mysqld.cc 2005-09-29 19:29:59.991454000 +0200
+@@ -3183,7 +3183,7 @@
+ init_ssl();
+
+ #ifdef HAVE_LIBWRAP
+- libwrapName= my_progname+dirname_length(my_progname);
++ libwrapName= (char *)my_progname+dirname_length(my_progname);
+ openlog(libwrapName, LOG_PID, LOG_AUTH);
+ #endif
+
--- /dev/null
+Fix things so that chains of certificates work in the server and client
+certificate files.
+
+This only really works for OpenSSL-based builds, as yassl is unable to read
+multiple certificates from a file. The patch below to yassl/src/ssl.cpp
+doesn't fix that, but just arranges that the viosslfactories.c patch won't
+have any ill effects in a yassl build. Since we don't use yassl in Red Hat/
+Fedora builds, I'm not feeling motivated to try to fix yassl for this.
+
+See RH bug #598656. Filed upstream at http://bugs.mysql.com/bug.php?id=54158
+
+
+diff -Naur mysql-5.1.47.orig/vio/viosslfactories.c mysql-5.1.47/vio/viosslfactories.c
+--- mysql-5.1.47.orig/vio/viosslfactories.c 2010-05-06 11:28:07.000000000 -0400
++++ mysql-5.1.47/vio/viosslfactories.c 2010-05-26 23:23:46.000000000 -0400
+@@ -106,7 +106,7 @@
+ key_file= cert_file;
+
+ if (cert_file &&
+- SSL_CTX_use_certificate_file(ctx, cert_file, SSL_FILETYPE_PEM) <= 0)
++ SSL_CTX_use_certificate_chain_file(ctx, cert_file) <= 0)
+ {
+ *error= SSL_INITERR_CERT;
+ DBUG_PRINT("error",("%s from file '%s'", sslGetErrString(*error), cert_file));
+diff -Naur mysql-5.1.47.orig/extra/yassl/src/ssl.cpp mysql-5.1.47/extra/yassl/src/ssl.cpp
+--- mysql-5.1.47.orig/extra/yassl/src/ssl.cpp 2010-05-06 11:24:26.000000000 -0400
++++ mysql-5.1.47/extra/yassl/src/ssl.cpp 2010-05-26 23:29:13.000000000 -0400
+@@ -1606,10 +1606,10 @@
+ }
+
+
+- int SSL_CTX_use_certificate_chain_file(SSL_CTX*, const char*)
++ int SSL_CTX_use_certificate_chain_file(SSL_CTX* ctx, const char* file)
+ {
+- // TDOD:
+- return SSL_SUCCESS;
++ // For the moment, treat like use_certificate_file
++ return read_file(ctx, file, SSL_FILETYPE_PEM, Cert);
+ }
+
+
--- /dev/null
+[client]
+#user=mysql
+#default-character-set=utf8
+#default-character-set=latin2
+
+[mysql]
+prompt='\\R:\\m:\\s mysql{\\c}> '
+show-warnings
--- /dev/null
+# This file contains MySQL clusters configuration.
+# If you want to use more than one cluster read carefuly
+# http://www.mysql.com/doc/en/Multiple_servers.html
+# and set properly all described there options.
+#
+# You can add one cluster per line
+# /config/location.conf=/cluster/directory
+# If you give config name without path it defaults to /etc/mysql/
+
+mysqld.conf=/var/lib/mysql
--- /dev/null
+--- mysql-5.1.26-rc/scripts/mysql_config.sh.orig 2008-07-01 00:36:15.000000000 +0200
++++ mysql-5.1.26-rc/scripts/mysql_config.sh 2008-08-25 19:39:20.111236513 +0200
+@@ -132,21 +132,21 @@
+ DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
+ 'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
+ Xa xstrconst "xc99=none" AC99 \
+- unroll2 ip mp restrict
++ unroll2 ip mp restrict 'f[-a-z0-9]*' 'g[-a-z0-9]*' 'm[-a-z0-9]*'
+ do
+ # The first option we might strip will always have a space before it because
+ # we set -I$pkgincludedir as the first option
+- cflags=`echo "$cflags"|sed -e "s/ -$remove */ /g"`
++ cflags=`echo "$cflags"|sed -e "s/ \(-$remove *\)\{1,\}/ /g"`
+ done
+ cflags=`echo "$cflags"|sed -e 's/ *\$//'`
+
+ # Same for --libs(_r)
+-for remove in lmtmalloc static-libcxa i-static static-intel
++for remove in lmtmalloc static-libcxa i-static static-intel 'Wl,-[-a-z0-9,]*'
+ do
+ # We know the strings starts with a space
+- libs=`echo "$libs"|sed -e "s/ -$remove */ /g"`
+- libs_r=`echo "$libs_r"|sed -e "s/ -$remove */ /g"`
+- embedded_libs=`echo "$embedded_libs"|sed -e "s/ -$remove */ /g"`
++ libs=`echo "$libs"|sed -e "s/ \(-$remove *\)\{1,\}/ /g"`
++ libs_r=`echo "$libs_r"|sed -e "s/ \(-$remove *\)\{1,\}/ /g"`
++ embedded_libs=`echo "$embedded_libs"|sed -e "s/ \(-$remove *\)\{1,\}/ /g"`
+ done
+
+ # Strip trailing and ending space if any, and '+' (FIXME why?)
--- /dev/null
+Prefix mysql_ to the real names of several symbols that have to be exported
+from libmysqlclient because mysql-connector-odbc and/or PHP depend on them.
+This limits the intrusion on application namespace.
+
+
+diff -Naur mysql-5.5.8.orig/include/my_sys.h mysql-5.5.8/include/my_sys.h
+--- mysql-5.5.8.orig/include/my_sys.h 2010-12-03 12:58:24.000000000 -0500
++++ mysql-5.5.8/include/my_sys.h 2010-12-27 14:27:23.956926896 -0500
+@@ -227,6 +227,7 @@
+
+ /* charsets */
+ #define MY_ALL_CHARSETS_SIZE 2048
++#define default_charset_info mysql_default_charset_info /* namespace sanity */
+ extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info;
+ extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE];
+ extern CHARSET_INFO compiled_charsets[];
+@@ -914,6 +915,9 @@
+ extern uint get_collation_number(const char *name);
+ extern const char *get_charset_name(uint cs_number);
+
++#define get_charset mysql_get_charset /* namespace sanity */
++#define get_charset_by_csname mysql_get_charset_by_csname
++
+ extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
+ extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
+ extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
+diff -Naur mysql-5.5.8.orig/include/mysql.h.pp mysql-5.5.8/include/mysql.h.pp
+--- mysql-5.5.8.orig/include/mysql.h.pp 2010-12-03 12:58:24.000000000 -0500
++++ mysql-5.5.8/include/mysql.h.pp 2010-12-27 14:27:23.956926896 -0500
+@@ -86,7 +86,7 @@
+ void my_net_local_init(NET *net);
+ void net_end(NET *net);
+ void net_clear(NET *net, my_bool clear_buffer);
+-my_bool net_realloc(NET *net, size_t length);
++my_bool mysql_net_realloc(NET *net, size_t length);
+ my_bool net_flush(NET *net);
+ my_bool my_net_write(NET *net,const unsigned char *packet, size_t len);
+ my_bool net_write_command(NET *net,unsigned char command,
+diff -Naur mysql-5.5.8.orig/include/mysql_com.h mysql-5.5.8/include/mysql_com.h
+--- mysql-5.5.8.orig/include/mysql_com.h 2010-12-03 12:58:24.000000000 -0500
++++ mysql-5.5.8/include/mysql_com.h 2010-12-27 14:27:23.957927198 -0500
+@@ -448,6 +448,7 @@
+ void my_net_local_init(NET *net);
+ void net_end(NET *net);
+ void net_clear(NET *net, my_bool clear_buffer);
++#define net_realloc mysql_net_realloc /* namespace sanity */
+ my_bool net_realloc(NET *net, size_t length);
+ my_bool net_flush(NET *net);
+ my_bool my_net_write(NET *net,const unsigned char *packet, size_t len);
+--- mysql-5.5.9/include/m_string.h~ 2011-01-20 00:37:08.000000000 +0200
++++ mysql-5.5.9/include/m_string.h 2011-03-31 16:36:35.184588054 +0300
+@@ -118,6 +118,7 @@
+ extern size_t strnlen(const char *s, size_t n);
+ #endif
+
++#define is_prefix mysql_is_prefix /* namespace sanity */
+ extern int is_prefix(const char *, const char *);
+
+ /* Conversion routines */
--- /dev/null
+Workaround for: https://bugs.launchpad.net/percona-server/+bug/747152
+
+When linking plugins which are linked to libraries already linked with
+probes_mysql.o, skip adding (second) probes_mysql.o .
+
+--- Percona-Server-5.5.32-rel31.0/cmake/plugin.cmake.orig 2013-07-01 05:16:34.000000000 +0200
++++ Percona-Server-5.5.32-rel31.0/cmake/plugin.cmake 2013-07-12 17:57:12.120001411 +0200
+@@ -47,7 +47,7 @@
+ MACRO(MYSQL_ADD_PLUGIN)
+ MYSQL_PARSE_ARGUMENTS(ARG
+ "LINK_LIBRARIES;DEPENDENCIES;MODULE_OUTPUT_NAME;STATIC_OUTPUT_NAME"
+- "STORAGE_ENGINE;STATIC_ONLY;MODULE_ONLY;MANDATORY;DEFAULT;DISABLED;RECOMPILE_FOR_EMBEDDED"
++ "STORAGE_ENGINE;STATIC_ONLY;MODULE_ONLY;MANDATORY;DEFAULT;DISABLED;RECOMPILE_FOR_EMBEDDED;SKIP_PROBES"
+ ${ARGN}
+ )
+
+@@ -170,7 +170,9 @@
+
+ ADD_VERSION_INFO(${target} MODULE SOURCES)
+ ADD_LIBRARY(${target} MODULE ${SOURCES})
++ IF(NOT ARG_SKIP_PROBES)
+ DTRACE_INSTRUMENT(${target})
++ ENDIF()
+ SET_TARGET_PROPERTIES (${target} PROPERTIES PREFIX ""
+ COMPILE_DEFINITIONS "MYSQL_DYNAMIC_PLUGIN")
+ TARGET_LINK_LIBRARIES (${target} mysqlservices)
+--- Percona-Server-5.5.32-rel31.0/storage/sphinx/CMakeLists.txt.orig 2012-11-05 12:48:48.000000000 +0100
++++ Percona-Server-5.5.32-rel31.0/storage/sphinx/CMakeLists.txt 2013-07-12 17:57:36.740000378 +0200
+@@ -12,5 +12,5 @@
+ ADD_LIBRARY(sphinx ha_sphinx.cc snippets_udf.cc)
+ ELSE()
+ SET(SPHINX_PLUGIN_DYNAMIC "ha_sphinx")
+-MYSQL_ADD_PLUGIN(sphinx ${SPHINX_SOURCES} STORAGE_ENGINE MODULE_ONLY LINK_LIBRARIES mysys)
++MYSQL_ADD_PLUGIN(sphinx ${SPHINX_SOURCES} STORAGE_ENGINE MODULE_ONLY SKIP_PROBES LINK_LIBRARIES mysys)
+ ENDIF()
+--- Percona-Server-5.5.32-rel31.0/plugin/percona-pam-for-mysql/CMakeLists.txt.orig 2013-07-01 05:16:34.000000000 +0200
++++ Percona-Server-5.5.32-rel31.0/plugin/percona-pam-for-mysql/CMakeLists.txt 2013-07-12 18:28:41.576588784 +0200
+@@ -31,6 +31,6 @@
+ SET(AUTH_PAM_COMPAT_SOURCES ${AUTH_PAM_COMMON_SOURCES} src/auth_pam_compat.c)
+ MYSQL_ADD_PLUGIN(auth_pam ${AUTH_PAM_SOURCES} LINK_LIBRARIES pam MODULE_ONLY)
+ MYSQL_ADD_PLUGIN(auth_pam_compat ${AUTH_PAM_COMPAT_SOURCES} LINK_LIBRARIES pam MODULE_ONLY)
+- MYSQL_ADD_PLUGIN(dialog src/dialog.c LINK_LIBRARIES mysqlclient MODULE_ONLY)
++ MYSQL_ADD_PLUGIN(dialog src/dialog.c LINK_LIBRARIES mysqlclient MODULE_ONLY SKIP_PROBES)
+ ENDIF(HAVE_PAM AND HAVE_GETPWNAM_R AND HAVE_GETGRGID_R)
+ ENDIF(WITH_PAM)
--- /dev/null
+#!/bin/sh
+#
+# mysql-ndb-cpc This shell script takes care of starting and stopping mysql-ndb-cpc.
+#
+# chkconfig: 2345 80 30
+# description: mysql-ndb-cpc is a mysql NDB engine
+#
+# processname: ndbd
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Source oident configureation.
+if [ -f /etc/sysconfig/mysql-ndb-cpc ]; then
+ . /etc/sysconfig/mysql-ndb-cpc
+fi
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down mysql-ndb-cpc
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+start() {
+ # Start daemons.
+ if [ ! -f /var/lock/subsys/mysql-ndb-cpc ]; then
+ msg_starting "mysql ndb_cpcd"
+ daemon ndb_cpcd $MYSQL_NDB_CPC_OPT
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mysql-ndb-cpc
+ else
+ msg_already_running "mysql ndb_cpcd"
+ fi
+}
+
+stop() {
+ # Stop daemons.
+ if [ -f /var/lock/subsys/mysql-ndb-cpc ]; then
+ msg_stopping "mysql ndb_cpcd"
+ killproc ndbd
+ rm -f /var/lock/subsys/mysql-ndb-cpc >/dev/null 2>&1
+ else
+ msg_not_running "mysql ndb_cpcd"
+ fi
+}
+
+condrestart() {
+ if [ -f /var/lock/subsys/mysql-ndb-cpc ]; then
+ stop
+ start
+ else
+ msg_not_running "mysql ndb_cpcd"
+ RETVAL=$1
+ fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
+ ;;
+ status)
+ status ndb_cpcd
+ exit $?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+ exit 3
+esac
+
+exit $RETVAL
--- /dev/null
+MYSQL_NDB_CPC_OPT=""
+SERVICE_RUN_NICE_LEVEL="+0"
--- /dev/null
+#!/bin/sh
+#
+# mysql-ndb-mgm This shell script takes care of starting and stopping mysql-ndb-mgm.
+#
+# chkconfig: 2345 80 30
+# description: mysql-ndb-mgm is a mysql NDB engine
+#
+# processname: ndbd
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Source oident configureation.
+if [ -f /etc/sysconfig/mysql-ndb-mgm ]; then
+ . /etc/sysconfig/mysql-ndb-mgm
+fi
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down mysql-ndb-mgm
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+start() {
+ # Start daemons.
+ if [ ! -f /var/lock/subsys/mysql-ndb-mgm ]; then
+ msg_starting "mysql ndb_mgmd"
+ daemon ndb_mgmd $MYSQL_NDB_MGM_OPT
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mysql-ndb-mgm
+ else
+ msg_already_running "mysql ndb_mgmd"
+ fi
+}
+
+stop() {
+ # Stop daemons.
+ if [ -f /var/lock/subsys/mysql-ndb-mgm ]; then
+ msg_stopping "mysql ndb_mgmd"
+ killproc ndbd
+ rm -f /var/lock/subsys/mysql-ndb-mgm >/dev/null 2>&1
+ else
+ msg_not_running "mysql ndb_mgmd"
+ fi
+}
+
+condrestart() {
+ if [ -f /var/lock/subsys/mysql-ndb-mgm ]; then
+ stop
+ start
+ else
+ msg_not_running "mysql ndb_mgmd"
+ RETVAL=$1
+ fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
+ ;;
+ status)
+ status ndb_mgmd
+ exit $?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+ exit 3
+esac
+
+exit $RETVAL
--- /dev/null
+MYSQL_NDB_MGM_OPT=""
+SERVICE_RUN_NICE_LEVEL="+0"
--- /dev/null
+#!/bin/sh
+#
+# mysql-ndb This shell script takes care of starting and stopping mysql-ndb.
+#
+# chkconfig: 2345 80 30
+# description: mysql-ndb is a mysql NDB engine
+#
+# processname: ndbd
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Source oident configureation.
+if [ -f /etc/sysconfig/mysql-ndb ]; then
+ . /etc/sysconfig/mysql-ndb
+fi
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down mysql-ndb
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+start() {
+ # Start daemons.
+ if [ ! -f /var/lock/subsys/mysql-ndb ]; then
+ msg_starting "mysql ndbd"
+ daemon ndbd $MYSQL_NDB_OPT
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mysql-ndb
+ else
+ msg_already_running "mysql ndbd"
+ fi
+}
+
+stop() {
+ # Stop daemons.
+ if [ -f /var/lock/subsys/mysql-ndb ]; then
+ msg_stopping "mysql ndbd"
+ killproc ndbd
+ rm -f /var/lock/subsys/mysql-ndb >/dev/null 2>&1
+ else
+ msg_not_running "mysql ndbd"
+ fi
+}
+
+condrestart() {
+ if [ -f /var/lock/subsys/mysql-ndb ]; then
+ stop
+ start
+ else
+ msg_not_running "mysql ndbd"
+ RETVAL=$1
+ fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
+ ;;
+ status)
+ status ndbd
+ exit $?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+ exit 3
+esac
+
+exit $RETVAL
--- /dev/null
+MYSQL_NDB_OPT=""
+SERVICE_RUN_NICE_LEVEL="+0"
--- /dev/null
+--- mysql-5.1.49/storage/sphinx/Makefile.am~ 2009-02-13 23:26:46.000000000 +0200
++++ mysql-5.1.49/storage/sphinx/Makefile.am 2010-07-24 16:35:57.568716704 +0300
+@@ -31,7 +31,7 @@
+ LDADD =
+
+ DEFS= @DEFS@ \
+- -D_REENTRANT -D_PTHREADS -DENGINE -DSTORAGE_ENGINE -DMYSQL_SERVER
++ -D_REENTRANT -D_PTHREADS -DSTORAGE_ENGINE -DMYSQL_SERVER
+
+ noinst_HEADERS = ha_sphinx.h
+
+--- mysql-5.1.49/storage/sphinx/Makefile.am~ 2010-07-24 16:37:48.000000000 +0300
++++ mysql-5.1.49/storage/sphinx/Makefile.am 2010-07-24 17:00:56.161565823 +0300
+@@ -38,7 +38,7 @@
+ EXTRA_LTLIBRARIES = ha_sphinx.la
+ pkgplugin_LTLIBRARIES = @plugin_sphinx_shared_target@ sphinx.la
+
+-ha_sphinx_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
++ha_sphinx_la_LDFLAGS = -module -avoid-version -rpath $(MYSQLLIBdir)
+ ha_sphinx_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
+ ha_sphinx_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
+ ha_sphinx_la_SOURCES = ha_sphinx.cc
+--- mysql-5.1.49/storage/sphinx/Makefile.am~ 2010-07-24 19:14:55.000000000 +0300
++++ mysql-5.1.49/storage/sphinx/Makefile.am 2010-07-25 03:47:56.660771099 +0300
+@@ -43,7 +43,7 @@
+ ha_sphinx_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
+ ha_sphinx_la_SOURCES = ha_sphinx.cc
+
+-sphinx_la_LDFLAGS = -module
++sphinx_la_LDFLAGS = -module -avoid-version -rpath $(MYSQLLIBdir)
+ sphinx_la_CXXFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
+ sphinx_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
+ sphinx_la_SOURCES = snippets_udf.cc
--- /dev/null
+--- mysql-5.5.8/scripts/mysql_system_tables_data.sql.org 2010-12-16 00:09:23.662631925 +0100
++++ mysql-5.5.8/scripts/mysql_system_tables_data.sql 2010-12-16 00:10:17.763454969 +0100
+@@ -27,23 +27,17 @@
+ SET @get_hostname= @@hostname;
+ SELECT REPLACE((SELECT REPLACE(@get_hostname,'_','\_')),'%','\%') INTO @current_hostname;
+
+-
+--- Fill "db" table with default grants for anyone to
+--- access database 'test' and 'test_%' if "db" table didn't exist
+-CREATE TEMPORARY TABLE tmp_db LIKE db;
+-INSERT INTO tmp_db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
+-INSERT INTO tmp_db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');
+-INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0;
+-DROP TABLE tmp_db;
+-
+-
+ -- Fill "user" table with default users allowing root access
+ -- from local machine if "user" table didn't exist before
+ CREATE TEMPORARY TABLE tmp_user LIKE user;
+-INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
+-REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','' FROM dual WHERE LOWER( @current_hostname) != 'localhost';
+-REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
+-REPLACE INTO tmp_user VALUES ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
++INSERT INTO tmp_user VALUES ('localhost','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
++REPLACE INTO tmp_user SELECT @current_hostname,'mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','' FROM dual WHERE LOWER( @current_hostname) != 'localhost';
++REPLACE INTO tmp_user VALUES ('127.0.0.1','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
++REPLACE INTO tmp_user VALUES ('::1','mysql','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
++INSERT INTO tmp_user VALUES ('localhost','mysql_sysadmin','','N','N','N','N','N','N','Y','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'','');
++REPLACE INTO tmp_user SELECT @current_hostname,'mysql_sysadmin','','N','N','N','N','N','N','Y','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'','' FROM dual WHERE LOWER( @current_hostname) != 'localhost';
++REPLACE INTO tmp_user VALUES ('127.0.0.1','mysql_sysadmin','','N','N','N','N','N','N','Y','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'','');
++REPLACE INTO tmp_user VALUES ('::1','mysql_sysadmin','','N','N','N','N','N','N','Y','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'','');
+ INSERT INTO tmp_user (host,user) VALUES ('localhost','');
+ INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE LOWER(@current_hostname ) != 'localhost';
+ INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0;
--- /dev/null
+--- mysql-5.5.32/client/mysql_upgrade.c.orig 2013-07-01 03:16:34.000000000 +0000
++++ mysql-5.5.32/client/mysql_upgrade.c 2013-07-09 16:15:08.366178596 +0000
+@@ -35,13 +35,13 @@
+ # endif
+ #endif
+
+-static char mysql_path[FN_REFLEN];
+-static char mysqlcheck_path[FN_REFLEN];
++static char *mysql_path = "/usr/bin/mysql";
++static char *mysqlcheck_path = "/usr/sbin/mysqlcheck";
+
+ static my_bool opt_force, opt_verbose, debug_info_flag, debug_check_flag,
+ opt_systables_only, opt_version_check;
+ static uint my_end_arg= 0;
+-static char *opt_user= (char*)"root";
++static char *opt_user= (char*)"mysql";
+
+ static DYNAMIC_STRING ds_args;
+ static DYNAMIC_STRING conn_args;
+@@ -923,15 +923,7 @@
+ dynstr_append_os_quoted(&ds_args, "--user=", opt_user, NullS);
+ dynstr_append(&ds_args, " ");
+
+- /* Find mysql */
+- find_tool(mysql_path, IF_WIN("mysql.exe", "mysql"), self_name);
+-
+- if (!opt_systables_only)
+- {
+- /* Find mysqlcheck */
+- find_tool(mysqlcheck_path, IF_WIN("mysqlcheck.exe", "mysqlcheck"), self_name);
+- }
+- else
++ if (opt_systables_only)
+ {
+ printf("The --upgrade-system-tables option was used, databases won't be touched.\n");
+ }
--- /dev/null
+#!/bin/sh
+#
+# mysql A very fast and reliable SQL database engine
+#
+# chkconfig: 2345 84 25
+#
+# description: A very fast and reliable SQL database engine.
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Get service config
+if [ -f /etc/sysconfig/mysql ]; then
+ . /etc/sysconfig/mysql
+else
+ nls "Error: %s not found" /etc/sysconfig/mysql
+ nls "%s can't be run." MySQL
+ exit 1
+fi
+
+if [ -n "$MYSQL_DB_CLUSTERS" ]; then
+ nls "Warning: MYSQL_DB_CLUSTERS is set. It's obsolete. Use %s instead." /etc/mysql/clusters.conf
+fi
+
+if [ -f /etc/mysql/clusters.conf ]; then
+ MYSQL_DB_CLUSTERS=$(awk -F= '!/^#/ && /=/{print $2}' /etc/mysql/clusters.conf)
+ if [ -z "$MYSQL_DB_CLUSTERS" ]; then
+ nls "Warning: there are no configured clusters."
+ fi
+
+else
+ nls "Warning: Missing clusters config file %s" /etc/mysql/clusters.conf
+ if [ -z "$MYSQL_DB_CLUSTERS" ]; then
+ nls "Warning: there are no configured clusters."
+ nls "Using default cluster /var/lib/mysql (compatibility mode)"
+ MYSQL_DB_CLUSTERS=/var/lib/mysql
+ fi
+fi
+
+
+# Check that networking is up
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
+ msg_network_down MySQL
+ exit 1
+ fi
+else
+ exit 0
+fi
+
+action="$1"
+
+# any db cluster as command line argument?
+if [ $# -gt 1 ]; then
+ shift
+ # perform action for specified clusters only
+ for a in "$@"; do
+ # try auto resolving from /etc/mysql/clusters.conf
+ if [[ "$a" != /* ]]; then
+ m=$(awk -va="$a" -F= 'substr($0, 1, length(a)) == a {print $1}' /etc/mysql/clusters.conf)
+ if [ -z "$m" ]; then
+ echo >&2 "Cluster name '$a' did not match anything!"
+ exit 1
+ fi
+ if [ $(echo "$m" | wc -l) -gt 1 ]; then
+ echo >&2 "Cluster name '$a' ambiguous:" $m
+ exit 1
+ fi
+ a=$(awk -va="$a" -F= 'substr($0, 1, length(a)) == a {print $2}' /etc/mysql/clusters.conf)
+ fi
+ DB_CLUSTERS="$DB_CLUSTERS $a"
+ done
+else
+ DB_CLUSTERS="$MYSQL_DB_CLUSTERS"
+fi
+
+# global error log, if mysqld.conf hasn't migrated to log-error style
+MYSQL_ERRLOG=/var/log/mysql/mysqld.log
+MYSQL_STOP_WAIT_TIME=${MYSQL_STOP_WAIT_TIME:-900}
+
+#
+# Useful functions.
+#
+
+#
+# check for mysql status
+#
+# arguments:
+# $1 - db cluster
+# $2 - start|stop
+#
+# sets variables:
+# MYSQL_STATUS = starting | running | not running | died
+# MYSQL_PID = pid of mysqld process
+#
+mysqlstatus() {
+ clusterdir="$1"
+ mode="$2"
+
+ mysqlgetconfig "$clusterdir" status
+
+ MYSQL_STATUS="not running"
+ MYSQL_PID="unknown"
+ MYSQL_PIDFILE_PID=""
+ MYSQL_GREP_PID=""
+
+ if [ -f "$MYSQL_PIDFILE" ]; then
+ MYSQL_PIDFILE_PID=$(cat "$MYSQL_PIDFILE")
+ fi
+
+ if [ -n "$MYSQL_PIDFILE_PID" ]; then
+ MYSQL_PID=$MYSQL_PIDFILE_PID
+ if [ ! -d "/proc/$MYSQL_PID" ]; then
+ MYSQL_STATUS="died"
+ return
+ elif (grep -qa "$MYSQL_PIDFILE" /proc/$MYSQL_PID/cmdline 2> /dev/null); then
+ MYSQL_STATUS="running"
+ return
+ fi
+ fi
+
+ if [ "$mode" = "start" ]; then
+ MYSQL_GREP_PID=$(grep -lE "^/usr/sbin/mysqld.*${MYSQL_PIDFILE}" /proc/[0-9]*/cmdline 2> /dev/null | awk -F "/" '{ print $3; exit; }')
+ if [ -n "$MYSQL_GREP_PID" ]; then
+ MYSQL_PID=$MYSQL_GREP_PID
+ if grep -qa "$MYSQL_PIDFILE" /proc/$MYSQL_PID/cmdline 2> /dev/null; then
+ if [ -f "$MYSQL_PIDFILE" ]; then
+ MYSQL_PIDFILE_PID=$(cat "$MYSQL_PIDFILE")
+ fi
+ if [ -n "$MYSQL_PIDFILE_PID" ]; then
+ MYSQL_PID=$MYSQL_PIDFILE_PID
+ MYSQL_STATUS="running"
+ return
+ else
+ MYSQL_STATUS="starting"
+ return
+ fi
+ fi
+ fi
+ fi
+
+ # else default, "not running"
+}
+
+# get mysql configuration in variables
+# MYSQL_CONFIG MYSQL_CLUSTER_DIR
+# MYSQL_DATA_DIR MYSQL_USER MYSQL_PIDFILE MYSQL_SOCKET MYSQL_PORT MYSQL_BIND_ADDRESS MYSQL_SKIP_NETWORKING MYSQL_LOG_ERROR
+#
+# arguments
+# $1 - db cluster
+# $2 - status | other
+
+mysqlgetconfig() {
+ local clusterdir="$1" config_file
+ local mode="$2"
+
+ # emulate old behaviour if only one cluster specified
+ if [ "$clusterdir" = "$MYSQL_DB_CLUSTERS" -a "$clusterdir" = "/var/lib/mysql" -a -f /etc/mysqld.conf ]; then
+ MYSQL_RA_COMPAT=yes
+ config_file=/etc/mysqld.conf
+ else
+ local config=$(awk -F= -vclusterdir="$clusterdir" '!/^#/{ if (clusterdir == $2) print $1}' /etc/mysql/clusters.conf)
+ if [[ $config = /* ]]; then
+ config_file="$config"
+ elif [ -f "/etc/mysql/$config" ]; then
+ config_file="/etc/mysql/$config"
+ else
+ config_file="$clusterdir/mysqld.conf"
+ fi
+ fi
+
+ MYSQL_CLUSTER_DIR="$clusterdir"
+
+ if [ -z "$config_file" ]; then
+ nls "Error: Can't find config file for %s cluster" "$clusterdir"
+ if [ "$mode" = "status" ]; then
+ exit 3
+ else
+ exit 6
+ fi
+ else
+ MYSQL_CONFIG="$config_file"
+ fi
+
+ if [ ! -f "$config_file" ]; then
+ nls "Error: config file %s not found" "$config_file"
+ nls "MySQL can't be run. Did you initialize DB by doing \`$0 init'?"
+ if [ "$mode" = "status" ]; then
+ exit 3
+ else
+ exit 6
+ fi
+ fi
+
+ # reset to initial state
+ MYSQL_DATA_DIR= MYSQL_USER= MYSQL_PIDFILE= MYSQL_SOCKET= MYSQL_PORT= MYSQL_BIND_ADDRESS= MYSQL_SKIP_NETWORKING= MYSQL_LOG_ERROR=
+
+ eval `awk -F= '
+ {
+ # undos
+ gsub(/\r$/, "");
+
+ # trim spaces
+ gsub(/^[\t ]+|[\t ]+$/, "", $1);
+ gsub(/^[\t ]+|[\t ]+$/, "", $2);
+ }
+
+ # skip comments and empty lines
+ /^[;#]|^ *$/ { next }
+
+ /^[ \t]*\[.*\][ \t]*$/ {
+ match($0, /\[.*\]/);
+ section = substr($0, RSTART + 1, RSTART + RLENGTH - 3);
+ next;
+ }
+
+ section == "mysqld" {
+ if ($1 == "datadir") {
+ printf("MYSQL_DATA_DIR=%s;", $2);
+ } else if ($1 == "user") {
+ printf("MYSQL_USER=%s;", $2);
+ } else if ($1 == "pid-file") {
+ printf("MYSQL_PIDFILE=%s;", $2);
+ } else if ($1 == "socket") {
+ printf("MYSQL_SOCKET=%s;", $2);
+ } else if ($1 == "port") {
+ printf("MYSQL_PORT=%s;", $2);
+ } else if ($1 == "bind-address") {
+ printf("MYSQL_BIND_ADDRESS=%s;", $2);
+ } else if ($1 == "skip-networking") {
+ printf("MYSQL_SKIP_NETWORKING=1;");
+ } else if ($1 == "log-error") {
+ printf("MYSQL_LOG_ERROR=%s;", $2);
+ }
+ }
+ ' $config_file`
+
+ # error log not defined in config file. add one
+ if [ -z "$MYSQL_LOG_ERROR" ]; then
+ MYSQL_LOG_ERROR=$MYSQL_ERRLOG
+ else
+ # unset, so mysqld would use value from config itself
+ unset MYSQL_LOG_ERROR
+ fi
+
+ if is_yes "$MYSQL_RA_COMPAT"; then
+ MYSQL_DATA_DIR_SUB=""
+ else
+ MYSQL_DATA_DIR_SUB="/mysqldb"
+ fi
+
+ if [ -z "$MYSQL_DATA_DIR" -o "$MYSQL_DATA_DIR" != "${clusterdir}${MYSQL_DATA_DIR_SUB}/db" ]; then
+ nls "Error: datadir specified in %s should be %s" "$config_file" "$clusterdir${MYSQL_DATA_DIR_SUB}/db"
+ nls " MySQL can't be run."
+ exit 6
+ fi
+
+ if [ -z "$MYSQL_PIDFILE" -o "$MYSQL_PIDFILE" != "$clusterdir${MYSQL_DATA_DIR_SUB}/mysql.pid" ]; then
+ nls "Error: pid-file specified in %s should be %s" "$config_file" "$clusterdir${MYSQL_DATA_DIR_SUB}/mysql.pid"
+ nls " MySQL can't be run."
+ exit 6
+ fi
+
+ if [ -z "$MYSQL_USER" ]; then
+ echo "$(nls 'MySQL user not configured properly')"'!' >&2
+ nls "Edit %s and configure it." "$config_file" >&2
+ exit 6
+ fi
+}
+
+# start mysql
+mysqlstart() {
+ local clusterdir="$1"
+ mysqlgetconfig "$clusterdir"
+ if [ ! -d "$MYSQL_DATA_DIR/mysql" ]; then
+ nls "MySQL cluster %s not initialized." "$clusterdir"
+ nls "Try \`%s init %s' before start." "$0" "$clusterdir"
+ exit 6
+ fi
+
+ msg_starting "MySQL $clusterdir"; busy
+ [ -z "$DEFAULT_SERVICE_RUN_NICE_LEVEL" ] && DEFAULT_SERVICE_RUN_NICE_LEVEL=0
+ rm -f "$MYSQL_PIDFILE"
+
+
+ TMPDIR=/tmp nice -n ${SERVICE_RUN_NICE_LEVEL:-$DEFAULT_SERVICE_RUN_NICE_LEVEL} \
+ /usr/bin/setsid /usr/sbin/mysqld \
+ --defaults-file=$MYSQL_CONFIG \
+ --datadir=$MYSQL_DATA_DIR \
+ --pid-file=$MYSQL_PIDFILE \
+ ${MYSQL_LOG_ERROR:+--log-error="$MYSQL_LOG_ERROR"} \
+ $MYSQL_OPTIONS &
+ pid=$!
+
+ sleep 0.1
+ mysqlstatus "$clusterdir" start
+ # it takes longer for mysqld to start and create pidfile if it has to recover innodb transactions
+ if [ "$MYSQL_STATUS" = "starting" ]; then
+ echo ""
+ show "Waiting for MySQL to start"
+ busy
+
+ # while the pid is running, mysql is starting up
+ # if the pidfile was created, it started up successfully
+ # if either case fails we break and report status
+ while true; do
+ [ -d /proc/$pid ] || break
+ [ -f "$MYSQL_PIDFILE" ] && break
+ sleep 0.2
+ done
+ fi
+
+ mysqlstatus "$clusterdir" start
+ if [ "$MYSQL_STATUS" = "running" -a "$MYSQL_PID" != "unknown" ]; then
+ ok
+ elif [ "$MYSQL_STATUS" = "died" ]; then
+ RETVAL=1
+ died
+ else
+ RETVAL=1
+ fail
+ fi
+}
+
+# stop mysql
+mysqlstop() {
+ local clusterdir="$1"
+ mysqlstatus "$clusterdir" stop
+ msg_stopping "MySQL $clusterdir"
+ busy
+
+ # try graceful shutdown -- send shutdown command
+ # requires mysql_sysadmin user proper privs
+ /usr/bin/mysqladmin --defaults-file=$MYSQL_CONFIG ${MYSQL_SOCKET:+--socket=$MYSQL_SOCKET} shutdown >/dev/null 2>&1
+ mysqlstatus "$clusterdir" stop
+
+ if [ "$MYSQL_PID" != "unknown" ]; then
+ kill -TERM "$MYSQL_PID" 2> /dev/null
+ for nr in $(seq 1 $(($MYSQL_STOP_WAIT_TIME*10))); do
+ [ -d "/proc/$MYSQL_PID" ] || break
+ sleep 0.1
+ done
+ fi
+
+ mysqlstatus "$clusterdir" stop
+ if [ "$MYSQL_STATUS" = "died" ]; then
+ died
+ elif [ "$MYSQL_STATUS" = "running" -o "$MYSQL_STATUS" = "starting" ]; then
+ fail
+ else
+ ok
+ fi
+}
+
+# report slave status
+# uses MYSQL_SOCKET - path to mysql socket
+slave_status() {
+ # see if slave status can be reported
+ local err=0 slave_status=$(mysql --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" -e 'show slave status\G')
+ if [ -z "$slave_status" ]; then
+ # slave not setup
+ return
+ fi
+
+ printf "Slave Status:\n"
+
+ set -f
+ eval $(echo "$slave_status" | awk -F': ' '/^ *[A-Za-z_]+:/{
+ k = tolower($1);
+ v = substr($0, length($1) + 3);
+ gsub(/\\/, "\\\\\\", v);
+ gsub(/"/, "\\\"", v);
+ gsub(/`/, "\\`", v);
+ gsub(/\$/, "\\$", v);
+ gsub(/\$/, "\\$", v);
+ printf("%s=\"%s\";\n", k, v);
+ }')
+ set +f
+
+ if [ "$slave_io_running" != "Yes" ]; then
+ printf "\tSlave IO not running\n"
+ err=1
+ fi
+ if [ "$slave_sql_running" != "Yes" ]; then
+ printf "\tSlave SQL not running\n"
+ err=1
+ fi
+
+ if [ "$err" = 1 -a "$last_errno" -gt 0 ]; then
+ printf "\tERROR %s: %s\n" "$last_errno" "$last_error"
+ fi
+
+ if [ "$master_log_file" != "$relay_master_log_file" ]; then
+ printf "\tERROR logfile mismatch (%s)\n" "$relay_master_log_file"
+ err=1
+ fi
+
+ if [ -z "$read_master_log_pos" -o -z "$exec_master_log_pos" ]; then
+ printf "\tERROR No info about master\n"
+ err=1
+ return
+ fi
+
+ diff=$(($read_master_log_pos - $exec_master_log_pos))
+ printf "\tread pos: %s (%s) (host: %s:%d)\n" "$read_master_log_pos" "$master_log_file" "$master_host" "$master_port"
+ printf "\texec pos: %s\n" "$exec_master_log_pos"
+ printf "\tdiff: %s\n" "$diff"
+}
+
+#
+# check for running mysql instances; if any instance is running then
+# create subsys lock file
+#
+mysqlsubsys() {
+ # check for every defined db cluster in sysconfig file
+ for mysqldir in $DB_CLUSTERS; do
+ mysqlstatus "$mysqldir"
+ if [ "$MYSQL_STATUS" = "running" ]; then
+ touch /var/lock/subsys/mysql
+ return
+ fi
+ done
+ rm -f /var/lock/subsys/mysql
+}
+
+mysqlinit() {
+ local clusterdir="$1"
+
+ if [ -f /etc/mysqld.conf ]; then
+ nls "Running in \`no cluster compat' mode: can't initialize database."
+ nls "Move /etc/mysqld.conf away and rerun \`$0 init' (new config will be in $clusterdir)."
+ exit 1
+ fi
+
+ if [ -f "$clusterdir/mysqld.conf" ]; then
+ mysqlgetconfig "$clusterdir"
+ else
+ MYSQL_USER="mysql"
+ MYSQL_CLUSTER_DIR="$clusterdir"
+ MYSQL_DATA_DIR="$clusterdir/mysqldb/db"
+ MYSQL_PIDFILE="$clusterdir/mysqldb/mysql.pid"
+ MYSQL_SOCKET="$clusterdir/mysqldb/mysql.sock"
+
+ # this $MYSQL_CONFIG will be created later
+ MYSQL_CONFIG="$MYSQL_CLUSTER_DIR/mysqld.conf"
+ fi
+
+ show "Initializing cluster %s" "$clusterdir"; started
+
+ # Check if not exist init database
+ if [ -d "$MYSQL_DATA_DIR/mysql" ]; then
+ nls "Seems that database is initialized now. Remove by hand %s" "$MYSQL_DATA_DIR/mysql"
+ nls "before initializing database."
+ nls "For now skipping cluster %s." "$clusterdir"
+ return
+ fi
+
+ show "Installing MySQL system tables for $MYSQL_DATA_DIR"
+ busy
+ TMP=/tmp TMPDIR=/tmp
+
+ mkdir -p "$MYSQL_DATA_DIR" > /dev/null 2>&1
+ # Using mysql:mysql for MYSQL_CLUSTER_DIR is creating SECURITY hole, root:root is proper
+ chown root:root "$MYSQL_CLUSTER_DIR"
+ chown mysql:mysql "$MYSQL_CLUSTER_DIR/mysqldb" "$MYSQL_DATA_DIR" > /dev/null 2>&1
+ chmod 751 "$MYSQL_CLUSTER_DIR" "$MYSQL_CLUSTER_DIR/mysqldb"
+
+ if [ -f /usr/share/mysql/mysqld.conf -a ! -f "$MYSQL_CLUSTER_DIR/mysqld.conf" ]; then
+ sed -e "
+ s#\(datadir.*\)=.*#\1= $MYSQL_DATA_DIR#g;
+ s#\(pid-file.*\)=.*#\1= $MYSQL_PIDFILE#g;
+ s#\(socket.*\)=.*#\1= $MYSQL_SOCKET#g;
+ s#@clusterdir@#$MYSQL_CLUSTER_DIR#g;
+ " /usr/share/mysql/mysqld.conf > "$MYSQL_CLUSTER_DIR/mysqld.conf"
+ chown root:root "$MYSQL_CLUSTER_DIR/mysqld.conf"
+ chmod 640 "$MYSQL_CLUSTER_DIR/mysqld.conf"
+ fi
+
+ if [ ! -e /var/lib/mysql/mysql.sock ] || [ -L /var/lib/mysql/mysql.sock ] && [ -z "$(readlink /var/lib/mysql/mysql.sock)" ]; then
+ sock=${MYSQL_SOCKET#/var/lib/mysql/} # make it relative if possible
+ ln -s "$sock" /var/lib/mysql/mysql.sock
+ fi
+
+ cat > $MYSQL_DATA_DIR/mysql-init.sql <<-EOF
+ CREATE DATABASE mysql;
+ use mysql;
+ $(cat /usr/share/mysql/mysql_system_tables.sql)
+ $(sed -e "/@current_hostname/d" /usr/share/mysql/mysql_system_tables_data.sql)
+EOF
+
+ ok=0
+ /usr/sbin/mysqld \
+ --defaults-file=$MYSQL_CLUSTER_DIR/mysqld.conf \
+ --bootstrap \
+ --skip-grant-tables \
+ --datadir=$MYSQL_DATA_DIR \
+ --user=$MYSQL_USER \
+ --slave-load-tmpdir=$MYSQL_DATA_DIR \
+ --tmpdir=$MYSQL_DATA_DIR \
+ --log-error=$MYSQL_ERRLOG \
+ < $MYSQL_DATA_DIR/mysql-init.sql && ok=1
+ [ -f $MYSQL_DATA_DIR/mysql/host.frm ] || ok=0
+
+ if [ "$ok" = 1 ]; then
+ rm -f $MYSQL_DATA_DIR/mysql-init.sql
+ ok
+ cat << END_OF_MSG
+
+PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL USERS!
+This is done, after starting database, in the order shown,
+with:
+
+For 'mysql_sysadmin' (RELOAD and SHUTDOWN privileges):
+echo "update mysql.user set password=password('newpassword') where user='mysql_sysadmin'; FLUSH PRIVILEGES;" | mysql -u mysql -S $MYSQL_SOCKET
+
+For 'mysql' user (ALL privileges, DB admin):
+echo "update mysql.user set password=password('newpassword') where user='mysql'; FLUSH PRIVILEGES;" | mysql -u mysql -S $MYSQL_SOCKET
+
+NOTE: mysql_sysadmin password should be placed to $MYSQL_CONFIG in
+mysqladmin section. See the manual for more instructions.
+(This user is used at logs rotation and server shutdown)
+
+END_OF_MSG
+ show "Filling help tables..."
+ ok=0
+ ( echo "use mysql;"; cat /usr/share/mysql/fill_help_tables.sql ) | \
+ /usr/sbin/mysqld \
+ --defaults-file=$MYSQL_CLUSTER_DIR/mysqld.conf \
+ --bootstrap \
+ --skip-grant-tables \
+ --datadir=$MYSQL_DATA_DIR \
+ --user=$MYSQL_USER \
+ --slave-load-tmpdir=$MYSQL_DATA_DIR \
+ --tmpdir=$MYSQL_DATA_DIR \
+ --log-error=$MYSQL_ERRLOG \
+ && ok=1
+ if [ "$ok" = 1 ]; then
+ ok
+ else
+ cat << END_OF_MSG
+
+WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!
+The "HELP" command might not work properly.
+
+END_OF_MSG
+ fi
+ else
+ fail
+ cat << END_OF_MSG
+ERROR:
+ERROR:
+ERROR: Installation of grant tables FAILED!
+ERROR:
+ERROR:
+
+The initialization SQL script was preserved at $MYSQL_DATA_DIR/mysql-init.sql
+
+Examine the logs in /var/log/mysql for more information. You can
+also try to start the mysqld daemon with:
+
+/usr/sbin/mysqld --skip-grant &
+
+You can use the command line tool mysql to connect to the mysql
+database and look at the grant tables:
+
+shell> mysql -u mysql mysql
+mysql> show tables
+
+Try 'mysqld --help' if you have problems with paths. Setting on
+logging in $MYSQL_DATA_DIR/mysqld.conf gives you a log in /var/log/mysql/query.log that
+may be helpful. The latest information about MySQL is available on the
+web at http://www.mysql.com/.
+
+Please check PLD Linux ftp site for newer versions of this package.
+
+Please consult the MySQL manual section: 'Problems running
+mysql_install_db', and the manual section that describes problems on
+your OS. Another information source is the MySQL email archive.
+
+END_OF_MSG
+ exit 1
+ fi
+}
+
+#
+# End of useful functions.
+#
+
+start() {
+ local mysqldir
+ for mysqldir in $DB_CLUSTERS; do
+ mysqlstatus "$mysqldir" start
+ if [ "$MYSQL_STATUS" = "running" ]; then
+ msg_already_running "MySQL $mysqldir"
+ else
+ mysqlstart "$mysqldir"
+ fi
+ done
+ mysqlsubsys
+}
+
+stop() {
+ local mysqldir
+ for mysqldir in $DB_CLUSTERS; do
+ mysqlstatus "$mysqldir" stop
+ if [ "$MYSQL_STATUS" = "not running" ]; then
+ msg_not_running "MySQL $mysqldir"
+ else
+ mysqlstop "$mysqldir"
+ fi
+ done
+ mysqlsubsys
+}
+
+condrestart() {
+ if [ ! -f /var/lock/subsys/mysql ]; then
+ msg_not_running "MySQL"
+ RETVAL=$1
+ return
+ fi
+
+ stop
+ start
+}
+
+status() {
+ local mysqldir addr port socket pid pids running datadir
+ RETVAL=3
+ for mysqldir in $DB_CLUSTERS; do
+ mysqlstatus "$mysqldir"
+ if [ "$MYSQL_STATUS" = "running" ]; then
+ RETVAL=0
+ addr=${MYSQL_BIND_ADDRESS:-0.0.0.0}
+ port=${MYSQL_PORT:-3306}
+ socket=${MYSQL_SOCKET:-/var/lib/mysql/mysql.sock}
+ pid=$MYSQL_PID
+ nls "MySQL cluster %s, pid %s\n" "$mysqldir" "$pid"
+ [ -z "$MYSQL_SKIP_NETWORKING" ] && nls "\ttcp:%s:%s\n" "$addr" "$port"
+ nls "\tunix: %s\n" "$socket"
+
+ MYSQL_SOCKET=$socket slave_status
+
+ pids="$pids/$MYSQL_PID/"
+ progress "$MYSQL_STATUS"
+ else
+ show "MySQL cluster %s" "$mysqldir"
+ progress "$MYSQL_STATUS" "$CFAIL"
+ fi
+ echo
+ done
+
+ for pid in $(/sbin/pidof mysqld); do
+ if [[ $pids != */$pid/* ]]; then
+ running="$running $pid"
+ fi
+ done
+
+ if [ $# = 1 -a "$running" ]; then
+ nls "Warning: MySQL Daemon processes not under clusters.conf control:"
+ # see if we can display their status
+ for pid in $running; do
+ datadir=$(cat /proc/$pid/cmdline | tr '\0' '\n' | fgrep -- --datadir=)
+ datadir=${datadir#--datadir=} # strip --datadir
+ mysqldir=${datadir%/mysqldb/db} # strip /mysqldb/db
+ mysqlstatus "$mysqldir"
+ if [ "$MYSQL_STATUS" = "running" ]; then
+ addr=${MYSQL_BIND_ADDRESS:-0.0.0.0}
+ port=${MYSQL_PORT:-3306}
+ socket=${MYSQL_SOCKET:-/var/lib/mysql/mysql.sock}
+ nls "MySQL cluster %s, pid %s\n" "$mysqldir" "$pid"
+ [ -z "$MYSQL_SKIP_NETWORKING" ] && nls "\ttcp:%s:%s\n" "$addr" "$port"
+ nls "\tunix: %s\n" "$socket"
+
+ MYSQL_SOCKET=$socket slave_status
+
+ progress "$MYSQL_STATUS"
+ else
+ show "MySQL cluster %s" "$mysqldir"
+ progress "$MYSQL_STATUS" "$CFAIL"
+ fi
+ echo
+ done
+ fi
+}
+
+RETVAL=0
+case "$action" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
+ ;;
+ init)
+ for mysqldir in $DB_CLUSTERS; do
+ mysqlinit "$mysqldir"
+ done
+ exit $?
+ ;;
+ flush-logs)
+ for mysqldir in $DB_CLUSTERS; do
+ mysqlgetconfig "$mysqldir"
+ # just if mysqld is really running
+ if /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" ping >/dev/null 2>&1; then
+ /usr/bin/mysqladmin --defaults-file="$MYSQL_CONFIG" --socket="$MYSQL_SOCKET" flush-logs
+ fi
+ done
+ ;;
+ status)
+ status
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|init|flush-logs|status}"
+ exit 3
+esac
+
+exit $RETVAL
--- /dev/null
+# This section is used from mysqld.conf for logrotation.
+# Be sure that the password in config matches the actual one.
+#
+# ATTENTION: The mysqld.conf should be readable ONLY for *system* root!
+#
+# [mysqladmin]
+# user = mysql_sysadmin
+# password = <secret>
+#
+# where "<secret>" is the password.
+#
+# You must do this for every active cluster defined in /etc/mysql/clusters.conf
+
+/var/log/mysql/query.log
+/var/log/mysql/mysqld.log
+/var/log/mysql/slow.log
+/var/log/mysql/update*
+{
+ olddir /var/log/archive/mysql
+ notifempty
+ missingok
+ create 640 mysql mysql
+ sharedscripts
+
+ # NOTE:
+ # if you run the rotation less often than "daily" then the
+ # "expire-logs-days" mysqld server parameter may no longer work as you
+ # expect
+ daily
+
+ postrotate
+ /sbin/service mysql flush-logs
+ endscript
+}
--- /dev/null
+# TODO:
+# - mysqldump ... (invalid usage) prints to stdout not stderr (idiotic if you want to create dump and get usage in .sql)
+# - http://bugs.mysql.com/bug.php?id=16470
+# - innodb are dynamic (= as plugins) ?
+# - missing have_archive, have_merge
+# - is plugin_dir lib64 safe?
+# - Using NDB Cluster... could not find sci transporter in /{include, lib}
+# - !!! Makefiles for libmysqld.so !!!
+# - segfaults on select from non-mysql user (caused by builder environment):
+# https://bugs.launchpad.net/pld-linux/+bug/381904
+# (profiling disabled temporaily to workaround this)
+#
+# Conditional build:
+%bcond_with autodeps # BR packages needed only for resolving deps
+%bcond_without innodb # InnoDB storage engine support
+%bcond_without big_tables # Support tables with more than 4G rows even on 32 bit platforms
+%bcond_without federated # Federated storage engine support
+%bcond_without raid # RAID support
+%bcond_without ssl # OpenSSL support
+%bcond_without systemtap # systemtap/dtrace probes
+%bcond_without tcpd # libwrap (tcp_wrappers) support
+%bcond_without sphinx # Sphinx storage engine support
+%bcond_with tests # FIXME: don't run correctly
+%bcond_with ndb # NDB is now a separate product, this here is broken, so disable it
+
+%define percona_rel 31.0
+%include /usr/lib/rpm/macros.perl
+Summary: MySQL: a very fast and reliable SQL database engine
+Summary(de.UTF-8): MySQL: ist eine SQL-Datenbank
+Summary(fr.UTF-8): MySQL: un serveur SQL rapide et fiable
+Summary(pl.UTF-8): MySQL: bardzo szybka i niezawodna baza danych (SQL)
+Summary(pt_BR.UTF-8): MySQL: Um servidor SQL rápido e confiável
+Summary(ru.UTF-8): MySQL - быстрый SQL-сервер
+Summary(uk.UTF-8): MySQL - швидкий SQL-сервер
+Summary(zh_CN.UTF-8): MySQL数据库服务器
+Name: mysql
+Version: 5.5.32
+Release: 3
+License: GPL + MySQL FLOSS Exception
+Group: Applications/Databases
+# Source0Download: http://dev.mysql.com/downloads/mysql/5.5.html#downloads
+# Source0: http://vesta.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.5/%{name}-%{version}.tar.gz
+Source0: http://www.percona.com/redir/downloads/Percona-Server-5.5/LATEST/source/Percona-Server-%{version}-rel%{percona_rel}.tar.gz
+# Source0-md5: aafbc2a94353d68b5cbfbeddb7eb2e08
+Source100: http://www.sphinxsearch.com/files/sphinx-2.0.8-release.tar.gz
+# Source100-md5: bcaf0af0ba403a43b9ef3af6f9599cb4
+Source1: %{name}.init
+Source2: %{name}.sysconfig
+Source3: %{name}.logrotate
+Source4: %{name}d.conf
+Source5: %{name}-clusters.conf
+Source7: %{name}-ndb.init
+Source8: %{name}-ndb.sysconfig
+Source9: %{name}-ndb-mgm.init
+Source10: %{name}-ndb-mgm.sysconfig
+Source11: %{name}-ndb-cpc.init
+Source12: %{name}-ndb-cpc.sysconfig
+Source13: %{name}-client.conf
+Source14: my.cnf
+# from fedora
+Source15: lib%{name}.version
+Patch0: %{name}-link.patch
+Patch2: %{name}hotcopy-5.0-5.5.patch
+Patch3: bug-67402.patch
+# from fedora
+Patch6: %{name}-system-users.patch
+
+Patch9: %{name}-build.patch
+Patch11: %{name}-upgrade.patch
+Patch12: %{name}-config.patch
+Patch14: %{name}-bug-43594.patch
+Patch18: %{name}-sphinx.patch
+Patch19: %{name}-chain-certs.patch
+# from fedora
+Patch20: %{name}-dubious-exports.patch
+Patch21: bison3.patch
+URL: http://www.mysql.com/products/community/
+BuildRequires: bison >= 1.875
+BuildRequires: cmake >= 2.6
+BuildRequires: groff
+%if "%{pld_release}" == "ac"
+BuildRequires: libstdc++4-devel >= 5:4.0
+%else
+BuildRequires: libstdc++-devel >= 5:4.0
+%endif
+BuildRequires: libtool
+%{?with_tcpd:BuildRequires: libwrap-devel}
+BuildRequires: ncurses-devel >= 4.2
+%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
+%{?with_autodeps:BuildRequires: perl-DBI}
+BuildRequires: perl-devel >= 1:5.6.1
+BuildRequires: readline-devel >= 4.2
+BuildRequires: rpm-perlprov >= 4.1-13
+BuildRequires: rpmbuild(macros) >= 1.597
+BuildRequires: sed >= 4.0
+%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
+BuildRequires: zlib-devel
+Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(triggerpostun): sed >= 4.0
+Requires: %{name}-charsets = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Requires: /usr/bin/setsid
+Requires: rc-scripts >= 0.2.0
+Suggests: mysql-client
+%{?with_tcpd:Suggests: tcp_wrappers}
+Suggests: vim-syntax-mycnf
+Provides: MySQL-server
+Provides: group(mysql)
+Provides: msqlormysql
+Provides: user(mysql)
+Obsoletes: MySQL
+Obsoletes: mysql-server
+Conflicts: logrotate < 3.8.0
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define _libexecdir %{_sbindir}
+%define _localstatedir /var/lib/mysql
+%define _mysqlhome /home/services/mysql
+
+%description
+MySQL is a true multi-user, multi-threaded SQL (Structured Query
+Language) database server. SQL is the most popular database language
+in the world. MySQL is a client/server implementation that consists of
+a server daemon mysqld and many different client programs/libraries.
+
+The main goals of MySQL are speed, robustness and easy to use. MySQL
+was originally developed because we at Tcx needed a SQL server that
+could handle very big databases with magnitude higher speed than what
+any database vendor could offer to us. We have now been using MySQL
+since 1996 in a environment with more than 40 databases, 10,000
+tables, of which more than 500 have more than 7 million rows. This is
+about 50G of mission critical data.
+
+The base upon which MySQL is built is a set of routines that have been
+used in a highly demanding production environment for many years.
+While MySQL is still in development, it already offers a rich and
+highly useful function set.
+
+%description -l fr.UTF-8
+MySQL est un serveur de bases de donnees SQL vraiment multi-usagers et
+multi-taches. Le langage SQL est le langage de bases de donnees le
+plus populaire au monde. MySQL est une implementation client/serveur
+qui consiste en un serveur (mysqld) et differents
+programmes/bibliotheques clientes.
+
+Les objectifs principaux de MySQL sont: vitesse, robustesse et
+facilite d'utilisation. MySQL fut originalement developpe parce que
+nous, chez Tcx, avions besoin d'un serveur SQL qui pouvait gerer de
+tres grandes bases de donnees avec une vitesse d'un ordre de magnitude
+superieur a ce que n'importe quel vendeur pouvait nous offrir. Nous
+utilisons MySQL depuis 1996 dans un environnement avec plus de 40
+bases de donnees, 10000 tables, desquelles plus de 500 ont plus de 7
+millions de lignes. Ceci represente environ 50G de donnees critiques.
+
+A la base de la conception de MySQL, on retrouve une serie de routines
+qui ont ete utilisees dans un environnement de production pendant
+plusieurs annees. Meme si MySQL est encore en developpement, il offre
+deja une riche et utile serie de fonctions.
+
+%description -l pl.UTF-8
+MySQL to prawdziwie wieloużytkownikowy, wielowątkowy serwer baz danych
+SQL. SQL jest najpopularniejszym na świecie językiem używanym do baz
+danych. MySQL to implementacja klient/serwer składająca się z demona
+mysqld i wielu różnych programów i bibliotek klienckich.
+
+Głównymi celami MySQL-a są szybkość, potęga i łatwość użytkowania.
+MySQL oryginalnie był tworzony, ponieważ autorzy w Tcx potrzebowali
+serwera SQL do obsługi bardzo dużych baz danych z szybkością o wiele
+większą, niż mogli zaoferować inni producenci baz danych. Używają go
+od 1996 roku w środowisku z ponad 40 bazami danych, 10 000 tabel, z
+których ponad 500 zawiera ponad 7 milionów rekordów - w sumie około
+50GB krytycznych danych.
+
+Baza, na której oparty jest MySQL, składa się ze zbioru procedur,
+które były używane w bardzo wymagającym środowisku produkcyjnym przez
+wiele lat. Pomimo, że MySQL jest ciągle rozwijany, już oferuje bogaty
+i użyteczny zbiór funkcji.
+
+%description -l de.UTF-8
+MySQL ist eine SQL-Datenbank. Allerdings ist sie im Gegensatz zu
+Oracle, DB2 oder PostgreSQL keine relationale Datenbank. Die Daten
+werden zwar in zweidimensionalen Tabellen gespeichert und können mit
+einem Primärschlüssel versehen werden. Es ist aber keine Definition
+eines Fremdschlüssels möglich. Der Benutzer ist somit bei einer
+MySQL-Datenbank völlig allein für die (referenzielle) Integrität der
+Daten verantwortlich. Allein durch die Nutzung externer
+Tabellenformate, wie InnoDB bzw Berkeley DB wird eine Relationalität
+ermöglicht. Diese Projekte sind aber getrennt von MySQL zu betrachten.
+
+%description -l pt_BR.UTF-8
+O MySQL é um servidor de banco de dados SQL realmente multiusuário e
+multi-tarefa. A linguagem SQL é a mais popular linguagem para banco de
+dados no mundo. O MySQL é uma implementação cliente/servidor que
+consiste de um servidor chamado mysqld e diversos
+programas/bibliotecas clientes. Os principais objetivos do MySQL são:
+velocidade, robustez e facilidade de uso. O MySQL foi originalmente
+desenvolvido porque nós na Tcx precisávamos de um servidor SQL que
+pudesse lidar com grandes bases de dados e com uma velocidade muito
+maior do que a que qualquer vendedor podia nos oferecer. Estamos
+usando o MySQL desde 1996 em um ambiente com mais de 40 bases de dados
+com 10.000 tabelas, das quais mais de 500 têm mais de 7 milhões de
+linhas. Isto é o equivalente a aproximadamente 50G de dados críticos.
+A base da construção do MySQL é uma série de rotinas que foram usadas
+em um ambiente de produção com alta demanda por muitos anos. Mesmo o
+MySQL estando ainda em desenvolvimento, ele já oferece um conjunto de
+funções muito ricas e úteis. Veja a documentação para maiores
+informações.
+
+%description -l ru.UTF-8
+MySQL - это SQL (Structured Query Language) сервер базы данных. MySQL
+была написана Michael'ом (monty) Widenius'ом. См. файл CREDITS в
+дистрибутиве на предмет других участников проекта и прочей информации
+о MySQL.
+
+%description -l uk.UTF-8
+MySQL - це SQL (Structured Query Language) сервер бази даних. MySQL
+було написано Michael'ом (monty) Widenius'ом. Див. файл CREDITS в
+дистрибутиві для інформації про інших учасників проекту та іншої
+інформації.
+
+%package charsets
+Summary: MySQL - character sets definitions
+Summary(pl.UTF-8): MySQL - definicje kodowań znaków
+Group: Applications/Databases
+
+%description charsets
+This package contains character sets definitions needed by both client
+and server.
+
+%description charsets -l pl.UTF-8
+Ten pakiet zawiera definicje kodowań znaków potrzebne dla serwera i
+klienta.
+
+%package -n mysqlhotcopy
+Summary: mysqlhotcopy - A MySQL database backup program
+Summary(pl.UTF-8): mysqlhotcopy - program do tworzenia kopii zapasowych baz MySQL
+Group: Applications/Databases
+Requires: perl-DBD-mysql
+
+%description -n mysqlhotcopy
+mysqlhotcopy uses LOCK TABLES, FLUSH TABLES, and cp or scp to make a
+database backup quickly. It is the fastest way to make a backup of the
+database or single tables, but it can be run only on the same machine
+where the database directories are located. mysqlhotcopy works only
+for backing up MyISAM and ARCHIVE tables.
+
+See innobackup package to backup InnoDB tables.
+
+%description -n mysqlhotcopy -l pl.UTF-8
+mysqlhotcopy wykorzystuje LOCK TABLES, FLUSH TABLES oraz cp i scp do
+szybkiego tworzenia kopii zapasowych baz danych. Jest to najszybszy
+sposób wykonania kopii zapasowej bazy danych lub pojedynczych tabel,
+ale może działać tylko na maszynie, na której znajdują się katalogi z
+bazą danych. mysqlhotcopy działa tylko dla tabel typu MyISAM i
+ARCHIVE.
+
+Narzędzie do tworzenia kopii tabel InnoDB znajduje się w pakiecie
+innobackup.
+
+%package extras
+Summary: MySQL additional utilities
+Summary(pl.UTF-8): Dodatkowe narzędzia do MySQL
+Group: Applications/Databases
+Requires: %{name}-client = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+
+%description extras
+MySQL additional utilities except Perl scripts (they may be found in
+%{name}-extras-perl package).
+
+%description extras -l pl.UTF-8
+Dodatkowe narzędzia do MySQL - z wyjątkiem skryptów Perla (które są w
+pakiecie %{name}-extras-perl).
+
+%package extras-perl
+Summary: MySQL additional utilities written in Perl
+Summary(pl.UTF-8): Dodatkowe narzędzia do MySQL napisane w Perlu
+Group: Applications/Databases
+Requires: %{name}-extras = %{version}-%{release}
+# this is just for the sake of smooth upgrade, not to break systems
+Requires: mysqlhotcopy = %{version}-%{release}
+Requires: perl(DBD::mysql)
+
+%description extras-perl
+MySQL additional utilities written in Perl.
+
+%description extras-perl -l pl.UTF-8
+Dodatkowe narzędzia do MySQL napisane w Perlu.
+
+%package client
+Summary: MySQL - Client
+Summary(pl.UTF-8): MySQL - Klient
+Summary(pt.UTF-8): MySQL - Cliente
+Summary(ru.UTF-8): MySQL клиент
+Summary(uk.UTF-8): MySQL клієнт
+Group: Applications/Databases
+Requires: %{name}-charsets = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+Obsoletes: MySQL-client
+
+%description client
+This package contains the standard MySQL clients.
+
+%description client -l fr.UTF-8
+Ce package contient les clients MySQL standards.
+
+%description client -l pl.UTF-8
+Standardowe programy klienckie MySQL.
+
+%description client -l pt_BR.UTF-8
+Este pacote contém os clientes padrão para o MySQL.
+
+%description client -l ru.UTF-8
+Этот пакет содержит только клиент MySQL.
+
+%description client -l uk.UTF-8
+Цей пакет містить тільки клієнта MySQL.
+
+%package libs
+Summary: Shared libraries for MySQL
+Summary(pl.UTF-8): Biblioteki współdzielone MySQL
+Group: Libraries
+Obsoletes: libmysql10
+Obsoletes: mysql-doc < 4.1.12
+
+%description libs
+Shared libraries for MySQL.
+
+%description libs -l pl.UTF-8
+Biblioteki współdzielone MySQL.
+
+%package devel
+Summary: MySQL - development header files and other files
+Summary(pl.UTF-8): MySQL - Pliki nagłówkowe i inne dla programistów
+Summary(pt.UTF-8): MySQL - Medições de desempenho
+Summary(ru.UTF-8): MySQL - хедеры и библиотеки разработчика
+Summary(uk.UTF-8): MySQL - хедери та бібліотеки програміста
+Group: Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+%{?with_ssl:Requires: openssl-devel}
+Requires: zlib-devel
+Obsoletes: MySQL-devel
+Obsoletes: libmysql10-devel
+
+%description devel
+This package contains the development header files and other files
+necessary to develop MySQL client applications.
+
+%description devel -l fr.UTF-8
+Ce package contient les fichiers entetes et les librairies de
+developpement necessaires pour developper des applications clientes
+MySQL.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe i inne pliki konieczne do kompilacji aplikacji
+klienckich MySQL.
+
+%description devel -l pt_BR.UTF-8
+Este pacote contém os arquivos de cabeçalho (header files) e
+bibliotecas necessárias para desenvolver aplicações clientes do MySQL.
+
+%description devel -l ru.UTF-8
+Этот пакет содержит хедеры и библиотеки разработчика, необходимые для
+разработки клиентских приложений.
+
+%description devel -l uk.UTF-8
+Цей пакет містить хедери та бібліотеки програміста, необхідні для
+розробки програм-клієнтів.
+
+%package static
+Summary: MySQL static libraries
+Summary(pl.UTF-8): Biblioteki statyczne MySQL
+Summary(ru.UTF-8): MySQL - статические библиотеки
+Summary(uk.UTF-8): MySQL - статичні бібліотеки
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Obsoletes: MySQL-static
+
+%description static
+MySQL static libraries.
+
+%description static -l pl.UTF-8
+Biblioteki statyczne MySQL.
+
+%description static -l ru.UTF-8
+Этот пакет содержит статические библиотеки разработчика, необходимые
+для разработки клиентских приложений.
+
+%description static -l uk.UTF-8
+Цей пакет містить статичні бібліотеки програміста, необхідні для
+розробки програм-клієнтів.
+
+%package bench
+Summary: MySQL - Benchmarks
+Summary(pl.UTF-8): MySQL - Programy testujące szybkość działania bazy
+Summary(pt.UTF-8): MySQL - Medições de desempenho
+Summary(ru.UTF-8): MySQL - бенчмарки
+Summary(uk.UTF-8): MySQL - бенчмарки
+Group: Applications/Databases
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-client
+Requires: perl(DBD::mysql)
+Obsoletes: MySQL-bench
+
+%description bench
+This package contains MySQL benchmark scripts and data.
+
+%description bench -l pl.UTF-8
+Programy testujące szybkość serwera MySQL.
+
+%description bench -l pt_BR.UTF-8
+Este pacote contém medições de desempenho de scripts e dados do MySQL.
+
+%description bench -l ru.UTF-8
+Этот пакет содержит скрипты и данные для оценки производительности
+MySQL.
+
+%description bench -l uk.UTF-8
+Цей пакет містить скрипти та дані для оцінки продуктивності MySQL.
+
+%package doc
+Summary: MySQL manual
+Summary(pl.UTF-8): Podręcznik użytkownika MySQL
+Group: Applications/Databases
+
+%description doc
+This package contains manual in HTML format.
+
+%description doc -l pl.UTF-8
+Podręcznik MySQL-a w formacie HTML.
+
+%package ndb
+Summary: MySQL - NDB Storage Engine Daemon
+Summary(pl.UTF-8): MySQL - demon silnika przechowywania danych NDB
+Group: Applications/Databases
+Requires: %{name}-libs = %{version}-%{release}
+
+%description ndb
+This package contains the standard MySQL NDB Storage Engine Daemon.
+
+%description ndb -l pl.UTF-8
+Ten pakiet zawiera standardowego demona silnika przechowywania danych
+NDB.
+
+%package ndb-client
+Summary: MySQL - NDB Clients
+Summary(pl.UTF-8): MySQL - programy klienckie NDB
+Group: Applications/Databases
+Requires: %{name}-libs = %{version}-%{release}
+
+%description ndb-client
+This package contains the standard MySQL NDB Clients.
+
+%description ndb-client -l pl.UTF-8
+Ten pakiet zawiera standardowe programy klienckie MySQL NDB.
+
+%package ndb-mgm
+Summary: MySQL - NDB Management Daemon
+Summary(pl.UTF-8): MySQL - demon zarządzający NDB
+Group: Applications/Databases
+Requires: %{name}-libs = %{version}-%{release}
+
+%description ndb-mgm
+This package contains the standard MySQL NDB Management Daemon.
+
+%description ndb-mgm -l pl.UTF-8
+Ten pakiet zawiera standardowego demona zarządzającego MySQL NDB.
+
+%package ndb-cpc
+Summary: MySQL - NDB CPC Daemon
+Summary(pl.UTF-8): MySQL - demon NDB CPC
+Group: Applications/Databases
+Requires: %{name}-libs = %{version}-%{release}
+
+%description ndb-cpc
+This package contains the standard MySQL NDB CPC Daemon.
+
+%description ndb-cpc -l pl.UTF-8
+Ten pakiet zawiera standardowego demona MySQL NDB CPC.
+
+%prep
+%setup -q -n Percona-Server-%{version}-rel%{percona_rel} %{?with_sphinx:-a100}
+%if %{with sphinx}
+# http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
+mv sphinx-*/mysqlse storage/sphinx
+%patch18 -p1
+%endif
+%patch0 -p1
+%patch2 -p1
+%patch3 -p1
+
+%patch6 -p1
+
+%patch9 -p1
+%patch11 -p1
+%patch12 -p1
+%patch14 -p0
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+
+# to get these files rebuild
+[ -f sql/sql_yacc.cc ] && rm sql/sql_yacc.cc
+[ -f sql/sql_yacc.h ] && rm sql/sql_yacc.h
+
+%build
+install -d build
+cd build
+# NOTE that /var/lib/mysql/mysql.sock is symlink to real sock file
+# (it defaults to first cluster but user may change it to whatever
+# cluster it wants)
+
+%if "%{pld_release}" == "ac"
+# add suffix, but allow ccache, etc in ~/.rpmmacros
+%{expand:%%define __cc %(echo '%__cc' | sed -e 's,-gcc,-gcc4,')}
+%{expand:%%define __cxx %(echo '%__cxx' | sed -e 's,-g++,-g++4,')}
+%{expand:%%define __cpp %(echo '%__cpp' | sed -e 's,-gcc,-gcc4,')}
+%endif
+
+# upstream has fallen down badly on symbol versioning, do it ourselves
+install -d libmysql
+cp -a %{SOURCE15} libmysql/libmysql.version
+
+%cmake \
+ -DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
+ -DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+ -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+ -DCOMPILATION_COMMENT="PLD/Linux Distribution MySQL RPM" \
+ -DCURSES_INCLUDE_PATH=/usr/include/ncurses \
+ %{!?with_systemtap:-DENABLE_DTRACE=OFF} \
+ -DFEATURE_SET="community" \
+ -DINSTALL_LAYOUT=RPM \
+ -DINSTALL_LIBDIR=%{_lib} \
+ -DINSTALL_MYSQLTESTDIR_RPM="" \
+ -DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \
+ -DINSTALL_SQLBENCHDIR=%{_datadir} \
+ -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
+ -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
+ %{?debug:-DWITH_DEBUG=ON} \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITH_FAST_MUTEXES=ON \
+ -DWITH_LIBEDIT=OFF \
+ -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
+ -DWITH_PAM=ON \
+ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
+ -DWITH_PIC=ON \
+ -DWITH_READLINE=OFF \
+%if "%{pld_release}" == "ac"
+ -DWITH_SSL=%{?with_ssl:bundled}%{!?with_ssl:no} \
+%else
+ -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
+%endif
+ -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+ -DWITH_ZLIB=system \
+ ..
+
+%{__make}
+
+%{?with_tests:%{__make} test}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql,skel} \
+ $RPM_BUILD_ROOT/var/{log/{archive,}/mysql,lib/mysql} \
+ $RPM_BUILD_ROOT%{_mysqlhome} \
+ $RPM_BUILD_ROOT%{_libdir}
+
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql
+cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/mysql
+cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mysql
+# This is template for configuration file which is created after 'service mysql init'
+cp -a %{SOURCE4} mysqld.conf
+cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/clusters.conf
+touch $RPM_BUILD_ROOT/var/log/%{name}/{mysqld,query,slow}.log
+
+# remove innodb directives from mysqld.conf if mysqld is configured without
+%if %{without innodb}
+ cp mysqld.conf mysqld.tmp
+ awk 'BEGIN { RS="\n\n" } !/innodb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
+%endif
+
+# remove berkeley-db directives from mysqld.conf if mysqld is configured without
+cp mysqld.conf mysqld.tmp
+awk 'BEGIN { RS="\n\n" } !/bdb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
+
+cp -a mysqld.conf $RPM_BUILD_ROOT%{_datadir}/%{name}/mysqld.conf
+cp -a %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/mysql-client.conf
+ln -s mysql-client.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/my.cnf
+cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/skel/.my.cnf
+
+# NDB
+%if %{with ndb}
+install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb
+cp -a %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb
+install -p %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-mgm
+cp -a %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-mgm
+install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-cpc
+cp -a %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
+%endif
+
+# symlinks point to the .so file, fix it
+ln -sf libmysqlclient.so.18 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.18
+ln -sf libmysqlclient.so.18.0.0 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.18.0.0
+
+sed -i -e 's,/usr//usr,%{_prefix},g' $RPM_BUILD_ROOT%{_bindir}/mysql_config
+sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
+sed -i -e '/libs/s/-lprobes_mysql//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
+
+# remove known unpackaged files
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-support
+
+# rename not to be so generic name
+mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
+mv $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1
+
+# move to _sysconfdir
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir}}/mysqlaccess.conf
+
+# not useful without -debug build
+%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
+%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_resolve_stack_dump.1}
+# generate symbols file, so one can generate backtrace using it
+# mysql_resolve_stack_dump -s %{_datadir}/%{name}/mysqld.sym -n mysqld.stack.
+# http://dev.mysql.com/doc/refman/5.0/en/using-stack-trace.html
+%{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/%{name}/mysqld.sym}
+
+# do not clobber users $PATH
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_plugin
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_upgrade
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/innochecksum
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamchk
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamlog
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisampack
+#mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_fix_privilege_tables
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/my_print_defaults
+sed -i -e 's#/usr/bin/my_print_defaults#%{_sbindir}/my_print_defaults#g' $RPM_BUILD_ROOT%{_bindir}/mysql_install_db
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck
+
+# delete - functionality in initscript / rpm
+# note: mysql_install_db (and thus resolveip) are needed by digikam
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysqld_safe
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysqld_multi
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysqld_{multi,safe}*
+#rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql-log-rotate
+#rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql.server
+#rm $RPM_BUILD_ROOT%{_datadir}/%{name}/binary-configure
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg-utf8.txt
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_waitpid.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
+
+# we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_client_test
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test_embedded.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql-stress-test.pl.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql-test-run.pl.1*
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-test
+
+# not needed
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/daemon_example.ini
+
+# not an .info file
+%{__rm} $RPM_BUILD_ROOT%{_infodir}/mysql.info
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+%groupadd -g 89 mysql
+%useradd -u 89 -d %{_mysqlhome} -s /bin/sh -g mysql -c "MySQL Server" mysql
+
+%post
+/sbin/ldconfig
+/sbin/chkconfig --add mysql
+%service mysql restart
+
+%preun
+if [ "$1" = "0" ]; then
+ %service -q mysql stop
+ /sbin/chkconfig --del mysql
+fi
+
+%postun
+/sbin/ldconfig
+if [ "$1" = "0" ]; then
+ %userremove mysql
+ %groupremove mysql
+fi
+
+%post ndb
+/sbin/chkconfig --add mysql-ndb
+%service mysql-ndb restart "mysql NDB engine"
+
+%preun ndb
+if [ "$1" = "0" ]; then
+ %service mysql-ndb stop
+ /sbin/chkconfig --del mysql-ndb
+fi
+
+%post ndb-mgm
+/sbin/chkconfig --add mysql-ndb-mgm
+%service mysql-ndb-mgm restart "mysql NDB management node"
+
+%preun ndb-mgm
+if [ "$1" = "0" ]; then
+ %service mysql-ndb-mgm stop
+ /sbin/chkconfig --del mysql-ndb-mgm
+fi
+
+%post ndb-cpc
+/sbin/chkconfig --add mysql-ndb-cpc
+%service mysql-ndb-cpc restart "mysql NDB CPC"
+
+%preun ndb-cpc
+if [ "$1" = "0" ]; then
+ %service mysql-ndb-cpc stop
+ /sbin/chkconfig --del mysql-ndb-cpc
+fi
+
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
+
+%triggerpostun -- mysql < 4.0.20-2.4
+# For clusters in /etc/%{name}/clusters.conf
+if [ -f /etc/sysconfig/mysql ]; then
+ . /etc/sysconfig/mysql
+ if [ -n "$MYSQL_DB_CLUSTERS" ]; then
+ for i in "$MYSQL_DB_CLUSTERS"; do
+ echo "$i/mysqld.conf=$i" >> /etc/%{name}/clusters.conf
+ done
+ echo "# Do not use **obsolete** option MYSQL_DB_CLUSTERS" >> /etc/sysconfig/mysql
+ echo "# USE /etc/%{name}/clusters.conf instead" >> /etc/sysconfig/mysql
+ echo "Converted clusters from MYSQL_DB_CLUSTERS to /etc/%{name}/clusters.conf."
+ echo "You NEED to fix your /etc/sysconfig/mysql and verify /etc/%{name}/clusters.conf."
+ fi
+fi
+
+%triggerpostun -- mysql < 4.1.1
+# For better compatibility with prevoius versions:
+for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
+ if echo "$config" | grep -q '^/'; then
+ config_file="$config"
+ elif [ -f "/etc/%{name}/$config" ]; then
+ config_file=/etc/%{name}/$config
+ else
+ clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/%{name}/clusters.conf)
+ if [ -z "$clusterdir" ]; then
+ echo >&2 "Can't find cluster dir for $config!"
+ echo >&2 "Please remove extra (leading) spaces from /etc/%{name}/clusters.conf"
+ exit 1
+ fi
+ config_file="$clusterdir/mysqld.conf"
+ fi
+
+ if [ ! -f "$config_file" ]; then
+ echo >&2 "Lost myself! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
+ exit 1
+ fi
+ echo "Adding option old-passwords to config: $config_file"
+ echo "If you want to use new, better passwords - remove it"
+
+ # sed magic to add 'old-passwords' to [mysqld] section
+ sed -i -e '/./{H;$!d;};x;/\[mysqld\]/{
+ a
+ a; Compatibility options:
+ aold-passwords
+ }
+ ' $config_file
+done
+
+%banner -e %{name}-4.1.x <<-EOF
+ If you want to use new help tables in MySQL 4.1.x then You'll need to import the help data:
+ mysql -u mysql mysql < %{_datadir}/%{name}/fill_help_tables.sql
+EOF
+#'
+
+%triggerpostun -- mysql < 5.1.0
+configs=""
+for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
+ if echo "$config" | grep -q '^/'; then
+ config_file="$config"
+ elif [ -f "/etc/%{name}/$config" ]; then
+ config_file=/etc/%{name}/$config
+ else
+ clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/%{name}/clusters.conf)
+ if [ -z "$clusterdir" ]; then
+ echo >&2 "Can't find cluster dir for $config!"
+ echo >&2 "Please remove extra (leading) spaces from /etc/%{name}/clusters.conf"
+ exit 1
+ fi
+ config_file="$clusterdir/mysqld.conf"
+ fi
+
+ if [ ! -f "$config_file" ]; then
+ echo >&2 "ERROR: Can't find real config file for $config! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
+ continue
+ fi
+ configs="$configs $config_file"
+done
+
+(
+echo 'You should run MySQL upgrade script *after* restarting MySQL server for all MySQL clusters.'
+echo 'Thus, you should invoke:'
+for config in $configs; do
+ sed -i -e '
+ s/set-variable\s*=\s* //
+ # use # as comment in config
+ s/^;/#/
+ ' $config
+
+ datadir=$(awk -F= '!/^#/ && $1 ~ /datadir/{print $2}' $config | xargs)
+ echo "# mysql_upgrade --datadir=$datadir"
+done
+) | %banner -e %{name}-5.1
+
+%triggerpostun -- mysql < 5.5.0
+configs=""
+for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
+ if echo "$config" | grep -q '^/'; then
+ config_file="$config"
+ elif [ -f "/etc/%{name}/$config" ]; then
+ config_file=/etc/%{name}/$config
+ else
+ clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/%{name}/clusters.conf)
+ if [ -z "$clusterdir" ]; then
+ echo >&2 "Can't find cluster dir for $config!"
+ echo >&2 "Please remove extra (leading) spaces from /etc/%{name}/clusters.conf"
+ exit 1
+ fi
+ config_file="$clusterdir/mysqld.conf"
+ fi
+
+ if [ ! -f "$config_file" ]; then
+ echo >&2 "ERROR: Can't find real config file for $config! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
+ continue
+ fi
+ configs="$configs $config_file"
+done
+
+(
+echo 'You should run MySQL upgrade script *after* restarting MySQL server for all MySQL clusters.'
+echo 'Thus, you should invoke:'
+for config in $configs; do
+ sed -i -e '
+ s/^language *= *polish/lc-messages = pl_PL/i
+ s/set-variable\s*=\s* //
+ s/^skip-locking/skip-external-locking/
+ # this is not valid for server. it is client option
+ s/^default-character-set/# client-config: &/
+ # use # as comment in config
+ s/^;/#/
+ ' $config
+
+ socket=$(awk -F= '!/^#/ && $1 ~ /socket/{print $2}' $config | xargs)
+ echo "# mysql_upgrade ${socket:+--socket=$socket}"
+done
+) | %banner -e %{name}-5.5
+
+%files
+%defattr(644,root,root,755)
+%doc build/support-files/*.cnf build/support-files/*.ini
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
+%attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/clusters.conf
+%attr(755,root,root) %{_sbindir}/innochecksum
+%attr(755,root,root) %{_sbindir}/my_print_defaults
+%attr(755,root,root) %{_sbindir}/myisamchk
+%attr(755,root,root) %{_sbindir}/myisamlog
+%attr(755,root,root) %{_sbindir}/myisampack
+#%attr(755,root,root) %{_sbindir}/mysql_fix_privilege_tables
+%attr(755,root,root) %{_sbindir}/mysql_plugin
+%attr(755,root,root) %{_sbindir}/mysql_upgrade
+%attr(755,root,root) %{_sbindir}/mysqlcheck
+%attr(755,root,root) %{_sbindir}/mysqld
+%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/plugin
+%attr(755,root,root) %{_libdir}/%{name}/plugin/adt_null.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/auth.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_pam.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_pam_compat.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_socket.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_test_plugin.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/dialog.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_archive.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_blackhole.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_federated.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/mypluglib.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/qa_auth_client.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/qa_auth_interface.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/qa_auth_server.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_master.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_slave.so
+%if %{with sphinx}
+%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
+%endif
+# for plugins
+%attr(755,root,root) %{_libdir}/libmysqlservices.so
+%{_mandir}/man1/innochecksum.1*
+%{_mandir}/man1/my_print_defaults.1*
+%{_mandir}/man1/myisamchk.1*
+%{_mandir}/man1/myisamlog.1*
+%{_mandir}/man1/myisampack.1*
+#%{_mandir}/man1/mysql_fix_privilege_tables.1*
+%{_mandir}/man1/mysql_plugin.1*
+%{_mandir}/man1/mysql_upgrade.1*
+%{_mandir}/man1/mysqlcheck.1*
+%{_mandir}/man8/mysqld.8*
+
+%if %{?debug:1}0
+%attr(755,root,root) %{_bindir}/*resolve_stack_dump
+%{_datadir}/%{name}/mysqld.sym
+%{_mandir}/man1/*resolve_stack_dump.1*
+%endif
+
+%attr(700,mysql,mysql) %{_mysqlhome}
+# root:root is proper here for mysql.rpm while mysql:mysql is potential security hole
+%attr(751,root,root) /var/lib/mysql
+%attr(750,mysql,mysql) %dir /var/log/mysql
+%attr(750,mysql,mysql) %dir /var/log/archive/mysql
+%attr(640,mysql,mysql) %ghost /var/log/mysql/*
+
+# This is template for configuration file which is created after 'service mysql init'
+%{_datadir}/%{name}/mysqld.conf
+%{_datadir}/%{name}/mysql_system_tables.sql
+%{_datadir}/%{name}/mysql_system_tables_data.sql
+%{_datadir}/%{name}/mysql_test_data_timezone.sql
+
+%{_datadir}/%{name}/english
+%{_datadir}/%{name}/fill_help_tables.sql
+#%{_datadir}/%{name}/mysql_fix_privilege_tables.sql
+%lang(cs) %{_datadir}/%{name}/czech
+%lang(da) %{_datadir}/%{name}/danish
+%lang(de) %{_datadir}/%{name}/german
+%lang(el) %{_datadir}/%{name}/greek
+%lang(es) %{_datadir}/%{name}/spanish
+%lang(et) %{_datadir}/%{name}/estonian
+%lang(fr) %{_datadir}/%{name}/french
+%lang(hu) %{_datadir}/%{name}/hungarian
+%lang(it) %{_datadir}/%{name}/italian
+%lang(ja) %{_datadir}/%{name}/japanese
+%lang(ko) %{_datadir}/%{name}/korean
+%lang(nl) %{_datadir}/%{name}/dutch
+%lang(nb) %{_datadir}/%{name}/norwegian
+%lang(nn) %{_datadir}/%{name}/norwegian-ny
+%lang(pl) %{_datadir}/%{name}/polish
+%lang(pt) %{_datadir}/%{name}/portuguese
+%lang(ro) %{_datadir}/%{name}/romanian
+%lang(ru) %{_datadir}/%{name}/russian
+%lang(sr) %{_datadir}/%{name}/serbian
+%lang(sk) %{_datadir}/%{name}/slovak
+%lang(sv) %{_datadir}/%{name}/swedish
+%lang(uk) %{_datadir}/%{name}/ukrainian
+
+%files charsets
+%defattr(644,root,root,755)
+%dir %{_datadir}/mysql
+%{_datadir}/%{name}/charsets
+
+%files extras
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/msql2mysql
+%attr(755,root,root) %{_bindir}/myisam_ftdump
+%attr(755,root,root) %{_bindir}/mysql_install_db
+%attr(755,root,root) %{_bindir}/mysql_secure_installation
+%attr(755,root,root) %{_bindir}/mysql_tzinfo_to_sql
+%attr(755,root,root) %{_bindir}/perror
+%attr(755,root,root) %{_bindir}/replace
+%attr(755,root,root) %{_bindir}/resolveip
+%{_mandir}/man1/msql2mysql.1*
+%{_mandir}/man1/myisam_ftdump.1*
+%{_mandir}/man1/mysql_install_db.1*
+%{_mandir}/man1/mysql_secure_installation.1*
+%{_mandir}/man1/mysql_tzinfo_to_sql.1*
+%{_mandir}/man1/perror.1*
+%{_mandir}/man1/replace.1*
+%{_mandir}/man1/resolveip.1*
+
+%files -n mysqlhotcopy
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mysqlhotcopy
+%{_mandir}/man1/mysqlhotcopy.1*
+
+%files extras-perl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mysql_convert_table_format
+%attr(755,root,root) %{_bindir}/mysql_find_rows
+%attr(755,root,root) %{_bindir}/mysql_fix_extensions
+%attr(755,root,root) %{_bindir}/mysql_setpermission
+%attr(755,root,root) %{_bindir}/mysql_zap
+%attr(755,root,root) %{_bindir}/mysqlaccess
+%attr(755,root,root) %{_bindir}/mysqldumpslow
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysqlaccess.conf
+%{_mandir}/man1/mysql_convert_table_format.1*
+%{_mandir}/man1/mysql_find_rows.1*
+%{_mandir}/man1/mysql_fix_extensions.1*
+%{_mandir}/man1/mysql_setpermission.1*
+%{_mandir}/man1/mysql_zap.1*
+%{_mandir}/man1/mysqlaccess.1*
+%{_mandir}/man1/mysqldumpslow.1*
+
+%files client
+%defattr(644,root,root,755)
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/skel/.my.cnf
+%attr(755,root,root) %{_bindir}/mysql
+%attr(755,root,root) %{_bindir}/mysqladmin
+%attr(755,root,root) %{_bindir}/mysqlbinlog
+%attr(755,root,root) %{_bindir}/mysqlbug
+%attr(755,root,root) %{_bindir}/mysqldump
+%attr(755,root,root) %{_bindir}/mysqlimport
+%attr(755,root,root) %{_bindir}/mysqlshow
+%{_mandir}/man1/mysql.1*
+%{_mandir}/man1/mysqladmin.1*
+%{_mandir}/man1/mysqlbinlog.1*
+%{_mandir}/man1/mysqlbug.1*
+%{_mandir}/man1/mysqldump.1*
+%{_mandir}/man1/mysqlimport.1*
+%{_mandir}/man1/mysqlshow.1*
+
+%files libs
+%defattr(644,root,root,755)
+%attr(751,root,root) %dir %{_sysconfdir}/mysql
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/mysql-client.conf
+%{_sysconfdir}/%{name}/my.cnf
+%attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.18
+%attr(755,root,root) %{_libdir}/libmysqlclient_r.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient_r.so.18
+%if %{with ndb}
+%attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
+%endif
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mysql_config
+%attr(755,root,root) %{_libdir}/libmysqlclient.so
+%attr(755,root,root) %{_libdir}/libmysqlclient_r.so
+%if %{with ndb}
+%attr(755,root,root) %{_libdir}/libndbclient.so
+%endif
+%{_includedir}/mysql
+%{_aclocaldir}/mysql.m4
+%{_mandir}/man1/mysql_config.1*
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libmysqlclient.a
+%{_libdir}/libmysqlclient_r.a
+%if %{with ndb}
+%{_libdir}/libndbclient.a
+%endif
+
+%files bench
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/mysqlslap
+%attr(755,root,root) %{_bindir}/mysqltest
+%dir %{_datadir}/sql-bench
+%{_datadir}/sql-bench/[CDRl]*
+%attr(755,root,root) %{_datadir}/sql-bench/[bcgirst]*
+%{_mandir}/man1/mysqlslap.1*
+%{_mandir}/man1/mysqltest.1*
+%{_mandir}/man1/mysqltest_embedded.1*
+
+#%files doc
+#%defattr(644,root,root,755)
+#%doc Docs/manual.html Docs/manual_toc.html
+
+%if %{with ndb}
+%files ndb
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/ndbd
+%attr(754,root,root) /etc/rc.d/init.d/mysql-ndb
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb
+%{_mandir}/man1/ndbd_redo_log_reader.1*
+%{_mandir}/man8/ndbd.8*
+
+%files ndb-client
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/ndb_config
+%attr(755,root,root) %{_bindir}/ndb_delete_all
+%attr(755,root,root) %{_bindir}/ndb_desc
+%attr(755,root,root) %{_bindir}/ndb_drop_index
+%attr(755,root,root) %{_bindir}/ndb_drop_table
+%attr(755,root,root) %{_bindir}/ndb_error_reporter
+%attr(755,root,root) %{_bindir}/ndb_mgm
+%attr(755,root,root) %{_bindir}/ndb_print_backup_file
+%attr(755,root,root) %{_bindir}/ndb_print_schema_file
+%attr(755,root,root) %{_bindir}/ndb_print_sys_file
+%attr(755,root,root) %{_bindir}/ndb_restore
+%attr(755,root,root) %{_bindir}/ndb_select_all
+%attr(755,root,root) %{_bindir}/ndb_select_count
+%attr(755,root,root) %{_bindir}/ndb_show_tables
+%attr(755,root,root) %{_bindir}/ndb_size.pl
+%attr(755,root,root) %{_bindir}/ndb_test_platform
+%attr(755,root,root) %{_bindir}/ndb_waiter
+%{_mandir}/man1/ndb_config.1*
+%{_mandir}/man1/ndb_delete_all.1*
+%{_mandir}/man1/ndb_desc.1*
+%{_mandir}/man1/ndb_drop_index.1*
+%{_mandir}/man1/ndb_drop_table.1*
+%{_mandir}/man1/ndb_error_reporter.1*
+%{_mandir}/man1/ndb_mgm.1*
+%{_mandir}/man1/ndb_print_backup_file.1*
+%{_mandir}/man1/ndb_print_schema_file.1*
+%{_mandir}/man1/ndb_print_sys_file.1*
+%{_mandir}/man1/ndb_restore.1*
+%{_mandir}/man1/ndb_select_all.1*
+%{_mandir}/man1/ndb_select_count.1*
+%{_mandir}/man1/ndb_show_tables.1*
+%{_mandir}/man1/ndb_size.pl.1*
+%{_mandir}/man1/ndb_waiter.1*
+
+%files ndb-mgm
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/ndb_mgmd
+%attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-mgm
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-mgm
+%{_mandir}/man8/ndb_mgmd.8*
+
+%files ndb-cpc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/ndb_cpcd
+%attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-cpc
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
+%{_mandir}/man1/ndb_cpcd.1*
+%endif
--- /dev/null
+# Customized settings for mysql
+
+# Define nice level for mysql
+SERVICE_RUN_NICE_LEVEL="+0"
+
+# Be compatible with RA layout (not supported)
+MYSQL_RA_COMPAT="no"
+
+# For clusters configuration look into /etc/mysql/clusters.conf
+# Don't use **obsolete** MYSQL_DB_CLUSTERS option
+
+# Seconds to wait for fully initialized mysqld to start. mysqld takes longer to
+# start when it has to replay innodb logs, or create innodb pools at startup
+#MYSQL_START_WAIT_TIME=15
+
+# Seconds to wait for mysqld to terminate on shutdown. If timeout is exceeded
+# shutdown is considered failed
+#MYSQL_STOP_WAIT_TIME=900
+
+# Skip automatic mysqld restarts invoked from rpm installs.
+#RPM_SKIP_AUTO_RESTART=yes
+
+# Any option passed directly to mysqld on startup.
+#MYSQL_OPTIONS="--open-files-limit=65535"
+
+# fd limit increase
+#SERVICE_LIMITS="$DEFAULT_SERVICE_LIMITS -n 65535"
--- /dev/null
+# The MySQL server configuration file.
+# vim:ft=mycnf
+#
+# One can use all long options that the mysqld supports.
+# Run mysqld with --help to get a whole list of available options
+# $Id$
+
+# This section must be the first!
+[mysqld]
+datadir = @clusterdir@/mysqldb/db
+pid-file = @clusterdir@/mysqldb/mysql.pid
+socket = @clusterdir@/mysqldb/mysql.sock
+port = 3306
+user = mysql
+
+# ssl options
+#ssl-ca = /etc/ssl/certs/mysql/ca-cert.pem
+#ssl-cert = /etc/ssl/certs/mysql/server-cert.pem
+#ssl-key = /etc/ssl/certs/mysql/server-key.pem
+#ssl-cipher = DHE-RSA-AES256-SHA
+
+#character-set-server=latin2
+#collation-server=latin2_general_ci
+#skip-character-set-client-handshake
+
+# Use passwords compatible with old 4.0 mysqld
+#old-passwords
+
+# Don't use system locking
+skip-external-locking
+
+# Disabling symbolic-links is recommended to prevent assorted security risks
+symbolic-links=0
+
+# Default storage engine is InnoDB since 5.5.5
+# You may revert to previous behaviour by specifiying MyISAM here
+#default-storage-engine=InnoDB
+
+# Don't listen on a TCP/IP port at all. This is a security enhancement,
+# if all processes that need to connect to mysqld run on the same host.
+# All interaction with mysqld must be made via Unix sockets.
+skip-networking
+
+# IP address to bind to
+#bind-address=127.0.0.1
+
+# no dns
+#skip-name-resolve
+
+# Emergency option. Use only if you really need this.
+#skip-grant-tables
+
+# http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_default-storage-engine
+#default-storage-engine=MyISAM
+
+# Replication Master Server (default)
+# binary logging is required for replication
+#log-bin=mysql-bin
+
+# max size of master binlog files
+#max_binlog_size=256M
+
+# If non-zero, binary logs will be purged after expire_logs_days days; possible
+# purges happen at startup and at binary log rotation.
+#expire-logs-days=30
+
+# Normally, a slave does not log to its own binary log any updates that are
+# received from a master server. This option tells the slave to log the updates
+# performed by its SQL thread to its own binary log. For this option to have
+# any effect, the slave must also be started with the --log-bin option to
+# enable binary logging. --log-slave-updates is used when you want to chain
+# replication servers.
+#log-slave-updates
+
+# required unique id between 1 and 2^32 - 1
+# defaults to 1 if master-host is not set but will not function as a master if omitted
+#server-id=2
+
+# To set up N master servers, set the variables like this:
+# Set auto_increment_increment to N on each master.
+# Set each of the N masters to have a different auto_increment_offset, using the values 1, 2, ..., N
+#auto-increment-offset=1
+#auto-increment-increment=2
+
+# databases to be included in binlog
+#binlog-do-db=db1
+# or excluded
+#binlog-ignore-db=mysql
+#binlog-ignore-db=test
+
+# slave setup
+#relay-log=slave-relay-bin
+#report-host=db-slave.example.org
+
+# skip startup of slave
+#skip-slave-start
+
+# master does not ignore them, but we do
+#replicate-ignore-db=mysql
+#replicate-ignore-db=test
+#replicate-ignore-table=db1.tbl1
+#replicate-ignore-table=db2.tbl2
+
+#replicate-rewrite-db=delfi->delfi_ro
+
+# replication local log
+#max_relay_log_size=256M
+
+# global option where logs be written
+log-output = FILE
+
+# mysqld error log (stderr)
+log-error = /var/log/mysql/mysqld.log
+log-warnings = 2
+
+# Log slow queries
+slow-query-log
+slow-query-log_file = /var/log/mysql/slow.log
+
+# Log connections and queries. It slows down MySQL so it's disabled by default
+#general-log
+#general-log-file = /var/log/mysql/query.log
+
+# Log all updates.
+#log-update = /var/log/mysql/update
+# Log some extra information to update log
+#log-long-format
+
+# Language
+#lc-messages = pl_PL
+
+# Path for temporary files. Several paths may be specified, separated by a
+# colon (:), in this case they are used in a round-robin fashion.
+#tmpdir = /var/tmp
+
+#
+# Internal server variables
+#
+
+#back_log=5
+#connect_timeout=5
+#delayed_insert_timeout=300
+#delayed_insert_limit=100
+#flush_time=0
+#join_buffer_size=131072
+#key_buffer_size=8M
+#read_rnd_buffer_size=256K
+#read_buffer_size=132K
+#long_query_time=10
+#max_allowed_packet=1M
+#max_connections=100
+#max_user_connections=0
+#max_connect_errors=10
+#max_delayed_threads=20
+#delayed_queue_size=1000
+#max_join_size=4294967295
+#max_sort_length=1024
+#max_write_lock_count=4294967295
+#net_buffer_length=16384
+#record_buffer=131072
+#sort_buffer_size=2M
+#table_cache=64
+#tmp_table_size=1M
+#max_heap_table_size=32M
+#thread_cache_size=16
+#thread_stack=65536
+# Try number of CPU's*2
+#thread_concurrency=8
+#wait_timeout=28800
+#query_cache_size=8M
+#query_cache_limit=1M
+
+# Fulltext search options
+#ft_min_word_len=2
+
+#
+# MyISAM tables options
+#
+
+# Don't flush key buffers between writes for any MyISAM
+# set this if you have dedicated slave server where writes aren't important
+#delay-key-write-for-all-tables
+
+# Repair automatically on open if the table wasn't closed properly.
+myisam-recover
+#
+#myisam_sort_buffer_size=4M
+
+
+# To completely disable InnoDB, use this option
+# this makes all innodb options being unknown options (including skip-innodb)
+# @deprecated
+#ignore-builtin-innodb
+
+#
+# InnoDB tables options (see MySQL manual)
+#
+#skip-innodb
+
+# http://stackoverflow.com/questions/2646373/mysql-data-file-wont-shrink
+# http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
+#innodb_file_per_table
+
+# these are actual defaults (as of 5.0.26)
+innodb_data_home_dir = @clusterdir@/mysqldb/db
+innodb_data_file_path = ibdata1:10M:autoextend
+innodb_mirrored_log_groups=1
+innodb_log_group_home_dir = @clusterdir@/mysqldb/db
+innodb_log_files_in_group=2
+innodb_log_file_size=5M
+innodb_log_buffer_size=1M
+
+#innodb_flush_log_at_trx_commit=1
+#innodb_log_arch_dir = @clusterdir@/innodb/log
+#innodb_log_archive=0
+#innodb_buffer_pool_size=80M
+#innodb_additional_mem_pool_size=10M
+#innodb_file_io_threads=4
+#innodb_lock_wait_timeout=50
+
+# used for logs rotation
+[mysqladmin]
+user = mysql_sysadmin
+password =
+
+# used by initscript to fetch slave status
+[mysql]
+user = mysql
+password =
--- /dev/null
+--- ./scripts/mysqlhotcopy.sh~ 2013-03-19 11:30:02.000000000 +0200
++++ ./scripts/mysqlhotcopy.sh 2013-05-10 00:42:25.986175909 +0300
+@@ -789,7 +789,7 @@
+
+ eval {
+ my ($file,$position) = get_row( $dbh, "show master status" );
+- die "master status is undefined" if !defined $file || !defined $position;
++ warn "master status is undefined" if !defined $file || !defined $position;
+
+ my $row_hash = get_row_hash( $dbh, "show slave status" );
+ my ($master_host, $log_file, $log_pos );