# TODO:
-# - unpackaged:
-# /usr/bin/mysqlaccess.conf
-# /usr/data/mysql/.empty
-# /usr/data/test/.empty
+# - 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) ?
# - missing have_archive, have_merge
# (profiling disabled temporaily to workaround this)
#
# Conditional build:
-%bcond_with autodeps # BR packages needed only for resolving deps
%bcond_without innodb # InnoDB storage engine support
%bcond_without big_tables # Support tables with more than 4G rows even on 32 bit platforms
%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_with sphinx # Sphinx storage engine support
-%bcond_with tests # FIXME: don't run correctly
+# mysql needs boost 1.73.0 and doesn't support newer/older boost versions
+%bcond_with system_boost
+%bcond_without tests # run test suite
%bcond_with ndb # NDB is now a separate product, this here is broken, so disable it
+%bcond_without ldap # LDAP auth support
-%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(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.8
+Version: 8.0.25
Release: 0.1
-License: GPL + MySQL FLOSS Exception
+License: GPL v2 + MySQL FOSS License 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: 42e866302b61f5e213afd33e04677017
-Source100: http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
-# Source100-md5: 7b9b618cb9b378f949bb1b91ddcc4f54
+#Source0Download: https://dev.mysql.com/downloads/mysql/8.0.html#downloads
+Source0: http://cdn.mysql.com/Downloads/MySQL-8.0/%{name}-%{version}.tar.gz
+# Source0-md5: 001a17602310317d17524b2e36113c53
+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_73_0.tar.bz2
+# Source101-md5: 9273c8c4576423562bbe84574b07b2bd
+%endif
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
Source12: %{name}-ndb-cpc.sysconfig
Source13: %{name}-client.conf
Source14: my.cnf
-Patch0: %{name}-libs.patch
-Patch1: %{name}-libwrap.patch
-Patch2: %{name}-c++.patch
-Patch3: %{name}-info.patch
-Patch4: %{name}-sql-cxx-pic.patch
-Patch5: %{name}-noproc.patch
-Patch6: %{name}-system-users.patch
-Patch7: %{name}-bug-34192.patch
-Patch8: %{name}-client-config.patch
-Patch9: %{name}-build.patch
-Patch10: %{name}-alpha.patch
-Patch11: %{name}-upgrade.patch
-Patch12: %{name}-config.patch
-Patch14: %{name}-bug-43594.patch
-Patch15: plugin-avoid-version.patch
-Patch16: %{name}-fix-dummy-thread-race-condition.patch
+Patch0: %{name}-opt.patch
+
+Patch17: %{name}-5.7-sphinx.patch
Patch18: %{name}-sphinx.patch
-# <percona patches, http://bazaar.launchpad.net/~percona-dev/percona-server/5.5.7/files>
-Patch100: %{name}-userstat.patch
-Patch101: %{name}-innodb_extend_slow.patch
-Patch102: %{name}-microsec_process.patch
-Patch103: %{name}-innodb_split_buf_pool_mutex.patch
-# </percona>
+Patch19: %{name}-chain-certs.patch
+
+Patch24: %{name}-cmake.patch
+Patch25: %{name}-readline.patch
+
+Patch26: %{name}dumpslow-clusters.patch
URL: http://www.mysql.com/products/community/
-BuildRequires: bison
-BuildRequires: cmake
-BuildRequires: groff
-BuildRequires: libstdc++-devel >= 5:3.0
-BuildRequires: libtool
+BuildRequires: bison >= 1.875
+%{?with_system_boost:BuildRequires: boost-devel >= 1.72.0}
+BuildRequires: cmake >= 2.8.2
+BuildRequires: libaio-devel
+BuildRequires: libevent-devel
+BuildRequires: libhsclient-devel
+BuildRequires: libstdc++-devel >= 5:4.0
%{?with_tcpd:BuildRequires: libwrap-devel}
+BuildRequires: lz4-devel
+BuildRequires: mecab-devel
BuildRequires: ncurses-devel >= 4.2
%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
-%{?with_autodeps:BuildRequires: perl-DBI}
+%{?with_ldap:BuildRequires: openldap-devel}
+BuildRequires: pam-devel
BuildRequires: perl-devel >= 1:5.6.1
-BuildRequires: readline-devel >= 4.2
+BuildRequires: protobuf-devel >= 2.5
+BuildRequires: python-modules
+BuildRequires: readline-devel >= 6.2
+BuildRequires: rpcsvc-proto
BuildRequires: rpm-perlprov >= 4.1-13
-BuildRequires: rpmbuild(macros) >= 1.577
+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
Summary: MySQL - character sets definitions
Summary(pl.UTF-8): MySQL - definicje kodowań znaków
Group: Applications/Databases
+BuildArch: noarch
%description charsets
This package contains character sets definitions needed by both client
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
Group: Applications/Databases
+Requires: %{name}-client = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
%description extras
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.
Group: Applications/Databases
Requires: %{name}-charsets = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
+Requires: readline >= 6.2
Obsoletes: MySQL-client
%description client
%package libs
Summary: Shared libraries for MySQL
-Summary(pl.UTF-8): Biblioteki dzielone MySQL
+Summary(pl.UTF-8): Biblioteki współdzielone MySQL
Group: Libraries
Obsoletes: libmysql10
Obsoletes: mysql-doc < 4.1.12
Shared libraries for MySQL.
%description libs -l pl.UTF-8
-Biblioteki dzielone MySQL.
+Biblioteki współdzielone MySQL.
%package devel
-Summary: MySQL - Development header files and libraries
-Summary(pl.UTF-8): MySQL - Pliki nagłówkowe i biblioteki dla programistów
+Summary: MySQL - development header files and other files
+Summary(pl.UTF-8): MySQL - Pliki nagłówkowe i inne dla programistów
Summary(pt.UTF-8): MySQL - Medições de desempenho
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 libraries
+This package contains the development header files and other files
necessary to develop MySQL client applications.
%description devel -l fr.UTF-8
MySQL.
%description devel -l pl.UTF-8
-Pliki nagłówkowe i biblioteki konieczne do kompilacji aplikacji
+Pliki nagłówkowe i inne pliki konieczne do kompilacji aplikacji
klienckich MySQL.
%description devel -l pt_BR.UTF-8
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 %{?with_sphinx:-a100}
+%setup -q %{?with_sphinx:-a100} %{!?with_system_boost:-a101}
+
+#%patch0 -p1
+
%if %{with sphinx}
# http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51
-mv sphinx-*/mysqlse storage/sphinx
+%{__mv} sphinx-*/mysqlse storage/sphinx
+%patch17 -p1
%patch18 -p1
%endif
-# CHECK ME, seems obsolete
-#%patch0 -p1
-#%{?with_tcpd:%patch1 -p1} # WHATS PURPOSE OF THIS PATCH?
-#%patch2 -p1 # NEEDS CHECK, which exact program needs -lc++
-%patch3 -p1
-%ifarch alpha
-# this is strange: mysqld functions for UDF modules are not explicitly defined,
-# so -rdynamic is used; in such case gcc3+ld on alpha doesn't like C++ vtables
-# in objects compiled without -fPIC
-%patch4 -p1
-# gcc 3.3.x ICE
-%patch10 -p1
-%endif
-# CHECK ME, obsolete
-#%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch11 -p1
-%patch12 -p1
-%patch14 -p0
-# CHECK ME, obsolete
-#%patch15 -p1
-# OBSOLETE, YES
-#%patch16 -p1
-# <percona %patches>
-# CHECK ME
-#%patch100 -p1
-# CHECK ME
-#%patch101 -p1
-# CHECK ME
-#%patch102 -p1
-# CHECK ME
-#%patch103 -p1
-# </percona>
+
+# really not fixed? verify
+%patch19 -p1
+
+%patch24 -p1
+%patch25 -p1
+
+#%patch26 -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
+
+# ensure sytstem lib
+# need to keep xxhash.[ch]
+%{__rm} -rv extra/lz4/lz4**
%build
install -d build
# NOTE that /var/lib/mysql/mysql.sock is symlink to real sock file
# (it defaults to first cluster but user may change it to whatever
# cluster it wants)
-%cmake \
- -DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG" \
- -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG" \
- -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+
+CPPFLAGS="%{rpmcppflags}" \
+%cmake .. \
+ -DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
+ -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=ON} \
+ -DFEATURE_SET="community" \
+ -DINSTALL_LAYOUT=RPM \
+ -DINSTALL_LIBDIR=%{_lib} \
+ -DINSTALL_MYSQLTESTDIR_RPM="" \
+ -DINSTALL_PLUGINDIR=%{_lib}/%{name}/plugin \
+ -DINSTALL_SQLBENCHDIR=%{_datadir} \
+ -DINSTALL_SUPPORTFILESDIR=share/%{name}-support \
+ -DINSTALL_MYSQLSHAREDIR=share/%{name} \
+ -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
%{?debug:-DWITH_DEBUG=ON} \
- -DWITH_FAST_MUTEXES=ON \
- -DWITH_LIBEDIT=OFF \
- -DWITH_READLINE=ON \
- -DWITH_SSL=%{?with_ssl:yes}%{?!with_ssl:no} \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
+ -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
+ -DWITH_PIC=ON \
+ -DWITH_LZ4=system \
+ -DWITH_LIBEVENT=system \
+ -DWITH_PROTOBUF=system \
+ -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \
+ -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
+ %{!?with_system_boost:-DWITH_BOOST="$(pwd)/$(ls -1d ../boost_*)"} \
-DWITH_ZLIB=system \
- -DWITH_COMMENT="PLD Linux Distribution MySQL RPM" \
- -DWITH_LIBWRAP=%{?with_tcpd:ON}%{?!with_tcpd:OFF} \
- -DCURSES_INCLUDE_PATH=%{_includedir}/ncurses \
- -DCMAKE_INSTALl_PREFIX="" \
- -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
- -DINSTALL_INCLUDEDIR=%{_includedir}/%{name} \
- -DINSTALL_BINDIR=%{_bindir} \
- -DINSTALL_DOCDIR=%{_docdir}/%{name}-%{version} \
- -DINSTALL_DOCREADMEDIR=%{_docdir}/%{name}-%{version} \
- -DINSTALL_INFODIR=%{_infodir} \
- -DINSTALL_LIBDIR=%{_libdir} \
- -DINSTALL_MANDIR=%{_mandir} \
- -DINSTALL_MYSQLDATADIR=/var/lib/%{name} \
- -DINSTALL_MYSQLSHAREDIR=%{_datadir}/%{name} \
- -DINSTALL_MYSQLTESTDIR=%{_datadir}/%{name}-test \
- -DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \
- -DINSTALL_SBINDIR=%{_sbindir} \
- -DINSTALL_SCRIPTDIR=%{_bindir} \
- -DINSTALL_SHAREDIR=%{_datadir} \
- -DINSTALL_SQLBENCHDIR=%{_datadir} \
- -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
- ..
+ -DWITH_EDITLINE=system \
+ -DWITH_MECAB=system \
+ -DTMPDIR=/var/tmp
%{__make}
%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} \
- $RPM_BUILD_ROOT{%{_infodir},%{_mysqlhome}}
+ $RPM_BUILD_ROOT/var/{log/{archive,}/mysql,lib/{mysql,mysql-files}} \
+ $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.16 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.16
-ln -sf libmysqlclient.so.16.0.0 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.16.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 -rf $RPM_BUILD_ROOT%{_datadir}/mysql-test
-rm -rf $RPM_BUILD_ROOT%{_datadir}/mysql-support
-
-# remove .txt variants for .sys messages
-rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*/*.txt
+%{__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
# not useful without -debug build
-%{!?debug:rm -f $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
-%{!?debug:rm -f $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.
# 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}
# do not clobber users $PATH
-mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_upgrade
-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
+%{__mv} $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_upgrade
+%{__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
+%{__mv} $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck
# delete - functionality in initscript / rpm
-# mysql_install_db is needed by digikam
-#rm $RPM_BUILD_ROOT%{_bindir}/mysql_install_db
-#rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_install_db.1*
-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%{_mandir}/man1/mysql.server*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
-rm $RPM_BUILD_ROOT%{_bindir}/resolveip
-rm $RPM_BUILD_ROOT%{_mandir}/man1/resolveip.1*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
+# note: mysql_install_db (and thus resolveip) are needed by digikam
+%{__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%{_mandir}/man1/mysql.server*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
# 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} $RPM_BUILD_ROOT%{_bindir}/{mysql_client_test,mysqlxtest}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/test_udf_services.so
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-test
# not needed
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/ha_example.*
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/sphinx.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/daemon_example.ini
+
+# 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
%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
/sbin/chkconfig --del mysql
fi
-%postun -p /sbin/postshell
--/usr/sbin/fix-info-dir -c %{_infodir}
-
+%postun
+/sbin/ldconfig
if [ "$1" = "0" ]; then
%userremove mysql
%groupremove mysql
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 http://bugs.pld-linux.org/"
+ 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
+
+%triggerpostun -- mysql < 5.7.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 http://bugs.pld-linux.org/"
+ 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/^log-warnings *=/log-error-verbosity =/
+ s/^myisam-recover$/myisam-recover-options/
+ s/^innodb_mirrored_log_groups.*//
+ ' $config
+
+ socket=$(awk -F= '!/^#/ && $1 ~ /socket/{print $2}' $config | xargs)
+ echo "# mysql_upgrade ${socket:+--socket=$socket}"
+done
+) | %banner -e %{name}-5.7
+
%files
%defattr(644,root,root,755)
-%doc build/support-files/*.cnf build/support-files/*.ini
%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) %{_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_upgrade
%attr(755,root,root) %{_sbindir}/mysqlcheck
%attr(755,root,root) %{_sbindir}/mysqld
-%attr(755,root,root) %{_bindir}/mysql_install_db
+
%dir %{_libdir}/%{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_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
+%{?with_ldap:%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/group_replication.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/libpluginmecab.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/sphinx.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
%endif
%{_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_install_db.1*
%{_mandir}/man1/mysql_upgrade.1*
%{_mandir}/man1/mysqlcheck.1*
%{_mandir}/man8/mysqld.8*
%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
+# https://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_secure-file-priv
+%attr(770,mysql,mysql) %dir /var/lib/mysql-files
%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/*
-%{_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}/%{name}/dictionary.txt
+%{_datadir}/%{name}/innodb_memcached_config.sql
+%{_datadir}/%{name}/install_rewriter.sql
+%{_datadir}/%{name}/uninstall_rewriter.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)
-%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_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
-%{_mandir}/man1/msql2mysql.1*
%{_mandir}/man1/myisam_ftdump.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*
-
-%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
-%{_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(600,root,root) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.my.cnf
%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
-#%attr(755,root,root) %{_sbindir}/mysqlmanager
%{_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*
-#%{_mandir}/man8/mysqlmanager.8*
%files libs
%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.16
-%attr(755,root,root) %{_libdir}/libmysqlclient_r.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmysqlclient_r.so.16
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.21
%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
-# what's this?
-%attr(755,root,root) %{_libdir}/libmysqlservices.so
%if %{with ndb}
%attr(755,root,root) %{_libdir}/libndbclient.so
%endif
+%{_pkgconfigdir}/mysqlclient.pc
+%{_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
%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*
#%files doc
#%defattr(644,root,root,755)