From 67c46965b4bd225c3c2c719a3292b390dad5e0e4 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 23 Aug 2008 20:31:19 +0000 Subject: [PATCH] Update to mysql version 5.0.67 --- .cvsignore | 2 +- mysql-errno.patch | 29 ++++++---- mysql-innodb-crash.patch | 114 --------------------------------------- mysql-install-test.patch | 20 +++---- mysql-ss-test.patch | 39 -------------- mysql-ssl.patch | 75 -------------------------- mysql-testing.patch | 36 ++++++------- mysql.spec | 22 ++++---- sources | 2 +- 9 files changed, 60 insertions(+), 279 deletions(-) delete mode 100644 mysql-innodb-crash.patch delete mode 100644 mysql-ss-test.patch delete mode 100644 mysql-ssl.patch diff --git a/.cvsignore b/.cvsignore index e0f842b..df38cb2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -mysql-5.0.51a.tar.gz +mysql-5.0.67.tar.gz diff --git a/mysql-errno.patch b/mysql-errno.patch index ad8531e..2d0bf2b 100644 --- a/mysql-errno.patch +++ b/mysql-errno.patch @@ -1,14 +1,21 @@ -diff -Naur mysql-5.0.15.orig/include/my_global.h mysql-5.0.15/include/my_global.h ---- mysql-5.0.15.orig/include/my_global.h 2005-10-16 21:27:27.000000000 -0400 -+++ mysql-5.0.15/include/my_global.h 2005-11-02 16:16:37.000000000 -0500 -@@ -107,6 +107,10 @@ - #define _GNU_SOURCE 1 +"extern int errno" is just a really bad idea. + + +diff -Naur mysql-5.0.67.orig/include/my_sys.h mysql-5.0.67/include/my_sys.h +--- mysql-5.0.67.orig/include/my_sys.h 2008-08-04 08:19:12.000000000 -0400 ++++ mysql-5.0.67/include/my_sys.h 2008-08-23 14:39:08.000000000 -0400 +@@ -208,13 +208,8 @@ #endif + #endif /* MSDOS */ -+#ifdef __linux__ -+#define HAVE_ERRNO_AS_DEFINE -+#endif +-#ifndef errno /* did we already get it? */ +-#ifdef HAVE_ERRNO_AS_DEFINE + #include /* errno is a define */ +-#else +-extern int errno; /* declare errno */ +-#endif +-#endif /* #ifndef errno */ + - /* - Temporary solution to solve bug#7156. Include "sys/types.h" before - the thread headers, else the function madvise() will not be defined + extern char NEAR errbuff[NRERRBUFFS][ERRMSGSIZE]; + extern char *home_dir; /* Home directory for user */ + extern const char *my_progname; /* program-name (printed in errors) */ diff --git a/mysql-innodb-crash.patch b/mysql-innodb-crash.patch deleted file mode 100644 index 89dd454..0000000 --- a/mysql-innodb-crash.patch +++ /dev/null @@ -1,114 +0,0 @@ -Back-port upstream fix for CVE-2007-5925. - -diff -Naur mysql-5.0.51a.orig/innobase/include/db0err.h mysql-5.0.51a/innobase/include/db0err.h ---- mysql-5.0.51a.orig/innobase/include/db0err.h 2008-01-11 09:43:41.000000000 -0500 -+++ mysql-5.0.51a/innobase/include/db0err.h 2008-07-27 14:40:23.000000000 -0400 -@@ -57,6 +57,18 @@ - buffer pool (for big transactions, - InnoDB stores the lock structs in the - buffer pool) */ -+#define DB_FOREIGN_DUPLICATE_KEY 46 /* foreign key constraints -+ activated by the operation would -+ lead to a duplicate key in some -+ table */ -+#define DB_TOO_MANY_CONCURRENT_TRXS 47 /* when InnoDB runs out of the -+ preconfigured undo slots, this can -+ only happen when there are too many -+ concurrent transactions */ -+#define DB_UNSUPPORTED 48 /* when InnoDB sees any artefact or -+ a feature that it can't recoginize or -+ work with e.g., FT indexes created by -+ a later version of the engine. */ - - /* The following are partial failure codes */ - #define DB_FAIL 1000 -diff -Naur mysql-5.0.51a.orig/innobase/include/page0cur.h mysql-5.0.51a/innobase/include/page0cur.h ---- mysql-5.0.51a.orig/innobase/include/page0cur.h 2008-01-11 09:43:26.000000000 -0500 -+++ mysql-5.0.51a/innobase/include/page0cur.h 2008-07-27 14:40:23.000000000 -0400 -@@ -22,6 +22,7 @@ - - /* Page cursor search modes; the values must be in this order! */ - -+#define PAGE_CUR_UNSUPP 0 - #define PAGE_CUR_G 1 - #define PAGE_CUR_GE 2 - #define PAGE_CUR_L 3 -diff -Naur mysql-5.0.51a.orig/sql/ha_innodb.cc mysql-5.0.51a/sql/ha_innodb.cc ---- mysql-5.0.51a.orig/sql/ha_innodb.cc 2008-01-11 09:43:39.000000000 -0500 -+++ mysql-5.0.51a/sql/ha_innodb.cc 2008-07-27 14:40:23.000000000 -0400 -@@ -521,6 +521,9 @@ - mark_transaction_to_rollback(thd, TRUE); - - return(HA_ERR_LOCK_TABLE_FULL); -+ } else if (error == DB_UNSUPPORTED) { -+ -+ return(HA_ERR_UNSUPPORTED); - } else { - return(-1); // Unknown error - } -@@ -3710,11 +3713,21 @@ - and comparison of non-latin1 char type fields in - innobase_mysql_cmp() to get PAGE_CUR_LE_OR_EXTENDS to - work correctly. */ -- -- default: assert(0); -+ case HA_READ_MBR_CONTAIN: -+ case HA_READ_MBR_INTERSECT: -+ case HA_READ_MBR_WITHIN: -+ case HA_READ_MBR_DISJOINT: -+ my_error(ER_TABLE_CANT_HANDLE_SPKEYS, MYF(0)); -+ return(PAGE_CUR_UNSUPP); -+ /* do not use "default:" in order to produce a gcc warning: -+ enumeration value '...' not handled in switch -+ (if -Wswitch or -Wall is used) -+ */ - } - -- return(0); -+ my_error(ER_CHECK_NOT_IMPLEMENTED, MYF(0), "this functionality"); -+ -+ return(PAGE_CUR_UNSUPP); - } - - /* -@@ -3852,11 +3865,18 @@ - - last_match_mode = (uint) match_mode; - -- innodb_srv_conc_enter_innodb(prebuilt->trx); -+ if (mode != PAGE_CUR_UNSUPP) { - -- ret = row_search_for_mysql((byte*) buf, mode, prebuilt, match_mode, 0); -+ innodb_srv_conc_enter_innodb(prebuilt->trx); - -- innodb_srv_conc_exit_innodb(prebuilt->trx); -+ ret = row_search_for_mysql((byte*) buf, mode, prebuilt, -+ match_mode, 0); -+ -+ innodb_srv_conc_exit_innodb(prebuilt->trx); -+ } else { -+ -+ ret = DB_UNSUPPORTED; -+ } - - if (ret == DB_SUCCESS) { - error = 0; -@@ -5171,8 +5191,16 @@ - mode2 = convert_search_mode_to_innobase(max_key ? max_key->flag : - HA_READ_KEY_EXACT); - -- n_rows = btr_estimate_n_rows_in_range(index, range_start, -- mode1, range_end, mode2); -+ if (mode1 != PAGE_CUR_UNSUPP && mode2 != PAGE_CUR_UNSUPP) { -+ -+ n_rows = btr_estimate_n_rows_in_range(index, range_start, -+ mode1, range_end, -+ mode2); -+ } else { -+ -+ n_rows = 0; -+ } -+ - dtuple_free_for_mysql(heap1); - dtuple_free_for_mysql(heap2); - diff --git a/mysql-install-test.patch b/mysql-install-test.patch index 130cabb..635a428 100644 --- a/mysql-install-test.patch +++ b/mysql-install-test.patch @@ -4,10 +4,10 @@ like /usr/share/mysql-test, we have to hack up the paths in install_test_db. This patch also improves the documentation a tad. -diff -Naur mysql-5.0.40.orig/mysql-test/README mysql-5.0.40/mysql-test/README ---- mysql-5.0.40.orig/mysql-test/README 2007-04-20 10:14:42.000000000 -0400 -+++ mysql-5.0.40/mysql-test/README 2007-05-23 14:41:03.000000000 -0400 -@@ -6,6 +6,17 @@ +diff -Naur mysql-5.0.67.orig/mysql-test/README mysql-5.0.67/mysql-test/README +--- mysql-5.0.67.orig/mysql-test/README 2008-08-04 08:19:20.000000000 -0400 ++++ mysql-5.0.67/mysql-test/README 2008-08-23 16:25:14.000000000 -0400 +@@ -6,6 +6,19 @@ actually have a co-existing MySQL installation. The tests will not conflict with it. @@ -20,12 +20,14 @@ diff -Naur mysql-5.0.40.orig/mysql-test/README mysql-5.0.40/mysql-test/README +so you need not start the mysqld service beforehand. If you have not +installed mysql-cluster, use + sudo -u mysql ./mysql-test-run --skip-ndbcluster -+to skip the cluster-related tests. ++to skip the cluster-related tests. To clean up afterwards, remove the ++created "var" subdirectory, eg ++ sudo -u mysql rm -rf /usr/share/mysql-test/var + All tests must pass. If one or more of them fail on your system, please read the following manual section for instructions on how to report the problem: -@@ -25,7 +36,8 @@ +@@ -25,7 +38,8 @@ With no test cases named on the command line, mysql-test-run falls back to the normal "non-extern" behavior. The reason for this is that some @@ -35,9 +37,9 @@ diff -Naur mysql-5.0.40.orig/mysql-test/README mysql-5.0.40/mysql-test/README You can create your own test cases. To create a test case, create a new -diff -Naur mysql-5.0.40.orig/mysql-test/install_test_db.sh mysql-5.0.40/mysql-test/install_test_db.sh ---- mysql-5.0.40.orig/mysql-test/install_test_db.sh 2007-04-20 10:14:31.000000000 -0400 -+++ mysql-5.0.40/mysql-test/install_test_db.sh 2007-05-23 14:39:44.000000000 -0400 +diff -Naur mysql-5.0.67.orig/mysql-test/install_test_db.sh mysql-5.0.67/mysql-test/install_test_db.sh +--- mysql-5.0.67.orig/mysql-test/install_test_db.sh 2008-08-04 08:19:21.000000000 -0400 ++++ mysql-5.0.67/mysql-test/install_test_db.sh 2008-08-23 16:21:59.000000000 -0400 @@ -26,18 +26,15 @@ libexecdir=../libexec diff --git a/mysql-ss-test.patch b/mysql-ss-test.patch deleted file mode 100644 index 30b4b71..0000000 --- a/mysql-ss-test.patch +++ /dev/null @@ -1,39 +0,0 @@ -You'd think MySQL AB would have learned last year that a test that's designed -to fail next January 1st isn't a good idea. Short-sightedness seems to still -reign supreme over there, however. We will dike out this test, and we will -not put it back as long as it's designed to depend on the value of now(). -Whatever bit of testing coverage we might lose here is not worth packages -that break annually. - - -diff -Naur mysql-5.0.45.orig/mysql-test/r/view.result mysql-5.0.45/mysql-test/r/view.result ---- mysql-5.0.45.orig/mysql-test/r/view.result 2007-07-04 09:49:09.000000000 -0400 -+++ mysql-5.0.45/mysql-test/r/view.result 2008-01-07 22:26:00.000000000 -0500 -@@ -2709,14 +2709,6 @@ - SHOW CREATE VIEW v1; - View Create View - v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) --SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75; --Age --43 --39 --SELECT * FROM v1; --Age --43 --39 - DROP VIEW v1; - DROP TABLE t1; - CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx'); -diff -Naur mysql-5.0.45.orig/mysql-test/t/view.test mysql-5.0.45/mysql-test/t/view.test ---- mysql-5.0.45.orig/mysql-test/t/view.test 2007-07-04 09:49:09.000000000 -0400 -+++ mysql-5.0.45/mysql-test/t/view.test 2008-01-07 22:25:44.000000000 -0500 -@@ -2560,9 +2560,6 @@ - FROM t1 HAVING Age < 75; - SHOW CREATE VIEW v1; - --SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75; --SELECT * FROM v1; -- - DROP VIEW v1; - DROP TABLE t1; - diff --git a/mysql-ssl.patch b/mysql-ssl.patch deleted file mode 100644 index 5fbbe4f..0000000 --- a/mysql-ssl.patch +++ /dev/null @@ -1,75 +0,0 @@ -Repair 5.0.50 SSL breakage, per upstream bug -http://bugs.mysql.com/bug.php?id=33050 - - -diff -Naur mysql-5.0.54a.orig/vio/viossl.c mysql-5.0.54a/vio/viossl.c ---- mysql-5.0.54a.orig/vio/viossl.c 2008-01-11 09:08:38.000000000 -0500 -+++ mysql-5.0.54a/vio/viossl.c 2008-02-12 15:30:42.000000000 -0500 -@@ -172,20 +172,15 @@ - vio_delete(vio); - } - --int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) --{ -- DBUG_ENTER("sslaccept"); -- DBUG_RETURN(sslconnect(ptr, vio, timeout)); --} -- - --int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) -+static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout, -+ int (*connect_accept_func)(SSL*)) - { - SSL *ssl; - my_bool unused; - my_bool was_blocking; - -- DBUG_ENTER("sslconnect"); -+ DBUG_ENTER("ssl_do"); - DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx", - (long) ptr, vio->sd, (long) ptr->ssl_context)); - -@@ -204,13 +199,9 @@ - SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); - SSL_set_fd(ssl, vio->sd); - -- /* -- SSL_do_handshake will select between SSL_connect -- or SSL_accept depending on server or client side -- */ -- if (SSL_do_handshake(ssl) < 1) -+ if (connect_accept_func(ssl) < 1) - { -- DBUG_PRINT("error", ("SSL_do_handshake failure")); -+ DBUG_PRINT("error", ("SSL_connect/accept failure")); - report_errors(ssl); - SSL_free(ssl); - vio_blocking(vio, was_blocking, &unused); -@@ -259,6 +250,20 @@ - } - - -+int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) -+{ -+ DBUG_ENTER("sslaccept"); -+ DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_accept)); -+} -+ -+ -+int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) -+{ -+ DBUG_ENTER("sslconnect"); -+ DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_connect)); -+} -+ -+ - int vio_ssl_blocking(Vio *vio __attribute__((unused)), - my_bool set_blocking_mode, - my_bool *old_mode) -@@ -269,4 +274,6 @@ - return (set_blocking_mode ? 0 : 1); - } - -+ -+ - #endif /* HAVE_OPENSSL */ diff --git a/mysql-testing.patch b/mysql-testing.patch index e208e29..a5060b7 100644 --- a/mysql-testing.patch +++ b/mysql-testing.patch @@ -9,27 +9,27 @@ Also, tweak the Perl test script to find some files where we install them; without this, the build-time test works but the mysql-test RPM doesn't. -diff -Naur mysql-5.0.40.orig/Makefile.am mysql-5.0.40/Makefile.am ---- mysql-5.0.40.orig/Makefile.am 2007-04-20 10:14:34.000000000 -0400 -+++ mysql-5.0.40/Makefile.am 2007-05-23 12:59:49.000000000 -0400 -@@ -126,11 +126,11 @@ +diff -Naur mysql-5.0.67.orig/Makefile.am mysql-5.0.67/Makefile.am +--- mysql-5.0.67.orig/Makefile.am 2008-08-04 08:18:47.000000000 -0400 ++++ mysql-5.0.67/Makefile.am 2008-08-23 13:49:56.000000000 -0400 +@@ -127,11 +127,11 @@ test-ps: cd mysql-test ; \ -- @PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol -+ @PERL@ ./mysql-test-run.pl $(force) $(mem) --ssl --ps-protocol +- @PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol ++ @PERL@ ./mysql-test-run.pl $(force) $(mem) --ssl --ps-protocol test-ns: cd mysql-test ; \ -- @PERL@ ./mysql-test-run.pl $(force) $(mem) -+ @PERL@ ./mysql-test-run.pl $(force) $(mem) --ssl +- @PERL@ ./mysql-test-run.pl $(force) $(mem) ++ @PERL@ ./mysql-test-run.pl $(force) $(mem) --ssl test: test-ns test-ps -diff -Naur mysql-5.0.40.orig/mysql-test/lib/mtr_process.pl mysql-5.0.40/mysql-test/lib/mtr_process.pl ---- mysql-5.0.40.orig/mysql-test/lib/mtr_process.pl 2007-04-20 10:39:41.000000000 -0400 -+++ mysql-5.0.40/mysql-test/lib/mtr_process.pl 2007-05-23 12:59:49.000000000 -0400 -@@ -148,6 +148,9 @@ +diff -Naur mysql-5.0.67.orig/mysql-test/lib/mtr_process.pl mysql-5.0.67/mysql-test/lib/mtr_process.pl +--- mysql-5.0.67.orig/mysql-test/lib/mtr_process.pl 2008-08-04 08:32:17.000000000 -0400 ++++ mysql-5.0.67/mysql-test/lib/mtr_process.pl 2008-08-23 13:48:23.000000000 -0400 +@@ -150,6 +150,9 @@ { # Child, redirect output and exec @@ -39,10 +39,10 @@ diff -Naur mysql-5.0.40.orig/mysql-test/lib/mtr_process.pl mysql-5.0.40/mysql-te $SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't my $log_file_open_mode = '>'; -diff -Naur mysql-5.0.40.orig/mysql-test/mysql-test-run.pl mysql-5.0.40/mysql-test/mysql-test-run.pl ---- mysql-5.0.40.orig/mysql-test/mysql-test-run.pl 2007-04-20 10:14:30.000000000 -0400 -+++ mysql-5.0.40/mysql-test/mysql-test-run.pl 2007-05-23 13:02:12.000000000 -0400 -@@ -1465,13 +1465,15 @@ +diff -Naur mysql-5.0.67.orig/mysql-test/mysql-test-run.pl mysql-5.0.67/mysql-test/mysql-test-run.pl +--- mysql-5.0.67.orig/mysql-test/mysql-test-run.pl 2008-08-04 08:19:21.000000000 -0400 ++++ mysql-5.0.67/mysql-test/mysql-test-run.pl 2008-08-23 13:48:23.000000000 -0400 +@@ -1510,13 +1510,15 @@ $exe_ndbd= mtr_exe_maybe_exists("$ndb_path/src/kernel/ndbd", @@ -60,7 +60,7 @@ diff -Naur mysql-5.0.40.orig/mysql-test/mysql-test-run.pl mysql-5.0.40/mysql-tes $exe_ndb_waiter= mtr_exe_maybe_exists("$ndb_path/tools/ndb_waiter", "$ndb_path/ndb_waiter"); -@@ -1572,7 +1574,8 @@ +@@ -1617,7 +1619,8 @@ # Look for mysql_fix_privilege_tables.sql script $file_mysql_fix_privilege_tables= mtr_file_exists("$glob_basedir/scripts/mysql_fix_privilege_tables.sql", @@ -70,7 +70,7 @@ diff -Naur mysql-5.0.40.orig/mysql-test/mysql-test-run.pl mysql-5.0.40/mysql-tes if ( ! $opt_skip_ndbcluster and executable_setup_ndb()) { mtr_warning("Could not find all required ndb binaries, " . -@@ -3999,7 +4002,7 @@ +@@ -4094,7 +4097,7 @@ if ( defined $exe ) { diff --git a/mysql.spec b/mysql.spec index e2d8b92..7dae86a 100644 --- a/mysql.spec +++ b/mysql.spec @@ -1,6 +1,6 @@ Name: mysql -Version: 5.0.51a -Release: 2%{?dist} +Version: 5.0.67 +Release: 1%{?dist} Summary: MySQL client programs and shared libraries Group: Applications/Databases URL: http://www.mysql.com @@ -31,10 +31,7 @@ Patch7: mysql-rpl-test.patch Patch8: mysql-install-test.patch Patch9: mysql-bdb-link.patch Patch10: mysql-bdb-open.patch -Patch11: mysql-innodb-crash.patch -Patch12: mysql-ssl.patch Patch13: mysql-no-dbug.patch -Patch14: mysql-ss-test.patch Patch15: mysql-stack-guard.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -157,10 +154,7 @@ the MySQL sources. %patch8 -p1 %patch9 -p1 %patch10 -p1 -%patch11 -p1 -%patch12 -p1 %patch13 -p1 -%patch14 -p1 %patch15 -p1 libtoolize --force @@ -385,6 +379,7 @@ fi %{_infodir}/* %{_mandir}/man1/mysql.1* +%{_mandir}/man1/mysql_config.1* %{_mandir}/man1/mysql_find_rows.1* %{_mandir}/man1/mysql_tableinfo.1* %{_mandir}/man1/mysql_waitpid.1* @@ -479,7 +474,6 @@ fi %{_mandir}/man1/mysql_convert_table_format.1* %{_mandir}/man1/myisam_ftdump.1* %{_mandir}/man1/mysql.server.1* -%{_mandir}/man1/mysql_config.1* %{_mandir}/man1/mysql_explain_log.1* %{_mandir}/man1/mysql_fix_extensions.1* %{_mandir}/man1/mysql_fix_privilege_tables.1* @@ -487,6 +481,7 @@ fi %{_mandir}/man1/mysql_secure_installation.1* %{_mandir}/man1/mysql_upgrade.1* %{_mandir}/man1/mysql_zap.1* +%{_mandir}/man1/mysqlbug.1* %{_mandir}/man1/mysqlbinlog.1* %{_mandir}/man1/mysqlcheck.1* %{_mandir}/man1/mysqld_multi.1* @@ -554,7 +549,6 @@ fi %{_mandir}/man1/ndb_drop_table.1* %{_mandir}/man1/ndb_error_reporter.1* %{_mandir}/man1/ndb_mgm.1* -%{_mandir}/man1/ndb_mgmd.1* %{_mandir}/man1/ndb_print_backup_file.1* %{_mandir}/man1/ndb_print_schema_file.1* %{_mandir}/man1/ndb_print_sys_file.1* @@ -564,7 +558,8 @@ fi %{_mandir}/man1/ndb_show_tables.1* #%{_mandir}/man1/ndb_size.pl.1* %{_mandir}/man1/ndb_waiter.1* -%{_mandir}/man1/ndbd.1* +%{_mandir}/man8/ndbd.8* +%{_mandir}/man8/ndb_mgmd.8* %files devel %defattr(-,root,root) @@ -585,6 +580,11 @@ fi %{_mandir}/man1/mysql_client_test.1* %changelog +* Sat Aug 23 2008 Tom Lane 5.0.67-1 +- Update to mysql version 5.0.67 +- Move mysql_config's man page to base package, again (apparently I synced + that change the wrong way while importing specfile changes for ndbcluster) + * Sun Jul 27 2008 Tom Lane 5.0.51a-2 - Enable ndbcluster support Resolves: #163758 diff --git a/sources b/sources index 7c17839..bd67edf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a83dbdbb91267daf73d2297a9c283dd1 mysql-5.0.51a.tar.gz +7164483a5ffb8f7aa59b761c13cdbd6e mysql-5.0.67.tar.gz