# 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)
-# - unpackaged:
-# /usr/bin/mysqlaccess.conf
# - http://bugs.mysql.com/bug.php?id=16470
# - innodb are dynamic (= as plugins) ?
# - missing have_archive, have_merge
%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 63.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.18
+Version: 5.6.15
Release: 1
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-md5: 38b65815249f3bcacf3b0ee85171c486
-Source100: http://www.sphinxsearch.com/files/sphinx-2.0.1-beta.tar.gz
-# Source100-md5: 95c217d81d0b7a4ff73d5297318c3481
+# Source0: http://vesta.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.5/%{name}-%{version}.tar.gz
+Source0: http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source/Percona-Server-%{version}-rel%{percona_rel}.tar.gz
+# Source0-md5: 30298acd471405feb3b23389c130e76d
+Source100: http://www.sphinxsearch.com/files/sphinx-2.1.4-release.tar.gz
+# Source100-md5: 3d453b507834ec746237e2016d34f928
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
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: mysql-no-default-secure-auth.patch
# from fedora
-Source15: lib%{name}.version
-Patch2: %{name}-c++.patch
-Patch3: %{name}-info.patch
-# from fedora
-Patch5: %{name}-versioning.patch
Patch6: %{name}-system-users.patch
-Patch7: %{name}-bug-34192.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
-# http://sphinxsearch.com/bugs/view.php?id=676
-Patch21: sphinx-mysql.patch
-# <percona patches, updated with percona.sh>
-Patch100: microsec_process.patch
-Patch101: optimizer_fix.patch
-Patch102: mysql_dump_ignore_ct.patch
-Patch103: control_online_alter_index.patch
-Patch104: show_temp.patch
-Patch105: innodb_show_status.patch
-Patch106: innodb_io_patches.patch
-Patch107: innodb_opt_lru_count.patch
-Patch108: innodb_extra_rseg.patch
-Patch109: innodb_overwrite_relay_log_info.patch
-Patch110: innodb_thread_concurrency_timer_based.patch
-Patch111: innodb_dict_size_limit.patch
-Patch112: innodb_split_buf_pool_mutex.patch
-Patch113: innodb_expand_import.patch
-Patch114: innodb_show_sys_tables.patch
-Patch115: innodb_stats.patch
-Patch116: innodb_recovery_patches.patch
-Patch117: innodb_admin_command_base.patch
-Patch118: innodb_show_lock_name.patch
-Patch119: innodb_extend_slow.patch
-Patch120: innodb_lru_dump_restore.patch
-Patch121: innodb_separate_doublewrite.patch
-Patch122: innodb_pass_corrupt_table.patch
-Patch123: innodb_fast_checksum.patch
-Patch124: innodb_files_extend.patch
-Patch125: innodb_fix_misc.patch
-Patch126: innodb_deadlock_count.patch
-Patch127: innodb_adaptive_hash_index_partitions.patch
-Patch128: innodb_buffer_pool_pages_i_s.patch
-Patch129: innodb_buffer_pool_shm.patch
-Patch130: innodb_show_status_extend.patch
-Patch131: innodb_kill_idle_transaction.patch
-Patch132: innodb_fake_changes.patch
-Patch133: slow_extended.patch
-Patch134: percona_support.patch
-Patch135: query_cache_enhance.patch
-Patch136: log_connection_error.patch
-Patch137: mysql_syslog.patch
-Patch138: error_pad.patch
-Patch139: response_time_distribution.patch
-Patch140: remove_fcntl_excessive_calls.patch
-Patch141: sql_no_fcache.patch
-Patch142: show_slave_status_nolock.patch
-Patch143: log_warnings_suppress.patch
-Patch144: userstat.patch
-Patch145: bug580324.patch
-Patch146: mysql_remove_eol_carret.patch
-Patch147: processlist_row_stats.patch
-Patch148: innodb_expand_fast_index_creation.patch
-Patch149: innodb_bug60788.patch
-Patch150: start-stop-messages.patch
-Patch151: file-contents.patch
-Patch152: slave_timeout_fix.patch
-Patch153: utf8_general50_ci.patch
-Patch154: bug813587.patch
-Patch155: valgrind_zlib_suppression.patch
-Patch156: memory_dynamic_rows.patch
-Patch157: xtradb_bug317074.patch
-Patch158: subunit.patch
-Patch159: bug860910.patch
-Patch160: bug45702.patch
-Patch161: group_commit.patch
-Patch162: warning_fixes.patch
-# </percona>
+Patch21: bison3.patch
+Patch22: bug-66589.patch
URL: http://www.mysql.com/products/community/
-BuildRequires: bison
+BuildRequires: bison >= 1.875
BuildRequires: cmake >= 2.6
BuildRequires: groff
+BuildRequires: libedit-devel
%if "%{pld_release}" == "ac"
BuildRequires: libstdc++4-devel >= 5:4.0
%else
%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
%{?with_autodeps:BuildRequires: perl-DBI}
BuildRequires: perl-devel >= 1:5.6.1
-BuildRequires: readline-devel >= 4.2
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
Provides: user(mysql)
Obsoletes: MySQL
Obsoletes: mysql-server
-Conflicts: logrotate < 3.7-4
+Conflicts: logrotate < 3.8.0
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _libexecdir %{_sbindir}
%define _localstatedir /var/lib/mysql
%define _mysqlhome /home/services/mysql
-%define _noautoreqdep 'perl(DBD::mysql)'
-
%description
MySQL is a true multi-user, multi-threaded SQL (Structured Query
Language) database server. SQL is the most popular database language
Ten pakiet zawiera standardowego demona MySQL NDB CPC.
%prep
-%setup -q %{?with_sphinx:-a100}
+%setup -q -n Percona-Server-%{version}-rel%{percona_rel} %{?with_sphinx:-a100}
%if %{with sphinx}
# http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
mv sphinx-*/mysqlse storage/sphinx
%patch18 -p1
%endif
-#%patch2 -p1 # NEEDS CHECK, which exact program needs -lc++
+%patch1 -p1
+%patch2 -p1
%patch3 -p1
-%patch5 -p1
+%patch4 -p1
+
%patch6 -p1
-%patch7 -p1
-%patch8 -p1
+
%patch9 -p1
%patch11 -p1
%patch12 -p1
%patch14 -p0
%patch19 -p1
%patch20 -p1
-cd storage/sphinx
%patch21 -p1
-cd ../..
-# <percona %patches>
-%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-%patch103 -p1
-%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-%patch107 -p1
-%patch108 -p1
-%patch109 -p1
-%patch110 -p1
-%patch111 -p1
-%patch112 -p1
-%patch113 -p1
-%patch114 -p1
-%patch115 -p1
-%patch116 -p1
-%patch117 -p1
-%patch118 -p1
-%patch119 -p1
-%patch120 -p1
-%patch121 -p1
-%patch122 -p1
-%patch123 -p1
-%patch124 -p1
-%patch125 -p1
-%patch126 -p1
-%patch127 -p1
-%patch128 -p1
-%patch129 -p1
-%patch130 -p1
-%patch131 -p1
-%patch132 -p1
-%patch133 -p1
-%patch134 -p1
-%patch135 -p1
-%patch136 -p1
-%patch137 -p1
-%patch138 -p1
-%patch139 -p1
-%patch140 -p1
-%patch141 -p1
-%patch142 -p1
-%patch143 -p1
-%patch144 -p1
-%patch145 -p1
-%patch146 -p1
-%patch147 -p1
-%patch148 -p1
-%patch149 -p1
-%patch150 -p1
-%patch151 -p1
-%patch152 -p1
-%patch153 -p1
-%patch154 -p1
-%patch155 -p1
-%patch156 -p1
-%patch157 -p1
-%patch158 -p1
-%patch159 -p1
-%patch160 -p1
-%patch161 -p1
-%patch162 -p1
-# </percona>
+%patch22 -p1
# to get these files rebuild
-rm sql/sql_yacc.cc
-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
%build
install -d build
%{expand:%%define __cpp %(echo '%__cpp' | sed -e 's,-gcc,-gcc4,')}
%endif
-# 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} \
- -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 \
+ -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=%{_libdir}/%{name}/plugin \
+ -DINSTALL_SQLBENCHDIR=%{_datadir} \
+ -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
+ -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
%{?debug:-DWITH_DEBUG=ON} \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=ON \
+ -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
+ -DWITH_PAM=ON \
+ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_PIC=ON \
- -DWITH_LIBEDIT=OFF \
- -DWITH_READLINE=OFF \
+ -DWITH_EDITLINE=system \
%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 \
- -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 \
+ -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 -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 %{SOURCE14} $RPM_BUILD_ROOT/etc/skel/.my.cnf
# NDB
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
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}
%{__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
%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
%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}
%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/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/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
%if %{with sphinx}
%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
%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_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
%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*
%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*
%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.*.*.*
%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*