]> TLD Linux GIT Repositories - packages/mysql.git/blobdiff - mysql.spec
- keep common dirs for mysqlrouter in mysql-common, fix /var/{lib,log} dirs
[packages/mysql.git] / mysql.spec
index a5e5251c79801c0ce692df4671accf2941aa947a..c71fd823203e9a95b020ae40548107d11a862e40 100644 (file)
@@ -1,30 +1,21 @@
-# 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_with    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    sphinx          # Sphinx storage engine support
+# mysql needs boost 1.77.0 and doesn't support newer/older boost versions
+%bcond_with    system_boost
+%bcond_with    tests           # run test suite
 %bcond_with    ndb             # NDB is now a separate product, this here is broken, so disable it
+%bcond_without ldap            # LDAP auth support (requires MIT Kerberos)
+
+%define mysqlversion 8.2
+%define mysqlpriority 82
 
-%define        percona_rel     62.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
@@ -33,61 +24,74 @@ 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.6.14
-Release:       0.1
-License:       GPL + MySQL FLOSS Exception
+Name:          mysql-%{mysqlversion}
+Version:       8.2.0
+Release:        1
+License:       GPL v2 + MySQL FOSS License Exception
 Group:         Applications/Databases
-Source0:       http://www.percona.com/redir/downloads/Percona-Server-5.6/LATEST/release-%{version}-%{percona_rel}/483/source/Percona-Server-%{version}-rel%{percona_rel}.tar.gz
-# Source0-md5: 2e6b2ce44173784bb8990813e536cf3c
-Source100:     http://www.sphinxsearch.com/files/sphinx-2.1.2-release.tar.gz
-# Source100-md5:       3e828fa58e2e6049f02aa6aef3009d48
-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
+Source0:       http://cdn.mysql.com/Downloads/MySQL-%{mysqlversion}/mysql-%{version}.tar.gz
+# Source0-md5: 9ddeecbdb046cd4a8a4340445206130d
+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_77_0.tar.bz2
+# Source101-md5:       09dc857466718f27237144c6f2432d86
+%endif
+Source1:       mysql.init
+Source2:       mysql.sysconfig
+Source3:       mysql.logrotate
+Source4:       mysqld.conf
+Source5:       mysql-clusters.conf
+Source7:       mysql-ndb.init
+Source8:       mysql-ndb.sysconfig
+Source9:       mysql-ndb-mgm.init
+Source10:      mysql-ndb-mgm.sysconfig
+Source11:      mysql-ndb-cpc.init
+Source12:      mysql-ndb-cpc.sysconfig
+Source13:      mysql-client.conf
 Source14:      my.cnf
-Patch1:                %{name}-versioning.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
-Patch22:       bug-66589.patch
+Patch0:                no_relative_paths.patch
+Patch1:                mysql-system-xxhash.patch
+Patch2:                zlib.patch
+
+Patch17:       mysql-5.7-sphinx.patch
+Patch18:       mysql-sphinx.patch
+
+Patch24:       mysql-cmake.patch
+Patch25:       mysql-readline.patch
+
 URL:           http://www.mysql.com/products/community/
 BuildRequires: bison >= 1.875
-BuildRequires: cmake >= 2.6
-BuildRequires: groff
-BuildRequires: libstdc++-devel >= 5:4.0
-BuildRequires: libtool
+%{?with_system_boost:BuildRequires:    boost-devel >= 1.77.0}
+BuildRequires: cmake >= 2.8.2
+%{?with_ldap:BuildRequires:    cyrus-sasl-devel}
+# for configure and tests
+%{?with_ldap:BuildRequires:    cyrus-sasl-scram}
+BuildRequires: libaio-devel
+BuildRequires: libevent-devel
+BuildRequires: libhsclient-devel
+BuildRequires: libstdc++-devel >= 5:7.1
 %{?with_tcpd:BuildRequires:    libwrap-devel}
+BuildRequires: lz4-devel
+BuildRequires: mecab-devel
 BuildRequires: ncurses-devel >= 4.2
-%{?with_ssl:BuildRequires:     openssl-devel >= 0.9.7d}
-%{?with_autodeps:BuildRequires:        perl-DBI}
+%{?with_ssl:BuildRequires:     openssl-devel >= 1.1.1}
+%{?with_ldap:BuildRequires:    openldap-devel}
+BuildRequires: pam-devel
 BuildRequires: perl-devel >= 1:5.6.1
-BuildRequires: readline-devel >= 4.2
+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: xxHash-devel
+BuildRequires: zlib-devel >= 1.2.12
+BuildRequires: zstd-devel
+Requires(post):        sed >= 4.0
 Requires(post,preun):  /sbin/chkconfig
 Requires(postun):      /usr/sbin/groupdel
 Requires(postun):      /usr/sbin/userdel
@@ -95,26 +99,31 @@ 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:      alternatives
 Requires:      %{name}-charsets = %{version}-%{release}
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 Requires:      /usr/bin/setsid
 Requires:      rc-scripts >= 0.2.0
-Suggests:      mysql-client
+Suggests:      %{name}-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
+Obsoletes:     MySQL < 3.22.27
+Obsoletes:     mysql-server < 4
 Conflicts:     logrotate < 3.8.0
-BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# "MySQL supports only 64-bit platforms."
+BuildArch:      %{x8664} %{arch64}
+BuildRoot:     %{tmpdir}/mysql-%{version}-root-%(id -u -n)
 
 %define                _libexecdir     %{_sbindir}
-%define                _localstatedir  /var/lib/mysql
-%define                _mysqlhome      /home/services/mysql
+%define                _localstatedir  /var/lib/%{name}
+
+%define                mysqldatadir    share/mysql/%{mysqlversion}
+%define                mysqllibdir     %{_lib}/mysql/%{mysqlversion}
 
 %description
 MySQL is a true multi-user, multi-threaded SQL (Structured Query
@@ -221,6 +230,8 @@ MySQL - це SQL (Structured Query Language) сервер бази даних. M
 Summary:       MySQL - character sets definitions
 Summary(pl.UTF-8):     MySQL - definicje kodowań znaków
 Group:         Applications/Databases
+Requires:      %{name}-dirs = %{version}-%{release}
+BuildArch:     noarch
 
 %description charsets
 This package contains character sets definitions needed by both client
@@ -230,37 +241,36 @@ and server.
 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
+%package -n mysql-common
+Summary:        Common MySQL files and directories
+Summary(pl.UTF-8):      MySQL - wspólne pliki i katalogi
+Group:          Applicataion/Databases
+
+%description -n mysql-common
+Common MySQL files and directories.
 
-%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.
+%description -n mysql-common -l pl.UTF-8
+MySQL - wspólne pliki i katalogi.
 
-See innobackup package to backup InnoDB tables.
+%package dirs
+Summary:        Common directories for MysSQL %{mysqlversion}
+Summary(pl.UTF-8):      Wspólne pliki i katalogi dla MySQL %{mysqlversion}
+Group:          Applicataion/Databases
+Requires:      mysql-common >= %{version}-%{release}
 
-%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.
+%description dirs
+Common directories for MysSQL %{mysqlversion}
 
-Narzędzie do tworzenia kopii tabel InnoDB znajduje się w pakiecie
-innobackup.
+%description dirs -l pl.UTF-8
+Wspólne pliki i katalogi dla MySQL %{mysqlversion}
 
 %package extras
 Summary:       MySQL additional utilities
 Summary(pl.UTF-8):     Dodatkowe narzędzia do MySQL
 Group:         Applications/Databases
+Requires:      alternatives
 Requires:      %{name}-client = %{version}-%{release}
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description extras
@@ -275,10 +285,9 @@ pakiecie %{name}-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:      alternatives
 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)
+Requires:      perl-DBD-mysql
 
 %description extras-perl
 MySQL additional utilities written in Perl.
@@ -293,9 +302,12 @@ Summary(pt.UTF-8): MySQL - Cliente
 Summary(ru.UTF-8):     MySQL клиент
 Summary(uk.UTF-8):     MySQL клієнт
 Group:         Applications/Databases
+Requires:      alternatives
 Requires:      %{name}-charsets = %{version}-%{release}
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
-Obsoletes:     MySQL-client
+Requires:      readline >= 6.2
+Obsoletes:     MySQL-client < 3.22.27
 
 %description client
 This package contains the standard MySQL clients.
@@ -319,7 +331,10 @@ Este pacote contém os clientes padrão para o MySQL.
 Summary:       Shared libraries for MySQL
 Summary(pl.UTF-8):     Biblioteki współdzielone MySQL
 Group:         Libraries
-Obsoletes:     libmysql10
+Requires:      %{name}-dirs = %{version}-%{release}
+Requires:      zlib >= 1.2.12
+Provides:      mysql-libs = %{version}-%{release}
+Obsoletes:     libmysql10 < 4
 Obsoletes:     mysql-doc < 4.1.12
 
 %description libs
@@ -328,110 +343,75 @@ Shared libraries for MySQL.
 %description libs -l pl.UTF-8
 Biblioteki współdzielone MySQL.
 
-%package devel
+%package -n mysql-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}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
-%{?with_ssl:Requires:  openssl-devel}
-Requires:      zlib-devel
-Obsoletes:     MySQL-devel
-Obsoletes:     libmysql10-devel
+%{?with_ssl:Requires:  openssl-devel >= 1.1.1}
+Requires:      zlib-devel >= 1.2.12
+Obsoletes:     MySQL-devel < 3.22.27
+Obsoletes:     libmysql10-devel < 4
+Obsoletes:     webscalesql-devel
 
-%description devel
+%description -n mysql-devel
 This package contains the development header files and other files
 necessary to develop MySQL client applications.
 
-%description devel -l fr.UTF-8
+%description -n mysql-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
+%description -n mysql-devel -l pl.UTF-8
 Pliki nagłówkowe i inne pliki konieczne do kompilacji aplikacji
 klienckich MySQL.
 
-%description devel -l pt_BR.UTF-8
+%description -n mysql-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 -n mysql-devel -l ru.UTF-8
 Этот пакет содержит хедеры и библиотеки разработчика, необходимые для
 разработки клиентских приложений.
 
-%description devel -l uk.UTF-8
+%description -n mysql-devel -l uk.UTF-8
 Цей пакет містить хедери та бібліотеки програміста, необхідні для
 розробки програм-клієнтів.
 
-%package static
+%package -n mysql-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
+Requires:      mysql-devel = %{version}-%{release}
+Obsoletes:     MySQL-static < 3.22.27
 
-%description static
+%description -n mysql-static
 MySQL static libraries.
 
-%description static -l pl.UTF-8
+%description -n mysql-static -l pl.UTF-8
 Biblioteki statyczne MySQL.
 
-%description static -l ru.UTF-8
+%description -n mysql-static -l ru.UTF-8
 Этот пакет содержит статические библиотеки разработчика, необходимые
 для разработки клиентских приложений.
 
-%description static -l uk.UTF-8
+%description -n mysql-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:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description ndb
@@ -445,6 +425,8 @@ NDB.
 Summary:       MySQL - NDB Clients
 Summary(pl.UTF-8):     MySQL - programy klienckie NDB
 Group:         Applications/Databases
+Requires:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description ndb-client
@@ -457,6 +439,8 @@ Ten pakiet zawiera standardowe programy klienckie MySQL NDB.
 Summary:       MySQL - NDB Management Daemon
 Summary(pl.UTF-8):     MySQL - demon zarządzający NDB
 Group:         Applications/Databases
+Requires:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description ndb-mgm
@@ -469,6 +453,8 @@ Ten pakiet zawiera standardowego demona zarządzającego MySQL NDB.
 Summary:       MySQL - NDB CPC Daemon
 Summary(pl.UTF-8):     MySQL - demon NDB CPC
 Group:         Applications/Databases
+Requires:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description ndb-cpc
@@ -477,34 +463,46 @@ This package contains the standard MySQL NDB CPC Daemon.
 %description ndb-cpc -l pl.UTF-8
 Ten pakiet zawiera standardowego demona MySQL NDB CPC.
 
+%package router
+Summary:       MySQL Router
+Summary(pl.UTF-8):     MySQL Router
+Group:         Applications/Databases
+Requires:      alternatives
+Requires:      %{name}-dirs = %{version}-%{release}
+Requires:      %{name}-libs = %{version}-%{release}
+
+%description router
+The MySQL Router software delivers a fast, multi-threaded way of
+routing connections from MySQL Clients to MySQL Servers.
+
+%description router -l pl.UTF-8
+Oprogramowanie MySQL Router zapewnia szybki i wielowątkowy sposób
+przekierowywania połączeń od klientów MySQL do serwerów MySQL.
+
 %prep
-%setup -q -n Percona-Server-%{version}-rel%{percona_rel} %{?with_sphinx:-a100}
+%setup -q %{?with_sphinx:-a100} %{!?with_system_boost:-a101} -n mysql-%{version}
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
 %if %{with sphinx}
 # http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
-mv sphinx-*/mysqlse storage/sphinx
+%{__mv} sphinx-*/mysqlse storage/sphinx
+%patch17 -p1
 %patch18 -p1
 %endif
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
 
-%patch6 -p1
-
-%patch9 -p1
-%patch11 -p1
-%patch12 -p1
-%patch14 -p0
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
+%patch24 -p1
+%patch25 -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
+[ -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**
 
 %build
 install -d build
@@ -513,34 +511,53 @@ cd build
 # (it defaults to first cluster but user may change it to whatever
 # cluster it wants)
 
-%cmake \
+CPPFLAGS="%{rpmcppflags}" \
+%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" \
+       -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="TLD Linux MySQL RPM" \
        -DCURSES_INCLUDE_PATH=/usr/include/ncurses \
        %{?with_systemtap:-DENABLE_DTRACE=ON} \
        -DFEATURE_SET="community" \
        -DINSTALL_LAYOUT=RPM \
+       -DINSTALL_BINDIR=%{mysqllibdir}/bin \
+       -DINSTALL_SBINDIR=%{mysqllibdir}/sbin \
+       -DINSTALL_MANDIR=%{mysqldatadir}/man \
        -DINSTALL_LIBDIR=%{_lib} \
+       -DINSTALL_PRIV_LIBDIR=%{_libdir}/mysql/%{mysqlversion}/private \
        -DINSTALL_MYSQLTESTDIR_RPM="" \
-       -DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \
+       -DINSTALL_MYSQLDATADIR=/var/lib/mysql/%{mysqlversion} \
+       -DINSTALL_PLUGINDIR=%{_lib}/mysql/%{mysqlversion}/plugin \
+       -DINSTALL_SECURE_FILE_PRIVDIR=/var/lib/mysql-files/%{mysqlversion} \
        -DINSTALL_SQLBENCHDIR=%{_datadir} \
-       -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
-       -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
+       -DINSTALL_SUPPORTFILESDIR=share/mysql/%{mysqlversion}/support \
+       -DINSTALL_MYSQLSHAREDIR=share/mysql/%{mysqlversion}/lang \
+       -DINSTALL_MYSQLTESTDIR=share/mysql/%{mysqlversion}/test \
+       -DROUTER_INSTALL_DATADIR=/var/lib/mysqlrouter/%{mysqlversion} \
+       -DROUTER_INSTALL_LIBDIR=%{_libdir}/mysql/%{mysqlversion}/router/private \
+       -DROUTER_INSTALL_LOGDIR=/var/log/mysqlrouter/%{mysqlversion} \
+       -DROUTER_INSTALL_PLUGINDIR=%{_libdir}/mysql/%{mysqlversion}/router \
+       -DMYSQL_UNIX_ADDR=/var/lib/mysql/%{mysqlversion}/mysql.sock \
        %{?debug:-DWITH_DEBUG=ON} \
        -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-       -DWITH_FAST_MUTEXES=ON \
-       -DWITH_LIBEDIT=OFF \
+       %{!?with_ldap:-DWITH_AUTHENTICATION_LDAP=OFF} \
        -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
-       -DWITH_PAM=ON \
        -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
        -DWITH_PIC=ON \
-       -DWITH_READLINE=OFF \
-       -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
+       %{?with_ldap:-DWITH_LDAP=system} \
+       -DWITH_KERBEROS=system \
+       -DWITH_LIBEVENT=system \
+       -DWITH_LZ4=system \
+       -DWITH_PROTOBUF=system \
+       -DWITH_SASL=system \
        -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+       -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
+       %{!?with_system_boost:-DWITH_BOOST="$(pwd)/$(ls -1d ../boost_*)"} \
        -DWITH_ZLIB=system \
-       ..
+       -DWITH_EDITLINE=system \
+       -DWITH_MECAB=system \
+       -DTMPDIR=/var/tmp
 
 %{__make}
 
@@ -548,21 +565,25 @@ cd build
 
 %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} \
+install -d $RPM_BUILD_ROOT/etc/{ld.so.conf.d,logrotate.d,rc.d/init.d,sysconfig,mysql/%{mysqlversion},skel} \
+          $RPM_BUILD_ROOT/var/{log/{archive,}/{mysql,mysqlrouter}/%{mysqlversion},lib/{mysql,mysql-files,mysqlrouter}/%{mysqlversion}} \
           $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
+sed -e 's,@mysqlbindir@,%{_libdir}/mysql/%{mysqlversion}/bin,g; s,@mysqlsbindir@,%{_libdir}/mysql/%{mysqlversion}/sbin,g; s,@mysqlversion@,%{mysqlversion},g;' %{SOURCE1} >$RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-%{mysqlversion}
+sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE2} >$RPM_BUILD_ROOT/etc/sysconfig/mysql-%{mysqlversion}
+sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE3} >$RPM_BUILD_ROOT/etc/logrotate.d/mysql-%{mysqlversion}
 # 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
+sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE4} >mysqld.conf
+sed -e 's,@mysqlversion@,%{mysqlversion},g;' %{SOURCE5} >$RPM_BUILD_ROOT%{_sysconfdir}/mysql/%{mysqlversion}/clusters.conf
+touch $RPM_BUILD_ROOT/var/log/mysql/%{mysqlversion}/{mysqld,query,slow}.log
+touch $RPM_BUILD_ROOT/var/log/mysqlrouter/%{mysqlversion}/mysqlrouter.log
+
+mv $RPM_BUILD_ROOT/etc/logrotate.d/{mysqlrouter,%{name}-router}
+
+echo "%{_libdir}/mysql/%{mysqlversion}/router/private" >$RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-router.conf
 
 # remove innodb directives from mysqld.conf if mysqld is configured without
 %if %{without innodb}
@@ -574,556 +595,708 @@ touch $RPM_BUILD_ROOT/var/log/%{name}/{mysqld,query,slow}.log
 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 mysqld.conf $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/mysqld.conf
+cp -a %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/%{mysqlversion}/mysql-client.conf
+ln -s mysql-client.conf $RPM_BUILD_ROOT%{_sysconfdir}/mysql/%{mysqlversion}/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
+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
 %endif
 
-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
+sed -i -e 's,/usr//usr,%{_prefix},g' $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/mysql_config
+sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/mysql_config
+sed -i -e '/libs/s/-lprobes_mysql//' $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/mysql_config
 
 # remove known unpackaged files
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-support
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/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
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/mysql_upgrade
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/innochecksum
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisamchk
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisamlog
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/myisampack
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/my_print_defaults
+%{__mv} $RPM_BUILD_ROOT{%{_libdir}/mysql/%{mysqlversion}/bin,%{_libdir}/mysql/%{mysqlversion}/sbin}/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*
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/mysqld_safe
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/mysqld_multi
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqld_{multi,safe}*
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql.server*
+
+# man pages for removed commands
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlman.1*
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlslap.1*
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/comp_err.1*
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/lz4_decompress.1*
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/man/man1/zlib_decompress.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
-# 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
-
-# not an .info file
-%{__rm} $RPM_BUILD_ROOT%{_infodir}/mysql.info
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql/%{mysqlversion}/test
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/bin/{comp_err,mysql_client_test,mysql_keyring_encryption_test,mysqlslap,mysqltest,mysqltest_safe_process,mysqlxtest,zlib_decompress}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/test_udf_services.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_example_*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_log_sink_test.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_pfs_example*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/component_test_*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/test_services_*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/libdaemon_example.*
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/daemon_example.ini
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/libtest*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/pfs_example*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/rewrite_example.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/udf_example.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/%{mysqlversion}/plugin/test_security_context.so
 
 %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
+/sbin/chkconfig --add %{name}
+%service %{name} restart
 
 %preun
 if [ "$1" = "0" ]; then
-       %service -q mysql stop
-       /sbin/chkconfig --del mysql
+       %service -q %{name} stop
+       /sbin/chkconfig --del %{name}
 fi
 
+%posttrans
+update-alternatives \
+       --install %{_bindir}/ibd2sdi ibd2sdi %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi %{mysqlpriority} \
+       --slave %{_mandir}/man1/ibd2sdi.1 ibd2sdi.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ibd2sdi.1* || :
+update-alternatives \
+       --install %{_bindir}/mysql_migrate_keyring mysql_migrate_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_migrate_keyring.1 mysql_migrate_keyring.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_migrate_keyring.1* || :
+update-alternatives \
+       --install %{_sbindir}/innochecksum innochecksum %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum %{mysqlpriority} \
+       --slave %{_mandir}/man1/innochecksum.1 innochecksum.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/innochecksum.1* || :
+update-alternatives \
+       --install %{_sbindir}/my_print_defaults my_print_defaults %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults %{mysqlpriority} \
+       --slave %{_mandir}/man1/my_print_defaults.1 my_print_defaults.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/my_print_defaults.1* || :
+update-alternatives \
+       --install %{_sbindir}/myisamchk myisamchk %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk %{mysqlpriority} \
+       --slave %{_mandir}/man1/myisamchk.1 myisamchk.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisamchk.1* || :
+update-alternatives \
+       --install %{_sbindir}/myisamlog myisamlog %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog %{mysqlpriority} \
+       --slave %{_mandir}/man1/myisamlog.1 myisamlog.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisamlog.1* || :
+update-alternatives \
+       --install %{_sbindir}/myisampack myisampack %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack %{mysqlpriority} \
+       --slave %{_mandir}/man1/myisampack.1 myisampack.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisampack.1* || :
+update-alternatives \
+       --install %{_sbindir}/mysql_upgrade mysql_upgrade %{_libdir}/mysql/%{mysqlversion}/sbin/mysql_upgrade %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_upgrade.1 mysql_upgrade.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_upgrade.1* || :
+update-alternatives \
+       --install %{_sbindir}/mysqlcheck mysqlcheck %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlcheck.1 mysqlcheck.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlcheck.1* || :
+update-alternatives \
+       --install %{_sbindir}/mysqld mysqld %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld %{mysqlpriority} \
+       --slave %{_mandir}/man8/mysqld.8 mysqld.8 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqld.8* || :
+
 %postun
 /sbin/ldconfig
+if [ "$1" = "0" ]; then
+       update-alternatives --remove ibd2sdi %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi || :
+       update-alternatives --remove mysql_migrate_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring || :
+       update-alternatives --remove innochecksum %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum || :
+       update-alternatives --remove my_print_defaults %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults || :
+       update-alternatives --remove myisamchk %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk || :
+       update-alternatives --remove myisamlog %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog || :
+       update-alternatives --remove myisampack %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack || :
+       update-alternatives --remove mysql_upgrade %{_libdir}/mysql/%{mysqlversion}/sbin/mysql_upgrade || :
+       update-alternatives --remove mysqlcheck %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck || :
+       update-alternatives --remove mysqld %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld || :
+fi
+
+%pre -n mysql-common
+%groupadd -g 89 mysql
+%useradd -u 89 -d /var/lib/mysql -s /bin/false -g mysql -c "MySQL Server" mysql
+
+%postun -n mysql-common
 if [ "$1" = "0" ]; then
        %userremove mysql
        %groupremove mysql
 fi
 
+%posttrans client
+update-alternatives \
+       --install %{_bindir}/mysql mysql %{_libdir}/mysql/%{mysqlversion}/bin/mysql %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql.1 mysql.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqladmin mysqladmin %{_libdir}/mysql/%{mysqlversion}/bin/mysqladmin %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqladmin.1 mysqladmin.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqladmin.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlbinlog mysqlbinlog %{_libdir}/mysql/%{mysqlversion}/bin/mysqlbinlog %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlbinlog.1 mysqlbinlog.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlbinlog.1* || :
+update-alternatives \
+       --install %{_bindir}/mysql_config_editor mysql_config_editor %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config_editor %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_config_editor.1 mysql_config_editor.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_config_editor.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqldump mysqldump %{_libdir}/mysql/%{mysqlversion}/bin/mysqldump %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqldump.1 mysqldump.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqldump.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlimport mysqlimport %{_libdir}/mysql/%{mysqlversion}/bin/mysqlimport %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlimport.1 mysqlimport.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlimport.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlpump mysqlpump %{_libdir}/mysql/%{mysqlversion}/bin/mysqlpump %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlpump.1 mysqlpump.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlpump.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlshow mysqlshow %{_libdir}/mysql/%{mysqlversion}/bin/mysqlshow %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlshow.1 mysqlshow.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlshow.1* || :
+
+%postun client
+if [ $1 -eq 0 ]; then
+       update-alternatives --remove mysql %{_libdir}/mysql/%{mysqlversion}/bin/mysql || :
+       update-alternatives --remove mysqladmin %{_libdir}/mysql/%{mysqlversion}/bin/mysqladmin || :
+       update-alternatives --remove mysqlbinlog %{_libdir}/mysql/%{mysqlversion}/bin/mysqlbinlog || :
+       update-alternatives --remove mysql_config_editor %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config_editor || :
+       update-alternatives --remove mysqldump %{_libdir}/mysql/%{mysqlversion}/bin/mysqldump || :
+       update-alternatives --remove mysqlimport %{_libdir}/mysql/%{mysqlversion}/bin/mysqlimport || :
+       update-alternatives --remove mysqlpump %{_libdir}/mysql/%{mysqlversion}/bin/mysqlpump || :
+       update-alternatives --remove mysqlshow %{_libdir}/mysql/%{mysqlversion}/bin/mysqlshow || :
+fi
+
+%posttrans extras
+update-alternatives \
+       --install %{_bindir}/myisam_ftdump myisam_ftdump %{_libdir}/mysql/%{mysqlversion}/bin/myisam_ftdump %{mysqlpriority} \
+       --slave %{_mandir}/man1/myisam_ftdump.1 myisam_ftdump.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/myisam_ftdump.1* || :
+update-alternatives \
+       --install %{_bindir}/mysql_secure_installation mysql_secure_installation %{_libdir}/mysql/%{mysqlversion}/bin/mysql_secure_installation %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_secure_installation.1 mysql_secure_installation.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_secure_installation.1* || :
+update-alternatives \
+       --install %{_bindir}/mysql_ssl_rsa_setup mysql_ssl_rsa_setup %{_libdir}/mysql/%{mysqlversion}/bin/mysql_ssl_rsa_setup %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_ssl_rsa_setup.1 mysql_ssl_rsa_setup.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_ssl_rsa_setup.1* || :
+update-alternatives \
+       --install %{_bindir}/mysql_tzinfo_to_sql mysql_tzinfo_to_sql %{_libdir}/mysql/%{mysqlversion}/bin/mysql_tzinfo_to_sql %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_tzinfo_to_sql.1 mysql_tzinfo_to_sql.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_tzinfo_to_sql.1* || :
+update-alternatives \
+       --install %{_bindir}/perror perror %{_libdir}/mysql/%{mysqlversion}/bin/perror %{mysqlpriority} \
+       --slave %{_mandir}/man1/perror.1 perror.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/perror.1* || :
+
+%postun extras
+if [ $1 -eq 0 ]; then
+       update-alternatives --remove myisam_ftdump %{_libdir}/mysql/%{mysqlversion}/bin/myisam_ftdump || :
+       update-alternatives --remove mysql_secure_installation %{_libdir}/mysql/%{mysqlversion}/bin/mysql_secure_installation || :
+       update-alternatives --remove mysql_ssl_rsa_setup %{_libdir}/mysql/%{mysqlversion}/bin/mysql_ssl_rsa_setup || :
+       update-alternatives --remove mysql_tzinfo_to_sql %{_libdir}/mysql/%{mysqlversion}/bin/mysql_tzinfo_to_sql || :
+       update-alternatives --remove perror %{_libdir}/mysql/%{mysqlversion}/bin/perror || :
+fi
+
+%posttrans extras-perl
+update-alternatives \
+       --install %{_bindir}/mysqldumpslow mysqldumpslow %{_libdir}/mysql/%{mysqlversion}/bin/mysqldumpslow %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqldumpslow.1 mysqldumpslow.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqldumpslow.1* || :
+
+%postun extras-perl
+if [ $1 -eq 0 ]; then
+       update-alternatives --remove mysqldumpslow %{_libdir}/mysql/%{mysqlversion}/bin/mysqldumpslow || :
+fi
+
+%posttrans -n mysql-devel
+update-alternatives \
+       --install %{_bindir}/mysql_config mysql_config %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysql_config.1 mysql_config.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_config.1* || :
+
+%postun -n mysql-devel
+if [ $1 -eq 0 ]; then
+       update-alternatives --remove mysql_config %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config || :
+fi
+
 %post ndb
-/sbin/chkconfig --add mysql-ndb
-%service mysql-ndb restart "mysql NDB engine"
+/sbin/chkconfig --add %{name}-ndb
+%service %{name}-ndb restart "%{name} NDB engine"
 
 %preun ndb
 if [ "$1" = "0" ]; then
-       %service mysql-ndb stop
-       /sbin/chkconfig --del mysql-ndb
+       %service %{name}-ndb stop
+       /sbin/chkconfig --del %{name}-ndb
+fi
+
+%posttrans ndb
+update-alternatives \
+       --install %{_sbindir}/ndbd ndbd %{_libdir}/mysql/%{mysqlversion}/sbin/ndbd %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndbd.1 ndbd.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndbd.1* || :
+
+%postun ndb
+if [ "$1" = "0" ]; then
+       update-alternatives --remove ndbd %{_libdir}/mysql/%{mysqlversion}/sbin/ndbd || :
+fi
+
+%posttrans ndb-client
+update-alternatives \
+       --install %{_bindir}/ndb_config ndb_config %{_libdir}/mysql/%{mysqlversion}/bin/ndb_config %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_config.1 ndb_config.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_config.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_delete_all ndb_delete_all %{_libdir}/mysql/%{mysqlversion}/bin/ndb_delete_all %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_delete_all.1 ndb_delete_all.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_delete_all.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_desc ndb_desc %{_libdir}/mysql/%{mysqlversion}/bin/ndb_desc %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_desc.1 ndb_desc.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_desc.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_drop_index ndb_drop_index %{_libdir}/mysql/%{mysqlversion}/bin/ndb_drop_index %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_drop_index.1 ndb_drop_index.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_drop_index.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_drop_table ndb_drop_table %{_libdir}/mysql/%{mysqlversion}/bin/ndb_drop_table %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_drop_table.1 ndb_drop_table.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_drop_table.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_error_reporter ndb_error_reporter %{_libdir}/mysql/%{mysqlversion}/bin/ndb_error_reporter %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_error_reporter.1 ndb_error_reporter.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_error_reporter.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_mgm ndb_mgm %{_libdir}/mysql/%{mysqlversion}/bin/ndb_mgm %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_mgm.1 ndb_mgm.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_mgm.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_print_backup_file ndb_print_backup_file %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_backup_file %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_print_backup_file.1 ndb_print_backup_file.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_print_backup_file.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_print_schema_file ndb_print_schema_file %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_schema_file %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_print_schema_file.1 ndb_print_schema_file.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_print_schema_file.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_print_sys_file ndb_print_sys_file %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_sys_file %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_print_sys_file.1 ndb_print_sys_file.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_print_sys_file.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_restore ndb_restore %{_libdir}/mysql/%{mysqlversion}/bin/ndb_restore %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_restore.1 ndb_restore.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_restore.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_select_all ndb_select_all %{_libdir}/mysql/%{mysqlversion}/bin/ndb_select_all %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_select_all.1 ndb_select_all.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_select_all.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_select_count ndb_select_count %{_libdir}/mysql/%{mysqlversion}/bin/ndb_select_count %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_select_count.1 ndb_select_count.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_select_count.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_show_tables ndb_show_tables %{_libdir}/mysql/%{mysqlversion}/bin/ndb_show_tables %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_show_tables.1 ndb_show_tables.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_show_tables.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_size.pl ndb_size.pl %{_libdir}/mysql/%{mysqlversion}/bin/ndb_size.pl %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_size.pl.1 ndb_size.pl.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_size.pl.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_test_platform ndb_test_platform %{_libdir}/mysql/%{mysqlversion}/bin/ndb_test_platform %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_test_platform.1 ndb_test_platform.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_test_platform.1* || :
+update-alternatives \
+       --install %{_bindir}/ndb_waiter ndb_waiter %{_libdir}/mysql/%{mysqlversion}/bin/ndb_waiter %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_waiter.1 ndb_waiter.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_waiter.1* || :
+
+%postun ndb-client
+if [ $1 -eq 0 ]; then
+       update-alternatives --remove ndb_config %{_libdir}/mysql/%{mysqlversion}/bin/ndb_config || :
+       update-alternatives --remove ndb_delete_all %{_libdir}/mysql/%{mysqlversion}/bin/ndb_delete_all || :
+       update-alternatives --remove ndb_desc %{_libdir}/mysql/%{mysqlversion}/bin/ndb_desc || :
+       update-alternatives --remove ndb_drop_index %{_libdir}/mysql/%{mysqlversion}/bin/ndb_drop_index || :
+       update-alternatives --remove ndb_drop_table %{_libdir}/mysql/%{mysqlversion}/bin/ndb_drop_table || :
+       update-alternatives --remove ndb_error_reporter %{_libdir}/mysql/%{mysqlversion}/bin/ndb_error_reporter || :
+       update-alternatives --remove ndb_mgm %{_libdir}/mysql/%{mysqlversion}/bin/ndb_mgm || :
+       update-alternatives --remove ndb_print_backup_file %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_backup_file || :
+       update-alternatives --remove ndb_print_schema_file %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_schema_file || :
+       update-alternatives --remove ndb_print_sys_file %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_sys_file || :
+       update-alternatives --remove ndb_restore %{_libdir}/mysql/%{mysqlversion}/bin/ndb_restore || :
+       update-alternatives --remove ndb_select_all %{_libdir}/mysql/%{mysqlversion}/bin/ndb_select_all || :
+       update-alternatives --remove ndb_select_count %{_libdir}/mysql/%{mysqlversion}/bin/ndb_select_count || :
+       update-alternatives --remove ndb_show_tables %{_libdir}/mysql/%{mysqlversion}/bin/ndb_show_tables || :
+       update-alternatives --remove ndb_size.pl %{_libdir}/mysql/%{mysqlversion}/bin/ndb_size.pl || :
+       update-alternatives --remove ndb_test_platform %{_libdir}/mysql/%{mysqlversion}/bin/ndb_test_platform || :
+       update-alternatives --remove ndb_waiter %{_libdir}/mysql/%{mysqlversion}/bin/ndb_waiter || :
 fi
 
 %post ndb-mgm
-/sbin/chkconfig --add mysql-ndb-mgm
-%service mysql-ndb-mgm restart "mysql NDB management node"
+/sbin/chkconfig --add %{name}-ndb-mgm
+%service %{name}-ndb-mgm restart "%{name} NDB management node"
 
 %preun ndb-mgm
 if [ "$1" = "0" ]; then
-       %service mysql-ndb-mgm stop
-       /sbin/chkconfig --del mysql-ndb-mgm
+       %service %{name}-ndb-mgm stop
+       /sbin/chkconfig --del %{name}-ndb-mgm
+fi
+
+%posttrans ndb-mgm
+update-alternatives \
+       --install %{_sbindir}/ndb_mgmd ndb_mgmd %{_libdir}/mysql/%{mysqlversion}/sbin/ndb_mgmd %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_mgmd.1 ndb_mgmd.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_mgmd.1* || :
+
+%postun ndb-mgm
+if [ "$1" = "0" ]; then
+       update-alternatives --remove ndb_mgmd %{_libdir}/mysql/%{mysqlversion}/sbin/ndb_mgmd || :
 fi
 
 %post ndb-cpc
-/sbin/chkconfig --add mysql-ndb-cpc
-%service mysql-ndb-cpc restart "mysql NDB CPC"
+/sbin/chkconfig --add %{name}-ndb-cpc
+%service %{name}-ndb-cpc restart "%{name} NDB CPC"
 
 %preun ndb-cpc
 if [ "$1" = "0" ]; then
-       %service mysql-ndb-cpc stop
-       /sbin/chkconfig --del mysql-ndb-cpc
+       %service %{name}-ndb-cpc stop
+       /sbin/chkconfig --del %{name}-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
+%posttrans ndb-cpc
+update-alternatives \
+       --install %{_sbindir}/ndb_cpcd ndb_cpcd %{_libdir}/mysql/%{mysqlversion}/sbin/ndb_cpcd %{mysqlpriority} \
+       --slave %{_mandir}/man1/ndb_cpcd.1 ndb_cpcd.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_cpcd.1* || :
+
+%postun ndb-cpc
+if [ "$1" = "0" ]; then
+       update-alternatives --remove ndb_cpcd %{_libdir}/mysql/%{mysqlversion}/sbin/ndb_cpcd || :
 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 TLD Linux mailing lists."
-                       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 TLD Linux mailing lists."
-               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 TLD Linux mailing lists."
-               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
+%post  libs -p /sbin/ldconfig
+%postun        libs -p /sbin/ldconfig
+
+%pre router
+%groupadd -g 348 mysqlrouter
+%useradd -u 348 -d /var/lib/mysqlrouter -s /bin/false -g mysqlrouter -c "MySQL Router" mysqlrouter
+
+%post  router
+/sbin/ldconfig
+
+%posttrans router
+update-alternatives \
+       --install %{_bindir}/mysqlrouter mysqlrouter %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter.1 mysqlrouter.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlrouter_keyring mysqlrouter_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter_keyring.1 mysqlrouter_keyring.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_keyring.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlrouter_passwd mysqlrouter_passwd %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter_passwd.1 mysqlrouter_passwd.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_passwd.1* || :
+update-alternatives \
+       --install %{_bindir}/mysqlrouter_plugin_info mysqlrouter_plugin_info %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info %{mysqlpriority} \
+       --slave %{_mandir}/man1/mysqlrouter_plugin_info.1 mysqlrouter_plugin_info.1 %{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_plugin_info.1* || :
+
+%postun        router
+/sbin/ldconfig
+if [ "$1" = "0" ]; then
+       update-alternatives --remove mysqlrouter %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter || :
+       update-alternatives --remove mysqlrouter_keyring %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring || :
+       update-alternatives --remove mysqlrouter_passwd %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd || :
+       update-alternatives --remove mysqlrouter_plugin_info %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info || :
+       %userremove mysqlrouter
+       %groupremove mysqlrouter
+fi
 
 %files
 %defattr(644,root,root,755)
-%doc build/support-files/*.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) %{_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
-%attr(755,root,root) %{_libdir}/%{name}/plugin/validate_password.so
+%attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/%{mysqlversion}/clusters.conf
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ibd2sdi
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_migrate_keyring
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/innochecksum
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/my_print_defaults
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisamchk
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisamlog
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/myisampack
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysql_upgrade
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysqlcheck
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/mysqld
+%dir %{_libdir}/mysql/%{mysqlversion}/plugin
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/adt_null.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth_socket.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/auth_test_plugin.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_audit_api_message_emit.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_keyring_file.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_log_filter_dragnet.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_log_sink_json.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_log_sink_syseventlog.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_mysqlbackup.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_mysqlx_global_reset.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_query_attributes.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_reference_cache.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_udf_*_func.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/component_validate_password.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/conflicting_variables.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/connection_control.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ddl_rewriter.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/group_replication.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/ha_mock.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/keyring_file.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/keyring_udf.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/libpluginmecab.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/locking_service.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/mypluglib.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/mysql_clone.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/mysql_no_login.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/qa_auth_client.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/qa_auth_interface.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/qa_auth_server.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/replication_observers_example_plugin.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/rewriter.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/semisync_master.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/semisync_replica.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/semisync_slave.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/semisync_source.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/validate_password.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/plugin/version_token.so
 %if %{with sphinx}
-%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/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*
+%dir %{_libdir}/mysql/%{mysqlversion}/private
+%{_libdir}/mysql/%{mysqlversion}/private/icudt*l
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ibd2sdi.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/innochecksum.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/my_print_defaults.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/myisamchk.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/myisamlog.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/myisampack.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_upgrade.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlcheck.1*
+%{_datadir}/mysql/%{mysqlversion}/man/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*
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/*resolve_stack_dump
+%{_datadir}/mysql/%{mysqlversion}/mysqld.sym
+%{_datadir}/mysql/%{mysqlversion}/man/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/*
+%attr(750,mysql,mysql) %dir /var/log/mysql/%{mysqlversion}
+%attr(750,mysql,mysql) %dir /var/log/archive/mysql/%{mysqlversion}
+%attr(640,mysql,mysql) %ghost /var/log/mysql/%{mysqlversion}/*
 
 # This is template for configuration file which is created after 'service mysql init'
-%{_datadir}/%{name}/mysqld.conf
-%{_datadir}/%{name}/mysql_security_commands.sql
-%{_datadir}/%{name}/mysql_system_tables_data.sql
-%{_datadir}/%{name}/mysql_system_tables.sql
-%{_datadir}/%{name}/mysql_test_data_timezone.sql
-
-%{_datadir}/%{name}/english
-%{_datadir}/%{name}/dictionary.txt
-%{_datadir}/%{name}/fill_help_tables.sql
-%{_datadir}/%{name}/innodb_memcached_config.sql
-#%{_datadir}/%{name}/mysql_fix_privilege_tables.sql
-%lang(bg) %{_datadir}/%{name}/bulgarian
-%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
+%{_datadir}/mysql/%{mysqlversion}/mysqld.conf
+
+%dir %{_datadir}/mysql/%{mysqlversion}/lang
+%{_datadir}/mysql/%{mysqlversion}/lang/english
+%{_datadir}/mysql/%{mysqlversion}/lang/dictionary.txt
+%{_datadir}/mysql/%{mysqlversion}/lang/messages_to_clients.txt
+%{_datadir}/mysql/%{mysqlversion}/lang/messages_to_error_log.txt
+%{_datadir}/mysql/%{mysqlversion}/lang/install_rewriter.sql
+%{_datadir}/mysql/%{mysqlversion}/lang/uninstall_rewriter.sql
+# Don't mark these with %%lang. These are used depending
+# on database client settings.
+%{_datadir}/mysql/%{mysqlversion}/lang/bulgarian
+%{_datadir}/mysql/%{mysqlversion}/lang/czech
+%{_datadir}/mysql/%{mysqlversion}/lang/danish
+%{_datadir}/mysql/%{mysqlversion}/lang/german
+%{_datadir}/mysql/%{mysqlversion}/lang/greek
+%{_datadir}/mysql/%{mysqlversion}/lang/spanish
+%{_datadir}/mysql/%{mysqlversion}/lang/estonian
+%{_datadir}/mysql/%{mysqlversion}/lang/french
+%{_datadir}/mysql/%{mysqlversion}/lang/hungarian
+%{_datadir}/mysql/%{mysqlversion}/lang/italian
+%{_datadir}/mysql/%{mysqlversion}/lang/japanese
+%{_datadir}/mysql/%{mysqlversion}/lang/korean
+%{_datadir}/mysql/%{mysqlversion}/lang/dutch
+%{_datadir}/mysql/%{mysqlversion}/lang/norwegian
+%{_datadir}/mysql/%{mysqlversion}/lang/norwegian-ny
+%{_datadir}/mysql/%{mysqlversion}/lang/polish
+%{_datadir}/mysql/%{mysqlversion}/lang/portuguese
+%{_datadir}/mysql/%{mysqlversion}/lang/romanian
+%{_datadir}/mysql/%{mysqlversion}/lang/russian
+%{_datadir}/mysql/%{mysqlversion}/lang/serbian
+%{_datadir}/mysql/%{mysqlversion}/lang/slovak
+%{_datadir}/mysql/%{mysqlversion}/lang/swedish
+%{_datadir}/mysql/%{mysqlversion}/lang/ukrainian
 
 %files charsets
 %defattr(644,root,root,755)
+%{_datadir}/mysql/%{mysqlversion}/lang/charsets
+
+%files -n mysql-common
+%defattr(644,root,root,755)
+%attr(751,root,root) %dir %{_sysconfdir}/mysql
+%dir %{_libdir}/mysql
 %dir %{_datadir}/mysql
-%{_datadir}/%{name}/charsets
+%attr(751,root,root) %dir /var/lib/mysql
+%attr(751,root,root) %dir /var/lib/mysql-files
+%attr(751,root,root) %dir /var/lib/mysqlrouter
+%attr(751,root,root) %dir /var/log/mysql
+%attr(751,root,root) %dir /var/log/archive/mysql
+%attr(751,root,root) %dir /var/log/mysqlrouter
+%attr(751,root,root) %dir /var/log/archive/mysqlrouter
+
+%files dirs
+%defattr(644,root,root,755)
+%attr(751,root,root) %dir %{_sysconfdir}/mysql/%{mysqlversion}
+# root:root is proper here for mysql.rpm while mysql:mysql is potential security hole
+%attr(751,root,root) %dir /var/lib/mysql/%{mysqlversion}
+%attr(750,mysql,mysql) %dir /var/lib/mysql-files/%{mysqlversion}
+%dir %{_libdir}/mysql/%{mysqlversion}
+%dir %{_libdir}/mysql/%{mysqlversion}/bin
+%dir %{_libdir}/mysql/%{mysqlversion}/sbin
+%dir %{_datadir}/mysql/%{mysqlversion}
+%dir %{_datadir}/mysql/%{mysqlversion}/man
+%dir %{_datadir}/mysql/%{mysqlversion}/man/man1
+%dir %{_datadir}/mysql/%{mysqlversion}/man/man8
 
 %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*
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/myisam_ftdump
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_secure_installation
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_ssl_rsa_setup
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_tzinfo_to_sql
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/perror
+%{_datadir}/mysql/%{mysqlversion}/man/man1/myisam_ftdump.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_ssl_rsa_setup.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_secure_installation.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_tzinfo_to_sql.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/perror.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*
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqldumpslow
+%{_datadir}/mysql/%{mysqlversion}/man/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}/mysql_config_editor
-%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/mysql_config_editor.1*
-%{_mandir}/man1/mysqldump.1*
-%{_mandir}/man1/mysqlimport.1*
-%{_mandir}/man1/mysqlshow.1*
+%attr(600,root,root) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.my.cnf
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqladmin
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlbinlog
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysql_config_editor
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqldump
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlimport
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlpump
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlshow
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqladmin.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlbinlog.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_config_editor.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqldump.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlimport.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlpump.1*
+%{_datadir}/mysql/%{mysqlversion}/man/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
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/%{mysqlversion}/mysql-client.conf
+%{_sysconfdir}/mysql/%{mysqlversion}/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
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.22
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
 %endif
 
-%files devel
+%files -n mysql-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/mysql_config
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/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
-# static-only so far
-%{_libdir}/libmysqld.a
+%{_pkgconfigdir}/mysqlclient.pc
+%{_libdir}/libmysqlservices.a
 %{_includedir}/mysql
 %{_aclocaldir}/mysql.m4
-%{_mandir}/man1/mysql_config.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysql_config.1*
 
-%files static
+%files -n mysql-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(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/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/mysql-ndb
-%{_mandir}/man1/ndbd_redo_log_reader.1*
-%{_mandir}/man8/ndbd.8*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndbd_redo_log_reader.1*
+%{_datadir}/mysql/%{mysqlversion}/man/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*
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_config
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_delete_all
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_desc
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_drop_index
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_drop_table
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_error_reporter
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_mgm
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_backup_file
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_schema_file
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_print_sys_file
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_restore
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_select_all
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_select_count
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_show_tables
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_size.pl
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_test_platform
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/ndb_waiter
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_config.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_delete_all.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_desc.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_drop_index.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_drop_table.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_error_reporter.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_mgm.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_print_backup_file.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_print_schema_file.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_print_sys_file.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_restore.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_select_all.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_select_count.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_show_tables.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_size.pl.1*
+%{_datadir}/mysql/%{mysqlversion}/man/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(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/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/mysql-ndb-mgm
-%{_mandir}/man8/ndb_mgmd.8*
+%{_datadir}/mysql/%{mysqlversion}/man/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(755,root,root) %{_libdir}/mysql/%{mysqlversion}/sbin/ndb_cpcd
+%attr(754,root,root) /etc/rc.d/init.d/%{name}-ndb-cpc
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
-%{_mandir}/man1/ndb_cpcd.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/ndb_cpcd.1*
 %endif
+
+%files router
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}-router
+%{_sysconfdir}/ld.so.conf.d/%{name}-router.conf
+%dir %{_libdir}/mysql/%{mysqlversion}/router
+%dir %{_libdir}/mysql/%{mysqlversion}/router/private
+%attr(750,root,root) %dir /var/lib/mysqlrouter/%{mysqlversion}
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_keyring
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_passwd
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/bin/mysqlrouter_plugin_info
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/connection_pool.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/destination_status.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_auth_backend.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_auth_realm.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/http_server.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/io.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/keepalive.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/metadata_cache.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_api.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_connection_pool.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_metadata_cache.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_router.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/rest_routing.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/router_openssl.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/router_protobuf.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/routing.so
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/private/libmysqlharness*.so*
+%attr(755,root,root) %{_libdir}/mysql/%{mysqlversion}/router/private/libmysqlrouter*.so*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_passwd.1*
+%{_datadir}/mysql/%{mysqlversion}/man/man1/mysqlrouter_plugin_info.1*
+%attr(750,mysqlrouter,mysqlrouter) %dir /var/log/mysqlrouter/%{mysqlversion}
+%attr(750,mysqlrouter,mysqlrouter) %dir /var/log/archive/mysqlrouter/%{mysqlversion}
+%attr(640,mysql,mysql) %ghost /var/log/mysqlrouter/%{mysqlversion}/*