%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
+%define rel 0.1
%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.32
-Release: 3
+Version: 5.7.9
+Release: %{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: aafbc2a94353d68b5cbfbeddb7eb2e08
-Source100: http://www.sphinxsearch.com/files/sphinx-2.0.8-release.tar.gz
-# Source100-md5: bcaf0af0ba403a43b9ef3af6f9599cb4
+Source0: http://cdn.mysql.com/Downloads/MySQL-5.7/%{name}-%{version}.tar.gz
+# Source0-md5: 6d782dda9046acb81e694934fd513993
+Source100: http://www.sphinxsearch.com/files/sphinx-2.2.10-release.tar.gz
+# Source100-md5: dda52b24d8348fc09e26d8a649a231d2
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
-Patch0: %{name}-link.patch
-Patch2: %{name}hotcopy-5.0-5.5.patch
-Patch3: bug-67402.patch
+Patch0: %{name}-opt.patch
+Patch1: %{name}-versioning.patch
+Patch4: %{name}-no-default-secure-auth.patch
+Patch5: %{name}-system-libhsclient.patch
# from fedora
Patch6: %{name}-system-users.patch
Patch9: %{name}-build.patch
Patch11: %{name}-upgrade.patch
Patch12: %{name}-config.patch
-Patch14: %{name}-bug-43594.patch
+
Patch18: %{name}-sphinx.patch
Patch19: %{name}-chain-certs.patch
# from fedora
Patch20: %{name}-dubious-exports.patch
-Patch21: bison3.patch
+
+Patch24: %{name}-cmake.patch
+
+Patch26: mysqldumpslow-clusters.patch
+Patch27: x32.patch
URL: http://www.mysql.com/products/community/
BuildRequires: bison >= 1.875
+BuildRequires: boost-devel >= 1.59.0
BuildRequires: cmake >= 2.6
-BuildRequires: groff
+BuildRequires: libaio-devel
+BuildRequires: readline-devel >= 6.2
%if "%{pld_release}" == "ac"
BuildRequires: libstdc++4-devel >= 5:4.0
%else
BuildRequires: libstdc++-devel >= 5:4.0
%endif
-BuildRequires: libtool
+BuildRequires: automake
+BuildRequires: libhsclient-devel
%{?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
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
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.
Group: Applications/Databases
Requires: %{name}-charsets = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
+Requires: readline >= 6.2
Obsoletes: MySQL-client
%description client
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
Group: Applications/Databases
Requires: %{name} = %{version}-%{release}
Requires: %{name}-client
-Requires: perl(DBD::mysql)
+Requires: perl-DBD-mysql
Obsoletes: MySQL-bench
%description bench
Ten pakiet zawiera standardowego demona MySQL NDB CPC.
%prep
-%setup -q -n Percona-Server-%{version}-rel%{percona_rel} %{?with_sphinx:-a100}
+%setup -q %{?with_sphinx:-a100}
+
+%patch0 -p1
+
%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
+#%patch1 -p1
+#%patch4 -p1 FIXME?
+#%patch5 -p1
+#%patch6 -p1 PROBABLY OBSOLETE
-%patch6 -p1
+#%patch9 -p1
+#%patch11 -p1
+#%patch12 -p1
-%patch9 -p1
-%patch11 -p1
-%patch12 -p1
-%patch14 -p0
+# really not fixed? verify
%patch19 -p1
-%patch20 -p1
-%patch21 -p1
+
+#%patch20 -p1
+
+%patch24 -p1
+
+%patch26 -p1
+#%patch27 -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
+
+# FIXME/CHECK
+# 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 \
+CPPFLAGS="%{rpmcppflags}" \
+%cmake .. \
-DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
- -DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
- -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
-DCOMPILATION_COMMENT="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_PLUGINDIR=%{_lib}/%{name}/plugin \
-DINSTALL_SQLBENCHDIR=%{_datadir} \
- -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
+ -DINSTALL_SUPPORTFILESDIR=share/%{name}-support \
+ -DINSTALL_MYSQLSHAREDIR=share/%{name} \
-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 \
%if "%{pld_release}" == "ac"
-DWITH_SSL=%{?with_ssl:bundled}%{!?with_ssl:no} \
%else
%endif
-DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
-DWITH_ZLIB=system \
- ..
+ -DWITH_READLINE=system
%{__make}
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}/%{name}-support
# rename not to be so generic name
mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
mv $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1
-# move to _sysconfdir
-mv $RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir}}/mysqlaccess.conf
-
# not useful without -debug build
%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_resolve_stack_dump.1}
#rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql.server
#rm $RPM_BUILD_ROOT%{_datadir}/%{name}/binary-configure
%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg-utf8.txt
-%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
-%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_waitpid.1*
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
%{__rm} $RPM_BUILD_ROOT%{_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
+# test plugins
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libtest*.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/rewrite_example.so
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/test_security_context.so
%clean
rm -rf $RPM_BUILD_ROOT
%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/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/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/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/replication_observers_example_plugin.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/rewriter.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_master.so
%attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_slave.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/validate_password.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/version_token.so
%if %{with sphinx}
%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
%endif
# 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_sys_schema.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}/mysql_fix_privilege_tables.sql
+%{_datadir}/%{name}/innodb_memcached_config.sql
+%{_datadir}/%{name}/install_rewriter.sql
+%{_datadir}/%{name}/uninstall_rewriter.sql
+%lang(bg) %{_datadir}/%{name}/bulgarian
%lang(cs) %{_datadir}/%{name}/czech
%lang(da) %{_datadir}/%{name}/danish
%lang(de) %{_datadir}/%{name}/german
%files charsets
%defattr(644,root,root,755)
-%dir %{_datadir}/mysql
+%dir %{_datadir}/%{name}
%{_datadir}/%{name}/charsets
%files extras
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/msql2mysql
%attr(755,root,root) %{_bindir}/myisam_ftdump
%attr(755,root,root) %{_bindir}/mysql_install_db
+%attr(755,root,root) %{_bindir}/mysql_ssl_rsa_setup
%attr(755,root,root) %{_bindir}/mysql_secure_installation
%attr(755,root,root) %{_bindir}/mysql_tzinfo_to_sql
%attr(755,root,root) %{_bindir}/perror
%attr(755,root,root) %{_bindir}/replace
%attr(755,root,root) %{_bindir}/resolveip
-%{_mandir}/man1/msql2mysql.1*
%{_mandir}/man1/myisam_ftdump.1*
%{_mandir}/man1/mysql_install_db.1*
+%{_mandir}/man1/mysql_ssl_rsa_setup.1*
%{_mandir}/man1/mysql_secure_installation.1*
%{_mandir}/man1/mysql_tzinfo_to_sql.1*
%{_mandir}/man1/perror.1*
%{_mandir}/man1/replace.1*
%{_mandir}/man1/resolveip.1*
-%files -n mysqlhotcopy
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/mysqlhotcopy
-%{_mandir}/man1/mysqlhotcopy.1*
-
%files extras-perl
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/mysql_convert_table_format
-%attr(755,root,root) %{_bindir}/mysql_find_rows
-%attr(755,root,root) %{_bindir}/mysql_fix_extensions
-%attr(755,root,root) %{_bindir}/mysql_setpermission
-%attr(755,root,root) %{_bindir}/mysql_zap
-%attr(755,root,root) %{_bindir}/mysqlaccess
%attr(755,root,root) %{_bindir}/mysqldumpslow
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysqlaccess.conf
-%{_mandir}/man1/mysql_convert_table_format.1*
-%{_mandir}/man1/mysql_find_rows.1*
-%{_mandir}/man1/mysql_fix_extensions.1*
-%{_mandir}/man1/mysql_setpermission.1*
-%{_mandir}/man1/mysql_zap.1*
-%{_mandir}/man1/mysqlaccess.1*
%{_mandir}/man1/mysqldumpslow.1*
%files client
%attr(755,root,root) %{_bindir}/mysql
%attr(755,root,root) %{_bindir}/mysqladmin
%attr(755,root,root) %{_bindir}/mysqlbinlog
-%attr(755,root,root) %{_bindir}/mysqlbug
+%attr(755,root,root) %{_bindir}/mysql_config_editor
%attr(755,root,root) %{_bindir}/mysqldump
%attr(755,root,root) %{_bindir}/mysqlimport
+%attr(755,root,root) %{_bindir}/mysqlpump
%attr(755,root,root) %{_bindir}/mysqlshow
%{_mandir}/man1/mysql.1*
%{_mandir}/man1/mysqladmin.1*
%{_mandir}/man1/mysqlbinlog.1*
-%{_mandir}/man1/mysqlbug.1*
+%{_mandir}/man1/mysql_config_editor.1*
%{_mandir}/man1/mysqldump.1*
%{_mandir}/man1/mysqlimport.1*
+%{_mandir}/man1/mysqlpump.1*
%{_mandir}/man1/mysqlshow.1*
%files libs
%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) %ghost %{_libdir}/libmysqlclient.so.20
%if %{with ndb}
%attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
%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
%if %{with ndb}
%attr(755,root,root) %{_libdir}/libndbclient.so
%endif
+%{_pkgconfigdir}/mysqlclient.pc
+# static-only so far
+%{_libdir}/libmysqld.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
%if %{with ndb}
%{_libdir}/libndbclient.a
%endif
%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*