# TODO:
-# - make response_time_distribution.patch compatible with i386 alpha sparc ppc arches
# - 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) ?
%bcond_without federated # Federated storage engine support
%bcond_without raid # RAID support
%bcond_without ssl # OpenSSL support
+%bcond_without systemtap # systemtap/dtrace probes
%bcond_without tcpd # libwrap (tcp_wrappers) support
%bcond_without sphinx # Sphinx storage engine support
%bcond_with tests # FIXME: don't run correctly
%bcond_with ndb # NDB is now a separate product, this here is broken, so disable it
-%define percona_rel 31.0
-%include /usr/lib/rpm/macros.perl
+%define percona_rel 38.14
Summary: MySQL: a very fast and reliable SQL database engine
Summary(de.UTF-8): MySQL: ist eine SQL-Datenbank
Summary(fr.UTF-8): MySQL: un serveur SQL rapide et fiable
Summary(uk.UTF-8): MySQL - швидкий SQL-сервер
Summary(zh_CN.UTF-8): MySQL数据库服务器
Name: mysql
-Version: 5.5.32
-Release: 1
+Version: 5.5.62
+Release: 2
License: GPL + MySQL FLOSS Exception
Group: Applications/Databases
# Source0Download: http://dev.mysql.com/downloads/mysql/5.5.html#downloads
# Source0: http://vesta.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.5/%{name}-%{version}.tar.gz
-Source0: http://www.percona.com/redir/downloads/Percona-Server-5.5/LATEST/source/Percona-Server-%{version}-rel%{percona_rel}.tar.gz
-# Source0-md5: aafbc2a94353d68b5cbfbeddb7eb2e08
-Source100: http://www.sphinxsearch.com/files/sphinx-2.0.8-release.tar.gz
-# Source100-md5: bcaf0af0ba403a43b9ef3af6f9599cb4
+Source0: http://www.percona.com/redir/downloads/Percona-Server-5.5/LATEST/source/tarball/percona-server-%{version}-%{percona_rel}.tar.gz
+# Source0-md5: 45d793f1886528fa64675e1c12b54796
+Source100: http://www.sphinxsearch.com/files/sphinx-2.2.11-release.tar.gz
+# Source100-md5: 5cac34f3d78a9d612ca4301abfcbd666
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
Source14: my.cnf
# from fedora
Source15: lib%{name}.version
-
-Patch2: mysqlhotcopy-5.0-5.5.patch
+Patch0: x32.patch
+Patch2: %{name}hotcopy-5.0-5.5.patch
Patch3: bug-67402.patch
# from fedora
Patch6: %{name}-system-users.patch
-Patch8: %{name}-client-config.patch
Patch9: %{name}-build.patch
Patch11: %{name}-upgrade.patch
Patch12: %{name}-config.patch
Patch19: %{name}-chain-certs.patch
# from fedora
Patch20: %{name}-dubious-exports.patch
+
+Patch22: bug-66589.patch
URL: http://www.mysql.com/products/community/
-BuildRequires: bison
+BuildRequires: bison >= 1.875
BuildRequires: cmake >= 2.6
BuildRequires: groff
%if "%{pld_release}" == "ac"
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpmbuild(macros) >= 1.597
BuildRequires: sed >= 4.0
+%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
BuildRequires: zlib-devel
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
-Requires(triggerpostun): sed >= 4.0
+Requires(postun): sed >= 4.0
Requires: %{name}-charsets = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Requires: /usr/bin/setsid
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
Ten pakiet zawiera standardowego demona MySQL NDB CPC.
%prep
-%setup -q -n Percona-Server-%{version}-rel%{percona_rel} %{?with_sphinx:-a100}
+%setup -q -n percona-server-%{version}-%{percona_rel} %{?with_sphinx:-a100}
+
+# 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}
+
%if %{with sphinx}
# http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
mv sphinx-*/mysqlse storage/sphinx
%patch18 -p1
%endif
+%patch0 -p1
+
%patch2 -p1
%patch3 -p1
%patch6 -p1
-%patch8 -p1
%patch9 -p1
%patch11 -p1
%patch12 -p1
-%patch14 -p0
+%patch14 -p1
%patch19 -p1
%patch20 -p1
+%patch22 -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
%cmake \
-DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
- -DFEATURE_SET="community" \
-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" \
- -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
- -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
+ -DCOMPILATION_COMMENT="PLD/Linux Distribution MySQL RPM" \
+ -DCURSES_INCLUDE_PATH=/usr/include/ncurses \
+ %{?with_systemtap:-DENABLE_DTRACE=ON} \
+ -DFEATURE_SET="community" \
+ -DINSTALL_LAYOUT=RPM \
+ -DINSTALL_LIBDIR=%{_lib} \
+ -DINSTALL_MYSQLTESTDIR_RPM="" \
+ -DINSTALL_PLUGINDIR=%{_lib}/%{name}/plugin \
+ -DINSTALL_SQLBENCHDIR=%{_datadir} \
+ -DINSTALL_SUPPORTFILESDIR=share/%{_orgname}-support \
+ -DINSTALL_MYSQLSHAREDIR=share/%{_orgname} \
+ -DINSTALL_SECURE_FILE_PRIVDIR="" \
+ -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
%{?debug:-DWITH_DEBUG=ON} \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=ON \
- -DWITH_PIC=ON \
-DWITH_LIBEDIT=OFF \
+ -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
+ -DWITH_PAM=ON \
+ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
+ -DWITH_PIC=ON \
-DWITH_READLINE=OFF \
+ -DWITH_SCALABILITY_METRICS=ON \
%if "%{pld_release}" == "ac"
-DWITH_SSL=%{?with_ssl:bundled}%{!?with_ssl:no} \
%else
-DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
%endif
- -DWITH_ZLIB=system \
- -DWITH_PAM=ON \
- -DCOMPILATION_COMMENT="PLD/Linux Distribution MySQL RPM" \
- -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
-DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
- -DCURSES_INCLUDE_PATH=/usr/include/ncurses \
- -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
- -DINSTALL_LAYOUT=RPM \
- -DINSTALL_MYSQLTESTDIR_RPM="" \
- -DINSTALL_SQLBENCHDIR=%{_datadir} \
- -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
- -DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \
- -DINSTALL_LIBDIR=%{_lib} \
+ -DWITH_ZLIB=system \
..
%{__make}
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{%{_infodir},%{_mysqlhome}} \
+ $RPM_BUILD_ROOT%{_mysqlhome} \
$RPM_BUILD_ROOT%{_libdir}
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-cp -a Docs/mysql.info $RPM_BUILD_ROOT%{_infodir}
-
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
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 mysqld.conf $RPM_BUILD_ROOT%{_datadir}/%{_orgname}/mysqld.conf
cp -a %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/mysql-client.conf
+ln -s mysql-client.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/my.cnf
cp -a %{SOURCE14} $RPM_BUILD_ROOT/etc/skel/.my.cnf
# NDB
sed -i -e 's,/usr//usr,%{_prefix},g' $RPM_BUILD_ROOT%{_bindir}/mysql_config
sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
+sed -i -e '/libs/s/-lprobes_mysql//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
# remove known unpackaged files
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-support
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{_orgname}-support
# rename not to be so generic name
mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
%{!?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.
+# mysql_resolve_stack_dump -s %{_datadir}/%{_orgname}/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}
+%{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/%{_orgname}/mysqld.sym}
# do not clobber users $PATH
mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_plugin
%{__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%{_datadir}/%{_orgname}/mysql-log-rotate
+#rm $RPM_BUILD_ROOT%{_datadir}/%{_orgname}/mysql.server
+#rm $RPM_BUILD_ROOT%{_datadir}/%{_orgname}/binary-configure
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{_orgname}/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*
# we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_client_test
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test.1*
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test_embedded.1*
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql-stress-test.pl.1*
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql-test-run.pl.1*
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-test
# not needed
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.* \
-${__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/daemon_example.ini
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/daemon_example.ini
+
+# not an .info file
+%{__rm} $RPM_BUILD_ROOT%{_infodir}/mysql.info
%clean
rm -rf $RPM_BUILD_ROOT
%useradd -u 89 -d %{_mysqlhome} -s /bin/sh -g mysql -c "MySQL Server" mysql
%post
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
/sbin/ldconfig
/sbin/chkconfig --add mysql
%service mysql restart
fi
%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
/sbin/ldconfig
-
if [ "$1" = "0" ]; then
%userremove mysql
%groupremove mysql
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
-%triggerpostun -- mysql < 4.0.20-2.4
+%triggerpostun -- mysql < 5.5.0
+# < 4.0.20-2.4
# For clusters in /etc/%{name}/clusters.conf
if [ -f /etc/sysconfig/mysql ]; then
. /etc/sysconfig/mysql
fi
fi
-%triggerpostun -- mysql < 4.1.1
+# 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
%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
+ mysql -u mysql mysql < %{_datadir}/%{_orgname}/fill_help_tables.sql
EOF
#'
-%triggerpostun -- mysql < 5.1.0
+# < 5.1.0
configs=""
for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
if echo "$config" | grep -q '^/'; then
done
) | %banner -e %{name}-5.1
-%triggerpostun -- mysql < 5.5.0
+# < 5.5.0
configs=""
for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
if echo "$config" | grep -q '^/'; then
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugin
%attr(755,root,root) %{_libdir}/%{name}/plugin/adt_null.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/audit_log.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/auth.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/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/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/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/scalability_metrics.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_master.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_slave.so
%if %{with sphinx}
%if %{?debug:1}0
%attr(755,root,root) %{_bindir}/*resolve_stack_dump
-%{_datadir}/%{name}/mysqld.sym
+%{_datadir}/%{_orgname}/mysqld.sym
%{_mandir}/man1/*resolve_stack_dump.1*
%endif
%attr(750,mysql,mysql) %dir /var/log/archive/mysql
%attr(640,mysql,mysql) %ghost /var/log/mysql/*
-%{_infodir}/mysql.info*
# This is template for configuration file which is created after 'service mysql init'
-%{_datadir}/%{name}/mysqld.conf
-%{_datadir}/%{name}/mysql_system_tables.sql
-%{_datadir}/%{name}/mysql_system_tables_data.sql
-%{_datadir}/%{name}/mysql_test_data_timezone.sql
-
-%{_datadir}/%{name}/english
-%{_datadir}/%{name}/fill_help_tables.sql
-#%{_datadir}/%{name}/mysql_fix_privilege_tables.sql
-%lang(cs) %{_datadir}/%{name}/czech
-%lang(da) %{_datadir}/%{name}/danish
-%lang(de) %{_datadir}/%{name}/german
-%lang(el) %{_datadir}/%{name}/greek
-%lang(es) %{_datadir}/%{name}/spanish
-%lang(et) %{_datadir}/%{name}/estonian
-%lang(fr) %{_datadir}/%{name}/french
-%lang(hu) %{_datadir}/%{name}/hungarian
-%lang(it) %{_datadir}/%{name}/italian
-%lang(ja) %{_datadir}/%{name}/japanese
-%lang(ko) %{_datadir}/%{name}/korean
-%lang(nl) %{_datadir}/%{name}/dutch
-%lang(nb) %{_datadir}/%{name}/norwegian
-%lang(nn) %{_datadir}/%{name}/norwegian-ny
-%lang(pl) %{_datadir}/%{name}/polish
-%lang(pt) %{_datadir}/%{name}/portuguese
-%lang(ro) %{_datadir}/%{name}/romanian
-%lang(ru) %{_datadir}/%{name}/russian
-%lang(sr) %{_datadir}/%{name}/serbian
-%lang(sk) %{_datadir}/%{name}/slovak
-%lang(sv) %{_datadir}/%{name}/swedish
-%lang(uk) %{_datadir}/%{name}/ukrainian
+%{_datadir}/%{_orgname}/mysqld.conf
+%{_datadir}/%{_orgname}/mysql_system_tables.sql
+%{_datadir}/%{_orgname}/mysql_system_tables_data.sql
+%{_datadir}/%{_orgname}/mysql_test_data_timezone.sql
+
+%{_datadir}/%{_orgname}/english
+%{_datadir}/%{_orgname}/fill_help_tables.sql
+#%{_datadir}/%{_orgname}/mysql_fix_privilege_tables.sql
+%lang(cs) %{_datadir}/%{_orgname}/czech
+%lang(da) %{_datadir}/%{_orgname}/danish
+%lang(de) %{_datadir}/%{_orgname}/german
+%lang(el) %{_datadir}/%{_orgname}/greek
+%lang(es) %{_datadir}/%{_orgname}/spanish
+%lang(et) %{_datadir}/%{_orgname}/estonian
+%lang(fr) %{_datadir}/%{_orgname}/french
+%lang(hu) %{_datadir}/%{_orgname}/hungarian
+%lang(it) %{_datadir}/%{_orgname}/italian
+%lang(ja) %{_datadir}/%{_orgname}/japanese
+%lang(ko) %{_datadir}/%{_orgname}/korean
+%lang(nl) %{_datadir}/%{_orgname}/dutch
+%lang(nb) %{_datadir}/%{_orgname}/norwegian
+%lang(nn) %{_datadir}/%{_orgname}/norwegian-ny
+%lang(pl) %{_datadir}/%{_orgname}/polish
+%lang(pt) %{_datadir}/%{_orgname}/portuguese
+%lang(ro) %{_datadir}/%{_orgname}/romanian
+%lang(ru) %{_datadir}/%{_orgname}/russian
+%lang(sr) %{_datadir}/%{_orgname}/serbian
+%lang(sk) %{_datadir}/%{_orgname}/slovak
+%lang(sv) %{_datadir}/%{_orgname}/swedish
+%lang(uk) %{_datadir}/%{_orgname}/ukrainian
%files charsets
%defattr(644,root,root,755)
-%dir %{_datadir}/mysql
-%{_datadir}/%{name}/charsets
+%dir %{_datadir}/%{_orgname}
+%{_datadir}/%{_orgname}/charsets
%files extras
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%attr(751,root,root) %dir %{_sysconfdir}/mysql
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/mysql-client.conf
+%{_sysconfdir}/%{name}/my.cnf
%attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.18
%attr(755,root,root) %{_libdir}/libmysqlclient_r.so.*.*.*
%{_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)