# TODO:
-# - trigger that prepares system from pre-cluster into cluster
-# - trigger /etc/mysqld.conf into /etc/mysql/mysqld.conf. Solve possible
-# conflict with /var/lib/mysql/mysqld.conf
+# - C(XX)FLAGS for innodb subdirs are overriden by ./configure!
+# - http://bugs.mysql.com/bug.php?id=16470
#
# Conditional build:
-%bcond_with bdb # Berkeley DB support
-%bcond_without innodb # Without InnoDB support
-%bcond_without isam # Without ISAM table format (used in mysql 3.22)
-%bcond_without raid # Without raid
-%bcond_without ssl # Without OpenSSL
-%bcond_without tcpd # Without libwrap (tcp_wrappers) support
-%bcond_with big_tables # enable '--with-big-tables', some performance loss on 32bit arch, but can do >= 4GB database tables.
+%bcond_with bdb # Berkeley DB support
+%bcond_without innodb # Without InnoDB support
+%bcond_without raid # Without raid
+%bcond_without ssl # Without OpenSSL
+%bcond_without tcpd # Without libwrap (tcp_wrappers) support
+%bcond_without big_tables # Support tables with more than 4G rows even on 32 bit platforms
#
%include /usr/lib/rpm/macros.perl
+#define _snap 20060111
Summary: MySQL: a very fast and reliable SQL database engine
+Summary(de): MySQL: ist eine SQL-Datenbank
Summary(fr): MySQL: un serveur SQL rapide et fiable
Summary(pl): MySQL: bardzo szybka i niezawodna baza danych (SQL)
-Summary(de): MySQL: ist eine SQL-Datenbank
Summary(pt_BR): MySQL: Um servidor SQL rápido e confiável
Summary(ru): MySQL - ÂÙÓÔÒÙÊ SQL-ÓÅÒ×ÅÒ
Summary(uk): MySQL - Û×ÉÄËÉÊ SQL-ÓÅÒ×ÅÒ
Summary(zh_CN): MySQLÊý¾Ý¿â·þÎñÆ÷
Name: mysql
-Group: Applications/Databases
-Version: 4.1.13
-Release: 0.1
+Version: 5.0.24a
+Release: 4
License: GPL + MySQL FLOSS Exception
-Source0: http://mysql.dataphone.se/Downloads/MySQL-4.1/%{name}-%{version}.tar.gz
-# Source0-md5: 49d7a7314a2c9cf49e34777e73e66562
+Group: Applications/Databases
+Source0: http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/%{name}-%{version}.tar.gz
+# Source0-md5: 6b07546389f75c52611adb7af38c3667
+#Source0: http://downloads.mysql.com/snapshots/mysql-5.0/%{name}-%{version}-nightly-%{_snap}.tar.gz
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.logrotate
Source12: %{name}-ndb-cpc.sysconfig
Source13: %{name}-client.conf
Patch0: %{name}-libs.patch
-Patch1: %{name}-libwrap.patch
+
Patch2: %{name}-c++.patch
Patch3: %{name}-info.patch
Patch4: %{name}-sql-cxx-pic.patch
Patch6: %{name}-fix_privilege_tables.patch
Patch7: %{name}-align.patch
Patch8: %{name}-client-config.patch
-Icon: mysql.gif
+Patch9: %{name}-build.patch
+Patch10: %{name}-alpha.patch
+Patch11: %{name}-ndb-ldflags.patch
+Patch12: %{name}-bug-20153.patch
+Patch13: %{name}-test_bug17667.patch
URL: http://www.mysql.com/
-#BuildRequires: ORBit-devel
BuildRequires: autoconf
BuildRequires: automake
%{?with_bdb:BuildRequires: db3-devel}
BuildRequires: perl-devel >= 1:5.6.1
BuildRequires: readline-devel >= 4.2
BuildRequires: rpm-perlprov >= 4.1-13
-BuildRequires: rpmbuild(macros) >= 1.202
+BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: sed >= 4.0
BuildRequires: texinfo
BuildRequires: zlib-devel
-PreReq: rc-scripts >= 0.2.0
-Requires(pre): /usr/bin/getgid
+Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
-Requires(postun): /usr/sbin/userdel
-Requires(postun): /usr/sbin/groupdel
-Requires(post,preun): /sbin/chkconfig
Requires(triggerpostun): sed >= 4.0
-Requires: %{name}-libs = %{version}-%{release}
+Requires: %{name}-charsets = %{version}-%{release}
Requires: /usr/bin/setsid
+Requires: rc-scripts >= 0.2.0
Provides: MySQL-server
Provides: group(mysql)
Provides: msqlormysql
%define _mysqlhome /home/services/mysql
%define _noautoreqdep 'perl(DBD::mysql)'
+# CFLAGS for innodb are altered
+%undefine configure_cache
%description
MySQL is a true multi-user, multi-threaded SQL (Structured Query
ÄÉÓÔÒÉÂÕÔÉצ ÄÌÑ ¦ÎÆÏÒÍÁæ§ ÐÒÏ ¦ÎÛÉÈ ÕÞÁÓÎÉË¦× ÐÒÏÅËÔÕ ÔÁ ¦ÎÛϧ
¦ÎÆÏÒÍÁæ§.
+%package charsets
+Summary: MySQL - character sets definitions
+Summary(pl): MySQL - definicje kodowañ znaków
+Group: Applications/Databases
+
+%description charsets
+This package contains character sets definitions needed by both client
+and server.
+
+%description charsets -l pl
+Ten pakiet zawiera definicje kodowañ znaków potrzebne dla serwera i
+klienta.
+
%package extras
Summary: MySQL additional utilities
Summary(pl): Dodatkowe narzêdzia do MySQL
Summary(ru): MySQL ËÌÉÅÎÔ
Summary(uk): MySQL Ë̦¤ÎÔ
Group: Applications/Databases
+Requires: %{name}-charsets = %{version}-%{release}
Requires: %{name}-libs = %{version}-%{release}
Obsoletes: MySQL-client
%package libs
Summary: Shared libraries for MySQL
Summary(pl): Biblioteki dzielone MySQL
-Group: Applications/Databases
+Group: Libraries
Obsoletes: libmysql10
Obsoletes: mysql-doc < 4.1.12
Ten pakiet zawiera standardowego demona MySQL NDB CPC.
%prep
-%setup -q
+%setup -q %{?_snap:-n %{name}-%{version}-nightly-%{_snap}}
%patch0 -p1
-%{?with_tcpd:%patch1 -p1}
+
%patch2 -p1
%patch3 -p1
%ifarch alpha
# 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
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
-
-%{__perl} -pi -e 's@(ndb_bin_am_ldflags)="-static"@$1=""@' configure.in
+%patch9 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
%build
%{__libtoolize}
%{__aclocal}
%{__automake}
%{__autoconf}
+
# The compiler flags are as per their "official" spec ;)
CXXFLAGS="%{rpmcflags} -felide-constructors -fno-rtti -fno-exceptions %{!?debug:-fomit-frame-pointer}"
CFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"
# NOTE: the PS, FIND_PROC, KILL, CHECK_PID are not used by PLD Linux
# and therefore do not add BR on these. These are here just to satisfy
# configure.
+
%configure \
PS='/bin/ps' \
FIND_PROC='/bin/ps p $$PID' \
KILL='/bin/kill' \
CHECK_PID='/bin/kill -0 $$PID' \
--enable-assembler \
+ --enable-largefile=yes \
--enable-shared \
--enable-static \
--enable-thread-safe-client \
--with%{!?with_bdb:out}-berkeley-db \
--with%{!?with_innodb:out}-innodb \
- --with%{!?with_isam:out}-isam \
--with%{!?with_raid:out}-raid \
--with%{!?with_ssl:out}-openssl \
--with%{!?with_tcpd:out}-libwrap \
%{?with_big_tables:--with-big-tables} \
--with-comment="PLD Linux Distribution MySQL RPM" \
--with%{!?debug:out}-debug \
+ --with%{!?debug:out}-ndb-debug \
--with-embedded-server \
--with-extra-charsets=all \
--with-low-memory \
--with-named-curses-libs="-lncurses" \
--with-named-thread-libs="-lpthread" \
--with-unix-socket-path=/var/lib/mysql/mysql.sock \
+ --with-archive-storage-engine \
--with-vio \
--with-ndbcluster \
--without-readline \
install %{SOURCE4} mysqld.conf
install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/clusters.conf
install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/monit
-touch $RPM_BUILD_ROOT/var/log/mysql/{err,log,update,isamlog.log}
+touch $RPM_BUILD_ROOT/var/log/mysql/{err,log,update}
# remove innodb directives from mysqld.conf if mysqld is configured without
%if %{without innodb}
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
-
# remove .txt variants for .sys messages
rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*/*.txt
mv -f $RPM_BUILD_ROOT%{_libdir}/mysql/lib* $RPM_BUILD_ROOT%{_libdir}
-%{__perl} -pi -e 's,%{_libdir}/mysql,%{_libdir},;' $RPM_BUILD_ROOT%{_libdir}/libmysqlclient.la
+sed -i -e 's,%{_libdir}/mysql,%{_libdir},' $RPM_BUILD_ROOT{%{_libdir}/libmysqlclient{,_r}.la,%{_bindir}/mysql_config}
# remove known unpackaged files
rm -rf $RPM_BUILD_ROOT%{_prefix}/mysql-test
mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}comp_err
mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
-# not our OS
-rm $RPM_BUILD_ROOT%{_bindir}/make_win_*_distribution
-rm $RPM_BUILD_ROOT%{_datadir}/%{name}/*.plist
-# unuseful stuff
-rm $RPM_BUILD_ROOT%{_datadir}/%{name}/*.spec
+# not useful without -debug build
+%{!?debug:rm -f $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
+# generate symbols file, so one can generate backtrace using it
+# mysql_resolve_stack_dump -s %{_datadir}/mysql/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}/mysql/mysqld.sym}
# functionality in initscript / rpm
rm $RPM_BUILD_ROOT%{_bindir}/mysql_create_system_tables
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}/fill_help_tables.sql
rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql-log-rotate
rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql.server
-rm $RPM_BUILD_ROOT%{_datadir}/%{name}/{pre,post}install
+rm $RPM_BUILD_ROOT%{_datadir}/%{name}/binary-configure
+rm $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg.txt
rm $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
+rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
+rm $RPM_BUILD_ROOT%{_mandir}/man1/safe_mysqld*
+rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
# in %doc
rm $RPM_BUILD_ROOT%{_datadir}/%{name}/*.{ini,cnf}
%post
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
/sbin/chkconfig --add mysql
-if [ -f /var/lock/subsys/mysql ]; then
- /etc/rc.d/init.d/mysql restart >&2 || :
-else
- echo "Run \"/etc/rc.d/init.d/mysql start\" to start mysql." >&2
-fi
+%service mysql restart
%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/mysql ]; then
- /etc/rc.d/init.d/mysql stop
- fi
+ %service -q mysql stop
/sbin/chkconfig --del mysql
fi
%post ndb
/sbin/chkconfig --add mysql-ndb
-if [ -f /var/lock/subsys/mysql-ndb ]; then
- /etc/rc.d/init.d/mysql-ndb restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/mysql-ndb start\" to start mysql NDB engine." >&2
-fi
+%service mysql-ndb restart "mysql NDB engine"
%preun ndb
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/mysql-ndb ]; then
- /etc/rc.d/init.d/mysql-ndb stop
- fi
- /sbin/chkconfig --del mysql-ndb
+ %service mysql-ndb stop
+ /sbin/chkconfig --del mysql-ndb
fi
%post ndb-mgm
/sbin/chkconfig --add mysql-ndb-mgm
-if [ -f /var/lock/subsys/mysql-ndb-mgm ]; then
- /etc/rc.d/init.d/mysql-ndb-mgm restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/mysql-ndb-mgm start\" to start mysql NDB management node." >&2
-fi
+%service mysql-ndb-mgm restart "mysql NDB management node"
%preun ndb-mgm
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/mysql-ndb-mgm ]; then
- /etc/rc.d/init.d/mysql-ndb-mgm stop
- fi
- /sbin/chkconfig --del mysql-ndb-mgm
+ %service mysql-ndb-mgm stop
+ /sbin/chkconfig --del mysql-ndb-mgm
fi
%post ndb-cpc
/sbin/chkconfig --add mysql-ndb-cpc
-if [ -f /var/lock/subsys/mysql-ndb-cpc ]; then
- /etc/rc.d/init.d/mysql-ndb-cpc restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/mysql-ndb-cpc start\" to start mysql NDB CPC." >&2
-fi
+%service mysql-ndb-cpc restart "mysql NDB CPC"
%preun ndb-cpc
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/mysql-ndb-cpc ]; then
- /etc/rc.d/init.d/mysql-ndb-cpc stop
- fi
- /sbin/chkconfig --del mysql-ndb-cpc
+ %service mysql-ndb-cpc stop
+ /sbin/chkconfig --del mysql-ndb-cpc
fi
%post libs -p /sbin/ldconfig
' $config_file
done
+%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
+EOF
+#'
+
%files
%defattr(644,root,root,755)
-%doc support-files/*.cnf support-files/*.ini scripts/fill_help_tables.sql
+%doc support-files/*.cnf support-files/*.ini
%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
%attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/clusters.conf
-%attr(750,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/monit/*.monitrc
-%attr(755,root,root) %{_bindir}/isamchk
-%attr(755,root,root) %{_bindir}/isamlog
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/monit/*.monitrc
+%attr(755,root,root) %{_bindir}/innochecksum
%attr(755,root,root) %{_bindir}/myisamchk
%attr(755,root,root) %{_bindir}/myisamlog
%attr(755,root,root) %{_bindir}/myisampack
%attr(755,root,root) %{_bindir}/mysql_fix_privilege_tables
-%attr(755,root,root) %{_bindir}/pack_isam
%attr(755,root,root) %{_bindir}/my_print_defaults
+%attr(755,root,root) %{_bindir}/mysql_upgrade
+%attr(755,root,root) %{_bindir}/mysql_upgrade_shell
%attr(755,root,root) %{_sbindir}/mysqld
-%{_mandir}/man1/isamchk.1*
-%{_mandir}/man1/isamlog.1*
%{_mandir}/man1/mysql_fix_privilege_tables.1*
%{_mandir}/man1/mysqld.1*
+%{_mandir}/man1/myisamchk.1*
+%{_mandir}/man1/myisamlog.1*
+%{_mandir}/man1/myisampack.1*
+%{_mandir}/man1/mysql_upgrade.1*
%attr(700,mysql,mysql) %{_mysqlhome}
# root:root is proper here for AC mysql.rpm while mysql:mysql is potential security hole
%attr(640,mysql,mysql) %ghost /var/log/mysql/*
%{_infodir}/mysql.info*
-%dir %{_datadir}/mysql
# This is template for configuration file which is created after 'service mysql init'
%{_datadir}/mysql/mysqld.conf
-%{_datadir}/mysql/charsets
%{_datadir}/mysql/english
+%{_datadir}/mysql/fill_help_tables.sql
%{_datadir}/mysql/mysql_fix_privilege_tables.sql
%lang(cs) %{_datadir}/mysql/czech
%lang(da) %{_datadir}/mysql/danish
%lang(hu) %{_datadir}/mysql/hungarian
%lang(it) %{_datadir}/mysql/italian
%lang(ja) %{_datadir}/mysql/japanese
-%lang(ja) %{_datadir}/mysql/japanese-sjis
%lang(ko) %{_datadir}/mysql/korean
%lang(nl) %{_datadir}/mysql/dutch
%lang(nb) %{_datadir}/mysql/norwegian
%lang(sv) %{_datadir}/mysql/swedish
%lang(uk) %{_datadir}/mysql/ukrainian
+%files charsets
+%defattr(644,root,root,755)
+%dir %{_datadir}/mysql
+%{_datadir}/mysql/charsets
+
%files extras
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/msql2mysql
-%attr(755,root,root) %{_bindir}/perror
-%attr(755,root,root) %{_bindir}/replace
-%attr(755,root,root) %{_bindir}/resolveip
%attr(755,root,root) %{_bindir}/myisam_ftdump
%attr(755,root,root) %{_bindir}/mysql_secure_installation
%attr(755,root,root) %{_bindir}/mysql_tzinfo_to_sql
%attr(755,root,root) %{_bindir}/mysqlcheck
+%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/mysqlcheck.1*
%{_mandir}/man1/perror.1*
%{_mandir}/man1/replace.1*
%files extras-perl
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/mysql_convert_table_format
-%attr(755,root,root) %{_bindir}/mysqldumpslow
-%attr(755,root,root) %{_bindir}/mysqlhotcopy
-%attr(755,root,root) %{_bindir}/mysql_setpermission
-%attr(755,root,root) %{_bindir}/mysql_zap
+%attr(755,root,root) %{_bindir}/mysql_explain_log
%attr(755,root,root) %{_bindir}/mysql_find_rows
-%attr(755,root,root) %{_bindir}/mysqlaccess
%attr(755,root,root) %{_bindir}/mysql_fix_extensions
-%attr(755,root,root) %{_bindir}/mysql_explain_log
+%attr(755,root,root) %{_bindir}/mysql_setpermission
%attr(755,root,root) %{_bindir}/mysql_tableinfo
+%attr(755,root,root) %{_bindir}/mysql_zap
+%attr(755,root,root) %{_bindir}/mysqlaccess
+%attr(755,root,root) %{_bindir}/mysqldumpslow
+%attr(755,root,root) %{_bindir}/mysqlhotcopy
+%{_mandir}/man1/mysql_explain_log.1*
%{_mandir}/man1/mysql_zap.1*
%{_mandir}/man1/mysqlaccess.1*
+%{_mandir}/man1/mysqlhotcopy.1*
%files client
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/mysqlbug
%attr(755,root,root) %{_bindir}/mysqldump
%attr(755,root,root) %{_bindir}/mysqlimport
-%attr(755,root,root) %{_bindir}/mysqlmanager*
+%attr(755,root,root) %{_sbindir}/mysqlmanager*
%attr(755,root,root) %{_bindir}/mysqlshow
%attr(755,root,root) %{_bindir}/mysqlbinlog
%attr(755,root,root) %{_bindir}/mysqladmin
+%attr(755,root,root) %{_bindir}/mysqltest*
%{_mandir}/man1/mysql.1*
%{_mandir}/man1/mysqladmin.1*
%{_mandir}/man1/mysqldump.1*
%{_mandir}/man1/mysqlshow.1*
+%{_mandir}/man1/mysqlmanager.1*
+%{_mandir}/man1/mysqlbinlog.1*
+%{_mandir}/man1/mysqlimport.1*
%files libs
%defattr(644,root,root,755)
%doc EXCEPTIONS-CLIENT
%attr(755,root,root) %{_libdir}/lib*.so.*.*
%attr(751,root,root) %dir %{_sysconfdir}/mysql
-%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/mysql-client.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/mysql-client.conf
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/mysql_config
%attr(755,root,root) %{_libdir}/lib*.so
%attr(755,root,root) %{_bindir}/*comp_err
-%attr(755,root,root) %{_bindir}/*resolve_stack_dump
+%{?debug:%attr(755,root,root) %{_bindir}/*resolve_stack_dump}
+%{?debug:%{_datadir}/mysql/mysqld.sym}
%{_libdir}/lib*.la
%{_libdir}/lib*[!tr].a
%{_includedir}/mysql
+%{_mandir}/man1/mysql_config.1*
%files static
%defattr(644,root,root,755)
%files ndb-client
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/ndb_*
+%attr(755,root,root) %{_datadir}/mysql/ndb_size.tmpl
%files ndb-mgm
%defattr(644,root,root,755)