%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.1
+%define rel 0.1
+%define percona_rel 65.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(uk.UTF-8): MySQL - швидкий SQL-сервер
Summary(zh_CN.UTF-8): MySQL数据库服务器
Name: mysql
-Version: 5.5.33
-Release: 1
+Version: 5.6.17
+Release: %{percona_rel}.%{rel}
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: 4a1c053dbdda4bb643f7ab13a9776f34
-Source100: http://www.sphinxsearch.com/files/sphinx-2.0.9-release.tar.gz
-# Source100-md5: b5a2ff137c00d8490a5e1107bd0b5903
+Source0: http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source/tarball/percona-server-%{version}-%{percona_rel}.tar.gz
+# Source0-md5: 064e0c9275ec87fd7a16a32c28a9963b
+Source100: http://www.sphinxsearch.com/files/sphinx-2.1.8-release.tar.gz
+# Source100-md5: ef21091bb30a82f175be5bf9142490b7
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
Source12: %{name}-ndb-cpc.sysconfig
Source13: %{name}-client.conf
Source14: my.cnf
-# from fedora
-Source15: lib%{name}.version
+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
Patch19: %{name}-chain-certs.patch
# from fedora
Patch20: %{name}-dubious-exports.patch
-Patch21: bison3.patch
+Patch21: bug-66589.patch
+Patch22: bug-44278.patch
+Patch23: %{name}-cmake.patch
+Patch24: %{name}-readline.patch
URL: http://www.mysql.com/products/community/
BuildRequires: bison >= 1.875
BuildRequires: cmake >= 2.6
-BuildRequires: groff
+BuildRequires: readline-devel >= 6.2
BuildRequires: libstdc++-devel >= 5:4.0
-BuildRequires: libtool
+BuildRequires: automake
%{?with_tcpd:BuildRequires: libwrap-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: readline-devel >= 4.2
+BuildRequires: python-modules
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpmbuild(macros) >= 1.597
BuildRequires: sed >= 4.0
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
Group: Applications/Databases
Requires: %{name}-charsets = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
+Requires: readline >= 6.2
Obsoletes: MySQL-client
%description client
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} scripts/mysql_config.*
+
%if %{with sphinx}
# http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
mv sphinx-*/mysqlse storage/sphinx
%patch18 -p1
%endif
+%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%patch6 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
+%patch22 -p1
+%patch23 -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
+# map has more sane versioning that default "global everything" in ver.in
+cp -p libmysql/libmysql.map libmysql/libmysql.ver.in
+
%build
install -d build
cd build
# (it defaults to first cluster but user may change it to whatever
# cluster it wants)
-# upstream has fallen down badly on symbol versioning, do it ourselves
-install -d libmysql
-cp -a %{SOURCE15} libmysql/libmysql.version
-
%cmake \
-DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
-DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
-DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
- -DCOMPILATION_COMMENT="TLD Linux MySQL RPM" \
+ -DCOMPILATION_COMMENT="PLD/Linux Distribution MySQL RPM" \
-DCURSES_INCLUDE_PATH=/usr/include/ncurses \
- %{!?with_systemtap:-DENABLE_DTRACE=OFF} \
+ %{?with_systemtap:-DENABLE_DTRACE=ON} \
-DFEATURE_SET="community" \
-DINSTALL_LAYOUT=RPM \
-DINSTALL_LIBDIR=%{_lib} \
-DINSTALL_MYSQLTESTDIR_RPM="" \
-DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \
-DINSTALL_SQLBENCHDIR=%{_datadir} \
- -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
+ -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{_orgname}-support \
-DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
%{?debug:-DWITH_DEBUG=ON} \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=ON \
- -DWITH_LIBEDIT=OFF \
-DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
-DWITH_PAM=ON \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_PIC=ON \
- -DWITH_READLINE=OFF \
+ -DWITH_EDITLINE=system \
-DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
-DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
-DWITH_ZLIB=system \
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
cp -a %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
%endif
-# symlinks point to the .so file, fix it
-ln -sf libmysqlclient.so.18 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.18
-ln -sf libmysqlclient.so.18.0.0 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.18.0.0
-
sed -i -e 's,/usr//usr,%{_prefix},g' $RPM_BUILD_ROOT%{_bindir}/mysql_config
sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
sed -i -e '/libs/s/-lprobes_mysql//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
# remove known unpackaged files
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-support
+%{__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*
%{__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.*
fi
if [ ! -f "$config_file" ]; then
- echo >&2 "Lost myself! Please report this (with above errors, if any) to TLD Linux mailing lists."
+ echo >&2 "Lost myself! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
exit 1
fi
echo "Adding option old-passwords to config: $config_file"
%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
#'
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."
+ echo >&2 "ERROR: Can't find real config file for $config! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
continue
fi
configs="$configs $config_file"
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."
+ echo >&2 "ERROR: Can't find real config file for $config! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
continue
fi
configs="$configs $config_file"
%files
%defattr(644,root,root,755)
-%doc build/support-files/*.cnf build/support-files/*.ini
+%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(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/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
%if %{with sphinx}
%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
%endif
%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(640,mysql,mysql) %ghost /var/log/mysql/*
# This is template for configuration file which is created after 'service mysql init'
-%{_datadir}/%{name}/mysqld.conf
-%{_datadir}/%{name}/mysql_system_tables.sql
-%{_datadir}/%{name}/mysql_system_tables_data.sql
-%{_datadir}/%{name}/mysql_test_data_timezone.sql
-
-%{_datadir}/%{name}/english
-%{_datadir}/%{name}/fill_help_tables.sql
-#%{_datadir}/%{name}/mysql_fix_privilege_tables.sql
-%lang(cs) %{_datadir}/%{name}/czech
-%lang(da) %{_datadir}/%{name}/danish
-%lang(de) %{_datadir}/%{name}/german
-%lang(el) %{_datadir}/%{name}/greek
-%lang(es) %{_datadir}/%{name}/spanish
-%lang(et) %{_datadir}/%{name}/estonian
-%lang(fr) %{_datadir}/%{name}/french
-%lang(hu) %{_datadir}/%{name}/hungarian
-%lang(it) %{_datadir}/%{name}/italian
-%lang(ja) %{_datadir}/%{name}/japanese
-%lang(ko) %{_datadir}/%{name}/korean
-%lang(nl) %{_datadir}/%{name}/dutch
-%lang(nb) %{_datadir}/%{name}/norwegian
-%lang(nn) %{_datadir}/%{name}/norwegian-ny
-%lang(pl) %{_datadir}/%{name}/polish
-%lang(pt) %{_datadir}/%{name}/portuguese
-%lang(ro) %{_datadir}/%{name}/romanian
-%lang(ru) %{_datadir}/%{name}/russian
-%lang(sr) %{_datadir}/%{name}/serbian
-%lang(sk) %{_datadir}/%{name}/slovak
-%lang(sv) %{_datadir}/%{name}/swedish
-%lang(uk) %{_datadir}/%{name}/ukrainian
+%{_datadir}/%{_orgname}/mysqld.conf
+%{_datadir}/%{_orgname}/mysql_security_commands.sql
+%{_datadir}/%{_orgname}/mysql_system_tables_data.sql
+%{_datadir}/%{_orgname}/mysql_system_tables.sql
+%{_datadir}/%{_orgname}/mysql_test_data_timezone.sql
+
+%{_datadir}/%{_orgname}/english
+%{_datadir}/%{_orgname}/dictionary.txt
+%{_datadir}/%{_orgname}/fill_help_tables.sql
+%{_datadir}/%{_orgname}/innodb_memcached_config.sql
+#%{_datadir}/%{_orgname}/mysql_fix_privilege_tables.sql
+%lang(bg) %{_datadir}/%{_orgname}/bulgarian
+%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)
%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/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*
%if %{with ndb}
%attr(755,root,root) %{_libdir}/libndbclient.so
%endif
+# static-only so far
+%{_libdir}/libmysqld.a
%{_includedir}/mysql
%{_aclocaldir}/mysql.m4
%{_mandir}/man1/mysql_config.1*