summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2011-02-07 19:35:09 +0100
committerRemi Collet <fedora@famillecollet.com>2011-02-07 19:35:09 +0100
commit42f6b501f74be018842a560a4a1daad888a4d12f (patch)
tree43dd31061fafc83e40730349c5d5563a0cd0004e
parente04b6e74d7f6b494fc235e1a81937370e54834e9 (diff)
mysql 5.5.8, sync with rawhide (latest patches)
-rw-r--r--mysql-5.5-disable-test.patch9
-rw-r--r--mysql-dev.spec52
-rw-r--r--mysql-embedded-crash.patch19
-rw-r--r--mysql-home.patch16
-rw-r--r--mysql-plugin-bool.patch42
-rw-r--r--mysql-s390-tsc.patch41
6 files changed, 170 insertions, 9 deletions
diff --git a/mysql-5.5-disable-test.patch b/mysql-5.5-disable-test.patch
index 03ee4f0..2719353 100644
--- a/mysql-5.5-disable-test.patch
+++ b/mysql-5.5-disable-test.patch
@@ -12,11 +12,15 @@ Also disable perfschema.binlog_mix and perfschema.binlog_row, which have
expected output that doesn't match when openssl is in use. Upstream at
http://bugs.mysql.com/bug.php?id=59091
+Also disable gis, which expects the results of floating-point calculations
+to match to seventeen digits precision everywhere. Of course they won't.
+Upstream at http://bugs.mysql.com/bug.php?id=59908
+
diff -Naur mysql-5.5.8.orig/mysql-test/t/disabled.def mysql-5.5.8/mysql-test/t/disabled.def
--- mysql-5.5.8.orig/mysql-test/t/disabled.def 2010-12-03 12:58:24.000000000 -0500
-+++ mysql-5.5.8/mysql-test/t/disabled.def 2010-12-21 11:03:07.288224692 -0500
-@@ -19,3 +19,8 @@
++++ mysql-5.5.8/mysql-test/t/disabled.def 2011-02-03 11:10:31.325627589 -0500
+@@ -19,3 +19,9 @@
sum_distinct-big : Bug#56927 2010-11-15 mattiasj was not tested
alter_table-big : Bug#37248 2010-11-15 mattiasj was not tested
create-big : Bug#37248 2010-11-15 mattiasj was not tested
@@ -25,3 +29,4 @@ diff -Naur mysql-5.5.8.orig/mysql-test/t/disabled.def mysql-5.5.8/mysql-test/t/d
+sys_vars.plugin_dir_basic : bug#52223 fails for lib64 library directory
+perfschema.binlog_mix : bug#59091 fails with openssl
+perfschema.binlog_row : bug#59091 fails with openssl
++gis : bug#59908 has platform-dependent results
diff --git a/mysql-dev.spec b/mysql-dev.spec
index 238d509..3f82588 100644
--- a/mysql-dev.spec
+++ b/mysql-dev.spec
@@ -1,6 +1,6 @@
Name: mysql
Version: 5.5.8
-Release: 3%{?dist}
+Release: 9%{?dist}
Summary: MySQL client programs and shared libraries
Group: Applications/Databases
URL: http://www.mysql.com
@@ -40,6 +40,10 @@ Patch6: mysql-chain-certs.patch
Patch7: mysql-versioning.patch
Patch8: mysql-dubious-exports.patch
Patch9: mysql-5.5-disable-test.patch
+Patch10: mysql-embedded-crash.patch
+Patch11: mysql-home.patch
+Patch12: mysql-plugin-bool.patch
+Patch13: mysql-s390-tsc.patch
# RC patch for backports
Patch21: mysql-5.5-readline.patch
@@ -52,10 +56,10 @@ BuildRequires: systemtap-sdt-devel >= 1.3
%endif
# make test requires time and ps
BuildRequires: time procps
-# Socket is needed to run regression tests
-BuildRequires: perl(Socket)
+# Socket and Time::HiRes are needed to run regression tests
+BuildRequires: perl(Socket), perl(Time::HiRes)
# This is required old EL4
-BuildRequires: perl(Time::HiRes), bison
+BuildRequires: bison
Requires: grep, fileutils
Requires: %{name}-libs = %{version}-%{release}
@@ -66,8 +70,9 @@ Conflicts: MySQL
# mysql-cluster used to be built from this SRPM, but no more
Obsoletes: mysql-cluster < 5.1.44
-# Working around perl dependency checking bug in rpm FTTB. Remove later.
+# When rpm 4.9 is universal, this could be cleaned up:
%global __perl_requires %{SOURCE999}
+%global __perllib_requires %{SOURCE999}
%description
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
@@ -193,6 +198,10 @@ sed -i -e '/SHARED_LIB_MAJOR_VERSION/s/16/161/' cmake/mysql_version.cmake
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
# Backports specific patches
%patch21 -p1 -b .readline
@@ -225,8 +234,7 @@ CFLAGS="$CFLAGS -fPIC"
%ifarch sparc sparcv9 sparc64
CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O1|g" `
%endif
-# extra C++ flags as per recommendations in mysql's INSTALL-SOURCE doc
-CXXFLAGS="$CFLAGS -felide-constructors -fno-rtti -fno-exceptions"
+CXXFLAGS="$CFLAGS"
export CFLAGS CXXFLAGS
# The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX
@@ -647,6 +655,36 @@ fi
%{_mandir}/man1/mysql_client_test.1*
%changelog
+* Mon Feb 07 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.5.8-9
+- sync with rawhide
+
+* Fri Feb 4 2011 Tom Lane <tgl@redhat.com> 5.5.8-9
+- Support s390/s390x in performance schema's cycle-counting functions
+ (needed to make regression tests pass on these platforms)
+
+* Thu Feb 3 2011 Tom Lane <tgl@redhat.com> 5.5.8-8
+- PPC64 floating-point differences are not masked by -ffloat-store after all,
+ so let's just disable gis regression test till upstream makes it less picky
+Resolves: #674253
+- Add __perllib_requires setting to make rpm 4.9 do what we need
+
+* Wed Feb 2 2011 Tom Lane <tgl@redhat.com> 5.5.8-7
+- Work around some portability issues on PPC64
+Resolves: #674253
+
+* Thu Jan 20 2011 Tom Lane <tgl@redhat.com> 5.5.8-6
+- Remove no-longer-needed special switches in CXXFLAGS, per yesterday's
+ discussion in fedora-devel about -fexceptions.
+- Rebuild needed anyway to check compatibility with latest systemtap.
+
+* Thu Jan 13 2011 Tom Lane <tgl@redhat.com> 5.5.8-5
+- Fix failure to honor MYSQL_HOME environment variable
+Resolves: #669364
+
+* Thu Jan 13 2011 Tom Lane <tgl@redhat.com> 5.5.8-4
+- Fix crash during startup of embedded mysqld library
+Resolves: #667365
+
* Sat Jan 08 2011 Remi Collet <RPMS@FamilleCollet.com> - 5.5.8-3
- sync with rawhide
diff --git a/mysql-embedded-crash.patch b/mysql-embedded-crash.patch
new file mode 100644
index 0000000..b445fce
--- /dev/null
+++ b/mysql-embedded-crash.patch
@@ -0,0 +1,19 @@
+Fix crash in embedded mysql library when mysql_library_init() is invoked
+with argc = 0, as is supposed to be a supported thing to do.
+Patch from upstream bug #57931.
+
+
+diff -Naur mysql-5.5.8.orig/libmysqld/lib_sql.cc mysql-5.5.8/libmysqld/lib_sql.cc
+--- mysql-5.5.8.orig/libmysqld/lib_sql.cc 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/libmysqld/lib_sql.cc 2011-01-12 23:10:55.837471629 -0500
+@@ -510,8 +510,8 @@
+ return 1;
+ defaults_argc= *argcp;
+ defaults_argv= *argvp;
+- remaining_argc= argc;
+- remaining_argv= argv;
++ remaining_argc= *argcp;
++ remaining_argv= *argvp;
+
+ /* Must be initialized early for comparison of options name */
+ system_charset_info= &my_charset_utf8_general_ci;
diff --git a/mysql-home.patch b/mysql-home.patch
new file mode 100644
index 0000000..054d389
--- /dev/null
+++ b/mysql-home.patch
@@ -0,0 +1,16 @@
+mysql 5.5's new cmake-based build scripts forgot about defining
+DEFAULT_HOME_ENV. Upstream at http://bugs.mysql.com/bug.php?id=59280
+
+
+diff -Naur mysql-5.5.8.orig/mysys/CMakeLists.txt mysql-5.5.8/mysys/CMakeLists.txt
+--- mysql-5.5.8.orig/mysys/CMakeLists.txt 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/mysys/CMakeLists.txt 2011-01-13 11:58:42.583471734 -0500
+@@ -69,6 +69,8 @@
+ SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_port.c)
+ ENDIF()
+
++ADD_DEFINITIONS( -DDEFAULT_HOME_ENV=MYSQL_HOME)
++
+ ADD_CONVENIENCE_LIBRARY(mysys ${MYSYS_SOURCES})
+ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
+ ${LIBNSL} ${LIBM} ${LIBRT})
diff --git a/mysql-plugin-bool.patch b/mysql-plugin-bool.patch
new file mode 100644
index 0000000..a8458f4
--- /dev/null
+++ b/mysql-plugin-bool.patch
@@ -0,0 +1,42 @@
+Fix plugin boolean variables to receive the value "1", not "-1", when they
+are set to 1. Aside from being bizarre, the existing behavior is unportable:
+machines where char is unsigned print "255" instead. Filed upstream at
+http://bugs.mysql.com/bug.php?id=59905
+
+
+diff -Naur mysql-5.5.8.orig/sql/sql_plugin.cc mysql-5.5.8/sql/sql_plugin.cc
+--- mysql-5.5.8.orig/sql/sql_plugin.cc 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/sql/sql_plugin.cc 2011-02-01 20:34:10.218305349 -0500
+@@ -2024,7 +2024,7 @@
+ goto err;
+ result= (int) tmp;
+ }
+- *(my_bool *) save= -result;
++ *(my_bool *) save= result ? true : false;
+ return 0;
+ err:
+ return 1;
+diff -Naur mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result
+--- mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result 2010-12-03 12:58:25.000000000 -0500
++++ mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_master_enabled_basic.result 2011-02-01 21:53:20.006302245 -0500
+@@ -45,7 +45,7 @@
+ ERROR HY000: Variable 'rpl_semi_sync_master_enabled' is a GLOBAL variable and should be set with SET GLOBAL
+ select @@global.rpl_semi_sync_master_enabled;
+ @@global.rpl_semi_sync_master_enabled
+--1
++1
+ select @@session.rpl_semi_sync_master_enabled;
+ ERROR HY000: Variable 'rpl_semi_sync_master_enabled' is a GLOBAL variable
+ show global variables like 'rpl_semi_sync_master_enabled';
+diff -Naur mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result
+--- mysql-5.5.8.orig/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/mysql-test/suite/sys_vars/r/rpl_semi_sync_slave_enabled_basic.result 2011-02-01 21:53:59.689249491 -0500
+@@ -45,7 +45,7 @@
+ ERROR HY000: Variable 'rpl_semi_sync_slave_enabled' is a GLOBAL variable and should be set with SET GLOBAL
+ select @@global.rpl_semi_sync_slave_enabled;
+ @@global.rpl_semi_sync_slave_enabled
+--1
++1
+ select @@session.rpl_semi_sync_slave_enabled;
+ ERROR HY000: Variable 'rpl_semi_sync_slave_enabled' is a GLOBAL variable
+ show global variables like 'rpl_semi_sync_slave_enabled';
diff --git a/mysql-s390-tsc.patch b/mysql-s390-tsc.patch
new file mode 100644
index 0000000..00811a4
--- /dev/null
+++ b/mysql-s390-tsc.patch
@@ -0,0 +1,41 @@
+Support s390/s390x in performance schema's cycle-counting functions.
+Filed upstream at http://bugs.mysql.com/bug.php?id=59953
+
+
+diff -Naur mysql-5.5.8.orig/include/my_rdtsc.h mysql-5.5.8/include/my_rdtsc.h
+--- mysql-5.5.8.orig/include/my_rdtsc.h 2010-12-03 12:58:24.000000000 -0500
++++ mysql-5.5.8/include/my_rdtsc.h 2011-02-04 11:16:45.431459913 -0500
+@@ -124,6 +124,7 @@
+ #define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME 25
+ #define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26
+ #define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27
++#define MY_TIMER_ROUTINE_ASM_S390 28
+
+ #endif
+
+diff -Naur mysql-5.5.8.orig/mysys/my_rdtsc.c mysql-5.5.8/mysys/my_rdtsc.c
+--- mysql-5.5.8.orig/mysys/my_rdtsc.c 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/mysys/my_rdtsc.c 2011-02-04 11:16:45.432465577 -0500
+@@ -224,6 +224,13 @@
+ clock_gettime(CLOCK_SGI_CYCLE, &tp);
+ return (ulonglong) tp.tv_sec * 1000000000 + (ulonglong) tp.tv_nsec;
+ }
++#elif defined(__GNUC__) && defined(__s390__)
++ /* covers both s390 and s390x */
++ {
++ ulonglong result;
++ __asm__ __volatile__ ("stck %0" : "=Q" (result) : : "cc");
++ return result;
++ }
+ #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
+ /* gethrtime may appear as either cycle or nanosecond counter */
+ return (ulonglong) gethrtime();
+@@ -533,6 +540,8 @@
+ mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC32;
+ #elif defined(__sgi) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_SGI_CYCLE)
+ mti->cycles.routine= MY_TIMER_ROUTINE_SGI_CYCLE;
++#elif defined(__GNUC__) && defined(__s390__)
++ mti->cycles.routine= MY_TIMER_ROUTINE_ASM_S390;
+ #elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
+ mti->cycles.routine= MY_TIMER_ROUTINE_GETHRTIME;
+ #else