]> TLD Linux GIT Repositories - packages/mysql.git/blobdiff - mysql.spec
- Percona Server 5.7 from PLD, renamed back to MySQL
[packages/mysql.git] / mysql.spec
index 5fc80051d4b4deec42d4b2d41894f102312a8ab0..b38b30dd2fac3c596385f6b2894a66b365ed7f27 100644 (file)
@@ -9,6 +9,16 @@
 # - 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 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    sphinx          # Sphinx storage engine support
+%bcond_without tokudb          # TokuDB
+%bcond_without 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    ndb             # NDB is now a separate product, this here is broken, so disable it
 
+# tokudb is only supported on x86_64
+%ifnarch %{x8664}
+%undefine      with_rocksdb
+%undefine      with_tokudb
+%endif
+
 %define                rel     1
-%define                percona_rel     76.2
+%define                percona_rel     20
 %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
@@ -35,18 +55,22 @@ Summary(ru.UTF-8):  MySQL - быстрый SQL-сервер
 Summary(uk.UTF-8):     MySQL - швидкий SQL-сервер
 Summary(zh_CN.UTF-8):  MySQL数据库服务器
 Name:          mysql
-Version:       5.6.29
+Version:       5.7.21
 Release:       %{percona_rel}.%{rel}
 License:       GPL + MySQL FLOSS Exception
 Group:         Applications/Databases
-Source0:       http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source/tarball/percona-server-%{version}-%{percona_rel}.tar.gz
-# Source0-md5: 8a0e3327e5b850852af6b9ca614d6bd7
-Source100:     http://www.sphinxsearch.com/files/sphinx-2.2.10-release.tar.gz
-# Source100-md5:       dda52b24d8348fc09e26d8a649a231d2
+Source0:       https://www.percona.com/downloads/Percona-Server-5.7/LATEST/source/tarball/%{name}-%{version}-%{percona_rel}.tar.gz
+# Source0-md5: e5cf31dd63d268e78c247ffd3bde0164
+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-md5:       6aa9a5c6a4ca1016edd0ed1178e3cb87
+%endif
 Source1:       %{name}.init
 Source2:       %{name}.sysconfig
 Source3:       %{name}.logrotate
-Source4:       %{name}d.conf
+Source4:       mysqld.conf
 Source5:       %{name}-clusters.conf
 Source7:       %{name}-ndb.init
 Source8:       %{name}-ndb.sysconfig
@@ -56,35 +80,36 @@ Source11:   %{name}-ndb-cpc.init
 Source12:      %{name}-ndb-cpc.sysconfig
 Source13:      %{name}-client.conf
 Source14:      my.cnf
-Patch1:                %{name}-versioning.patch
-Patch2:                %{name}hotcopy-5.0-5.5.patch
-Patch3:                bug-67402.patch
-Patch4:                %{name}-no-default-secure-auth.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
+Patch0:                mysql-opt.patch
+Patch1:                mysql-versioning.patch
+
+Patch7:                lz4.patch
+
+Patch11:       mysql-upgrade.patch
+Patch12:       mysql-config.patch
+Patch18:       mysql-sphinx.patch
+Patch19:       mysql-chain-certs.patch
 # from fedora
-Patch20:       %{name}-dubious-exports.patch
-Patch21:       bug-66589.patch
-Patch22:       bug-44278.patch
-URL:           http://www.mysql.com/products/community/
+Patch20:       mysql-dubious-exports.patch
+
+Patch24:       mysql-cmake.patch
+URL:           https://www.percona.com/software/mysql-database/percona-server
 BuildRequires: bison >= 1.875
-BuildRequires: cmake >= 2.6
+BuildRequires: cmake >= 2.8.2
+BuildRequires: curl-devel
 BuildRequires: readline-devel >= 6.2
 BuildRequires: libstdc++-devel >= 5:4.0
 BuildRequires: automake
+%{?with_system_boost:BuildRequires:    boost-devel = 1.59.0}
+BuildRequires: libhsclient-devel
 %{?with_tcpd:BuildRequires:    libwrap-devel}
+BuildRequires: mecab-devel
 BuildRequires: ncurses-devel >= 4.2
 %{?with_ssl:BuildRequires:     openssl-devel >= 0.9.7d}
 BuildRequires: pam-devel
 %{?with_autodeps:BuildRequires:        perl-DBI}
 BuildRequires: perl-devel >= 1:5.6.1
+BuildRequires: protobuf-devel
 BuildRequires: python-modules
 BuildRequires: rpm-perlprov >= 4.1-13
 BuildRequires: rpmbuild(macros) >= 1.597
@@ -115,111 +140,115 @@ Obsoletes:      mysql-server
 Conflicts:     logrotate < 3.8.0
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _orgname        percona-server
 %define                _libexecdir     %{_sbindir}
 %define                _localstatedir  /var/lib/mysql
-%define                _mysqlhome      /home/services/mysql
+%define                _mysqlhome      /home/services/%{name}
 
 %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 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
+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
 funções muito ricas e úteis. Veja a documentação para maiores
 informações.
 
 %description -l ru.UTF-8
-MySQL - это SQL (Structured Query Language) сервер базы данных. MySQL
±Ñ\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) сервер базы
´Ð°Ð½Ð½Ñ\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.
 
 %description -l uk.UTF-8
-MySQL - це SQL (Structured Query Language) сервер бази даних. MySQL
-було написано Michael'ом (monty) Widenius'ом. Див. файл CREDITS в
-дистрибутиві для інформації про інших учасників проекту та іншої
-інформації.
+MySQL - це SQL (Structured Query Language) сервер бази даних.
+MySQL було написано Michael'ом (monty) Widenius'ом. Див. файл
+CREDITS в дистрибутиві для інформації про інших учасників проекту та
\96нÑ\88оÑ\97 Ñ\96нÑ\84оÑ\80маÑ\86Ñ\96Ñ\97.
 
 %package charsets
 Summary:       MySQL - character sets definitions
@@ -234,32 +263,6 @@ 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
-
-%description -n mysqlhotcopy
-mysqlhotcopy uses LOCK TABLES, FLUSH TABLES, and cp or scp to make a
-database backup quickly. It is the fastest way to make a backup of the
-database or single tables, but it can be run only on the same machine
-where the database directories are located. mysqlhotcopy works only
-for backing up MyISAM and ARCHIVE tables.
-
-See innobackup package to backup InnoDB tables.
-
-%description -n mysqlhotcopy -l pl.UTF-8
-mysqlhotcopy wykorzystuje LOCK TABLES, FLUSH TABLES oraz cp i scp do
-szybkiego tworzenia kopii zapasowych baz danych. Jest to najszybszy
-sposób wykonania kopii zapasowej bazy danych lub pojedynczych tabel,
-ale może działać tylko na maszynie, na której znajdują się katalogi z
-bazą danych. mysqlhotcopy działa tylko dla tabel typu MyISAM i
-ARCHIVE.
-
-Narzędzie do tworzenia kopii tabel InnoDB znajduje się w pakiecie
-innobackup.
-
 %package extras
 Summary:       MySQL additional utilities
 Summary(pl.UTF-8):     Dodatkowe narzędzia do MySQL
@@ -268,21 +271,19 @@ Requires: %{name}-client = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description extras
-MySQL additional utilities except Perl scripts (they may be found in
-%{name}-extras-perl package).
+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(pl.UTF-8):     Dodatkowe narzędzia do MySQL napisane w Perlu
 Group:         Applications/Databases
 Requires:      %{name}-extras = %{version}-%{release}
-# this is just for the sake of smooth upgrade, not to break systems
-Requires:      mysqlhotcopy = %{version}-%{release}
-Requires:      perl(DBD::mysql)
+Requires:      perl-DBD-mysql
 
 %description extras-perl
 MySQL additional utilities written in Perl.
@@ -341,10 +342,11 @@ Summary(ru.UTF-8):        MySQL - хедеры и библиотеки разработ
 Summary(uk.UTF-8):     MySQL - хедери та бібліотеки програміста
 Group:         Development/Libraries
 Requires:      %{name}-libs = %{version}-%{release}
-%{?with_ssl:Requires:  openssl-devel}
+%{?with_ssl:Requires: openssl-devel}
 Requires:      zlib-devel
 Obsoletes:     MySQL-devel
 Obsoletes:     libmysql10-devel
+Obsoletes:     webscalesql-devel
 
 %description devel
 This package contains the development header files and other files
@@ -361,7 +363,8 @@ klienckich MySQL.
 
 %description devel -l pt_BR.UTF-8
 Este pacote contém os arquivos de cabeçalho (header files) e
-bibliotecas necessárias para desenvolver aplicações clientes do MySQL.
+bibliotecas necessárias para desenvolver aplicações clientes do
+MySQL.
 
 %description devel -l ru.UTF-8
 Этот пакет содержит хедеры и библиотеки разработчика, необходимые для
@@ -413,14 +416,16 @@ This package contains MySQL benchmark scripts and data.
 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
-Цей пакет містить скрипти та дані для оцінки продуктивності MySQL.
+Цей пакет містить скрипти та дані для оцінки продуктивності Percona
+Server.
 
 %package doc
 Summary:       MySQL manual
@@ -440,7 +445,8 @@ Group:              Applications/Databases
 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
@@ -465,10 +471,12 @@ Group:            Applications/Databases
 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
@@ -483,11 +491,9 @@ This package contains the standard MySQL NDB CPC Daemon.
 Ten pakiet zawiera standardowego demona MySQL NDB CPC.
 
 %prep
-%setup -q -n percona-server-%{version}-%{percona_rel} %{?with_sphinx:-a100}
+%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.*
+%patch0 -p1
 
 %if %{with sphinx}
 # http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
@@ -495,27 +501,20 @@ mv sphinx-*/mysqlse storage/sphinx
 %patch18 -p1
 %endif
 %patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
 
-%patch6 -p1
+%patch7 -p1
 
-%patch9 -p1
-%patch11 -p1
-%patch12 -p1
-%patch14 -p0
 %patch19 -p1
 %patch20 -p1
-%patch21 -p1
-%patch22 -p1
+
+%patch24 -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
+#cp -p libmysql/libmysql.map libmysql/libmysql.ver.in
 
 %build
 install -d build
@@ -524,10 +523,13 @@ 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_DEBUG="-fno-omit-frame-pointer -fno-strict-aliasing -Wimplicit-fallthrough=0" \
+       -DCMAKE_CXX_FLAGS_DEBUG="-fno-omit-frame-pointer -fno-strict-aliasing -Wimplicit-fallthrough=0" \
+       -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing -Wimplicit-fallthrough=0" \
+       -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing -Wimplicit-fallthrough=0" \
        -DCOMPILATION_COMMENT="TLD Linux MySQL RPM" \
        -DCURSES_INCLUDE_PATH=/usr/include/ncurses \
        %{?with_systemtap:-DENABLE_DTRACE=ON} \
@@ -535,10 +537,12 @@ cd build
        -DINSTALL_LAYOUT=RPM \
        -DINSTALL_LIBDIR=%{_lib} \
        -DINSTALL_MYSQLTESTDIR_RPM="" \
-       -DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \
+       -DINSTALL_PLUGINDIR=%{_lib}/%{name}/plugin \
        -DINSTALL_SQLBENCHDIR=%{_datadir} \
-       -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
-       -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
+       -DINSTALL_SUPPORTFILESDIR=share/%{name}-support \
+       -DINSTALL_MYSQLSHAREDIR=share/%{name} \
+       -DINSTALL_SECURE_FILE_PRIVDIR="" \
+       -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
        %{?debug:-DWITH_DEBUG=ON} \
        -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
        -DWITH_FAST_MUTEXES=ON \
@@ -546,13 +550,21 @@ cd build
        -DWITH_PAM=ON \
        -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
        -DWITH_PIC=ON \
-       -DWITH_READLINE=system \
+       -DWITH_SCALABILITY_METRICS=ON \
        -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
-       -DWITHOUT_TOKUDB=1 \
-       -DWITHOUT_TOKUDB_STORAGE_ENGINE=1 \
        -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests: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_ZLIB=system \
-       ..
+       -DWITH_READLINE=system \
+       -DWITH_LZ4=system \
+       -DWITH_LIBEVENT=system \
+       -DWITH_PROTOBUF=system \
+       -DWITH_MECAB=system \
+       -DTMPDIR=/var/tmp
 
 %{__make}
 
@@ -560,17 +572,17 @@ 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} \
+install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,%{name},skel} \
+          $RPM_BUILD_ROOT/var/{log/{archive,}/%{name},lib/mysql} \
           $RPM_BUILD_ROOT%{_mysqlhome} \
           $RPM_BUILD_ROOT%{_libdir}
 
 %{__make} -C build install \
        DESTDIR=$RPM_BUILD_ROOT
 
-install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql
-cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/mysql
-cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mysql
+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}
 # 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
@@ -593,12 +605,12 @@ 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
@@ -613,7 +625,7 @@ 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},%{_sysconfdir}}/mysqlaccess.conf
 
 # not useful without -debug build
 %{!?debug:%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
@@ -630,6 +642,7 @@ 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
@@ -639,9 +652,12 @@ mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck
 %{__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%{_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*
@@ -672,13 +688,13 @@ rm -rf $RPM_BUILD_ROOT
 
 %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
 
 %postun
@@ -689,186 +705,54 @@ if [ "$1" = "0" ]; then
 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
 
 %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
 
 %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 "mysql 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
-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
-
 %files
 %defattr(644,root,root,755)
-%doc build/support-files/*.cnf
+%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}/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
@@ -877,30 +761,89 @@ done
 %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.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_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
+%attr(755,root,root) %{_libdir}/%{name}/plugin/connection_control.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/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/handlersocket.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/mysqlx.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
-%attr(755,root,root) %{_libdir}/libmysqlservices.so
+#%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*
@@ -915,44 +858,50 @@ done
 %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/%{name}
+%attr(750,mysql,mysql) %dir /var/log/archive/%{name}
+%attr(640,mysql,mysql) %ghost /var/log/%{name}/*
 
 # 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_system_tables_data.sql
+%{_datadir}/%{name}/mysql_sys_schema.sql
 %{_datadir}/%{name}/mysql_system_tables.sql
+%{_datadir}/%{name}/mysql_system_tables_data.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
-%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}/%{name}/mysql_fix_privilege_tables.sql
+# Don't mark these with %%lang. These are used depending
+# on database client settings.
+%{_datadir}/%{name}/bulgarian
+%{_datadir}/%{name}/czech
+%{_datadir}/%{name}/danish
+%{_datadir}/%{name}/german
+%{_datadir}/%{name}/greek
+%{_datadir}/%{name}/spanish
+%{_datadir}/%{name}/estonian
+%{_datadir}/%{name}/french
+%{_datadir}/%{name}/hungarian
+%{_datadir}/%{name}/italian
+%{_datadir}/%{name}/japanese
+%{_datadir}/%{name}/korean
+%{_datadir}/%{name}/dutch
+%{_datadir}/%{name}/norwegian
+%{_datadir}/%{name}/norwegian-ny
+%{_datadir}/%{name}/polish
+%{_datadir}/%{name}/portuguese
+%{_datadir}/%{name}/romanian
+%{_datadir}/%{name}/russian
+%{_datadir}/%{name}/serbian
+%{_datadir}/%{name}/slovak
+%{_datadir}/%{name}/swedish
+%{_datadir}/%{name}/ukrainian
 
 %files charsets
 %defattr(644,root,root,755)
@@ -961,7 +910,7 @@ done
 
 %files extras
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/msql2mysql
+#%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
@@ -969,7 +918,7 @@ done
 %attr(755,root,root) %{_bindir}/perror
 %attr(755,root,root) %{_bindir}/replace
 %attr(755,root,root) %{_bindir}/resolveip
-%{_mandir}/man1/msql2mysql.1*
+#%{_mandir}/man1/msql2mysql.1*
 %{_mandir}/man1/myisam_ftdump.1*
 %{_mandir}/man1/mysql_install_db.1*
 %{_mandir}/man1/mysql_secure_installation.1*
@@ -978,58 +927,61 @@ done
 %{_mandir}/man1/replace.1*
 %{_mandir}/man1/resolveip.1*
 
-%files -n mysqlhotcopy
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/mysqlhotcopy
-%{_mandir}/man1/mysqlhotcopy.1*
-
 %files extras-perl
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/mysql_convert_table_format
-%attr(755,root,root) %{_bindir}/mysql_find_rows
-%attr(755,root,root) %{_bindir}/mysql_fix_extensions
-%attr(755,root,root) %{_bindir}/mysql_setpermission
-%attr(755,root,root) %{_bindir}/mysql_zap
-%attr(755,root,root) %{_bindir}/mysqlaccess
+#%attr(755,root,root) %{_bindir}/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*
+#%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysqlaccess.conf
+#%{_mandir}/man1/mysql_convert_table_format.1*
+#%{_mandir}/man1/mysql_find_rows.1*
+#%{_mandir}/man1/mysql_fix_extensions.1*
+#%{_mandir}/man1/mysql_setpermission.1*
+#%{_mandir}/man1/mysql_zap.1*
+#%{_mandir}/man1/mysqlaccess.1*
 %{_mandir}/man1/mysqldumpslow.1*
 
 %files client
 %defattr(644,root,root,755)
 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/skel/.my.cnf
+%attr(755,root,root) %{_bindir}/lz4_decompress
 %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}/mysqlbug
-%attr(755,root,root) %{_bindir}/mysql_config_editor
+#%attr(755,root,root) %{_bindir}/mysqlbug
 %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/mysqlbug.1*
-%{_mandir}/man1/mysql_config_editor.1*
+#%{_mandir}/man1/mysqlbug.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}/mysql
+%attr(751,root,root) %dir %{_sysconfdir}/%{name}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/mysql-client.conf
 %{_sysconfdir}/%{name}/my.cnf
-%attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.18
-%attr(755,root,root) %{_libdir}/libmysqlclient_r.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmysqlclient_r.so.18
+%attr(755,root,root) %{_libdir}/libperconaserverclient.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libperconaserverclient.so.20
+#%attr(755,root,root) %{_libdir}/libperconaserverclient_r.so.*.*.*
+#%attr(755,root,root) %ghost %{_libdir}/libperconaserverclient_r.so.18
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
@@ -1038,21 +990,24 @@ done
 %files devel
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/mysql_config
-%attr(755,root,root) %{_libdir}/libmysqlclient.so
-%attr(755,root,root) %{_libdir}/libmysqlclient_r.so
+%attr(755,root,root) %{_libdir}/libperconaserverclient.so
+#%attr(755,root,root) %{_libdir}/libperconaserverclient_r.so
+%{_pkgconfigdir}/perconaserverclient.pc
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so
 %endif
+#%{_includedir}/backup.h
 # static-only so far
 %{_libdir}/libmysqld.a
+%{_libdir}/libmysqlservices.a
 %{_includedir}/mysql
 %{_aclocaldir}/mysql.m4
 %{_mandir}/man1/mysql_config.1*
 
 %files static
 %defattr(644,root,root,755)
-%{_libdir}/libmysqlclient.a
-%{_libdir}/libmysqlclient_r.a
+%{_libdir}/libperconaserverclient.a
+#%{_libdir}/libperconaserverclient_r.a
 %if %{with ndb}
 %{_libdir}/libndbclient.a
 %endif
@@ -1061,19 +1016,23 @@ done
 %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]*
+#%dir %{_datadir}/sql-bench
+#%{_datadir}/sql-bench/[CDRl]*
+#%attr(755,root,root) %{_datadir}/sql-bench/[bcgirst]*
 %{_mandir}/man1/mysqlslap.1*
 %{_mandir}/man1/mysqltest.1*
 %{_mandir}/man1/mysqltest_embedded.1*
 
+#%files doc
+#%defattr(644,root,root,755)
+#%doc Docs/manual.html Docs/manual_toc.html
+
 %if %{with ndb}
 %files ndb
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_sbindir}/ndbd
-%attr(754,root,root) /etc/rc.d/init.d/mysql-ndb
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb
+%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
 %{_mandir}/man1/ndbd_redo_log_reader.1*
 %{_mandir}/man8/ndbd.8*
 
@@ -1116,14 +1075,14 @@ done
 %files ndb-mgm
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_sbindir}/ndb_mgmd
-%attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-mgm
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-mgm
+%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
 %{_mandir}/man8/ndb_mgmd.8*
 
 %files ndb-cpc
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_sbindir}/ndb_cpcd
 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-cpc
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}-ndb-cpc
 %{_mandir}/man1/ndb_cpcd.1*
 %endif