diff --git a/README.md b/README.md index da5c866..63a084e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,13 @@ # mysql51 +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. +MySQL is a trademark of MySQL AB. + +The MySQL software has Dual Licensing, which means you can use the MySQL software free of charge under the GNU General Public License (http://www.gnu.org/licenses/). +You can also purchase commercial MySQL licenses from MySQL AB if you do not wish to be bound by the terms of the GPL. +See the chapter "Licensing and Support" in the manual for further info. + +The MySQL web site (http://www.mysql.com/) provides the latest news and information about the MySQL software. +Also please see the documentation and the manual for more information. + diff --git a/mysql-4.1.19-CVE-2006-0903.patch b/mysql-4.1.19-CVE-2006-0903.patch new file mode 100644 index 0000000..2b54241 --- /dev/null +++ b/mysql-4.1.19-CVE-2006-0903.patch @@ -0,0 +1,81 @@ +diff -pur mysql-4.1.19/sql/sql_lex.cc mysql-4.1.19-secfix/sql/sql_lex.cc +--- mysql-4.1.19/sql/sql_lex.cc 2006-04-29 07:35:53.000000000 +0200 ++++ mysql-4.1.19-secfix/sql/sql_lex.cc 2006-05-15 12:52:06.000000000 +0200 +@@ -912,6 +912,9 @@ int yylex(void *arg, void *yythd) + while (lex->ptr != lex->end_of_query && + ((c=yyGet()) != '*' || yyPeek() != '/')) + { ++ if (c == '\0') ++ return(ABORT_SYM); // NULLs illegal even in comments ++ + if (c == '\n') + lex->yylineno++; + } +diff -pur mysql-4.1.19/tests/mysql_client_test.c mysql-4.1.19-secfix/tests/mysql_client_test.c +--- mysql-4.1.19/tests/mysql_client_test.c 2006-04-29 07:35:53.000000000 +0200 ++++ mysql-4.1.19-secfix/tests/mysql_client_test.c 2006-05-15 12:59:49.000000000 +0200 +@@ -22,6 +22,7 @@ + ***************************************************************************/ + + #include ++#include + #include + #include + #include +@@ -11849,6 +11850,48 @@ static void test_bug15613() + } + + /* +++ Bug #17667: An attacker has the opportunity to bypass query logging. +++*/ ++ ++static void test_bug17667() ++{ ++ NET *net= &mysql->net; ++ int rc; ++ myheader("test_bug17667"); ++ ++ /* I. Prepare the table */ ++ mysql_real_query(mysql, "drop table if exists t1", 23); ++ ++ rc= mysql_real_query(mysql, "create table t1 (i int)", 23); ++ myquery(rc); ++ DIE_UNLESS(net->last_errno == 0); ++ ++ mysql_real_query(mysql, "insert into t1 (i) values (1)", 29); ++ myquery(rc); ++ DIE_UNLESS(net->last_errno == 0); ++ ++ mysql_real_query(mysql, "insert into /* NUL=\0 */ t1 (i) values (2)", 41); ++ myquery(rc); ++ DIE_UNLESS(net->last_errno == ER_PARSE_ERROR); ++ ++ mysql_real_query(mysql, "/* NUL=\0 */ insert into t1 (i) values (3)", 41); ++ myquery(rc); ++ DIE_UNLESS(net->last_errno == ER_PARSE_ERROR); ++ ++ mysql_real_query(mysql, "insert into /* TAB=\t */ t1 (i) values (4)", 41); ++ myquery(rc); ++ DIE_UNLESS(net->last_errno == 0); ++ ++ mysql_real_query(mysql, "/* TAB=\t */ insert into t1 (i) values (5)", 41); ++ myquery(rc); ++ DIE_UNLESS(net->last_errno == 0); ++ ++ /* II. Cleanup */ ++ rc= mysql_real_query(mysql, "drop table t1", 13); ++ myquery(rc); ++} ++ ++/* + Read and parse arguments and MySQL options from my.cnf + */ + +@@ -12071,6 +12114,7 @@ static struct my_tests_st my_tests[]= { + { "test_bug11718", test_bug11718 }, + { "test_bug12925", test_bug12925 }, + { "test_bug15613", test_bug15613 }, ++ { "test_bug17667", test_bug17667 }, + { 0, 0 } + }; + diff --git a/mysql-5.1.45-skip-abi-check.patch b/mysql-5.1.45-skip-abi-check.patch new file mode 100644 index 0000000..46125c7 --- /dev/null +++ b/mysql-5.1.45-skip-abi-check.patch @@ -0,0 +1,28 @@ +--- mysql-5.1.45/Makefile.am.orig 2010-03-31 10:52:25.000000000 -0400 ++++ mysql-5.1.45/Makefile.am 2010-03-31 10:55:05.000000000 -0400 +@@ -312,24 +312,7 @@ + $(MAKE) abi_headers="$^" do_abi_check + + do_abi_check: +- set -ex; \ +- for file in $(abi_headers); do \ +- @CC@ -E -nostdinc -dI \ +- -I$(top_srcdir)/include \ +- -I$(top_srcdir)/include/mysql \ +- -I$(top_srcdir)/sql \ +- -I$(top_builddir)/include \ +- -I$(top_builddir)/include/mysql \ +- -I$(top_builddir)/sql \ +- $$file 2>/dev/null | \ +- @SED@ -e '/^# /d' \ +- -e '/^[ ]*$$/d' \ +- -e '/^#pragma GCC set_debug_pwd/d' \ +- -e '/^#ident/d' > \ +- $(top_builddir)/abi_check.out; \ +- @DIFF@ -w $$file.pp $(top_builddir)/abi_check.out; \ +- @RM@ $(top_builddir)/abi_check.out; \ +- done ++ echo "Skipping do_abi_check" + + # Don't update the files from bitkeeper + %::SCCS/s.% diff --git a/mysql-initscript b/mysql-initscript new file mode 100644 index 0000000..127b003 --- /dev/null +++ b/mysql-initscript @@ -0,0 +1,215 @@ +#!/bin/sh +# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB +# This file is public domain and comes with NO WARRANTY of any kind + +# MySQL daemon start/stop script. + +# Usually this is put in /etc/init.d (at least on machines SYSV R4 based +# systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql. +# When this is done the mysql server will be started when the machine is +# started and shut down when the systems goes down. + +# Comments to support chkconfig on RedHat Linux +# chkconfig: 2345 90 10 +# description: A very fast and reliable SQL database engine. + +# Comments to support LSB init script conventions +### BEGIN INIT INFO +# Provides: mysql +# Required-Start: $local_fs $network $remote_fs +# Required-Stop: $local_fs $network $remote_fs +# Short-Description: start and stop MySQL +# Description: MySQL is a very fast and reliable SQL database engine. +### END INIT INFO + +# If you install MySQL on some other places than /, then you +# have to do one of the following things for this script to work: +# +# - Run this script from within the MySQL installation directory +# - Create a /etc/my.cnf file with the following information: +# [mysqld] +# basedir= +# - Add the above to any other configuration file (for example ~/.my.ini) +# and copy my_print_defaults to /usr/bin +# - Add the path to the mysql-installation-directory to the basedir variable +# below. +# +# If you want to affect other MySQL variables, you should make your changes +# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files. + +basedir= + +# The following variables are only set for letting mysql.server find things. + +# cbelisle@mandrakesoft : We need it to get the functions. +INITD=/etc/rc.d/init.d +. $INITD/functions + +# Set some defaults +datadir=/var/lib/mysql5 +pid_file= +if test -z "$basedir" +then + basedir=/ + bindir=/usr/bin +else + bindir="$basedir/bin" +fi + +PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin +export PATH + +if test -z "$pid_file" +then + pid_file=$datadir/`/bin/hostname`.pid +else + case "$pid_file" in + /* ) ;; + * ) pid_file="$datadir/$pid_file" ;; + esac +fi + +mode=$1 # start or stop + +parse_arguments() { + for arg do + case "$arg" in + --basedir=*) basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; + --datadir=*) datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; + --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;; + esac + done +} + +# Get arguments from the my.cnf file, +# groups [mysqld] [mysql_server] and [mysql.server] +if test -x ./bin/my_print_defaults +then + print_defaults="./bin/my_print_defaults" +elif test -x $bindir/my_print_defaults +then + print_defaults="$bindir/my_print_defaults" +elif test -x $bindir/mysql_print_defaults +then + print_defaults="$bindir/mysql_print_defaults" +else + # Try to find basedir in /etc/my.cnf + conf=/etc/my.cnf + print_defaults= + if test -r $conf + then + subpat='^[^=]*basedir[^=]*=\(.*\)$' + dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf` + for d in $dirs + do + d=`echo $d | sed -e 's/[ ]//g'` + if test -x "$d/bin/my_print_defaults" + then + print_defaults="$d/bin/my_print_defaults" + break + fi + if test -x "$d/bin/mysql_print_defaults" + then + print_defaults="$d/bin/mysql_print_defaults" + break + fi + done + fi + + # Hope it's in the PATH ... but I doubt it + test -z "$print_defaults" && print_defaults="my_print_defaults" +fi + +parse_arguments `$print_defaults mysqld mysql_server mysql.server` + +# Safeguard (relative paths, core dumps..) +cd $basedir + +case "$mode" in + 'start') + # Start daemon + + TMPDIR=/tmp + export TMPDIR + TMP=/tmp + export TMP + + if test -x $bindir/mysqld_safe + then + # Give extra arguments to mysqld with the my.cnf file. This script may + # be overwritten at next upgrade. + gprintf "Starting MySQL Server" + $bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file 2>&1 | logger -t mysqld_safe &>/dev/null & + success + # Make lock for RedHat / SuSE + if test -w /var/lock/subsys + then + touch /var/lock/subsys/mysql + fi + echo + else + gprintf "Can't execute %s/mysqld_safe from dir %s\n" "$bindir" "$basedir" + fi + ;; + + 'stop') + # Stop daemon. We use a signal here to avoid having to know the + # root password. + unset TMPDIR + unset TMP + gprintf "Stopping MySQL Server\n" + if test -s "$pid_file" + then + mysqld_pid=`cat $pid_file` + kill $mysqld_pid + gprintf "(pid %s)" "$mysqld_pid" + # mysqld should remove the pid_file when it exits, so wait for it. + + sleep 1 + while [ -s $pid_file -a "$flags" != aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ] + do + [ -z "$flags" ] && echo "Wait for mysqld to exit\c" || echo ".\c" + flags=a$flags + sleep 1 + done + if [ -s $pid_file ] + then failure " gave up waiting!" + elif [ -n "$flags" ] + then success + else + success + fi + # delete lock for RedHat / SuSE + if test -f /var/lock/subsys/mysql + then + rm /var/lock/subsys/mysql + fi + echo + else + failure "No mysqld pid file found. Looked for %s." "$pid_file" + echo + fi + ;; + + 'status') + status mysqld + ;; + + 'reload') + $0 stop + $0 start + ;; + + 'restart') + # Stop the service and regardless of whether it was + # running or not, start it again. + $0 stop + $0 start + ;; + + *) + # usage + gprintf "usage: %s {start|stop|status|reload|restart}\n" "$0" + exit 1 + ;; +esac diff --git a/mysql-logrotate b/mysql-logrotate new file mode 100644 index 0000000..01e96a4 --- /dev/null +++ b/mysql-logrotate @@ -0,0 +1,29 @@ +# This logname is set in mysql.server.sh that ends up in /etc/rc.d/init.d/mysql +# +# If the root user has a password you have to create a +# /root/.my.cnf configuration file with the following +# content: +# +# [mysqladmin] +# password = +# user= root +# +# where "" is the password. +# +# ATTENTION: This /root/.my.cnf should be readable ONLY +# for root ! + +/var/lib/mysql/mysqld.log { + # create 600 mysql mysql + notifempty + daily + rotate 3 + missingok + compress + postrotate + # just if mysqld is really running + if test -n "`ps acx|grep mysqld`"; then + /usr/bin/mysqladmin flush-logs + fi + endscript +} diff --git a/mysql51.spec b/mysql51.spec new file mode 100644 index 0000000..fe4e43f --- /dev/null +++ b/mysql51.spec @@ -0,0 +1,559 @@ +%define majversion %(echo %version | cut -d. -f 1-2) +%define MAJversion %(echo %version | cut -d. -f 1) + +%define groupid 65018 +%define userid 65018 + +Name: mysql51 +Version: 5.1.54 +Release: 3mamba +Summary: A very fast and reliable SQL database engine +Group: Applications/Databases +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.mysql.com +Source: ftp://ftp.easynet.be/mysql/Downloads/MySQL-%{majversion}/mysql-%{version}.tar.gz +Source2: mysql-logrotate +Source3: mysql_convert_db_format_to_mysql41.sh +Source4: mysql-initscript +Patch0: mysql-4.1.19-CVE-2006-0903.patch +Patch1: mysql-5.1.45-skip-abi-check.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libgcc +BuildRequires: libncurses-devel +BuildRequires: libopenssl-devel +BuildRequires: libstdc++6-devel +BuildRequires: libz-devel +BuildRequires: perl-DBI +BuildRequires: perl-devel +## AUTOBUILDREQ-END +BuildRequires: libdb47-devel >= 4.2.52 +BuildRequires: ORBit-devel >= 2.12.0 +BuildRequires: perl >= 5.8.0 +BuildRequires: bison +BuildRequires: doxygen +BuildRequires: tetex +BuildRequires: tetex-latex +Requires(post):%{__install_info} +Requires: %{name}-common = %{version}-%{release} +Requires: lsb +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Provides: mysql5 +Obsoletes: mysql5 + +%description +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. +MySQL is a trademark of MySQL AB. + +The MySQL software has Dual Licensing, which means you can use the MySQL software free of charge under the GNU General Public License (http://www.gnu.org/licenses/). +You can also purchase commercial MySQL licenses from MySQL AB if you do not wish to be bound by the terms of the GPL. +See the chapter "Licensing and Support" in the manual for further info. + +The MySQL web site (http://www.mysql.com/) provides the latest news and information about the MySQL software. +Also please see the documentation and the manual for more information. + +%package server +Summary: MySQL server +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} +Requires: %{name}-client = %{version}-%{release} + +%description server +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. +MySQL is a trademark of MySQL AB. + +The MySQL software has Dual Licensing, which means you can use the MySQL software free of charge under the GNU General Public License (http://www.gnu.org/licenses/). +You can also purchase commercial MySQL licenses from MySQL AB if you do not wish to be bound by the terms of the GPL. +See the chapter "Licensing and Support" in the manual for further info. + +The MySQL web site (http://www.mysql.com/) provides the latest news and information about the MySQL software. +Also please see the documentation and the manual for more information. + +This package contains the initscript for executing MySQL as a service. + +%package client +Summary: MySQL client +Group: Applications/Databases +Requires: %{name}-common = %{version}-%{release} + +%description client +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. + +This package contains the standard MySQL clients. + +%package bench +Summary: MySQL benchmarks and test system +Group: Applications/Databases +Requires: %{name} = %{version}-%{release} + +%description bench +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. + +This package contains MySQL benchmark scripts and data. + +%package common +Summary: Common files for the MySQL(TM) database server +Group: Applications/Databases + +%description common +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. + +Common files for the MySQL(TM) database server. + +%package -n libmysql51 +Summary: Shared libraries need to dynamically load and use MySQL +Group: System/Libraries + +%description -n libmysql51 +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. + +This package contains the shared libraries (*.so*) which certain languages and applications need to dynamically load and use MySQL. + +%package -n libmysql51-devel +Summary: Development header files and static libraries for MySQL +Group: Development/Libraries +Requires: libmysql51 = %{version}-%{release} + +%description -n libmysql51-devel +The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. +MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. + +This package contains the development header files and libraries necessary to develop MySQL client applications. + +%prep +%setup -q -n mysql-%{version} +#-D -T +#%patch0 -p1 -b .CVE-2006-0903 +#%patch1 -p1 + +%build +#:<< _EOF +%configure \ + --libexecdir=%{_sbindir} \ + --localstatedir=/var/lib/mysql%{MAJversion} \ + --with-ssl \ + --without-debug \ + --with-extra-charsets=all \ + --with-named-thread-libs="-lpthread" \ + --enable-shared \ + --enable-thread-safe-client \ + --with-embedded-server \ + --with-plugins=innobase + +%make \ + pkglibdir=%{_libdir} \ + pkgdatadir=%{_datadir}/mysql%{MAJversion} \ + pkgsuppdir=%{_datadir}/mysql%{MAJversion} + +%make check +#make test + +%install +[ "%{buildroot}" != / ] && rm -rf %{buildroot} +%makeinstall \ + libexecdir=%{_sbindir} \ + pkglibdir=%{_libdir} \ + pkgdatadir=%{_datadir}/mysql%{MAJversion} \ + pkgsuppdir=%{_datadir}/mysql%{MAJversion} + +install -d %{buildroot}/var/lib/mysql%{MAJversion} +#install -d %{buildroot}/var/log +#touch %{buildroot}/var/log/mysqld.log + +install -D -m755 support-files/mysql.server %{buildroot}%{_initrddir}/mysql +install -D -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/mysql +#install -D -m755 %{SOURCE3} \ +# %{buildroot}%{_datadir}/mysql/%{name}_convert_db_format_to_mysql41 +# copy default configuration file +install -D -m644 support-files/my-medium.cnf %{buildroot}%{_sysconfdir}/my.cnf +install -D -m0755 %{SOURCE4} %{buildroot}%{_initrddir}/mysql + +mv %{buildroot}%{_prefix}/sql-bench %{buildroot}%{_datadir}/sql-bench + +# delete unpackaged files +#rm -f %{buildroot}%{_bindir}/make_win* +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/mysql-*.spec +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/MySQL-shared-compat.spec +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/mysql-log-rotate + +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/binary-configure +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/mi_test_all* +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/*.cnf +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/*.ini + +rm -fr %{buildroot}%{_prefix}/mysql-test +rm -f %{buildroot}%{_datadir}/mysql%{?MAJversion}/ChangeLog + +%clean +[ "%{buildroot}" != / ] && rm -rf %{buildroot} + +%pre server +if [ $1 -ge 1 ]; then + /usr/sbin/groupadd mysql -g %{groupid} 2>/dev/null + /usr/sbin/useradd -u %{userid} -c 'Mysql service' -d /dev/null \ + -g mysql -s /bin/false mysql 2>/dev/null +fi +exit 0 + +%post server +if [ $1 -eq 1 ]; then +# new install: initialize db + mysql_install_db -b %{_prefix} --ldata=/var/lib/mysql%{MAJversion} + /bin/chown -R mysql.mysql /var/lib/mysql%{MAJversion} + /sbin/chkconfig --add mysql + /sbin/service mysql start +fi +exit 0 + +%preun server +if [ $1 -eq 0 ]; then +# erase + /sbin/chkconfig --del mysql + /sbin/service mysql stop + /usr/sbin/userdel mysql + /usr/sbin/groupdel mysql +fi +exit 0 + +%postun server +if [ $1 -eq 1 ]; then +# update + [ -f /var/lock/subsys/mysql ] && service mysql restart +# [ -x %{_datadir}/mysql/mysql_convert_db_format_to_mysql41 ] && +# %{_datadir}/mysql/mysql_convert_db_format_to_mysql41 &>/dev/null +fi +exit 0 + +%post -n libmysql51 -p /sbin/ldconfig +%postun -n libmysql51 -p /sbin/ldconfig + +%post common +%install_info %{name}.info + +%preun common +%uninstall_info %{name}.info +exit 0 + +%files +%defattr(-,root,root) +%config(noreplace) %{_sysconfdir}/my.cnf +%{_sbindir}/mysqld +%{_bindir}/mysql_upgrade +#%{_bindir}/mysql_upgrade_shell +%{_mandir}/man8/mysqld.8.gz +%doc ChangeLog COPYING README +#%doc Docs/manual.html + +%files server +%defattr(-,root,root) +%attr(755,root,root) %{_initrddir}/mysql +%attr(755,mysql,mysql) %dir /var/lib/mysql%{?MAJversion} + +%files client +%defattr(-,root,root) +%{_bindir}/msql2mysql +%{_bindir}/mysql +%{_bindir}/mysqlaccess +%{_bindir}/mysqladmin +%{_bindir}/mysqlbinlog +%{_bindir}/mysqlcheck +%{_bindir}/mysqldump +%{_bindir}/mysqldumpslow +%{_bindir}/mysqlimport +%{_bindir}/mysqlshow +%{_bindir}/mysqlslap +%{_bindir}/mysqltest +%{_bindir}/mysql_client_test +%{_bindir}/mysql_find_rows +%{_mandir}/man1/* + +%files common +%defattr(-,root,root) +%{_bindir}/innochecksum +%{_bindir}/my_print_defaults +%{_bindir}/myisamchk +%{_bindir}/myisamlog +%{_bindir}/myisampack +%{_bindir}/mysql_convert_table_format +#%{_bindir}/mysql_explain_log +%{_bindir}/mysql_fix_extensions +%{_bindir}/mysql_fix_privilege_tables +#%{_bindir}/mysql_install +%{_bindir}/mysql_install_db +%{_bindir}/mysql_secure_installation +%{_bindir}/mysql_setpermission +#%{_bindir}/mysql_tableinfo +%{_bindir}/mysql_tzinfo_to_sql +%{_bindir}/mysql_waitpid +%{_bindir}/mysql_zap +%{_bindir}/mysqlbug +%{_bindir}/mysqld_multi +%{_bindir}/mysqld_safe +%{_bindir}/mysqlhotcopy +#%{_bindir}/mysqltestmanager +#%{_bindir}/mysqltestmanager-pwgen +#%{_bindir}/mysqltestmanagerc +%{_bindir}/perror +%{_bindir}/replace +%{_bindir}/resolve_stack_dump +%{_bindir}/resolveip +%{_sbindir}/mysqlmanager +%config(noreplace) %{_sysconfdir}/logrotate.d/mysql +%dir %{_datadir}/mysql%{MAJversion} +#%{_datadir}/mysql/%{name}_convert_db_format_to_mysql41 +%{_datadir}/mysql%{?MAJversion}/english +%lang(cs) %{_datadir}/mysql%{?MAJversion}/czech +%lang(da) %{_datadir}/mysql%{?MAJversion}/danish +%lang(nl) %{_datadir}/mysql%{?MAJversion}/dutch +%lang(et) %{_datadir}/mysql%{?MAJversion}/estonian +%lang(fr) %{_datadir}/mysql%{?MAJversion}/french +%lang(de) %{_datadir}/mysql%{?MAJversion}/german +%lang(el) %{_datadir}/mysql%{?MAJversion}/greek +%lang(hu) %{_datadir}/mysql%{?MAJversion}/hungarian +%lang(it) %{_datadir}/mysql%{?MAJversion}/italian +%lang(ja) %{_datadir}/mysql%{?MAJversion}/japanese +%lang(ko) %{_datadir}/mysql%{?MAJversion}/korean +%lang(no) %{_datadir}/mysql%{?MAJversion}/norwegian +%lang(no) %{_datadir}/mysql%{?MAJversion}/norwegian-ny +%lang(pl) %{_datadir}/mysql%{?MAJversion}/polish +%lang(pt) %{_datadir}/mysql%{?MAJversion}/portuguese +%lang(ro) %{_datadir}/mysql%{?MAJversion}/romanian +%lang(ru) %{_datadir}/mysql%{?MAJversion}/russian +%lang(sr) %{_datadir}/mysql%{?MAJversion}/serbian +%lang(sk) %{_datadir}/mysql%{?MAJversion}/slovak +%lang(es) %{_datadir}/mysql%{?MAJversion}/spanish +%lang(sv) %{_datadir}/mysql%{?MAJversion}/swedish +%lang(uk) %{_datadir}/mysql%{?MAJversion}/ukrainian +%{_datadir}/mysql%{?MAJversion}/charsets +%{_datadir}/mysql%{?MAJversion}/errmsg.txt +%{_datadir}/mysql%{?MAJversion}/fill_help_tables.sql +%{_datadir}/mysql%{?MAJversion}/mysql_fix_privilege_tables.sql +%{_datadir}/mysql%{?MAJversion}/mysql_system_tables.sql +%{_datadir}/mysql%{?MAJversion}/mysql_system_tables_data.sql +%{_datadir}/mysql%{?MAJversion}/mysql_test_data_timezone.sql +%{_datadir}/mysql%{?MAJversion}/mysql.server +%{_datadir}/mysql%{?MAJversion}/mysqld_multi.server +%{_infodir}/mysql.info.* +%{_mandir}/man8/mysqlmanager.8.gz + +%files bench +%defattr(-,root,root) +%dir %{_datadir}/sql-bench +%{_datadir}/sql-bench/* + +%files -n libmysql51 +%defattr(-,root,root) +%{_libdir}/libmysqlclient.so.* +%{_libdir}/libmysqlclient_r.so.* +%{_libdir}/plugin/ha_archive.a +%{_libdir}/plugin/ha_archive.la +%{_libdir}/plugin/ha_archive.so +%{_libdir}/plugin/ha_archive.so.* +%{_libdir}/plugin/ha_blackhole.a +%{_libdir}/plugin/ha_blackhole.la +%{_libdir}/plugin/ha_blackhole.so +%{_libdir}/plugin/ha_blackhole.so.* +%{_libdir}/plugin/ha_example.a +%{_libdir}/plugin/ha_example.la +%{_libdir}/plugin/ha_example.so +%{_libdir}/plugin/ha_example.so.* +%{_libdir}/plugin/ha_federated.a +%{_libdir}/plugin/ha_federated.la +%{_libdir}/plugin/ha_federated.so +%{_libdir}/plugin/ha_federated.so.* +%{_libdir}/plugin/ha_innodb_plugin.a +%{_libdir}/plugin/ha_innodb_plugin.la +%{_libdir}/plugin/ha_innodb_plugin.so +%{_libdir}/plugin/ha_innodb_plugin.so.* +%{_libdir}/plugin/libdaemon_example.a +%{_libdir}/plugin/libdaemon_example.la +%{_libdir}/plugin/libdaemon_example.so +%{_libdir}/plugin/libdaemon_example.so.* +%{_libdir}/plugin/mypluglib.a +%{_libdir}/plugin/mypluglib.la +%{_libdir}/plugin/mypluglib.so +%{_libdir}/plugin/mypluglib.so.* + +%files -n libmysql51-devel +%defattr(-,root,root) +%{_bindir}/mysql_client_test_embedded +%{_bindir}/mysqltest_embedded +#%{_bindir}/comp_err +%{_bindir}/mysql_config +%{_bindir}/myisam_ftdump +%{_includedir}/* +%{_libdir}/*.a +%{_libdir}/libmysqlclient.la +%{_libdir}/libmysqlclient.so +%{_libdir}/libmysqlclient_r.la +%{_libdir}/libmysqlclient_r.so +%{_datadir}/aclocal/mysql.m4 + +%changelog +* Sat Mar 28 2015 Silvan Calarco 5.1.54-3mamba +- legacy package + +* Tue Feb 01 2011 Silvan Calarco 5.1.54-2mamba +- move mysqlslap and mysqltest to client package to remove circular dependency with mysql-common + +* Fri Dec 24 2010 Silvan Calarco 5.1.54-1mamba +- update to 5.1.54 + +* Wed Aug 04 2010 Automatic Build System 5.1.49-1mamba +- automatic update to 5.1.49 by autodist + +* Thu Jun 17 2010 Automatic Build System 5.1.48-1mamba +- automatic update to 5.1.48 by autodist + +* Sun Jun 06 2010 Silvan Calarco 5.1.47-2mamba +- mysql_upgrade moved from server to main package +- gcc 4.5 build patch added + +* Thu May 20 2010 Automatic Build System 5.1.47-1mamba +- automatic update to 5.1.47 by autodist + +* Fri Apr 23 2010 Automatic Build System 5.1.46-1mamba +- automatic update to 5.1.46 by autodist + +* Fri Apr 09 2010 Silvan Calarco 5.1.45-2mamba +- mysql-server: added requirement for mysql-client + +* Wed Mar 17 2010 Automatic Build System 5.1.45-1mamba +- automatic update to 5.1.45 by autodist + +* Sun Mar 14 2010 Automatic Build System 5.1.44-1mamba +- automatic update to 5.1.44 by autodist + +* Mon Feb 01 2010 Automatic Build System 5.1.43-1mamba +- automatic update to 5.1.43 by autodist + +* Fri Jan 01 2010 Automatic Build System 5.1.42-1mamba +- automatic update to 5.1.42 by autodist + +* Wed Nov 18 2009 Automatic Build System 5.1.41-1mamba +- automatic update to 5.1.41 by autodist + +* Tue Oct 20 2009 Automatic Build System 5.1.40-1mamba +- automatic update to 5.1.40 by autodist + +* Tue Sep 22 2009 Automatic Build System 5.1.39-1mamba +- automatic update to 5.1.39 by autodist + +* Fri Sep 11 2009 Automatic Build System 5.1.38-1mamba +- automatic update to 5.1.38 by autodist + +* Fri Jul 31 2009 Automatic Build System 5.1.37-1mamba +- automatic update to 5.1.37 by autodist + +* Wed Jul 01 2009 Automatic Build System 5.1.36-1mamba +- automatic update to 5.1.36 by autodist + +* Tue Jun 30 2009 Davide Madrisan 5.1.35-3mamba +- fixed installation of the mysql infofile + +* Mon Jun 29 2009 Silvan Calarco 5.1.35-2mamba +- initscript: redirect logger output to prevent multithreaded init lockup + +* Thu Jun 04 2009 Automatic Build System 5.1.35-1mamba +- automatic update to 5.1.35 by autodist + +* Sat May 30 2009 Silvan Calarco 5.1.34-3mamba +- rebuilt with innobase plugin statically included into mysqld (as required by akonadi) + +* Fri May 29 2009 Silvan Calarco 5.1.34-2mamba +- added package mysql-server so mysqld can be used by akonadi without enabling it as a system service + +* Mon Apr 20 2009 Automatic Build System 5.1.34-1mamba +- update to 5.1.34 + +* Fri Apr 03 2009 Silvan Calarco 5.1.33-1mamba +- automatic update to 5.1.33 by autodist + +* Mon Mar 16 2009 Silvan Calarco 5.1.32-3mamba +- default configuration file name fixed (/etc/my.cnf) + +* Wed Mar 11 2009 Silvan Calarco 5.1.32-2mamba +- update to mysql5, obsolete mysql5 packages + +* Thu Mar 05 2009 Silvan Calarco 5.1.32-1mamba +- automatic update to 5.1.32 by autodist + +* Thu Feb 19 2009 Silvan Calarco 5.1.31-1mamba +- update to 5.1.31 + +* Sat Dec 13 2008 Silvan Calarco 5.1.30-1mamba +- update to 5.1.30 + +* Tue Nov 04 2008 Silvan Calarco 5.0.67-2mamba +- changed datadir to /usr/lib/mysql5 +- build with libdb47 + +* Sun Nov 02 2008 Silvan Calarco 5.0.67-1mamba +- automatic update to 5.0.67 by autodist + +* Fri Jun 27 2008 Silvan Calarco 5.0.51b-1mamba +- update to 5.0.51b [Stativa] + +* Fri Jan 11 2008 Silvan Calarco 4.1.22-2mamba +- use default initscript +- require lsb + +* Tue Mar 13 2007 Silvan Calarco 4.1.22-1qilnx +- update to version 4.1.22 by autospec + +* Tue Jun 27 2006 Davide Madrisan 4.1.20-1qilnx +- update to version 4.1.20 by autospec +- this version also fixes CVE-2006-2753 + +* Mon May 15 2006 Davide Madrisan 4.1.19-1qilnx +- update to version 4.1.19 by autospec +- also fixes the security issues: CVE-2006-{1516,1517,3081} +- security bug CVE-2006-0903 fixed + +* Wed Mar 01 2006 Silvan Calarco 4.1.18-1qilnx +- update to version 4.1.18 by autospec + +* Tue Sep 20 2005 Davide Madrisan 4.1.14-1qilnx +- update to version 4.1.14 by autospec +- also fix the security issue: QSA-2005-108 (CAN-2005-2558) +- specfile updated: install/uninstall info files +- new script %{name}_convert_db_format_to_mysql41 + +* Wed Mar 23 2005 Davide Madrisan 4.0.24-2qilnx +- restart the mysql server only when active (%%postun script) +- added mising %%postun script for `libmysql' + +* Wed Mar 23 2005 Davide Madrisan 4.0.24-1qilnx +- update to version 4.0.24 by autospec +- fixes security vulnerabilities QSA-2005-032 (CAN-2005-07[09,10,11]) + +* Tue Feb 01 2005 Davide Madrisan 4.0.23-1qilnx +- update to version 4.0.23 by autospec +- fixed security vulnerability QSA-2005-011 (CAN-2005-0004) + +* Tue Sep 14 2004 Davide Madrisan 4.0.21-1qilnx +- update to version 4.0.21 by autospec + also fix: CAN-2004-0457, CAN-2004-083[5,6,7] + +* Fri Jul 09 2004 Silvan Calarco 4.0.20-1qilnx +- new version build + +* Thu Feb 26 2004 Silvan Calarco 4.0.18-1qilnx +- New version rebuild +- groupid and userid specified according to QiLinux services rules + +* Wed Sep 03 2003 Silvan Calarco 4.0.12-2qilnx +- Added configuration scripts and /var directories + +* Mon May 19 2003 Alessandro Ramazzina 4.0.12-1qilnx +- creation of mysql package + diff --git a/mysql_convert_db_format_to_mysql41.sh b/mysql_convert_db_format_to_mysql41.sh new file mode 100644 index 0000000..c056b3c --- /dev/null +++ b/mysql_convert_db_format_to_mysql41.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# $0 -- Convert all local MySQL DB to the MySQL 4.1 format +# Copyright (C) 2005 Davide Madrisan + +# see: http://dev.mysql.com/doc/mysql/en/upgrading-from-4-0.html + +[ $UID = 0 ] || + { echo "error: ${0##*/}: must be superuser" >&2; exit 1; } + +# dump all local MySQL DB to a temporary file +tempf=`mktemp -t allMySQLdb.XXXXXX` || + { echo "cannot create secure temporary files." >&2; exit 1; } +trap 'rm -f $tempf' 0 1 2 3 6 7 13 15 + +[ -f /var/lock/subsys/mysql ] && + let "mysql_is_running = 1" || let "mysql_is_running = 0" + +[ "$mysql_is_running" = "1" ] || + { service mysql start; sleep 3; } + +echo "dumping all MySQL DB to $tempf..." +mysqldump --all-databases --result-file=$tempf >/dev/null + +service mysql stop +sleep 3 + +# create a backup copy of all mysql DB +echo "creating a backup copy of all the DB in $bckdir..." +bckdir=`mktemp -d /var/lib/mysql.XXXXXX` || + { echo "cannot create a backup copy of local MySQL db." >&2; exit 1; } + +mv /var/lib/mysql/ $bckdir + +echo "creating a new MySQL DB and change permissions..." +install -d -m755 -o mysql -g mysql /var/lib/mysql/ +mysql_install_db -b /usr --ldata=/var/lib/mysql +/bin/chown -R mysql.mysql /var/lib/mysql/* + +service mysql start + +sleep 3 + +echo "restoring the dumped MySQL DB $tempf..." +mysql < $tempf +#mysql_fix_privilege_tables + +rm -f $tempf + +[ "$mysql_is_running" = "1" ] || service mysql stop +