summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mysql-disable-test.patch27
-rw-r--r--mysql-install-test.patch41
-rw-r--r--mysql-logrotate.patch25
-rw-r--r--mysql55.spec80
-rw-r--r--mysqld.service16
-rw-r--r--rh-skipped-tests-arm.list8
-rw-r--r--rh-skipped-tests-base.list20
7 files changed, 159 insertions, 58 deletions
diff --git a/mysql-disable-test.patch b/mysql-disable-test.patch
deleted file mode 100644
index 74b87df..0000000
--- a/mysql-disable-test.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Disable the outfile_loaddata test, which as of 5.1.38 is giving
-platform-dependent results, with the "expected" results being arguably the
-wrong ones. This is upstream at http://bugs.mysql.com/bug.php?id=46895
-(note that upstream has also disabled it, but only for Solaris, so we still
-need this patch).
-Still broken in 5.5.14, despite alleged fix.
-
-Also disable sys_vars.plugin_dir_basic, which is broken because
-mysql-test-run doesn't set the right value of MYSQL_LIBDIR. Upstream at
-http://bugs.mysql.com/bug.php?id=52223
-Still fails in 5.5.16, even though upstream marked it closed.
-
-Also disable innodb.innodb, which is showing platform-dependent results
-as of 5.5.9. Upstream at http://bugs.mysql.com/bug.php?id=60155
-
-
-diff -Naur mysql-5.5.16.orig/mysql-test/t/disabled.def mysql-5.5.16/mysql-test/t/disabled.def
---- mysql-5.5.16.orig/mysql-test/t/disabled.def 2011-09-09 11:56:40.000000000 -0400
-+++ mysql-5.5.16/mysql-test/t/disabled.def 2011-10-16 19:50:10.064578284 -0400
-@@ -17,3 +17,7 @@
- archive-big : Bug#11817185 2011-03-10 Anitha Disabled since this leads to timeout on Solaris Sparc
- log_tables-big : Bug#11756699 2010-11-15 mattiasj report already exists
- mysql_embedded : Bug#12561297 2011-05-14 Anitha Dependent on PB2 changes - eventum#41836
-+#
-+outfile_loaddata : bug#46895 code wrong, expected results wrong too
-+sys_vars.plugin_dir_basic : bug#52223 fails for lib64 library directory
-+innodb.innodb : bug#60155 has platform-dependent results
diff --git a/mysql-install-test.patch b/mysql-install-test.patch
index 5980aea..a31a280 100644
--- a/mysql-install-test.patch
+++ b/mysql-install-test.patch
@@ -1,27 +1,46 @@
Improve the documentation that will be installed in the mysql-test RPM.
-diff -Naur mysql-5.1.43.orig/mysql-test/README mysql-5.1.43/mysql-test/README
---- mysql-5.1.43.orig/mysql-test/README 2010-01-15 12:14:43.000000000 -0500
-+++ mysql-5.1.43/mysql-test/README 2010-02-13 21:18:06.000000000 -0500
-@@ -6,6 +6,16 @@
- actually have a co-existing MySQL installation. The tests will not
- conflict with it.
+diff -Naur mysql-5.5.20.orig/mysql-test/README mysql-5.5.20/mysql-test/README
+--- mysql-5.5.20.orig/mysql-test/README 2011-12-16 14:52:05.000000000 -0500
++++ mysql-5.5.20/mysql-test/README 2012-02-10 17:06:19.531082253 -0500
+@@ -1,14 +1,26 @@
+ This directory contains a test suite for the MySQL daemon. To run
+-the currently existing test cases, simply execute ./mysql-test-run in
+-this directory. It will fire up the newly built mysqld and test it.
++the currently existing test cases, execute ./mysql-test-run in
++this directory.
+-Note that you do not have to have to do "make install", and you could
+-actually have a co-existing MySQL installation. The tests will not
+-conflict with it.
+-
+-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:
+For use in Red Hat distributions, you should run the script as user mysql,
+so the best bet is something like
+ cd /usr/share/mysql-test
-+ sudo -u mysql ./mysql-test-run
++ sudo -u mysql ./mysql-test-run --skip-test-list=rh-skipped-tests.list
+This will use the installed mysql executables, but will run a private copy
+of the server process (using data files within /usr/share/mysql-test),
+so you need not start the mysqld service beforehand.
++
++The "--skip-test-list=rh-skipped-tests.list" option excludes tests that are
++known to fail on one or more Red-Hat-supported platforms. You can omit it
++if you want to check whether such failures occur for you. Documentation
++about the reasons for omitting such tests can be found in the file
++rh-skipped-tests.list.
++
+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 +35,8 @@
++If one or more tests fail on your system, please read the following manual
++section for instructions on how to report the problem:
+
+ http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html
+
+@@ -25,7 +37,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
diff --git a/mysql-logrotate.patch b/mysql-logrotate.patch
new file mode 100644
index 0000000..dd8742a
--- /dev/null
+++ b/mysql-logrotate.patch
@@ -0,0 +1,25 @@
+Adjust the mysql-log-rotate script to contain the correct log file
+name for Red Hat installations.
+
+
+diff -Naur mysql-5.5.20.orig/support-files/mysql-log-rotate.sh mysql-5.5.20/support-files/mysql-log-rotate.sh
+--- mysql-5.5.20.orig/support-files/mysql-log-rotate.sh 2011-12-16 14:52:06.000000000 -0500
++++ mysql-5.5.20/support-files/mysql-log-rotate.sh 2012-01-26 23:24:54.402676177 -0500
+@@ -3,7 +3,7 @@
+ # in the [safe_mysqld] section as follows:
+ #
+ # [safe_mysqld]
+-# err-log=@localstatedir@/mysqld.log
++# err-log=/var/log/mysqld.log
+ #
+ # If the root user has a password you have to create a
+ # /root/.my.cnf configuration file with the following
+@@ -18,7 +18,7 @@
+ # ATTENTION: This /root/.my.cnf should be readable ONLY
+ # for root !
+
+-@localstatedir@/mysqld.log {
++/var/log/mysqld.log {
+ # create 600 mysql mysql
+ notifempty
+ daily
diff --git a/mysql55.spec b/mysql55.spec
index a44dd4e..c50e773 100644
--- a/mysql55.spec
+++ b/mysql55.spec
@@ -1,6 +1,6 @@
Name: mysql
Version: 5.5.20
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: MySQL client programs and shared libraries
Group: Applications/Databases
@@ -35,6 +35,8 @@ Source10: mysql.tmpfiles.d
Source11: mysqld.service
Source12: mysqld-prepare-db-dir
Source13: mysqld-wait-ready
+Source14: rh-skipped-tests-base.list
+Source15: rh-skipped-tests-arm.list
# Working around perl dependency checking bug in rpm FTTB. Remove later.
Source999: filter-requires-mysql.sh
@@ -47,13 +49,13 @@ Patch5: mysql-stack-guard.patch
Patch6: mysql-chain-certs.patch
Patch7: mysql-versioning.patch
Patch8: mysql-dubious-exports.patch
-# Patch9: mysql-disable-test.patch
Patch10: mysql-plugin-bool.patch
Patch11: mysql-s390-tsc.patch
Patch12: mysql-openssl-test.patch
Patch13: mysqld-nowatch.patch
Patch14: mysql-va-list.patch
Patch15: mysql-netdevname.patch
+Patch16: mysql-logrotate.patch
# RC patch for backports
Patch21: mysql-readline.patch
@@ -82,6 +84,8 @@ Requires: bash
Conflicts: MySQL
# mysql-cluster used to be built from this SRPM, but no more
Obsoletes: mysql-cluster < 5.1.44
+# Virtual provides present in upstream's RPM (used by some app)
+Provides: mysql-client = %{version}-%{release}
# When rpm 4.9 is universal, this could be cleaned up:
%global __perl_requires %{SOURCE999}
@@ -99,6 +103,11 @@ Summary: The shared libraries required for MySQL clients
Group: Applications/Databases
Requires: /sbin/ldconfig
Obsoletes: compat-mysql55 <= %{version}
+%if 0%{?rhel} == 5
+# EL-5 mysql 5.0.x have no mysql/mysql-libs
+# This circular dep. should make update simpler
+Requires: %{name}%{?_isa} = %{version}-%{release}
+%endif
%description libs
The mysql-libs package provides the essential shared libraries for any
@@ -219,7 +228,6 @@ rm -f Docs/mysql.info
%patch6 -p1
%patch7 -p1
%patch8 -p1
-# si below %patch9 -p1
%patch10 -p1
%patch11 -p1
%if 0%{?fedora} >= 9 || 0%{?rhel} >= 5
@@ -232,6 +240,7 @@ rm -f Docs/mysql.info
%endif
%patch14 -p1
%patch15 -p1
+%patch16 -p1
# Remi specific patches
%patch21 -p1 -b .readline
@@ -242,15 +251,12 @@ rm -f mysql-test/t/ssl_8k_key-master.opt
# upstream has fallen down badly on symbol versioning, do it ourselves
cp %{SOURCE8} libmysql/libmysql.version
-# Instead of Pach 9 - Simpler way
-cat <<EOF >>mysql-test/t/disabled.def
-#
-outfile_loaddata : bug#46895 code wrong, expected results wrong too
-sys_vars.plugin_dir_basic : bug#52223 fails for lib64 library directory
-innodb.innodb : bug#60155 has platform-dependent results
-main.information_schema : fails in mock, ok after install :(
-EOF
-
+# generate a list of tests that fail, but are not disabled by upstream
+cat %{SOURCE14} > mysql-test/rh-skipped-tests.list
+# disable some tests failing on ARM architectures
+%ifarch %{arm}
+cat %{SOURCE15} >> mysql-test/rh-skipped-tests.list
+%endif
%build
@@ -351,7 +357,7 @@ cd ../..
LD_LIBRARY_PATH=$PWD/libservices
export LD_LIBRARY_PATH
-# make test
+ make test
# The cmake build scripts don't provide any simple way to control the
# options for mysql-test-run, so ignore the make target and just call it
@@ -359,16 +365,18 @@ cd ../..
# --force to continue tests after a failure
# no retries please
# test SSL with --ssl
+ # skip tests that are listed in rh-skipped-tests.list
# avoid redundant test runs with --binlog-format=mixed
# increase timeouts to prevent unwanted failures during mass rebuilds
- cd mysql-test
(
- # perl ./mysql-test-run.pl --force --retry=0 --mysqld=--binlog-format=mixed --suite-timeout=720 --testcase-timeout=30
- # Run less test to speed up build process
- %{__perl} ./mysql-test-run.pl --force --ssl --mysqld=--binlog-format=mixed --suite=main
+ cd mysql-test
+ perl ./mysql-test-run.pl --force --retry=0 --ssl \
+ --skip-test-list=rh-skipped-tests.list \
+ --mysqld=--binlog-format=mixed \
+ --suite-timeout=720 --testcase-timeout=30 --suite=main
+ # cmake build scripts will install the var cruft if left alone :-(
+ rm -rf var
)
- # cmake build scripts will install the var cruft if left alone :-(
- rm -rf var
%endif
%install
@@ -472,11 +480,15 @@ rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/magic
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/ndb-config-2-node.ini
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql.server
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysqld_multi.server
-rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql-log-rotate
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/comp_err.1*
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-stress-test.pl.1*
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-test-run.pl.1*
+# put logrotate script where it needs to be
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
+mv ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql-log-rotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/mysqld
+chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/mysqld
+
mkdir -p $RPM_BUILD_ROOT/etc/ld.so.conf.d
echo "%{_libdir}/mysql" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-%{_arch}.conf
@@ -484,6 +496,9 @@ echo "%{_libdir}/mysql" > $RPM_BUILD_ROOT/etc/ld.so.conf.d/%{name}-%{_arch}.conf
cp %{SOURCE6} README.mysql-docs
cp %{SOURCE7} README.mysql-license
+# install the list of skipped tests to be available for user runs
+install -m 0644 mysql-test/rh-skipped-tests.list ${RPM_BUILD_ROOT}%{_datadir}/mysql-test
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -730,6 +745,7 @@ fi
%attr(0755,mysql,mysql) %dir /var/run/mysqld
%attr(0755,mysql,mysql) %dir /var/lib/mysql
%attr(0640,mysql,mysql) %config(noreplace) %verify(not md5 size mtime) /var/log/mysqld.log
+%config(noreplace) %{_sysconfdir}/logrotate.d/mysqld
%files devel
%defattr(-,root,root)
@@ -764,6 +780,30 @@ fi
%{_mandir}/man1/mysql_client_test.1*
%changelog
+* Tue Feb 12 2012 Remi Collet <RPMS@FamilleCollet.com> - 5.5.20-2
+- sync with rawhide
+- circular dep for mysql / mysql-libs to fix EL5 update
+- provides mysql-client (per user request)
+
+* Fri Feb 10 2012 Tom Lane <tgl@redhat.com> 5.5.20-2
+- Revise our test-disabling method to make it possible to disable tests on a
+ platform-specific basis, and also to get rid of mysql-disable-test.patch,
+ which broke in just about every upstream update (Honza Horak)
+- Disable cycle-counter-dependent regression tests on ARM, since there is
+ not currently any support for that in Fedora ARM kernels
+Resolves: #773116
+- Add some comments to mysqld.service documenting how to customize it
+Resolves: #785243
+
+* Fri Jan 27 2012 Tom Lane <tgl@redhat.com> 5.5.20-1
+- Update to MySQL 5.5.20, for various fixes described at
+ http://dev.mysql.com/doc/refman/5.5/en/news-5-5-20.html
+ as well as security fixes described at
+ http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
+Resolves: #783828
+- Re-include the mysqld logrotate script, now that it's not so bogus
+Resolves: #547007
+
* Thu Jan 12 2012 Remi Collet <RPMS@FamilleCollet.com> - 5.5.20-1
- update to MySQL 5.5.20 Community Server GA
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-20.html
diff --git a/mysqld.service b/mysqld.service
index b3bc486..b7fa095 100644
--- a/mysqld.service
+++ b/mysqld.service
@@ -1,3 +1,19 @@
+# It's not recommended to modify this file in-place, because it will be
+# overwritten during package upgrades. If you want to customize, the
+# best way is to create a file "/etc/systemd/system/mysqld.service",
+# containing
+# .include /lib/systemd/system/mysqld.service
+# ...make your changes here...
+# For more info about custom unit files, see
+# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F
+
+# For example, if you want to increase mysql's open-files-limit to 10000,
+# you need to increase systemd's LimitNOFILE setting, so create a file named
+# "/etc/systemd/system/mysqld.service" containing:
+# .include /lib/systemd/system/mysqld.service
+# [Service]
+# LimitNOFILE=10000
+
[Unit]
Description=MySQL database server
After=syslog.target
diff --git a/rh-skipped-tests-arm.list b/rh-skipped-tests-arm.list
new file mode 100644
index 0000000..a6ae9bf
--- /dev/null
+++ b/rh-skipped-tests-arm.list
@@ -0,0 +1,8 @@
+
+# Disable perfschema.func_file_io and perfschema.func_mutex, which fail
+# because cycle counter returns 0 every time on ARM architectures.
+# This is caused by missing hardware performance counter support on ARM.
+# Discussion about fixing that can be found in RH bug #741325.
+
+perfschema.func_file_io : rhbz#773116 cycle counter does not work on arm
+perfschema.func_mutex : rhbz#773116 cycle counter does not work on arm
diff --git a/rh-skipped-tests-base.list b/rh-skipped-tests-base.list
new file mode 100644
index 0000000..a855f78
--- /dev/null
+++ b/rh-skipped-tests-base.list
@@ -0,0 +1,20 @@
+# Disable the outfile_loaddata test, which as of 5.1.38 is giving
+# platform-dependent results, with the "expected" results being arguably the
+# wrong ones. This is upstream at http://bugs.mysql.com/bug.php?id=46895
+# (note that upstream has also disabled it, but only for Solaris, so we still
+# need to disable it here).
+# Still broken in 5.5.14, despite alleged fix.
+
+outfile_loaddata : bug#46895 code wrong, expected results wrong too
+
+# Disable sys_vars.plugin_dir_basic, which is broken because
+# mysql-test-run doesn't set the right value of MYSQL_LIBDIR.
+# Upstream at http://bugs.mysql.com/bug.php?id=52223
+# Still fails in 5.5.16, even though upstream marked it closed.
+
+sys_vars.plugin_dir_basic : bug#52223 fails for lib64 library directory
+
+# Disable innodb.innodb, which is showing platform-dependent results
+# as of 5.5.9. Upstream at http://bugs.mysql.com/bug.php?id=60155
+
+innodb.innodb : bug#60155 has platform-dependent results