Reformating spec and removing unnecessary snippets

This commit is contained in:
Honza Horak 2014-07-22 00:34:41 +02:00
parent 8d19c178ae
commit 4bc1433e50

View File

@ -1,6 +1,14 @@
# Regression tests may take a long time (many cores recommended), skip them by
# passing --nocheck to rpmbuild or by setting runselftest to 0 if defining
# --nocheck is not possible (e.g. in koji build)
%{!?runselftest:%global runselftest 1}
# In f20+ use unversioned docdirs, otherwise the old versioned one # In f20+ use unversioned docdirs, otherwise the old versioned one
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
# use Full RELRO for all binaries (RHBZ#1092548)
%global _hardened_build 1
# When there is already another package that ships /etc/my.cnf, # When there is already another package that ships /etc/my.cnf,
# rather include it than ship the file again, since conflicts between # rather include it than ship the file again, since conflicts between
# those files may create issues # those files may create issues
@ -34,16 +42,10 @@
%bcond_with pcre %bcond_with pcre
%endif %endif
# use Full RELRO for all binaries (RHBZ#1092548)
%global _hardened_build 1
# The evr of mysql we want to obsolete # The evr of mysql we want to obsolete
%global obsoleted_mysql_evr 5.6-0 %global obsoleted_mysql_evr 5.6-0
%global obsoleted_mysql_case_evr 5.5.30-5 %global obsoleted_mysql_case_evr 5.5.30-5
# Regression tests take a long time, you can skip 'em with this
%{!?runselftest:%global runselftest 1}
# When replacing mysql by mariadb these packages are not upated, but rather # When replacing mysql by mariadb these packages are not upated, but rather
# installed and uninstalled. Thus we loose information about mysqld service # installed and uninstalled. Thus we loose information about mysqld service
# enablement. To address this we use a file to store that information within # enablement. To address this we use a file to store that information within
@ -53,82 +55,94 @@
%global mysqld_enabled_flag_file %{_localstatedir}/lib/rpm-state/mysqld_enabled %global mysqld_enabled_flag_file %{_localstatedir}/lib/rpm-state/mysqld_enabled
%global mysqld_running_flag_file %{_localstatedir}/lib/rpm-state/mysqld_running %global mysqld_running_flag_file %{_localstatedir}/lib/rpm-state/mysqld_running
Name: mariadb Name: mariadb
Version: 10.0.12 Version: 10.0.12
Release: 3%{?dist} Release: 4%{?dist}
Epoch: 1 Epoch: 1
Summary: A community developed branch of MySQL Summary: A community developed branch of MySQL
Group: Applications/Databases Group: Applications/Databases
URL: http://mariadb.org URL: http://mariadb.org
# Exceptions allow client libraries to be linked with most open source SW, # Exceptions allow client libraries to be linked with most open source SW,
# not only GPL code. See README.mysql-license # not only GPL code. See README.mysql-license
# Some innobase code from Percona and Google is under BSD license # Some innobase code from Percona and Google is under BSD license
# Some code related to test-suite is under LGPLv2 # Some code related to test-suite is under LGPLv2
License: GPLv2 with exceptions and LGPLv2 and BSD License: GPLv2 with exceptions and LGPLv2 and BSD
Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz
Source2: mysql_config_multilib.sh Source2: mysql_config_multilib.sh
Source3: my.cnf Source3: my.cnf
Source4: my_config.h Source4: my_config.h
Source5: README.mysql-cnf Source5: README.mysql-cnf
Source6: README.mysql-docs Source6: README.mysql-docs
Source7: README.mysql-license Source7: README.mysql-license
Source9: mysql-embedded-check.c Source9: mysql-embedded-check.c
Source10: mariadb.tmpfiles.d.in Source10: mariadb.tmpfiles.d.in
Source11: mariadb.service.in Source11: mariadb.service.in
Source12: mariadb-prepare-db-dir.sh Source12: mariadb-prepare-db-dir.sh
Source13: mariadb-wait-ready.sh Source13: mariadb-wait-ready.sh
Source14: mariadb-check-socket.sh Source14: mariadb-check-socket.sh
Source15: mariadb-scripts-common.sh Source15: mariadb-scripts-common.sh
Source16: mysqld.service.in Source16: mysqld.service.in
Source50: rh-skipped-tests-base.list Source50: rh-skipped-tests-base.list
Source51: rh-skipped-tests-intel.list Source51: rh-skipped-tests-intel.list
Source52: rh-skipped-tests-arm.list Source52: rh-skipped-tests-arm.list
Source53: rh-skipped-tests-ppc-s390.list Source53: rh-skipped-tests-ppc-s390.list
Source54: rh-skipped-tests-ppc64le.list Source54: rh-skipped-tests-ppc64le.list
# Comments for these patches are in the patch files. # Comments for these patches are in the patch files.
Patch1: mariadb-errno.patch Patch1: mariadb-errno.patch
Patch2: mariadb-strmov.patch Patch2: mariadb-strmov.patch
Patch3: mariadb-install-test.patch Patch3: mariadb-install-test.patch
Patch4: mariadb-s390-tsc.patch Patch4: mariadb-s390-tsc.patch
Patch5: mariadb-logrotate.patch Patch5: mariadb-logrotate.patch
Patch6: mariadb-cipherspec.patch Patch6: mariadb-cipherspec.patch
Patch7: mariadb-file-contents.patch Patch7: mariadb-file-contents.patch
Patch8: mariadb-string-overflow.patch Patch8: mariadb-string-overflow.patch
Patch9: mariadb-dh1024.patch Patch9: mariadb-dh1024.patch
Patch10: mariadb-basedir.patch Patch10: mariadb-basedir.patch
Patch11: mariadb-covscan-signexpr.patch Patch11: mariadb-covscan-signexpr.patch
Patch12: mariadb-covscan-stroverflow.patch Patch12: mariadb-covscan-stroverflow.patch
Patch13: mariadb-config.patch Patch13: mariadb-config.patch
Patch14: mariadb-ssltest.patch Patch14: mariadb-ssltest.patch
Patch15: mariadb-mysql_config.patch Patch15: mariadb-mysql_config.patch
Patch16: mariadb-scripts.patch Patch16: mariadb-scripts.patch
BuildRequires: perl, readline-devel, openssl-devel BuildRequires: cmake
BuildRequires: cmake, ncurses-devel, zlib-devel, libaio-devel BuildRequires: libaio-devel
BuildRequires: systemd, systemtap-sdt-devel BuildRequires: readline-devel
# make test requires time and ps BuildRequires: openssl-devel
BuildRequires: time procps BuildRequires: ncurses-devel
BuildRequires: perl
BuildRequires: systemtap-sdt-devel
BuildRequires: zlib-devel
# auth_pam.so plugin will be build if pam-devel is installed # auth_pam.so plugin will be build if pam-devel is installed
BuildRequires: pam-devel BuildRequires: pam-devel
%{?with_pcre:BuildRequires: pcre-devel >= 8.35} %{?with_pcre:BuildRequires: pcre-devel >= 8.35}
# perl modules needed to run regression tests # Tests requires time and ps and some perl modules
BuildRequires: perl(Socket), perl(Time::HiRes) BuildRequires: procps
BuildRequires: perl(Data::Dumper), perl(Test::More), perl(Env) BuildRequires: time
BuildRequires: perl(Env)
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(Socket)
BuildRequires: perl(Test::More)
BuildRequires: perl(Time::HiRes)
BuildRequires: systemd
Requires: grep, fileutils, bash Requires: bash
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Requires: fileutils
Requires: grep
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
%{?systemd_requires: %systemd_requires}
# MySQL (with caps) is upstream's spelling of their own RPMs for mysql # MySQL (with caps) is upstream's spelling of their own RPMs for mysql
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL < %{obsoleted_mysql_case_evr}}
Conflicts: community-mysql Conflicts: community-mysql
# MariaDB replaces mysql packages # MariaDB replaces mysql packages
Provides: mysql = %{epoch}:%{version}-%{release} Provides: mysql = %{epoch}:%{version}-%{release}
Provides: mysql%{?_isa} = %{epoch}:%{version}-%{release} Provides: mysql%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-compat-client = %{epoch}:%{version}-%{release}
Provides: mysql-compat-client%{?_isa} = %{epoch}:%{version}-%{release}
%{?obsoleted_mysql_evr:Obsoletes: mysql < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql < %{obsoleted_mysql_evr}}
# Filtering: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering # Filtering: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
@ -152,89 +166,97 @@ It is a client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. The base package and many different client programs and libraries. The base package
contains the standard MariaDB/MySQL client programs and generic MySQL files. contains the standard MariaDB/MySQL client programs and generic MySQL files.
%package libs
Summary: The shared libraries required for MariaDB/MySQL clients %package libs
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Summary: The shared libraries required for MariaDB/MySQL clients
Provides: mysql-libs = %{epoch}:%{version}-%{release} Group: Applications/Databases
Provides: mysql-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-libs = %{epoch}:%{version}-%{release}
Provides: mysql-libs%{?_isa} = %{epoch}:%{version}-%{release}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-libs < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-libs < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-libs < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-libs < %{obsoleted_mysql_evr}}
%description libs %description libs
The mariadb-libs package provides the essential shared libraries for any The mariadb-libs package provides the essential shared libraries for any
MariaDB/MySQL client program or interface. You will need to install this MariaDB/MySQL client program or interface. You will need to install this
package to use any other MariaDB package or any clients that need to connect package to use any other MariaDB package or any clients that need to connect
to a MariaDB/MySQL server. MariaDB is a community developed branch of MySQL. to a MariaDB/MySQL server. MariaDB is a community developed branch of MySQL.
%package common
Summary: The shared files required by server and client %package common
Group: Applications/Databases
Summary: The shared files required by server and client
Group: Applications/Databases
%if ! %{ship_my_cnf} %if ! %{ship_my_cnf}
Requires: %{_sysconfdir}/my.cnf Requires: %{_sysconfdir}/my.cnf
%endif %endif
%description common %description common
The package provides the essential shared files for any MariaDB program. The package provides the essential shared files for any MariaDB program.
You will need to install this package to use any other MariaDB package. You will need to install this package to use any other MariaDB package.
%package errmsg
Summary: The error messages files required by server and embedded %package errmsg
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
%description errmsg Summary: The error messages files required by server and embedded
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
%description errmsg
The package provides error messages files for the MariaDB daemon and the The package provides error messages files for the MariaDB daemon and the
embedded server. You will need to install this package to use any of those embedded server. You will need to install this package to use any of those
MariaDB packages. MariaDB packages.
%package server
Summary: The MariaDB server and related files %package server
Group: Applications/Databases
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Summary: The MariaDB server and related files
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Group: Applications/Databases
Requires: %{name}-errmsg%{?_isa} = %{epoch}:%{version}-%{release}
Requires: sh-utils # note: no version here = %{version}-%{release}
Requires(pre): /usr/sbin/useradd Requires: mysql-compat-client%{?_isa}
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-errmsg%{?_isa} = %{epoch}:%{version}-%{release}
Requires: sh-utils
Requires(pre): /usr/sbin/useradd
# We require this to be present for %%{_tmpfilesdir} # We require this to be present for %%{_tmpfilesdir}
Requires: systemd Requires: systemd
# Make sure it's there when scriptlets run, too # Make sure it's there when scriptlets run, too
Requires(pre): systemd Requires(pre): systemd
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires(posttrans): systemd Requires(posttrans): systemd
%{?systemd_requires: %systemd_requires}
# mysqlhotcopy needs DBI/DBD support # mysqlhotcopy needs DBI/DBD support
Requires: perl-DBI, perl-DBD-MySQL Requires: perl-DBI
Provides: mysql-server = %{epoch}:%{version}-%{release} Requires: perl-DBD-MySQL
Provides: mysql-server%{?_isa} = %{epoch}:%{version}-%{release} Provides: mysql-server = %{epoch}:%{version}-%{release}
Provides: mysql-compat-server = %{epoch}:%{version}-%{release} Provides: mysql-server%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-compat-server%{?_isa} = %{epoch}:%{version}-%{release} Provides: mysql-compat-server = %{epoch}:%{version}-%{release}
Provides: mysql-compat-server%{?_isa} = %{epoch}:%{version}-%{release}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-server < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-server < %{obsoleted_mysql_case_evr}}
Conflicts: community-mysql-server Conflicts: community-mysql-server
Conflicts: mariadb-galera-server
%{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}}
%description server %description server
MariaDB is a multi-user, multi-threaded SQL database server. It is a MariaDB is a multi-user, multi-threaded SQL database server. It is a
client/server implementation consisting of a server daemon (mysqld) client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains and many different client programs and libraries. This package contains
the MariaDB server and some accompanying files and directories. the MariaDB server and some accompanying files and directories.
MariaDB is a community developed branch of MySQL. MariaDB is a community developed branch of MySQL.
%if %{with oqgraph} %if %{with oqgraph}
%package oqgraph %package oqgraph
Summary: The Open Query GRAPH engine for MariaDB Summary: The Open Query GRAPH engine for MariaDB
Group: Applications/Databases Group: Applications/Databases
Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release}
# boost and Judy required for oograph # boost and Judy required for oograph
BuildRequires: boost-devel, Judy-devel BuildRequires: boost-devel
BuildRequires: Judy-devel
%description oqgraph %description oqgraph
The package provides Open Query GRAPH engine (OQGRAPH) as plugin for MariaDB The package provides Open Query GRAPH engine (OQGRAPH) as plugin for MariaDB
database server. OQGRAPH is a computation engine allowing hierarchies and more database server. OQGRAPH is a computation engine allowing hierarchies and more
complex graph structures to be handled in a relational fashion. In a nutshell, complex graph structures to be handled in a relational fashion. In a nutshell,
@ -242,92 +264,100 @@ tree structures and friend-of-a-friend style searches can now be done using
standard SQL syntax, and results joined onto other tables. standard SQL syntax, and results joined onto other tables.
%endif %endif
%package devel
Summary: Files for development of MariaDB/MySQL applications %package devel
Group: Applications/Databases
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Summary: Files for development of MariaDB/MySQL applications
Requires: openssl-devel%{?_isa} Group: Applications/Databases
Provides: mysql-devel = %{epoch}:%{version}-%{release} Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-devel%{?_isa} = %{epoch}:%{version}-%{release} Requires: openssl-devel%{?_isa}
Provides: mysql-devel = %{epoch}:%{version}-%{release}
Provides: mysql-devel%{?_isa} = %{epoch}:%{version}-%{release}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-devel < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-devel < %{obsoleted_mysql_case_evr}}
Conflicts: community-mysql-devel
%{?obsoleted_mysql_evr:Obsoletes: mysql-devel < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-devel < %{obsoleted_mysql_evr}}
Conflicts: community-mysql-devel
%description devel %description devel
MariaDB is a multi-user, multi-threaded SQL database server. This MariaDB is a multi-user, multi-threaded SQL database server. This
package contains the libraries and header files that are needed for package contains the libraries and header files that are needed for
developing MariaDB/MySQL client applications. developing MariaDB/MySQL client applications.
MariaDB is a community developed branch of MySQL. MariaDB is a community developed branch of MySQL.
%package embedded
Summary: MariaDB as an embeddable library %package embedded
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Summary: MariaDB as an embeddable library
Requires: %{name}-errmsg%{?_isa} = %{epoch}:%{version}-%{release} Group: Applications/Databases
Provides: mysql-embedded = %{epoch}:%{version}-%{release} Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-embedded%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-errmsg%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-embedded = %{epoch}:%{version}-%{release}
Provides: mysql-embedded%{?_isa} = %{epoch}:%{version}-%{release}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-embedded < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-embedded < %{obsoleted_mysql_evr}}
%description embedded %description embedded
MariaDB is a multi-user, multi-threaded SQL database server. This MariaDB is a multi-user, multi-threaded SQL database server. This
package contains a version of the MariaDB server that can be embedded package contains a version of the MariaDB server that can be embedded
into a client application instead of running as a separate process. into a client application instead of running as a separate process.
MariaDB is a community developed branch of MySQL. MariaDB is a community developed branch of MySQL.
%package embedded-devel
Summary: Development files for MariaDB as an embeddable library %package embedded-devel
Group: Applications/Databases
Requires: %{name}-embedded%{?_isa} = %{epoch}:%{version}-%{release} Summary: Development files for MariaDB as an embeddable library
Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} Group: Applications/Databases
Provides: mysql-embedded-devel = %{epoch}:%{version}-%{release} Requires: %{name}-embedded%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-embedded-devel%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: community-mysql-embedded-devel Provides: mysql-embedded-devel = %{epoch}:%{version}-%{release}
Provides: mysql-embedded-devel%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: community-mysql-embedded-devel
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded-devel < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded-devel < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-embedded-devel < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-embedded-devel < %{obsoleted_mysql_evr}}
%description embedded-devel %description embedded-devel
MariaDB is a multi-user, multi-threaded SQL database server. This MariaDB is a multi-user, multi-threaded SQL database server. This
package contains files needed for developing and testing with package contains files needed for developing and testing with
the embedded version of the MariaDB server. the embedded version of the MariaDB server.
MariaDB is a community developed branch of MySQL. MariaDB is a community developed branch of MySQL.
%package bench
Summary: MariaDB benchmark scripts and data %package bench
Group: Applications/Databases
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Summary: MariaDB benchmark scripts and data
Provides: mysql-bench = %{epoch}:%{version}-%{release} Group: Applications/Databases
Provides: mysql-bench%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: community-mysql-bench Provides: mysql-bench = %{epoch}:%{version}-%{release}
Provides: mysql-bench%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: community-mysql-bench
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-bench < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-bench < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-bench < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-bench < %{obsoleted_mysql_evr}}
%description bench %description bench
MariaDB is a multi-user, multi-threaded SQL database server. This MariaDB is a multi-user, multi-threaded SQL database server. This
package contains benchmark scripts and data for use when benchmarking package contains benchmark scripts and data for use when benchmarking
MariaDB. MariaDB.
MariaDB is a community developed branch of MySQL. MariaDB is a community developed branch of MySQL.
%package test
Summary: The test suite distributed with MariaD %package test
Group: Applications/Databases
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Summary: The test suite distributed with MariaD
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Group: Applications/Databases
Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-test = %{epoch}:%{version}-%{release} Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
Provides: mysql-test%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: community-mysql-test Provides: mysql-test = %{epoch}:%{version}-%{release}
Provides: mysql-test%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: community-mysql-test
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-test < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-test < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-test < %{obsoleted_mysql_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-test < %{obsoleted_mysql_evr}}
Requires: perl(Socket), perl(Time::HiRes) Requires: perl(Env)
Requires: perl(Data::Dumper), perl(Test::More), perl(Env) Requires: perl(Data::Dumper)
Requires: perl(Socket)
Requires: perl(Test::More)
Requires: perl(Time::HiRes)
%description test %description test
MariaDB is a multi-user, multi-threaded SQL database server. This MariaDB is a multi-user, multi-threaded SQL database server. This
package contains the regression test suite distributed with package contains the regression test suite distributed with
the MariaDB sources. the MariaDB sources.
@ -383,12 +413,12 @@ cp %{SOURCE2} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} \
# fail quickly and obviously if user tries to build as root # fail quickly and obviously if user tries to build as root
%if %runselftest %if %runselftest
if [ x"`id -u`" = x0 ]; then if [ x"$(id -u)" = "x0" ]; then
echo "mariadb's regression tests fail if run as root." echo "mysql's regression tests fail if run as root."
echo "If you really need to build the RPM as root, use" echo "If you really need to build the RPM as root, use"
echo "--define='runselftest 0' to skip the regression tests." echo "--nocheck to skip the regression tests."
exit 1 exit 1
fi fi
%endif %endif
CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
@ -416,44 +446,43 @@ export LDFLAGS
# The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX # The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX
# so we can't use %%{_datadir} and so forth here. # so we can't use %%{_datadir} and so forth here.
cmake . -DBUILD_CONFIG=mysql_release \
cmake . -DBUILD_CONFIG=mysql_release \ -DFEATURE_SET="community" \
-DFEATURE_SET="community" \ -DINSTALL_LAYOUT=RPM \
-DINSTALL_LAYOUT=RPM \ -DRPM_PACKAGE_PREFIX="" \
-DRPM_PACKAGE_PREFIX="" \ -DRPM="%{?rhel:rhel%{rhel}}%{!?rhel:fedora%{fedora}}" \
-DRPM="%{?rhel:rhel%{rhel}}%{!?rhel:fedora%{fedora}}" \ -DCMAKE_INSTALL_PREFIX="%{_prefix}" \
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
%if 0%{?fedora} >= 20 %if 0%{?fedora} >= 20
-DINSTALL_DOCDIR=share/doc/%{name} \ -DINSTALL_DOCDIR="share/doc/%{name}" \
-DINSTALL_DOCREADMEDIR=share/doc/%{name} \ -DINSTALL_DOCREADMEDIR="share/doc/%{name}" \
%else %else
-DINSTALL_DOCDIR=share/doc/%{name}-%{version} \ -DINSTALL_DOCDIR="share/doc/%{name}-%{version}" \
-DINSTALL_DOCREADMEDIR=share/doc/%{name}-%{version} \ -DINSTALL_DOCREADMEDIR="share/doc/%{name}-%{version}" \
%endif %endif
-DINSTALL_INCLUDEDIR=include/mysql \ -DINSTALL_INCLUDEDIR=include/mysql \
-DINSTALL_INFODIR=share/info \ -DINSTALL_INFODIR=share/info \
-DINSTALL_LIBDIR="%{_lib}/mysql" \ -DINSTALL_LIBDIR="%{_lib}/mysql" \
-DINSTALL_MANDIR=share/man \ -DINSTALL_MANDIR=share/man \
-DINSTALL_MYSQLSHAREDIR=share/%{name} \ -DINSTALL_MYSQLSHAREDIR=share/%{name} \
-DINSTALL_MYSQLTESTDIR=share/mysql-test \ -DINSTALL_MYSQLTESTDIR=share/mysql-test \
-DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \ -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
-DINSTALL_SBINDIR=libexec \ -DINSTALL_SBINDIR=libexec \
-DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SCRIPTDIR=bin \
-DINSTALL_SQLBENCHDIR=share \ -DINSTALL_SQLBENCHDIR=share \
-DINSTALL_SUPPORTFILESDIR=share/%{name} \ -DINSTALL_SUPPORTFILESDIR=share/%{name} \
-DMYSQL_DATADIR="%{_localstatedir}/lib/mysql" \ -DMYSQL_DATADIR="%{_localstatedir}/lib/mysql" \
-DMYSQL_UNIX_ADDR="%{_localstatedir}/lib/mysql/mysql.sock" \ -DMYSQL_UNIX_ADDR="%{_localstatedir}/lib/mysql/mysql.sock" \
-DENABLED_LOCAL_INFILE=ON \ -DENABLED_LOCAL_INFILE=ON \
-DENABLE_DTRACE=ON \ -DENABLE_DTRACE=ON \
-DWITH_EMBEDDED_SERVER=ON \ -DWITH_EMBEDDED_SERVER=ON \
-DWITH_READLINE=ON \ -DWITH_READLINE=ON \
-DWITH_SSL=system \ -DWITH_SSL=system \
-DWITH_ZLIB=system \ -DWITH_ZLIB=system \
%{?with_pcre: -DWITH_PCRE=system}\ %{?with_pcre: -DWITH_PCRE=system}\
-DWITH_JEMALLOC=no \ -DWITH_JEMALLOC=no \
%{!?with_tokudb: -DWITHOUT_TOKUDB=ON}\ %{!?with_tokudb: -DWITHOUT_TOKUDB=ON}\
-DTMPDIR=%{_localstatedir}/tmp \ -DTMPDIR=%{_localstatedir}/tmp \
-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now" -DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
make %{?_smp_mflags} VERBOSE=1 make %{?_smp_mflags} VERBOSE=1
@ -466,49 +495,9 @@ for e in innobase xtradb ; do
done done
done done
%check
%if %runselftest
# hack to let 32- and 64-bit tests run concurrently on same build machine
case `uname -m` in
ppc64 | ppc64p7 | s390x | x86_64 | sparc64 )
MTR_BUILD_THREAD=7
;;
*)
MTR_BUILD_THREAD=11
;;
esac
export MTR_BUILD_THREAD
export MTR_PARALLEL=1
make test VERBOSE=1
# 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
# manually. Nonstandard options chosen are:
# --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 --ssl \
--skip-test-list=rh-skipped-tests.list \
--suite-timeout=720 --testcase-timeout=30 \
--mysqld=--binlog-format=mixed --force-restart \
--shutdown-timeout=60 --max-test-fail=0
# cmake build scripts will install the var cruft if left alone :-(
rm -rf var
)
%endif
%install %install
make DESTDIR=%{buildroot} install make DESTDIR=%{buildroot} install
# List the installed tree for RPM package maintenance purposes.
find %{buildroot} -print | sed "s|^%{buildroot}||" | sort > ROOTFILES
# cmake generates some completely wacko references to -lprobes_mysql when # cmake generates some completely wacko references to -lprobes_mysql when
# building with dtrace support. Haven't found where to shut that off, # building with dtrace support. Haven't found where to shut that off,
# so resort to this blunt instrument. While at it, let's not reference # so resort to this blunt instrument. While at it, let's not reference
@ -518,7 +507,7 @@ sed -e 's/-lprobes_mysql//' -e 's/-lmysqlclient_r/-lmysqlclient/' \
cp -p -f mysql_config.tmp %{buildroot}%{_bindir}/mysql_config cp -p -f mysql_config.tmp %{buildroot}%{_bindir}/mysql_config
chmod 755 %{buildroot}%{_bindir}/mysql_config chmod 755 %{buildroot}%{_bindir}/mysql_config
# multilib header hacks # multilib header support
# we only apply this to known Red Hat multilib arches, per bug #181335 # we only apply this to known Red Hat multilib arches, per bug #181335
unamei=$(uname -i) unamei=$(uname -i)
%ifarch %{arm} %ifarch %{arm}
@ -549,16 +538,14 @@ ln -s %{_localstatedir}/log/%{name}/%{name}.log %{buildroot}%{_localstatedir}/lo
# as well because users can have od settings in their /etc/my.cnf # as well because users can have od settings in their /etc/my.cnf
mkdir -p %{buildroot}%{_localstatedir}/run/mysqld mkdir -p %{buildroot}%{_localstatedir}/run/mysqld
mkdir -p %{buildroot}%{_localstatedir}/run/%{name} mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
install -m 0755 -d %{buildroot}%{_localstatedir}/lib/mysql install -p -m 0755 -d %{buildroot}%{_localstatedir}/lib/mysql
mkdir -p %{buildroot}%{_sysconfdir}
%if %{ship_my_cnf} %if %{ship_my_cnf}
install -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/ install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/my.cnf
%endif %endif
# install systemd unit files and scripts for handling server startup # install systemd unit files and scripts for handling server startup
mkdir -p %{buildroot}%{_unitdir} install -D -p -m 644 scripts/mariadb.service %{buildroot}%{_unitdir}/%{name}.service
install -p -m 644 scripts/mariadb.service %{buildroot}%{_unitdir}/%{name}.service
%if %{?with_mysqld_unit} %if %{?with_mysqld_unit}
install -p -m 644 scripts/mysqld.service %{buildroot}%{_unitdir}/mysqld.service install -p -m 644 scripts/mysqld.service %{buildroot}%{_unitdir}/mysqld.service
%endif %endif
@ -567,8 +554,7 @@ install -p -m 755 scripts/mariadb-wait-ready %{buildroot}%{_libexecdir}/mariadb-
install -p -m 755 scripts/mariadb-check-socket %{buildroot}%{_libexecdir}/mariadb-check-socket install -p -m 755 scripts/mariadb-check-socket %{buildroot}%{_libexecdir}/mariadb-check-socket
install -p -m 644 scripts/mariadb-scripts-common %{buildroot}%{_libexecdir}/mariadb-scripts-common install -p -m 644 scripts/mariadb-scripts-common %{buildroot}%{_libexecdir}/mariadb-scripts-common
mkdir -p %{buildroot}%{_tmpfilesdir} install -D -p -m 0644 scripts/mariadb.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf
install -p -m 0644 scripts/mariadb.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf
# Remove libmysqld.a # Remove libmysqld.a
rm -f %{buildroot}%{_libdir}/mysql/libmysqld.a rm -f %{buildroot}%{_libdir}/mysql/libmysqld.a
@ -626,6 +612,35 @@ rm -f %{buildroot}%{_sysconfdir}/logrotate.d/mysql
# remove solaris files # remove solaris files
rm -rf %{buildroot}%{_datadir}/%{name}/solaris/ rm -rf %{buildroot}%{_datadir}/%{name}/solaris/
%check
%if %runselftest
make test VERBOSE=1
# hack to let 32- and 64-bit tests run concurrently on same build machine
export MTR_PARALLEL=1
# builds might happen at the same host, avoid collision
export MTR_BUILD_THREAD=%{__isa_bits}
# 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
# manually. Nonstandard options chosen are:
# --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 --ssl \
--skip-test-list=rh-skipped-tests.list \
--suite-timeout=720 --testcase-timeout=30 \
--mysqld=--binlog-format=mixed --force-restart \
--shutdown-timeout=60 --max-test-fail=0
# cmake build scripts will install the var cruft if left alone :-(
rm -rf var
)
%endif
%pre server %pre server
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || : /usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
/usr/sbin/useradd -M -N -g mysql -o -r -d %{_localstatedir}/lib/mysql -s /sbin/nologin \ /usr/sbin/useradd -M -N -g mysql -o -r -d %{_localstatedir}/lib/mysql -s /sbin/nologin \
@ -866,8 +881,6 @@ fi
%{_mandir}/man1/mysql_config.1* %{_mandir}/man1/mysql_config.1*
%files embedded %files embedded
%doc README COPYING COPYING.LESSER README.mysql-license
%doc storage/innobase/COPYING.Percona storage/innobase/COPYING.Google
%{_libdir}/mysql/libmysqld.so.* %{_libdir}/mysql/libmysqld.so.*
%files embedded-devel %files embedded-devel
@ -884,10 +897,12 @@ fi
%{_bindir}/mysql_client_test %{_bindir}/mysql_client_test
%{_bindir}/my_safe_process %{_bindir}/my_safe_process
%attr(-,mysql,mysql) %{_datadir}/mysql-test %attr(-,mysql,mysql) %{_datadir}/mysql-test
%{_mandir}/man1/mysql_client_test.1* %{_mandir}/man1/mysql_client_test.1*
%changelog %changelog
* Mon Jul 21 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.12-4
- Reformating spec and removing unnecessary snippets
* Tue Jul 15 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.12-3 * Tue Jul 15 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.12-3
- Enable OQGRAPH engine and package it as a sub-package - Enable OQGRAPH engine and package it as a sub-package
- Add support for TokuDB engine for x86_64 (currently still disabled) - Add support for TokuDB engine for x86_64 (currently still disabled)