# TODO:
# - C(XX)FLAGS for innodb subdirs are overriden by ./configure!
# - http://bugs.mysql.com/bug.php?id=16470
+# NOTE:
+# - 5.0 Changes: http://dev.mysql.com/doc/refman/5.0/en/news-5-0-x.html
#
# Conditional build:
%bcond_without big_tables # Support tables with more than 4G rows even on 32 bit platforms
Summary(uk.UTF-8): MySQL - швидкий SQL-сервер
Summary(zh_CN.UTF-8): MySQL数据库服务器
Name: mysql
-Version: 5.0.88
-Release: 1
+Version: 5.0.96
+Release: 2
License: GPL + MySQL FLOSS Exception
Group: Applications/Databases
-#Source0: ftp://ftp.mysql.com/pub/mysql/src/%{name}-%{version}.tar.gz
-Source0: http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/%{name}-%{version}.tar.gz
-# Source0-md5: a56810288c40a2a5d7b649467f57422c
-#Source0: http://mysql.he.net/Downloads/MySQL-5.0/%{name}-%{version}.tar.gz
+# Source0Download: http://dev.mysql.com/downloads/mysql/5.0.html#source
+Source0: ftp://gd.tuwien.ac.at/db/mysql/Downloads/MySQL-5.0/%{name}-%{version}.tar.gz
+# Source0-md5: bf280949049161aa68cf29e600d9ec79
+#Source0: http://downloads.mysql.com/archives/mysql-5.0/%{name}-%{version}.tar.gz
#Source0: http://mirror.provenscaling.com/mysql/enterprise/source/5.0/%{name}-%{version}.tar.gz
-Source100: http://www.sphinxsearch.com/downloads/sphinx-0.9.9-rc2.tar.gz
-# Source100-md5: 1ca266613bfdb0e6952d9ca1af93f7cc
+Source100: http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
+# Source100-md5: 7b9b618cb9b378f949bb1b91ddcc4f54
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
Source12: %{name}-ndb-cpc.sysconfig
Source13: %{name}-client.conf
Source14: percona.sh
+Source15: my.cnf
Patch0: %{name}-libs.patch
Patch1: %{name}-sphinx.patch
Patch2: %{name}-c++.patch
Patch14: %{name}-bug-16470.patch
Patch15: %{name}-system-users.patch
Patch16: %{name}-errorlog-no-rename.patch
-Patch17: %{name}-alpha-stack.patch
Patch18: %{name}-xtrabackup.patch
-Patch19: %{name}-fixes.patch
-Patch20: %{name}-gcc3.patch
+Patch19: %{name}hotcopy-5.0-5.5.patch
Patch21: %{name}-atomic.patch
Patch22: %{name}-fix-dummy-thread-race-condition.patch
+# ourdelta
+Patch23: big_tables_fixlp284123_fix%{name}35346.patch
+Patch24: bison3.patch
+Patch25: %{name}-sslchain.patch
+Patch26: %{name}-yacc.patch
# <percona patches, http://www.percona.com/percona-lab.html>
Patch100: %{name}-show_patches.patch
Patch101: %{name}-microslow_innodb.patch
Patch117: %{name}-innodb_misc_patch.patch
Patch118: %{name}-innodb_split_buf_pool_mutex.patch
Patch119: %{name}-innodb_rw_lock.patch
-Patch120: %{name}-mysql-test.patch
# </percona>
URL: http://www.mysql.com/products/database/mysql/community_edition.html
BuildRequires: autoconf
Requires: rc-scripts >= 0.2.0
Suggests: mysql-client
%{?with_tcpd:Suggests: tcp_wrappers}
+Suggests: vim-syntax-mycnf
Provides: MySQL-server
Provides: group(mysql)
Provides: msqlormysql
Obsoletes: MySQL
Obsoletes: mysql-server
Conflicts: logrotate < 3.7-4
+ExcludeArch: alpha
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)'
# CFLAGS for innodb are altered
-%undefine configure_cache
+%unglobal configure_cache
+
+%define filterout_c -Werror=format-security
+
+%define skip_post_check_so libndbclient.so.2.0.0
%description
MySQL is a true multi-user, multi-threaded SQL (Structured Query
Summary: mysqlhotcopy - A MySQL database backup program
Summary(pl.UTF-8): mysqlhotcopy - program do tworzenia kopii zapasowych baz MySQL
Group: Applications/Databases
-Requires: %{name}-libs = %{version}-%{release}
Requires: perl-DBD-mysql
%description -n mysqlhotcopy
%package libs
Summary: Shared libraries for MySQL
-Summary(pl.UTF-8): Biblioteki dzielone MySQL
+Summary(pl.UTF-8): Biblioteki współdzielone MySQL
Group: Libraries
Requires: glibc >= 6:2.3.6-15
Obsoletes: libmysql10
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 - хедери та бібліотеки програміста
Obsoletes: libmysql10-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
%prep
%setup -q %{?with_sphinx:-a100}
+cp -p %{SOURCE1} .
%patch0 -p1
%if %{with sphinx}
mv sphinx-*/mysqlse sql/sphinx
%patch14 -p1
%patch15 -p1
%patch16 -p1
-%ifarch alpha
-%patch17 -p1
-%endif
%{?with_xtrabackup:%patch18 -p1}
+%patch19 -p1
# <percona %patches>
%patch100 -p1
%patch117 -p1
%patch118 -p1
%patch119 -p1
-%patch120 -p1
# </percona>
-%patch19 -p1
-%if "%{cxx_version}" < "4.1"
-%patch20 -p1
-%endif
%patch21 -p0
%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+
+%{__sed} -i -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.in
%build
%{__libtoolize}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql,ssl/certs/mysql} \
+install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql,certs/mysql,skel} \
$RPM_BUILD_ROOT/var/{log/{archive,}/mysql,lib/mysql} \
$RPM_BUILD_ROOT{%{_infodir},%{_mysqlhome}}
libsdir=/tmp
# libsdir is to avoid installing innodb static libs in $RPM_BUILD_ROOT../libs
-install Docs/mysql.info $RPM_BUILD_ROOT%{_infodir}
+cp -a Docs/mysql.info $RPM_BUILD_ROOT%{_infodir}
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/mysql
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mysql
+install -p mysql.init $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
# This is template for configuration file which is created after 'service mysql init'
-install %{SOURCE4} mysqld.conf
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/clusters.conf
+cp -a %{SOURCE4} mysqld.conf
+cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/clusters.conf
touch $RPM_BUILD_ROOT/var/log/mysql/{err,log,update}
# remove innodb directives from mysqld.conf if mysqld is configured without
awk 'BEGIN { RS="\n\n" } !/bdb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
%endif
+%if %{with sphinx}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/sphinx.a
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/sphinx.la
+# TODO: patch build with -avoid-version
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/mysql/sphinx.so.0
+mv $RPM_BUILD_ROOT%{_libdir}/mysql/sphinx.so{.0.0.0,}
+%endif
+
install mysqld.conf $RPM_BUILD_ROOT%{_datadir}/mysql/mysqld.conf
cp -a %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/mysql-client.conf
+cp -a %{SOURCE15} $RPM_BUILD_ROOT/etc/skel/.my.cnf
# NDB
-install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb
-install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb
-install %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-mgm
-install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-mgm
-install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-cpc
-install %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
+install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb
+cp -a %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb
+install -p %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-mgm
+cp -a %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-mgm
+install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-cpc
+cp -a %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
mv -f $RPM_BUILD_ROOT%{_libdir}/mysql/lib* $RPM_BUILD_ROOT%{_libdir}
sed -i -e 's,%{_libdir}/mysql,%{_libdir},' $RPM_BUILD_ROOT{%{_libdir}/libmysqlclient{,_r}.la,%{_bindir}/mysql_config}
%postun libs -p /sbin/ldconfig
%triggerpostun -- mysql < 4.0.20-2.4
-# For clusters in /etc/mysql/clusters.conf
+# For clusters in /etc/%{name}/clusters.conf
if [ -f /etc/sysconfig/mysql ]; then
. /etc/sysconfig/mysql
if [ -n "$MYSQL_DB_CLUSTERS" ]; then
for i in "$MYSQL_DB_CLUSTERS"; do
- echo "$i/mysqld.conf=$i" >> /etc/mysql/clusters.conf
+ echo "$i/mysqld.conf=$i" >> /etc/%{name}/clusters.conf
done
echo "# Do not use **obsolete** option MYSQL_DB_CLUSTERS" >> /etc/sysconfig/mysql
- echo "# USE /etc/mysql/clusters.conf instead" >> /etc/sysconfig/mysql
- echo "Converted clusters from MYSQL_DB_CLUSTERS to /etc/mysql/clusters.conf."
- echo "You NEED to fix your /etc/sysconfig/mysql and verify /etc/mysql/clusters.conf."
+ echo "# USE /etc/%{name}/clusters.conf instead" >> /etc/sysconfig/mysql
+ echo "Converted clusters from MYSQL_DB_CLUSTERS to /etc/%{name}/clusters.conf."
+ echo "You NEED to fix your /etc/sysconfig/mysql and verify /etc/%{name}/clusters.conf."
fi
fi
%triggerpostun -- mysql < 4.1.1
# For better compatibility with prevoius versions:
-for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/mysql/clusters.conf); do
+for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
if echo "$config" | grep -q '^/'; then
config_file="$config"
- elif [ -f "/etc/mysql/$config" ]; then
- config_file=/etc/mysql/$config
+ elif [ -f "/etc/%{name}/$config" ]; then
+ config_file=/etc/%{name}/$config
else
- clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/mysql/clusters.conf)
+ 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/mysql/clusters.conf"
+ echo >&2 "Please remove extra (leading) spaces from /etc/%{name}/clusters.conf"
exit 1
fi
config_file="$clusterdir/mysqld.conf"
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mysql
%attr(754,root,root) /etc/rc.d/init.d/mysql
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql
-%dir /etc/ssl/certs/mysql
+%dir /etc/certs/mysql
%attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/clusters.conf
%attr(755,root,root) %{_sbindir}/innochecksum
%attr(755,root,root) %{_sbindir}/my_print_defaults
%attr(755,root,root) %{_sbindir}/mysql_upgrade
%attr(755,root,root) %{_sbindir}/mysqlcheck
%attr(755,root,root) %{_sbindir}/mysqld
+%if %{with sphinx}
+%dir %{_libdir}/%{name}
+%attr(755,root,root) %{_libdir}/%{name}/sphinx.so
+%endif
%{_mandir}/man1/innochecksum.1*
%{_mandir}/man1/my_print_defaults.1*
%{_mandir}/man1/myisamchk.1*
%files client
%defattr(644,root,root,755)
+%attr(600,root,root) %config(noreplace) %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
%files libs
%defattr(644,root,root,755)
-%doc EXCEPTIONS-CLIENT
%attr(751,root,root) %dir %{_sysconfdir}/mysql
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/mysql-client.conf
%attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*