-diff -ur percona-server-5.7.35-38.orig/storage/sphinx/ha_sphinx.cc percona-server-5.7.35-38/storage/sphinx/ha_sphinx.cc
---- percona-server-5.7.35-38.orig/storage/sphinx/ha_sphinx.cc 2021-11-24 19:47:23.900607509 +0100
-+++ percona-server-5.7.35-38/storage/sphinx/ha_sphinx.cc 2021-11-24 19:47:54.875680910 +0100
+From d4273a352d22e8c5e924bc4fd094fc7d9f8e047f Mon Sep 17 00:00:00 2001
+From: riden <denis.doronin@gmail.com>
+Date: Thu, 26 Nov 2015 03:51:40 +0200
+Subject: [PATCH] MySQLSE MySQL 5.7 support
+
+---
+ mysqlse/ha_sphinx.cc | 66 ++++++++++++++++++++++++++++++++++++++-----------
+ mysqlse/snippets_udf.cc | 22 +++++++++++++----
+ 2 files changed, 68 insertions(+), 20 deletions(-)
+
+diff --git a/storage/sphinx/ha_sphinx.cc b/storage/sphinx/ha_sphinx.cc
+index 8eabe87..e6a49a8 100644
+--- a/storage/sphinx/ha_sphinx.cc
++++ b/storage/sphinx/ha_sphinx.cc
@@ -34,13 +34,37 @@
#include "../mysql_priv.h"
#endif
-+#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID>=50709
++#if MYSQL_VERSION_ID>=50709
+#include "item_timefunc.h"
+#define sphinx_append push_back
+#define sphinx_array std::vector
#ifndef __WIN__
// UNIX-specific
- #include <my_net.h>
-+ #if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID>=50709
++ #if MYSQL_VERSION_ID>=50709
+ #include <arpa/inet.h>
+ #else
+ #include <my_net.h>
#include <netdb.h>
#include <sys/un.h>
-@@ -286,6 +310,12 @@
+@@ -286,6 +310,12 @@ inline void SPH_DEBUG ( const char *, ... ) {}
#define SafeDelete(_arg) { if ( _arg ) delete ( _arg ); (_arg) = NULL; }
#define SafeDeleteArray(_arg) { if ( _arg ) delete [] ( _arg ); (_arg) = NULL; }
-+#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID>=50709
++#if MYSQL_VERSION_ID>=50709
+#ifdef __WIN__
+typedef native_mutex_t pthread_mutex_t;
+#endif
//////////////////////////////////////////////////////////////////////////////
/// per-table structure that will be shared among all open Sphinx SE handlers
-@@ -602,10 +632,10 @@
+@@ -602,10 +632,10 @@ struct CSphSEQuery
};
char * m_sName; ///< points to query buffer
int m_iType;
public:
char m_sParseError[256];
-@@ -634,10 +664,10 @@
- void SendString ( const char * v ) { int iLen = strlen(v); SendDword(iLen); SendBytes ( v, iLen ); }
- void SendFloat ( float v ) { SendDword ( sphF2DW(v) ); }
- };
--
-+#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION
- template int CSphSEQuery::ParseArray<uint32> ( uint32 **, const char * );
- template int CSphSEQuery::ParseArray<longlong> ( longlong **, const char * );
--
-+#endif
- //////////////////////////////////////////////////////////////////////////////
-
- #if MYSQL_VERSION_ID>50100
-@@ -733,13 +763,21 @@
+@@ -733,9 +763,13 @@ static int sphinx_init_func ( void * p )
{
sphinx_init = 1;
void ( pthread_mutex_init ( &sphinx_mutex, MY_MUTEX_INIT_FAST ) );
-+ #if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 50709
++ #if MYSQL_VERSION_ID >= 50709
+ sphinx_hash_init ( &sphinx_open_tables, system_charset_info, 32, 0, 0,
+ sphinx_get_key, 0, 0, 0 );
+ #else
#if MYSQL_VERSION_ID > 50100
handlerton * hton = (handlerton*) p;
hton->state = SHOW_OPTION_YES;
-+ #if !defined(MARIADB_BASE_VERSION)
- hton->db_type = DB_TYPE_FIRST_DYNAMIC;
-+ #else
-+ hton->db_type = DB_TYPE_AUTOASSIGN;
-+ #endif
- hton->create = sphinx_create_handler;
- hton->close_connection = sphinx_close_connection;
- hton->show_status = sphinx_show_status;
-@@ -855,10 +893,15 @@
- SPH_RET(TRUE);
- }
- CSphTLS * pTls = (CSphTLS*) thd->ha_data[sphinx_hton.slot];
--
-+ #ifndef MARIADB_BASE_VERSION
- field_list.push_back ( new Item_empty_string ( "Type", 10 ) );
- field_list.push_back ( new Item_empty_string ( "Name", FN_REFLEN ) );
- field_list.push_back ( new Item_empty_string ( "Status", 10 ) );
-+ #else
-+ field_list.push_back ( new Item_empty_string ( thd, "Type", 10 ) );
-+ field_list.push_back ( new Item_empty_string ( thd, "Name", FN_REFLEN ) );
-+ field_list.push_back ( new Item_empty_string ( thd, "Status", 10 ) );
-+ #endif
- if ( protocol->send_fields ( &field_list, Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF ) )
- SPH_RET(TRUE);
-
-@@ -1321,7 +1364,7 @@
+@@ -1321,7 +1355,7 @@ CSphSEQuery::~CSphSEQuery ()
SafeDeleteArray ( m_sQueryBuffer );
SafeDeleteArray ( m_pWeights );
SafeDeleteArray ( m_pBuf );
SafeDelete ( m_dOverrides.at(i) );
SPH_VOID_RET();
}
-@@ -1412,6 +1455,15 @@
- return c=='@';
- }
-
-+static bool myisjson ( char c )
-+{
-+ return
-+ c=='.' ||
-+ c=='[' ||
-+ c==']';
-+}
-+
-+
-
- bool CSphSEQuery::ParseField ( char * sField )
- {
-@@ -1623,7 +1675,7 @@
- break;
-
- tFilter.m_sAttrName = sValue;
-- while ( (*sValue) && ( myisattr(*sValue) || myismagic(*sValue) ) )
-+ while ( (*sValue) && ( myisattr(*sValue) || myismagic(*sValue) ) || myisjson(*sValue) )
- sValue++;
- if ( !*sValue )
- break;
-@@ -1789,7 +1841,7 @@
+@@ -1789,7 +1823,7 @@ bool CSphSEQuery::ParseField ( char * sField )
pOverride = new CSphSEQuery::Override_t;
pOverride->m_sName = chop(sName);
pOverride->m_iType = iType;
}
ulonglong uId = strtoull ( sId, NULL, 10 );
-@@ -1801,8 +1853,8 @@
+@@ -1801,8 +1835,8 @@ bool CSphSEQuery::ParseField ( char * sField )
else
tValue.m_uValue = (uint32)strtoul ( sValue, NULL, 10 );
}
if ( !pOverride )
-@@ -1906,11 +1958,11 @@
+@@ -1906,11 +1940,11 @@ int CSphSEQuery::BuildRequest ( char ** ppBuffer )
iReqSize += 8 + strlen(m_sFieldWeight[i] );
// overrides
iReqSize += 4;
}
// select
iReqSize += 4;
-@@ -2012,14 +2064,14 @@
+@@ -2012,14 +2046,14 @@ int CSphSEQuery::BuildRequest ( char ** ppBuffer )
SendString ( m_sComment );
// overrides
{
SendUint64 ( pOverride->m_dIds.at(j) );
if ( pOverride->m_iType==SPH_ATTR_FLOAT )
-@@ -2045,9 +2097,9 @@
- //////////////////////////////////////////////////////////////////////////////
- // SPHINX HANDLER
- //////////////////////////////////////////////////////////////////////////////
--
-+#ifndef MARIADB_BASE_VERSION
- static const char * ha_sphinx_exts[] = { NullS };
--
-+#endif
-
- #if MYSQL_VERSION_ID<50100
- ha_sphinx::ha_sphinx ( TABLE_ARG * table )
-@@ -2073,8 +2125,10 @@
+@@ -2073,8 +2107,10 @@ ha_sphinx::ha_sphinx ( handlerton * hton, TABLE_ARG * table )
, m_dUnboundFields ( NULL )
{
SPH_ENTER_METHOD();
SPH_VOID_RET();
}
-@@ -2082,11 +2136,24 @@
- // If frm_error() is called then we will use this to to find out what file extentions
- // exist for the storage engine. This is also used by the default rename_table and
- // delete_table method in handler.cc.
-+#ifndef MARIADB_BASE_VERSION
- const char ** ha_sphinx::bas_ext() const
- {
- return ha_sphinx_exts;
- }
--
-+#else
-+ha_sphinx::~ha_sphinx()
-+{
-+ SafeDeleteArray ( m_dAttrs );
-+ SafeDeleteArray ( m_dUnboundFields );
-+ if ( m_dFields )
-+ {
-+ for (uint32 i=0; i< m_iFields; i++ )
-+ SafeDeleteArray ( m_dFields[i] );
-+ delete [] m_dFields;
-+ }
-+}
-+#endif
-
- // Used for opening tables. The name will be the name of the file.
- // A table is opened when it needs to be opened. For instance
-@@ -2349,11 +2416,19 @@
- sQuery.append ( "''" );
-
- } else
-- {
-+ {
-+ #if MYSQL_VERSION_ID>=100000
-+ THD *thd= ha_thd();
-+ #endif
- if ( (*ppField)->type()==MYSQL_TYPE_TIMESTAMP )
- {
-- Item_field * pWrap = new Item_field ( *ppField ); // autofreed by query arena, I assume
-- Item_func_unix_timestamp * pConv = new Item_func_unix_timestamp ( pWrap );
-+ #if MYSQL_VERSION_ID>=100000
-+ Item_field * pWrap = new (thd->mem_root) Item_field(thd, *ppField); // autofreed by query arena, I assume
-+ Item_func_unix_timestamp * pConv = new (thd->mem_root) Item_func_unix_timestamp(thd, pWrap);
-+ #else
-+ Item_field * pWrap = new Item_field ( *ppField ); // autofreed by query arena, I assume
-+ Item_func_unix_timestamp * pConv = new Item_func_unix_timestamp ( pWrap );
-+ #endif
- pConv->quick_fix_field();
- unsigned int uTs = (unsigned int) pConv->val_int();
+diff --git a/storage/sphinx/snippets_udf.cc b/storage/sphinx/snippets_udf.cc
+index d0899e8..e9f7bc0 100644
+--- a/storage/sphinx/snippets_udf.cc
++++ b/storage/sphinx/snippets_udf.cc
+@@ -17,13 +17,16 @@
+ #include <string.h>
+ #include <assert.h>
-@@ -2390,7 +2465,10 @@
+-#ifndef __WIN__
++#include <mysql_version.h>
++
++#ifndef _WIN32
++#if MYSQL_VERSION_ID>=50709
++#include <arpa/inet.h>
++#endif
+ #include <sys/un.h>
+ #include <netdb.h>
+ #endif
- unsigned int uTimeout = 1;
- mysql_options ( pConn, MYSQL_OPT_CONNECT_TIMEOUT, (const char*)&uTimeout );
+-#include <mysql_version.h>
-
-+ #ifdef MARIADB_BASE_VERSION
-+ my_bool my_true= 1;
-+ mysql_options(pConn, MYSQL_OPT_USE_THREAD_SPECIFIC_MEMORY, (char*) &my_true);
-+ #endif
- if ( !mysql_real_connect ( pConn, m_pShare->m_sHost, "root", "", "", m_pShare->m_iPort, m_pShare->m_sSocket, 0 ) )
- SPH_RET ( HandleMysqlError ( pConn, ER_CONNECT_TO_FOREIGN_DATA_SOURCE ) );
-
-@@ -2449,6 +2527,10 @@
-
- unsigned int uTimeout = 1;
- mysql_options ( pConn, MYSQL_OPT_CONNECT_TIMEOUT, (const char*)&uTimeout );
-+ #ifdef MARIADB_BASE_VERSION
-+ my_bool my_true= 1;
-+ mysql_options(pConn, MYSQL_OPT_USE_THREAD_SPECIFIC_MEMORY, (char*) &my_true);
-+ #endif
-
- if ( !mysql_real_connect ( pConn, m_pShare->m_sHost, "root", "", "", m_pShare->m_iPort, m_pShare->m_sSocket, 0 ) )
- SPH_RET ( HandleMysqlError ( pConn, ER_CONNECT_TO_FOREIGN_DATA_SOURCE ) );
-@@ -2756,11 +2838,19 @@
- break;
-
- // copy the query, and let know that we intercepted this condition
-- Item_string * pString = (Item_string *) args[1];
-- pTable->m_bQuery = true;
-+ #if MYSQL_VERSION_ID>=100000
-+ String *pString= args[1]->val_str(NULL);
-+ pTable->m_bQuery = true;
-+ strncpy ( pTable->m_sQuery, pString->c_ptr(), sizeof(pTable->m_sQuery) );
-+ pTable->m_sQuery[sizeof(pTable->m_sQuery)-1] = '\0';
-+ pTable->m_pQueryCharset = pString->charset();
-+ #else
-+ Item_string * pString = (Item_string *) args[1];
-+ pTable->m_bQuery = true;
- strncpy ( pTable->m_sQuery, pString->str_value.c_ptr(), sizeof(pTable->m_sQuery) );
- pTable->m_sQuery[sizeof(pTable->m_sQuery)-1] = '\0';
- pTable->m_pQueryCharset = pString->str_value.charset();
-+ #endif
-
- } else
- {
-@@ -3540,7 +3630,7 @@
+ #if MYSQL_VERSION_ID>=50515
+ #include "sql_class.h"
+ #include "sql_array.h"
+@@ -34,6 +37,13 @@
+ #include "../mysql_priv.h"
#endif
- out->type = SHOW_CHAR;
-- out->value = "";
-+ out->value = "";
- return 0;
- }
++#ifdef _WIN32
++#if MYSQL_VERSION_ID>=50709
++#define in_addr_t uint32
++#include <winsock2.h>
++#endif
++#endif
++
+ #include <mysys_err.h>
+ #include <my_sys.h>
-@@ -3673,7 +3763,25 @@
- {0, 0, (enum_mysql_show_type)0}
- };
+@@ -90,7 +100,9 @@ void sphUnalignedWrite ( void * pPtr, const T & tVal )
--
-+#ifdef MARIADB_BASE_VERSION
-+maria_declare_plugin(sphinx)
-+{
-+ MYSQL_STORAGE_ENGINE_PLUGIN,
-+ &sphinx_storage_engine,
-+ sphinx_hton_name,
-+ "Sphinx developers",
-+ sphinx_hton_comment,
-+ PLUGIN_LICENSE_GPL,
-+ sphinx_init_func, // Plugin Init
-+ sphinx_done_func, // Plugin Deinit
-+ 0x0202, // 2.2
-+ sphinx_status_vars,
-+ NULL,
-+ SPHINXSE_VERSION, // string version
-+MariaDB_PLUGIN_MATURITY_GAMMA
-+}
-+maria_declare_plugin_end;
-+#else
- mysql_declare_plugin(sphinx)
- {
- MYSQL_STORAGE_ENGINE_PLUGIN,
-@@ -3690,7 +3798,7 @@
- NULL
- }
- mysql_declare_plugin_end;
--
-+#endif
- #endif // >50100
+ #define Min(a,b) ((a)<(b)?(a):(b))
- //
-diff -ur percona-server-5.7.35-38.orig/storage/sphinx/ha_sphinx.h percona-server-5.7.35-38/storage/sphinx/ha_sphinx.h
---- percona-server-5.7.35-38.orig/storage/sphinx/ha_sphinx.h 2021-11-24 19:47:23.900607509 +0100
-+++ percona-server-5.7.35-38/storage/sphinx/ha_sphinx.h 2021-11-24 19:47:55.056681337 +0100
-@@ -53,14 +53,24 @@
- #else
- ha_sphinx ( handlerton * hton, TABLE_ARG * table_arg );
- #endif
-- ~ha_sphinx () {}
-+#ifndef MARIADB_BASE_VERSION
-+ ~ha_sphinx (){}
-+#else
-+ ~ha_sphinx ();
++#if !defined(_WIN32)
+ typedef unsigned int DWORD;
+#endif
- const char * table_type () const { return "SPHINX"; } ///< SE name for display purposes
- const char * index_type ( uint ) { return "HASH"; } ///< index type name for display purposes
-- const char ** bas_ext () const; ///< my file extensions
--
-+ #ifndef MARIADB_BASE_VERSION
-+ const char ** bas_ext () const;
-+ #endif
- #if MYSQL_VERSION_ID>50100
-- ulonglong table_flags () const { return HA_CAN_INDEX_BLOBS; } ///< bitmap of implemented flags (see handler.h for more info)
-+ #ifdef MARIADB_BASE_VERSION
-+ ulonglong table_flags () const { return HA_CAN_INDEX_BLOBS |
-+ HA_CAN_TABLE_CONDITION_PUSHDOWN; } ///< bitmap of implemented flags (see handler.h for more info)
-+ #else
-+ ulonglong table_flags () const { return HA_CAN_INDEX_BLOBS; }
-+ #endif
- #else
- ulong table_flags () const { return HA_CAN_INDEX_BLOBS; } ///< bitmap of implemented flags (see handler.h for more info)
- #endif
-@@ -77,8 +87,12 @@
- #else
- virtual double scan_time () { return (double)( records+deleted )/20.0 + 10; } ///< called in test_quick_select to determine if indexes should be used
- #endif
--
-- virtual double read_time ( ha_rows rows ) { return (double)rows/20.0 + 1; } ///< index read time estimate
-+ #ifdef MARIADB_BASE_VERSION
-+ virtual double read_time(uint index, uint ranges, ha_rows rows)
-+ { return ranges + (double)rows/20.0 + 1; } ///< index read time estimate
-+ #else
-+ virtual double read_time ( ha_rows rows ) { return (double)rows/20.0 + 1; }
-+ #endif
+ inline DWORD sphF2DW ( float f ) { union { float f; uint32 d; } u; u.f = f; return u.d; }
- public:
- int open ( const char * name, int mode, uint test_if_locked );
-diff -ur percona-server-5.7.35-38.orig/storage/sphinx/snippets_udf.cc percona-server-5.7.35-38/storage/sphinx/snippets_udf.cc
---- percona-server-5.7.35-38.orig/storage/sphinx/snippets_udf.cc 2021-11-24 19:47:23.900607509 +0100
-+++ percona-server-5.7.35-38/storage/sphinx/snippets_udf.cc 2021-11-24 19:47:55.056681337 +0100
-@@ -34,6 +34,9 @@
- #include "../mysql_priv.h"
+@@ -359,7 +371,7 @@ bool CSphUrl::Parse ( const char * sUrl, int iLen )
+ int CSphUrl::Connect()
+ {
+ struct sockaddr_in sin;
+-#ifndef __WIN__
++#ifndef _WIN32
+ struct sockaddr_un saun;
#endif
-+#if !defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID>=50709
-+ #include <arpa/inet.h>
-+#endif
- #include <mysys_err.h>
- #include <my_sys.h>
-
+@@ -426,7 +438,7 @@ int CSphUrl::Connect()
+ }
+ } else
+ {
+-#ifndef __WIN__
++#ifndef _WIN32
+ iDomain = AF_UNIX;
+ iSockaddrSize = sizeof(saun);
+ pSockaddr = (struct sockaddr *) &saun;
# - 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)
-# - unpackaged files:
-# /usr/COPYING.AGPLv3
-# /usr/COPYING.GPLv2
-# /usr/PATENTS
-# /usr/README.md
-# /usr/bin/mysqlxtest
-# /usr/include/backup.h
-# NOTE:
-# - mysql 'root' user will be 'root' not 'mysql' with 5.7 package
-# this is to make pld consistent what the rest of the world uses.
#
# 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_with systemtap # systemtap/dtrace probes
%bcond_without tcpd # libwrap (tcp_wrappers) support
%bcond_with sphinx # Sphinx storage engine support
-%bcond_with tokudb # TokuDB
-%bcond_with rocksdb # RocksDB
# mysql needs boost 1.59.0 and doesn't support newer/older boost versions
-%bcond_with system_boost # Use system boost package
-%bcond_with tests # FIXME: don't run correctly
+%bcond_with system_boost
+%bcond_with system_protobuf # mysql doesn't build with newer (3.12+) protobuf
+%bcond_with tests # run test suite
%bcond_with ndb # NDB is now a separate product, this here is broken, so disable it
-%bcond_with coredumper # coredumper support
+%bcond_without ldap # LDAP auth support
-# tokudb is only supported on x86_64
-%ifnarch %{x8664}
-%undefine with_rocksdb
-%undefine with_tokudb
-%endif
-
-%define rel 1
-%define percona_rel 46
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(uk.UTF-8): MySQL - швидкий SQL-сервер
Summary(zh_CN.UTF-8): MySQL数据库服务器
Name: mysql
-Version: 5.7.42
-Release: %{percona_rel}.%{rel}
-License: GPL + MySQL FLOSS Exception
+Version: 5.7.43
+Release: 1
+License: GPL v2 + MySQL FOSS License Exception
Group: Applications/Databases
-Source0: https://www.percona.com/downloads/Percona-Server-5.7/LATEST/source/tarball/percona-server-%{version}-%{percona_rel}.tar.gz
-# Source0-md5: 6f937a7fe774edad0213a75e34df19d5
+#Source0Download: https://dev.mysql.com/downloads/mysql/5.7.html#downloads
+Source0: http://cdn.mysql.com/Downloads/MySQL-5.7/%{name}-%{version}.tar.gz
+# Source0-md5: a06d002cebf649082f0f3aaad4b6b797
Source100: http://www.sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz
# Source100-md5: 5cac34f3d78a9d612ca4301abfcbd666
%if %{without system_boost}
-Source101: http://downloads.sourceforge.net/boost/boost_1_59_0.tar.bz2
+Source101: http://downloads.sourceforge.net/boost/boost_1_59_0.tar.bz2
# Source101-md5: 6aa9a5c6a4ca1016edd0ed1178e3cb87
%endif
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
-Source4: mysqld.conf
+Source4: %{name}d.conf
Source5: %{name}-clusters.conf
Source7: %{name}-ndb.init
Source8: %{name}-ndb.sysconfig
Source12: %{name}-ndb-cpc.sysconfig
Source13: %{name}-client.conf
Source14: my.cnf
-Patch0: mysql-opt.patch
-Patch1: mysql-versioning.patch
-Patch2: mysql-protobuf.patch
-Patch3: build.patch
-Patch4: mysql-sphinx.patch
-Patch5: mysql-5.7-sphinx.patch
-Patch6: mysql-chain-certs.patch
-Patch7: mysql-dubious-exports.patch
-Patch8: mysql-cmake.patch
-URL: https://www.percona.com/software/mysql-database/percona-server
-BuildRequires: bison >= 1.875
-BuildRequires: cmake >= 2.8.2
-BuildRequires: curl-devel
-BuildRequires: readline-devel >= 6.2
-BuildRequires: libstdc++-devel >= 5:4.0
+Patch0: %{name}-opt.patch
+Patch1: ssl-errors.patch
+Patch2: %{name}-protobuf.patch
+Patch3: %{name}-5.7-sphinx.patch
+Patch4: %{name}-sphinx.patch
+Patch5: %{name}-chain-certs.patch
+Patch6: %{name}-cmake.patch
+Patch7: %{name}-readline.patch
+Patch8: %{name}dumpslow-clusters.patch
+URL: http://www.mysql.com/products/community/
BuildRequires: automake
-%{?with_system_boost:BuildRequires: boost-devel = 1.59.0}
+BuildRequires: bison >= 1.875
+%{?with_system_boost:BuildRequires: boost-devel >= 1.59.0}
+BuildRequires: cmake >= 2.8.9
+BuildRequires: libaio-devel
+BuildRequires: libatomic-devel
+BuildRequires: libevent-devel
BuildRequires: libhsclient-devel
+BuildRequires: libstdc++-devel >= 5:4.0
+BuildRequires: libtirpc-devel >= 1.0.0
%{?with_tcpd:BuildRequires: libwrap-devel}
-BuildRequires: lz4-devel >= 1:1.9.3
+BuildRequires: lz4-devel
BuildRequires: mecab-devel
BuildRequires: ncurses-devel >= 4.2
%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
+%{?with_ldap:BuildRequires: openldap-devel}
BuildRequires: pam-devel
-%{?with_autodeps:BuildRequires: perl-DBI}
BuildRequires: perl-devel >= 1:5.6.1
-BuildRequires: protobuf-devel
+%{?with_system_protobuf:BuildRequires: protobuf-devel >= 2.5}
BuildRequires: python3-modules
+BuildRequires: readline-devel >= 6.2
BuildRequires: rpcsvc-proto
+BuildRequires: rpm-build >= 4.6
BuildRequires: rpm-perlprov >= 4.1-13
-BuildRequires: rpmbuild(macros) >= 1.597
+BuildRequires: rpmbuild(macros) >= 1.605
BuildRequires: sed >= 4.0
%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
-BuildRequires: zlib-devel
+BuildRequires: zlib-devel >= 1.2.12
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires(postun): /usr/sbin/userdel
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
-Requires(post): sed >= 4.0
Requires: %{name}-charsets = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Requires: /usr/bin/setsid
Requires: rc-scripts >= 0.2.0
+Requires: sed >= 4.0
Suggests: mysql-client
%{?with_tcpd:Suggests: tcp_wrappers}
Suggests: vim-syntax-mycnf
%define _libexecdir %{_sbindir}
%define _localstatedir /var/lib/mysql
-%define _mysqlhome /home/services/%{name}
+%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.
+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.
+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.
+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
+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
+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.
+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 Percona
-Server é 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
+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) сервер базы
-даннÑ\8bÑ\85. MySQL бÑ\8bла напиÑ\81ана Michael'ом (monty) Widenius'ом.
-См. Ñ\84айл CREDITS в диÑ\81Ñ\82Ñ\80ибÑ\83Ñ\82иве на пÑ\80едмеÑ\82 дÑ\80Ñ\83гиÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ников пÑ\80оекÑ\82а и
-пÑ\80оÑ\87ей инÑ\84оÑ\80маÑ\86ии о MySQL.
+MySQL - это SQL (Structured Query Language) сервер базы данных. MySQL
+бÑ\8bла напиÑ\81ана Michael'ом (monty) Widenius'ом. См. Ñ\84айл CREDITS в
+диÑ\81Ñ\82Ñ\80ибÑ\83Ñ\82иве на пÑ\80едмеÑ\82 дÑ\80Ñ\83гиÑ\85 Ñ\83Ñ\87аÑ\81Ñ\82ников пÑ\80оекÑ\82а и пÑ\80оÑ\87ей инÑ\84оÑ\80маÑ\86ии
+о MySQL.
%description -l uk.UTF-8
-MySQL - це SQL (Structured Query Language) сервер бази даних.
-MySQL було написано Michael'ом (monty) Widenius'ом. Див. файл
-CREDITS в дистрибутиві для інформації про інших учасників проекту та
-Ñ\96нÑ\88оÑ\97 Ñ\96нÑ\84оÑ\80маÑ\86Ñ\96Ñ\97.
+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
+BuildArch: noarch
%description charsets
This package contains character sets definitions needed by both client
Requires: %{name}-libs = %{version}-%{release}
%description extras
-MySQL additional utilities except Perl scripts (they may be
-found in %{name}-extras-perl package).
+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).
+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: Shared libraries for MySQL
Summary(pl.UTF-8): Biblioteki współdzielone MySQL
Group: Libraries
-Obsoletes: libmysql10
+Requires: zlib >= 1.2.12
+Obsoletes: libmysql10 < 4
Obsoletes: mysql-doc < 4.1.12
%description libs
Summary(uk.UTF-8): MySQL - хедери та бібліотеки програміста
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
+Requires: libatomic-devel
%{?with_ssl:Requires: openssl-devel}
-Requires: zlib-devel
+Requires: zlib-devel >= 1.2.12
Obsoletes: MySQL-devel
-Obsoletes: libmysql10-devel
+Obsoletes: libmysql10-devel < 4
Obsoletes: webscalesql-devel
%description devel
%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.
+bibliotecas necessárias para desenvolver aplicações clientes do MySQL.
%description devel -l ru.UTF-8
Этот пакет содержит хедеры и библиотеки разработчика, необходимые для
Group: Applications/Databases
Requires: %{name} = %{version}-%{release}
Requires: %{name}-client
-Requires: perl(DBD::mysql)
+Requires: perl-DBD-mysql
Obsoletes: MySQL-bench
%description bench
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.
+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
-Цей пакет містить скрипти та дані для оцінки продуктивності Percona
-Server.
+Цей пакет містить скрипти та дані для оцінки продуктивності MySQL.
%package doc
Summary: MySQL manual
Requires: %{name}-libs = %{version}-%{release}
%description ndb
-This package contains the standard MySQL NDB Storage Engine
-Daemon.
+This package contains the standard MySQL NDB Storage Engine Daemon.
%description ndb -l pl.UTF-8
Ten pakiet zawiera standardowego demona silnika przechowywania danych
Requires: %{name}-libs = %{version}-%{release}
%description ndb-mgm
-This package contains the standard MySQL NDB Management
-Daemon.
+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.
+Ten pakiet zawiera standardowego demona zarządzającego MySQL NDB.
%package ndb-cpc
Summary: MySQL - NDB CPC Daemon
Ten pakiet zawiera standardowego demona MySQL NDB CPC.
%prep
-%setup -q -n percona-server-%{version}-%{percona_rel} %{?with_sphinx:-a100} %{!?with_system_boost:-a101}
-
-# we want to use old, mysql compatible client library name
-find . -name CMakeLists.txt -exec sed -i -e 's#perconaserverclient#mysqlclient#g' "{}" ";"
-sed -i -e 's#perconaserverclient#mysqlclient#g' libmysql/libmysql.{ver.in,map} scripts/mysql_config.*
+%setup -q %{?with_sphinx:-a100} %{!?with_system_boost:-a101}
%patch0 -p1
%patch1 -p1
%patch2 -p1
-%patch3 -p1
%if %{with sphinx}
# http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
%{__mv} sphinx-*/mysqlse storage/sphinx
+%patch3 -p1
%patch4 -p1
-%patch5 -p1
%endif
+# really not fixed? verify
+%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
[ -f sql/sql_yacc.cc ] && %{__rm} sql/sql_yacc.cc
[ -f sql/sql_yacc.h ] && %{__rm} sql/sql_yacc.h
-# map has more sane versioning that default "global everything" in ver.in
-#cp -p libmysql/libmysql.map libmysql/libmysql.ver.in
+# ensure sytstem lib
+# need to keep xxhash.[ch]
+%{__rm} -rv extra/lz4/lz4*/lib/lz4*
%build
install -d build
# (it defaults to first cluster but user may change it to whatever
# cluster it wants)
-%if "%{cc_version}" >= "7.0"
-FALLTHROUGH_OPT="-Wimplicit-fallthrough=0"
-%else
-FALLTHROUGH_OPT=
-%endif
-
CPPFLAGS="%{rpmcppflags}" \
%cmake .. \
-DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
- -DCMAKE_C_FLAGS_DEBUG="-fno-omit-frame-pointer -fno-strict-aliasing $FALLTHROUGH_OPT" \
- -DCMAKE_CXX_FLAGS_DEBUG="-fno-omit-frame-pointer -fno-strict-aliasing $FALLTHROUGH_OPT" \
- -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing $FALLTHROUGH_OPT -Wno-shadow" \
- -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing $FALLTHROUGH_OPT -Wno-shadow" \
- -DCOMPILATION_COMMENT="TLD Linux MySQL RPM" \
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{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=ON} \
-DFEATURE_SET="community" \
-DINSTALL_SQLBENCHDIR=%{_datadir} \
-DINSTALL_SUPPORTFILESDIR=share/%{name}-support \
-DINSTALL_MYSQLSHAREDIR=share/%{name} \
- -DINSTALL_SECURE_FILE_PRIVDIR="" \
- -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
+ -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
%{?debug:-DWITH_DEBUG=ON} \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
- -DWITH_FAST_MUTEXES=ON \
-DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
- -DWITH_PAM=ON \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_PIC=ON \
- -DWITH_SCALABILITY_METRICS=ON \
+ -DWITH_LZ4=system \
+ -DWITH_LIBEVENT=system \
+ %{?with_system_protobuf:-DWITH_PROTOBUF=system} \
-DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
-DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
- -DWITH_COREDUMPER=%{?with_coredumper:ON}%{!?with_coredumper:OFF} \
- %{!?with_tokudb:-DWITHOUT_TOKUDB=ON} \
- %{!?with_rocksdb:-DWITHOUT_ROCKSDB=ON} \
-%if %{without system_boost}
%{!?with_system_boost:-DWITH_BOOST="$(pwd)/$(ls -1d ../boost_*)"} \
-%endif
- -DWITH_LIBEVENT=system \
- -DWITH_LZ4=system \
- -DWITH_MECAB=system \
- -DWITH_PROTOBUF=system \
- -DWITH_READLINE=system \
-DWITH_ZLIB=system \
+ -DWITH_EDITLINE=system \
+ -DWITH_MECAB=system \
-DTMPDIR=/var/tmp
%{__make}
-%if %{with tests}
-%{__make} test
-
-cd mysql-test
-
-MTR_BINDIR=$(pwd)/../build/ \
-%{__perl} ./mysql-test-run.pl \
- --force \
- --retry=0 \
- --ssl \
- --suite-timeout=720 \
- --testcase-timeout=30 \
- --mysqld=--binlog-format=mixed \
- --force-restart \
- --shutdown-timeout=60 \
- --max-test-fail=0 \
- --big-test \
- --skip-test-list=unstable-tests
-%endif
+%{?with_tests:%{__make} test}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,%{name},skel} \
- $RPM_BUILD_ROOT/var/{log/{archive,}/%{name},lib/mysql} \
+install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql,skel} \
+ $RPM_BUILD_ROOT/var/{log/{archive,}/mysql,lib/{mysql,mysql-files}} \
$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/%{name}
-cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
-cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+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
# NDB
%if %{with ndb}
-install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-ndb
-cp -a %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/%{name}-ndb
-install -p %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-ndb-mgm
-cp -a %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/%{name}-ndb-mgm
-install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}-ndb-cpc
-cp -a %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/%{name}-ndb-cpc
+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
sed -i -e 's,/usr//usr,%{_prefix},g' $RPM_BUILD_ROOT%{_bindir}/mysql_config
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}-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
+%{__mv} $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
+%{__mv} $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1
# not useful without -debug build
%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
%{?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
+%{__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}}/lz4_decompress
+%{__mv} $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/zlib_decompress
+%{__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%{_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%{_bindir}/{mysql_client_test,mysqlxtest}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/test_udf_services.so
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-test
# libmysqld examples
%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql{_client_test_embedded,_embedded,test_embedded}
# not needed
%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/daemon_example.ini
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/udf_example.so
-# not an .info file
-%{__rm} $RPM_BUILD_ROOT%{_infodir}/mysql.info
+# test plugins
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libtest*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/rewrite_example.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/test_security_context.so
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
-/sbin/chkconfig --add %{name}
-%service %{name} restart
+/sbin/chkconfig --add mysql
+%service mysql restart
%preun
if [ "$1" = "0" ]; then
- %service -q %{name} stop
- /sbin/chkconfig --del %{name}
+ %service -q mysql stop
+ /sbin/chkconfig --del mysql
fi
%postun
fi
%post ndb
-/sbin/chkconfig --add %{name}-ndb
-%service %{name}-ndb restart "%{name} NDB engine"
+/sbin/chkconfig --add mysql-ndb
+%service mysql-ndb restart "mysql NDB engine"
%preun ndb
if [ "$1" = "0" ]; then
- %service %{name}-ndb stop
- /sbin/chkconfig --del %{name}-ndb
+ %service mysql-ndb stop
+ /sbin/chkconfig --del mysql-ndb
fi
%post ndb-mgm
-/sbin/chkconfig --add %{name}-ndb-mgm
-%service %{name}-ndb-mgm restart "%{name} NDB management node"
+/sbin/chkconfig --add mysql-ndb-mgm
+%service mysql-ndb-mgm restart "mysql NDB management node"
%preun ndb-mgm
if [ "$1" = "0" ]; then
- %service %{name}-ndb-mgm stop
- /sbin/chkconfig --del %{name}-ndb-mgm
+ %service mysql-ndb-mgm stop
+ /sbin/chkconfig --del mysql-ndb-mgm
fi
%post ndb-cpc
-/sbin/chkconfig --add %{name}-ndb-cpc
-%service %{name}-ndb-cpc restart "mysql NDB CPC"
+/sbin/chkconfig --add mysql-ndb-cpc
+%service mysql-ndb-cpc restart "mysql NDB CPC"
%preun ndb-cpc
if [ "$1" = "0" ]; then
- %service %{name}-ndb-cpc stop
- /sbin/chkconfig --del %{name}-ndb-cpc
+ %service mysql-ndb-cpc stop
+ /sbin/chkconfig --del mysql-ndb-cpc
fi
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
+%triggerpostun -- mysql < 5.7.0
+# 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
+
+# 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
+#'
+
+# 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
+
+# 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
+
+# mysql < 5.7.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/^log-warnings *=/log-error-verbosity =/
+ s/^myisam-recover$/myisam-recover-options/
+ s/^innodb_mirrored_log_groups.*//
+ ' $config
+
+ socket=$(awk -F= '!/^#/ && $1 ~ /socket/{print $2}' $config | xargs)
+ echo "# mysql_upgrade ${socket:+--socket=$socket}"
+done
+) | %banner -e %{name}-5.7
+
%files
%defattr(644,root,root,755)
-%doc build-ps/rpm/*.cnf
%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) %{_bindir}/ps_mysqld_helper
-%attr(755,root,root) %{_bindir}/ps_tokudb_admin
-%attr(755,root,root) %{_bindir}/ps-admin
%attr(755,root,root) %{_sbindir}/innochecksum
+%attr(755,root,root) %{_sbindir}/lz4_decompress
%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}/mysql_upgrade
%attr(755,root,root) %{_sbindir}/mysqlcheck
%attr(755,root,root) %{_sbindir}/mysqld
+%attr(755,root,root) %{_sbindir}/zlib_decompress
+
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugin
%attr(755,root,root) %{_libdir}/%{name}/plugin/adt_null.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/audit_log.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_pam_compat.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_pam.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/auth.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/authentication_ldap_sasl_client.so
+%{?with_ldap:%attr(755,root,root) %{_libdir}/%{name}/plugin/authentication_ldap_sasl_client.so}
%attr(755,root,root) %{_libdir}/%{name}/plugin/connection_control.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/data_masking.ini
-%attr(755,root,root) %{_libdir}/%{name}/plugin/data_masking.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/dialog.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/group_replication.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/keyring_file.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/keyring_udf.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/keyring_vault.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/libpluginmecab.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libfnv1a_udf.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libfnv_udf.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libmurmur_udf.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_framework.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_services.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_services_threaded.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_session_detach.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_session_info.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_session_in_thd.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_2_sessions.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_all_col_types.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_cmds_1.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_commit.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_complex.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_errors.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_lock.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_processlist.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_replication.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_shutdown.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_sqlmode.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_stored_procedures_functions.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_sql_views_triggers.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_x_sessions_deinit.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/libtest_x_sessions_init.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/locking_service.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/mypluglib.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/mysql_no_login.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/query_response_time.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/replication_observers_example_plugin.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/rewrite_example.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/rewriter.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/scalability_metrics.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_master.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_slave.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/test_security_context.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/test_udf_services.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/validate_password.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/version_token.so
%if %{with sphinx}
%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
%endif
-%if %{with tokudb}
-%attr(755,root,root) %{_bindir}/tokuft_logprint
-%attr(755,root,root) %{_bindir}/tokuftdump
-%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_tokudb.so
-%attr(755,root,root) %{_libdir}/%{name}/plugin/tokudb_backup.so
-%attr(755,root,root) %{_libdir}/libHotBackup.so
-%endif
-%if %{with rocksdb}
-%attr(755,root,root) %{_bindir}/ldb
-%attr(755,root,root) %{_bindir}/mysql_ldb
-%attr(755,root,root) %{_bindir}/sst_dump
-%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_rocksdb.so
-%endif
-# for plugins
%{_mandir}/man1/innochecksum.1*
+%{_mandir}/man1/lz4_decompress.1*
%{_mandir}/man1/my_print_defaults.1*
%{_mandir}/man1/myisamchk.1*
%{_mandir}/man1/myisamlog.1*
%{_mandir}/man1/mysql_plugin.1*
%{_mandir}/man1/mysql_upgrade.1*
%{_mandir}/man1/mysqlcheck.1*
+%{_mandir}/man1/zlib_decompress.1*
%{_mandir}/man8/mysqld.8*
%if %{?debug:1}0
%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/%{name}
-%attr(750,mysql,mysql) %dir /var/log/archive/%{name}
-%attr(640,mysql,mysql) %ghost /var/log/%{name}/*
+# https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_secure-file-priv
+%attr(770,mysql,mysql) %dir /var/lib/mysql-files
+%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}/install_rewriter.sql
%{_datadir}/%{name}/mysql_security_commands.sql
%{_datadir}/%{name}/mysql_sys_schema.sql
-%{_datadir}/%{name}/mysql_system_tables.sql
%{_datadir}/%{name}/mysql_system_tables_data.sql
+%{_datadir}/%{name}/mysql_system_tables.sql
%{_datadir}/%{name}/mysql_test_data_timezone.sql
-%{_datadir}/%{name}/uninstall_rewriter.sql
%{_datadir}/%{name}/english
%{_datadir}/%{name}/dictionary.txt
%{_datadir}/%{name}/fill_help_tables.sql
%{_datadir}/%{name}/innodb_memcached_config.sql
+%{_datadir}/%{name}/install_rewriter.sql
+%{_datadir}/%{name}/uninstall_rewriter.sql
# Don't mark these with %%lang. These are used depending
# on database client settings.
%{_datadir}/%{name}/bulgarian
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/myisam_ftdump
%attr(755,root,root) %{_bindir}/mysql_install_db
+%attr(755,root,root) %{_bindir}/mysql_ssl_rsa_setup
%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}/resolveip
%{_mandir}/man1/myisam_ftdump.1*
%{_mandir}/man1/mysql_install_db.1*
+%{_mandir}/man1/mysql_ssl_rsa_setup.1*
%{_mandir}/man1/mysql_secure_installation.1*
%{_mandir}/man1/mysql_tzinfo_to_sql.1*
%{_mandir}/man1/perror.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}/lz4_decompress
+%attr(600,root,root) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.my.cnf
%attr(755,root,root) %{_bindir}/mysql
-%attr(755,root,root) %{_bindir}/mysql_config_editor
-%attr(755,root,root) %{_bindir}/mysql_ssl_rsa_setup
%attr(755,root,root) %{_bindir}/mysqladmin
%attr(755,root,root) %{_bindir}/mysqlbinlog
+%attr(755,root,root) %{_bindir}/mysql_config_editor
%attr(755,root,root) %{_bindir}/mysqldump
%attr(755,root,root) %{_bindir}/mysqlimport
%attr(755,root,root) %{_bindir}/mysqlpump
%attr(755,root,root) %{_bindir}/mysqlshow
-%attr(755,root,root) %{_bindir}/zlib_decompress
-%{_mandir}/man1/lz4_decompress.1*
%{_mandir}/man1/mysql.1*
-%{_mandir}/man1/mysql_config_editor.1*
-%{_mandir}/man1/mysql_ssl_rsa_setup.1*
%{_mandir}/man1/mysqladmin.1*
%{_mandir}/man1/mysqlbinlog.1*
+%{_mandir}/man1/mysql_config_editor.1*
%{_mandir}/man1/mysqldump.1*
%{_mandir}/man1/mysqlimport.1*
%{_mandir}/man1/mysqlpump.1*
%{_mandir}/man1/mysqlshow.1*
-%{_mandir}/man1/zlib_decompress.1*
%files libs
%defattr(644,root,root,755)
-%attr(751,root,root) %dir %{_sysconfdir}/%{name}
+%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.*.*.*
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/mysql_config
%attr(755,root,root) %{_libdir}/libmysqlclient.so
-%{_pkgconfigdir}/mysqlclient.pc
%if %{with ndb}
%attr(755,root,root) %{_libdir}/libndbclient.so
%endif
+%{_pkgconfigdir}/mysqlclient.pc
# static-only so far
%{_libdir}/libmysqld.a
%{_libdir}/libmysqlservices.a
%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*
+#%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/%{name}-ndb
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}-ndb
+%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-mgm
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/ndb_mgmd
-%attr(754,root,root) /etc/rc.d/init.d/%{name}-ndb-mgm
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}-ndb-mgm
+%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/%{name}-ndb-cpc
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
%{_mandir}/man1/ndb_cpcd.1*
%endif