mariadb10.11/mariadb.spec

1422 lines
50 KiB
RPMSpec
Raw Normal View History

# Name of the package without any prefixes
%global pkgname mariadb
# 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
%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
# use Full RELRO for all binaries (RHBZ#1092548)
%global _hardened_build 1
# By default, patch(1) creates backup files when chunks apply with offsets.
# Turn that off to ensure such files don't get included in RPMs (cf bz#884755).
%global _default_patch_flags --no-backup-if-mismatch
# When there is already another package that ships /etc/my.cnf,
# rather include it than ship the file again, since conflicts between
# those files may create issues
# ship_my_cnf=1 means this is the only package in distro which ships
# my.cnf and my.cnf.d
%if 0%{?fedora} >= 21
%global ship_my_cnf 1
%else
%global ship_my_cnf 0
%endif
2013-10-12 13:53:31 +00:00
# TokuDB engine is now part of MariaDB, but it is available only for x86_64;
# variable tokudb allows to build with TokuDB storage engine
# Temporarily disabled for https://mariadb.atlassian.net/browse/MDEV-6446
%ifarch 0 #x86_64
%bcond_without tokudb
%else
2013-10-12 13:53:31 +00:00
%bcond_with tokudb
%endif
2013-10-12 13:53:31 +00:00
2014-07-15 13:44:21 +00:00
# The Open Query GRAPH engine (OQGRAPH) is a computation engine allowing
# hierarchies and more complex graph structures to be handled in a relational
# fashion; enabled by default
%bcond_without oqgraph
# For some use cases we do not need some parts of the package
%bcond_without clibrary
%bcond_without embedded
%bcond_without devel
%bcond_without client
%bcond_without common
%bcond_without errmsg
%bcond_without bench
%bcond_without test
# Include files for SysV init or systemd
%if 0%{?fedora} >= 15
%bcond_without init_systemd
%bcond_with init_sysv
%global daemon_name %{name}
2014-07-17 14:46:12 +00:00
# Provide temporary service file name that will be removed after some time
# (Fedora 22?)
%global mysqld_unit mysqld
%else
%bcond_with init_systemd
%bcond_without init_sysv
%global daemon_name mysqld
%endif
2014-07-17 14:46:12 +00:00
# MariaDB 10.0 and later requires pcre >= 8.35, otherwise we need to use
# the bundled library, since the package cannot be build with older version
%if 0%{?fedora} >= 21
%bcond_without pcre
%else
%bcond_with pcre
%endif
# We define some system's well known locations here so we can use them easily
# later when building to another location (like SCL)
%global logrotateddir %{_sysconfdir}/logrotate.d
%global logfiledir %{_localstatedir}/log/%{name}
%global logfile %{logfiledir}/%{name}.log
%if 0%{?fedora} >= 20
%global old_logfile %{_localstatedir}/log/mysqld.log
%endif
# Home directory of mysql user should be same for all packages that create it
%global mysqluserhome /var/lib/mysql
2013-01-31 10:18:29 +00:00
# The evr of mysql we want to obsolete
%global obsoleted_mysql_evr 5.6-0
%global obsoleted_mysql_case_evr 5.5.30-5
# When replacing mysql by mariadb these packages are not upated, but rather
# installed and uninstalled. Thus we loose information about mysqld service
# enablement. To address this we use a file to store that information within
# the transaction. Basically the file is created when mysqld is enabled in
# the beginning of the transaction and mysqld is enabled again in the end
# of the transaction in case this flag file exists.
%global mysqld_enabled_flag_file %{_localstatedir}/lib/rpm-state/mysqld_enabled
%global mysqld_running_flag_file %{_localstatedir}/lib/rpm-state/mysqld_running
# Make long macros shorter
%global sameevp %{epoch}:%{version}-%{release}
Name: %{pkgname}
Version: 10.0.12
2014-07-22 08:39:20 +00:00
Release: 5%{?dist}
Epoch: 1
Summary: A community developed branch of MySQL
Group: Applications/Databases
URL: http://mariadb.org
# Exceptions allow client libraries to be linked with most open source SW,
# not only GPL code. See README.mysql-license
# Some innobase code from Percona and Google is under BSD license
# Some code related to test-suite is under LGPLv2
License: GPLv2 with exceptions and LGPLv2 and BSD
Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz
Source2: mysql_config_multilib.sh
Source3: my.cnf.in
Source4: my_config.h
Source5: README.mysql-cnf
Source6: README.mysql-docs
Source7: README.mysql-license
Source9: mysql-embedded-check.c
Source10: mysql.tmpfiles.d.in
Source11: mysql.service.in
Source12: mysql-prepare-db-dir.sh
Source13: mysql-wait-ready.sh
Source14: mysql-check-socket.sh
Source15: mysql-scripts-common.sh
Source16: mysql-compat.service.in
Source17: mysql-compat.conf.in
Source18: mysql.init.in
Source50: rh-skipped-tests-base.list
Source51: rh-skipped-tests-intel.list
Source52: rh-skipped-tests-arm.list
Source53: rh-skipped-tests-ppc-s390.list
Source54: rh-skipped-tests-ppc64le.list
2013-01-10 17:35:12 +00:00
# Comments for these patches are in the patch files
# Patches common for more mysql-like packages
Patch1: %{pkgname}-strmov.patch
Patch2: %{pkgname}-install-test.patch
Patch3: %{pkgname}-s390-tsc.patch
Patch4: %{pkgname}-logrotate.patch
Patch5: %{pkgname}-cipherspec.patch
Patch6: %{pkgname}-file-contents.patch
Patch7: %{pkgname}-dh1024.patch
Patch8: %{pkgname}-scripts.patch
Patch9: %{pkgname}-paths.patch
# Patches specific for this mysql package
Patch30: %{pkgname}-errno.patch
Patch31: %{pkgname}-string-overflow.patch
Patch32: %{pkgname}-basedir.patch
Patch33: %{pkgname}-covscan-signexpr.patch
Patch34: %{pkgname}-covscan-stroverflow.patch
Patch35: %{pkgname}-config.patch
Patch36: %{pkgname}-ssltest.patch
Patch37: %{pkgname}-mysql_config.patch
BuildRequires: cmake
BuildRequires: libaio-devel
BuildRequires: openssl-devel
BuildRequires: ncurses-devel
BuildRequires: perl
BuildRequires: readline-devel
BuildRequires: systemtap-sdt-devel
BuildRequires: zlib-devel
# auth_pam.so plugin will be build if pam-devel is installed
BuildRequires: pam-devel
%{?with_pcre:BuildRequires: pcre-devel >= 8.35}
# Tests requires time and ps and some perl modules
BuildRequires: procps
BuildRequires: time
BuildRequires: perl(Env)
BuildRequires: perl(Exporter)
BuildRequires: perl(Fcntl)
BuildRequires: perl(File::Temp)
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(Getopt::Long)
BuildRequires: perl(IPC::Open3)
BuildRequires: perl(Socket)
BuildRequires: perl(Sys::Hostname)
BuildRequires: perl(Test::More)
BuildRequires: perl(Time::HiRes)
%{?with_init_systemd:BuildRequires: systemd}
Requires: bash
Requires: fileutils
Requires: grep
Requires: %{name}-common%{?_isa} = %{sameevp}
2013-01-10 17:35:12 +00:00
Provides: mysql = %{sameevp}
Provides: mysql%{?_isa} = %{sameevp}
Provides: mysql-compat-client = %{sameevp}
Provides: mysql-compat-client%{?_isa} = %{sameevp}
2013-01-10 17:35:12 +00:00
# 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_evr:Obsoletes: mysql < %{obsoleted_mysql_evr}}
Conflicts: community-mysql
# Filtering: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering
%if 0%{?__requires_exclude:1}
%global __requires_exclude ^perl\\((hostnames|lib::mtr|lib::v1|mtr_|My::)
%global __provides_exclude_from ^(%{_datadir}/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\\.so)$
%else
%filter_from_requires /perl(\(hostnames\|lib::mtr\|lib::v1\|mtr_\|My::\)/d
%filter_provides_in -P (%{_datadir}/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\\.so)$
%filter_setup
%endif
2013-01-10 17:35:12 +00:00
%description
MariaDB is a community developed branch of MySQL.
MariaDB is a multi-user, multi-threaded SQL database server.
It is a client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. The base package
contains the standard MariaDB/MySQL client programs and generic MySQL files.
%if %{with clibrary}
%package libs
Summary: The shared libraries required for MariaDB/MySQL clients
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{sameevp}
Provides: mysql-libs = %{sameevp}
Provides: mysql-libs%{?_isa} = %{sameevp}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-libs < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-libs < %{obsoleted_mysql_evr}}
2013-01-10 17:35:12 +00:00
%description libs
The mariadb-libs package provides the essential shared libraries for any
2013-01-10 17:35:12 +00:00
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
to a MariaDB/MySQL server. MariaDB is a community developed branch of MySQL.
%endif
2013-01-10 17:35:12 +00:00
%if %{with common}
%package common
Summary: The shared files required by server and client
Group: Applications/Databases
%if ! %{ship_my_cnf}
Requires: %{_sysconfdir}/my.cnf
%endif
%description common
The package provides the essential shared files for any MariaDB program.
You will need to install this package to use any other MariaDB package.
%endif
%if %{with errmsg}
%package errmsg
Summary: The error messages files required by server and embedded
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{sameevp}
%description errmsg
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
MariaDB packages.
%endif
2013-01-10 17:35:12 +00:00
%package server
Summary: The MariaDB server and related files
Group: Applications/Databases
# note: no version here = %{version}-%{release}
Requires: mysql-compat-client%{?_isa}
Requires: %{name}-common%{?_isa} = %{sameevp}
%if %{without common}
Requires: %{_sysconfdir}/my.cnf
Requires: %{_sysconfdir}/my.cnf.d
%endif
Requires: %{name}-errmsg%{?_isa} = %{sameevp}
Requires: sh-utils
Requires(pre): /usr/sbin/useradd
%if %{with init_systemd}
# We require this to be present for %%{_tmpfilesdir}
Requires: systemd
2013-01-10 17:35:12 +00:00
# Make sure it's there when scriptlets run, too
Requires(pre): systemd
Requires(posttrans): systemd
%{?systemd_requires: %systemd_requires}
%endif
2013-01-10 17:35:12 +00:00
# mysqlhotcopy needs DBI/DBD support
Requires: perl(DBI)
Requires: perl(DBD::mysql)
Provides: mysql-server = %{sameevp}
Provides: mysql-server%{?_isa} = %{sameevp}
Provides: mysql-compat-server = %{sameevp}
Provides: mysql-compat-server%{?_isa} = %{sameevp}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-server < %{obsoleted_mysql_case_evr}}
Conflicts: community-mysql-server
Conflicts: mariadb-galera-server
%{?obsoleted_mysql_evr:Obsoletes: mysql-server < %{obsoleted_mysql_evr}}
2013-01-10 17:35:12 +00:00
%description server
2013-01-10 17:35:12 +00:00
MariaDB is a multi-user, multi-threaded SQL database server. It is a
client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains
the MariaDB server and some accompanying files and directories.
MariaDB is a community developed branch of MySQL.
2014-07-21 13:01:30 +00:00
%if %{with oqgraph}
%package oqgraph
Summary: The Open Query GRAPH engine for MariaDB
Group: Applications/Databases
Requires: %{name}-server%{?_isa} = %{sameevp}
2014-07-21 13:01:30 +00:00
# boost and Judy required for oograph
BuildRequires: boost-devel
BuildRequires: Judy-devel
2014-07-21 13:01:30 +00:00
%description oqgraph
2014-07-21 13:01:30 +00:00
The package provides Open Query GRAPH engine (OQGRAPH) as plugin for MariaDB
database server. OQGRAPH is a computation engine allowing hierarchies and more
complex graph structures to be handled in a relational fashion. In a nutshell,
tree structures and friend-of-a-friend style searches can now be done using
standard SQL syntax, and results joined onto other tables.
%endif
2013-01-10 17:35:12 +00:00
%if %{with devel}
%package devel
Summary: Files for development of MariaDB/MySQL applications
Group: Applications/Databases
Requires: %{name}-libs%{?_isa} = %{sameevp}
Requires: openssl-devel%{?_isa}
Provides: mysql-devel = %{sameevp}
Provides: mysql-devel%{?_isa} = %{sameevp}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-devel < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-devel < %{obsoleted_mysql_evr}}
Conflicts: community-mysql-devel
2013-01-10 17:35:12 +00:00
%description devel
2013-01-10 17:35:12 +00:00
MariaDB is a multi-user, multi-threaded SQL database server. This
package contains the libraries and header files that are needed for
developing MariaDB/MySQL client applications.
MariaDB is a community developed branch of MySQL.
%endif
2013-01-10 17:35:12 +00:00
%if %{with embedded}
%package embedded
Summary: MariaDB as an embeddable library
Group: Applications/Databases
Requires: %{name}-common%{?_isa} = %{sameevp}
Requires: %{name}-errmsg%{?_isa} = %{sameevp}
Provides: mysql-embedded = %{sameevp}
Provides: mysql-embedded%{?_isa} = %{sameevp}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-embedded < %{obsoleted_mysql_evr}}
2013-01-10 17:35:12 +00:00
%description embedded
2013-01-10 17:35:12 +00:00
MariaDB is a multi-user, multi-threaded SQL database server. This
package contains a version of the MariaDB server that can be embedded
into a client application instead of running as a separate process.
MariaDB is a community developed branch of MySQL.
%package embedded-devel
Summary: Development files for MariaDB as an embeddable library
Group: Applications/Databases
Requires: %{name}-embedded%{?_isa} = %{sameevp}
Requires: %{name}-devel%{?_isa} = %{sameevp}
Provides: mysql-embedded-devel = %{sameevp}
Provides: mysql-embedded-devel%{?_isa} = %{sameevp}
Conflicts: community-mysql-embedded-devel
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-embedded-devel < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-embedded-devel < %{obsoleted_mysql_evr}}
2013-01-10 17:35:12 +00:00
%description embedded-devel
2013-01-10 17:35:12 +00:00
MariaDB is a multi-user, multi-threaded SQL database server. This
package contains files needed for developing and testing with
the embedded version of the MariaDB server.
MariaDB is a community developed branch of MySQL.
%endif
2013-01-10 17:35:12 +00:00
%if %{with bench}
%package bench
Summary: MariaDB benchmark scripts and data
Group: Applications/Databases
Requires: %{name}%{?_isa} = %{sameevp}
Provides: mysql-bench = %{sameevp}
Provides: mysql-bench%{?_isa} = %{sameevp}
Conflicts: community-mysql-bench
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-bench < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-bench < %{obsoleted_mysql_evr}}
2013-01-10 17:35:12 +00:00
%description bench
2013-01-10 17:35:12 +00:00
MariaDB is a multi-user, multi-threaded SQL database server. This
package contains benchmark scripts and data for use when benchmarking
MariaDB.
MariaDB is a community developed branch of MySQL.
%endif
2013-01-10 17:35:12 +00:00
%if %{with test}
%package test
Summary: The test suite distributed with MariaD
Group: Applications/Databases
Requires: %{name}%{?_isa} = %{sameevp}
Requires: %{name}-common%{?_isa} = %{sameevp}
Requires: %{name}-server%{?_isa} = %{sameevp}
Requires: perl(Env)
Requires: perl(Exporter)
Requires: perl(Fcntl)
Requires: perl(File::Temp)
Requires: perl(Data::Dumper)
Requires: perl(Getopt::Long)
Requires: perl(IPC::Open3)
Requires: perl(Socket)
Requires: perl(Sys::Hostname)
Requires: perl(Test::More)
Requires: perl(Time::HiRes)
Conflicts: community-mysql-test
Provides: mysql-test = %{sameevp}
Provides: mysql-test%{?_isa} = %{sameevp}
%{?obsoleted_mysql_case_evr:Obsoletes: MySQL-test < %{obsoleted_mysql_case_evr}}
%{?obsoleted_mysql_evr:Obsoletes: mysql-test < %{obsoleted_mysql_evr}}
2013-01-10 17:35:12 +00:00
%description test
2013-01-10 17:35:12 +00:00
MariaDB is a multi-user, multi-threaded SQL database server. This
package contains the regression test suite distributed with
the MariaDB sources.
MariaDB is a community developed branch of MySQL.
%endif
2013-01-10 17:35:12 +00:00
%prep
%setup -q -n mariadb-%{version}
2013-10-11 12:22:15 +00:00
%patch1 -p1
2013-01-10 17:35:12 +00:00
%patch2 -p1
%patch3 -p1
2014-04-07 19:07:33 +00:00
%patch4 -p1
%patch5 -p1
%patch6 -p1
2013-01-10 17:35:12 +00:00
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
%patch35 -p1
%patch36 -p1
%patch37 -p1
2013-01-10 17:35:12 +00:00
sed -i -e 's/2.8.7/2.6.4/g' cmake/cpack_rpm.cmake
2013-01-10 17:35:12 +00:00
# workaround for upstream bug #56342
rm -f mysql-test/t/ssl_8k_key-master.opt
# generate a list of tests that fail, but are not disabled by upstream
cat %{SOURCE50} > mysql-test/rh-skipped-tests.list
# disable some tests failing on different architectures
%ifarch x86_64 i686
cat %{SOURCE51} >> mysql-test/rh-skipped-tests.list
%endif
%ifarch %{arm} aarch64
cat %{SOURCE52} >> mysql-test/rh-skipped-tests.list
2013-01-10 17:35:12 +00:00
%endif
%ifarch ppc ppc64 ppc64p7 s390 s390x
cat %{SOURCE53} >> mysql-test/rh-skipped-tests.list
%endif
%ifarch ppc64le
cat %{SOURCE54} >> mysql-test/rh-skipped-tests.list
%endif
cp %{SOURCE2} %{SOURCE3} %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} \
%{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} scripts
2013-01-10 17:35:12 +00:00
%build
# fail quickly and obviously if user tries to build as root
%if %runselftest
if [ x"$(id -u)" = "x0" ]; then
echo "mysql's regression tests fail if run as root."
echo "If you really need to build the RPM as root, use"
echo "--nocheck to skip the regression tests."
exit 1
fi
2013-01-10 17:35:12 +00:00
%endif
CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
# force PIC mode so that we can build libmysqld.so
CFLAGS="$CFLAGS -fPIC"
# GCC 4.9 causes segfaults: https://mariadb.atlassian.net/browse/MDEV-6360
CFLAGS="$CFLAGS -fno-delete-null-pointer-checks"
2013-01-10 17:35:12 +00:00
# gcc seems to have some bugs on sparc as of 4.4.1, back off optimization
# submitted as bz #529298
%ifarch sparc sparcv9 sparc64
CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O1|g" `
%endif
# significant performance gains can be achieved by compiling with -O3 optimization
# rhbz#1051069
%ifarch ppc64
CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O3|g" `
%endif
2013-01-10 17:35:12 +00:00
CXXFLAGS="$CFLAGS"
export CFLAGS CXXFLAGS
%if 0%{?_hardened_build}
2013-01-10 17:35:12 +00:00
# building with PIE
LDFLAGS="$LDFLAGS -pie -Wl,-z,relro,-z,now"
2013-01-10 17:35:12 +00:00
export LDFLAGS
%endif
2013-01-10 17:35:12 +00:00
# The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX
# so we can't use %%{_datadir} and so forth here.
cmake . -DBUILD_CONFIG=mysql_release \
-DFEATURE_SET="community" \
-DINSTALL_LAYOUT=RPM \
-DDAEMON_NAME="%{daemon_name}" \
%if 0%{?mysqld_unit:1}
-DDAEMON_NAME_COMPAT="%{mysqld_unit}" \
%endif
-DLOG_LOCATION="%{logfile}" \
-DLOG_LOCATION_COMPAT="%{old_logfile}" \
-DPID_FILE_DIR="%{_localstatedir}/run/%{daemon_name}" \
-DPID_FILE_DIR_COMAPT="%{_localstatedir}/run/%{mysqld_unit}" \
-DNICE_PROJECT_NAME="MariaDB" \
-DRPM="%{?rhel:rhel%{rhel}}%{!?rhel:fedora%{fedora}}" \
-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
%if 0%{?fedora} >= 20
-DINSTALL_DOCDIR="share/doc/%{name}" \
-DINSTALL_DOCREADMEDIR="share/doc/%{name}" \
%else
-DINSTALL_DOCDIR="share/doc/%{name}-%{version}" \
-DINSTALL_DOCREADMEDIR="share/doc/%{name}-%{version}" \
%endif
-DINSTALL_INCLUDEDIR=include/mysql \
-DINSTALL_INFODIR=share/info \
-DINSTALL_LIBDIR="%{_lib}/mysql" \
-DINSTALL_MANDIR=share/man \
-DINSTALL_MYSQLSHAREDIR=share/%{name} \
-DINSTALL_MYSQLTESTDIR=share/mysql-test \
-DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
-DINSTALL_SBINDIR=libexec \
-DINSTALL_SCRIPTDIR=bin \
-DINSTALL_SQLBENCHDIR=share \
-DINSTALL_SUPPORTFILESDIR=share/%{name} \
-DMYSQL_DATADIR="%{_localstatedir}/lib/mysql" \
-DMYSQL_UNIX_ADDR="%{_localstatedir}/lib/mysql/mysql.sock" \
-DENABLED_LOCAL_INFILE=ON \
-DENABLE_DTRACE=ON \
-DWITH_EMBEDDED_SERVER=ON \
-DWITH_READLINE=ON \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
%{?with_pcre: -DWITH_PCRE=system}\
-DWITH_JEMALLOC=no \
2013-10-12 13:53:31 +00:00
%{!?with_tokudb: -DWITHOUT_TOKUDB=ON}\
-DTMPDIR=/var/tmp \
-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
2013-01-10 17:35:12 +00:00
make %{?_smp_mflags} VERBOSE=1
# debuginfo extraction scripts fail to find source files in their real
# location -- satisfy them by copying these files into location, which
# is expected by scripts
for e in innobase xtradb ; do
2014-04-08 08:37:08 +00:00
for f in pars0grm.y pars0lex.l ; do
cp -p "storage/$e/pars/$f" "storage/$e/$f"
2013-01-10 17:35:12 +00:00
done
done
%install
make DESTDIR=%{buildroot} install
2013-01-10 17:35:12 +00:00
2014-07-21 07:10:31 +00:00
# cmake generates some completely wacko references to -lprobes_mysql when
# 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
# libmysqlclient_r anymore either.
sed -e 's/-lprobes_mysql//' -e 's/-lmysqlclient_r/-lmysqlclient/' \
%{buildroot}%{_bindir}/mysql_config >mysql_config.tmp
cp -p -f mysql_config.tmp %{buildroot}%{_bindir}/mysql_config
chmod 755 %{buildroot}%{_bindir}/mysql_config
# multilib header support
2013-01-10 17:35:12 +00:00
# we only apply this to known Red Hat multilib arches, per bug #181335
2014-07-17 14:29:43 +00:00
unamei=$(uname -i)
%ifarch %{arm}
unamei=arm
%endif
%ifarch %{arm} aarch64 %{ix86} x86_64 ppc %{power64} %{sparc} s390 s390x
mv %{buildroot}%{_includedir}/mysql/my_config.h %{buildroot}%{_includedir}/mysql/my_config_${unamei}.h
mv %{buildroot}%{_includedir}/mysql/private/config.h %{buildroot}%{_includedir}/mysql/private/my_config_${unamei}.h
install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/mysql/
install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/mysql/private/config.h
mv %{buildroot}%{_bindir}/mysql_config %{buildroot}%{_bindir}/mysql_config-%{__isa_bits}
install -p -m 0755 scripts/mysql_config_multilib %{buildroot}%{_bindir}/mysql_config
2014-07-17 14:29:43 +00:00
%endif
2013-01-10 17:35:12 +00:00
# install INFO_SRC, INFO_BIN into libdir (upstream thinks these are doc files,
# but that's pretty wacko --- see also %%{name}-file-contents.patch)
mv %{buildroot}%{_pkgdocdir}/MariaDB-server-%{version}/INFO_SRC %{buildroot}%{_libdir}/mysql/
mv %{buildroot}%{_pkgdocdir}/MariaDB-server-%{version}/INFO_BIN %{buildroot}%{_libdir}/mysql/
rm -rf %{buildroot}%{_pkgdocdir}/MariaDB-server-%{version}/
2013-01-10 17:35:12 +00:00
mkdir -p %{buildroot}%{logfiledir}
chmod 0750 %{buildroot}%{logfiledir}
touch %{buildroot}%{logfile}
%if 0%{?old_logfile:1}
ln -s %{logfile} %{buildroot}%{old_logfile}
%endif
2013-01-10 17:35:12 +00:00
# current setting in my.cnf is to use /var/run/mariadb for creating pid file,
# however since my.cnf is not updated by RPM if changed, we need to create mysqld
# as well because users can have od settings in their /etc/my.cnf
mkdir -p %{buildroot}%{_localstatedir}/run/mysqld
mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
install -p -m 0755 -d %{buildroot}%{_localstatedir}/lib/mysql
2013-01-10 17:35:12 +00:00
%if %{ship_my_cnf}
install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/my.cnf
%else
rm -f %{buildroot}%{_sysconfdir}/my.cnf.d/mysql-clients.cnf
rm -f %{buildroot}%{_sysconfdir}/my.cnf
%endif
2013-01-10 17:35:12 +00:00
# install systemd unit files and scripts for handling server startup
%if %{with init_systemd}
install -D -p -m 644 scripts/mysql.service %{buildroot}%{_unitdir}/%{daemon_name}.service
install -D -p -m 0644 scripts/mysql.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf
%endif
# install alternative systemd unit file for compatibility reasons
2014-07-22 08:39:20 +00:00
%if 0%{?mysqld_unit:1}
install -p -m 644 scripts/mysql-compat.service %{buildroot}%{_unitdir}/%{mysqld_unit}.service
mkdir -p %{buildroot}%{_unitdir}/%{daemon_name}.service.d
install -p -m 644 scripts/mysql-compat.conf %{buildroot}%{_unitdir}/%{daemon_name}.service.d/mysql-compat.conf
2014-07-17 14:46:12 +00:00
%endif
# install SysV init script
%if %{with init_sysv}
install -D -p -m 755 scripts/mysql.init %{buildroot}%{_initddir}/%{daemon_name}
%endif
# helper scripts for service starting
install -p -m 755 scripts/mysql-prepare-db-dir %{buildroot}%{_libexecdir}/mysql-prepare-db-dir
install -p -m 755 scripts/mysql-wait-ready %{buildroot}%{_libexecdir}/mysql-wait-ready
install -p -m 755 scripts/mysql-check-socket %{buildroot}%{_libexecdir}/mysql-check-socket
install -p -m 644 scripts/mysql-scripts-common %{buildroot}%{_libexecdir}/mysql-scripts-common
2013-01-10 17:35:12 +00:00
# Remove libmysqld.a
rm -f %{buildroot}%{_libdir}/mysql/libmysqld.a
2013-01-10 17:35:12 +00:00
# libmysqlclient_r is no more. Upstream tries to replace it with symlinks
# but that really doesn't work (wrong soname in particular). We'll keep
# just the devel libmysqlclient_r.so link, so that rebuilding without any
# source change is enough to get rid of dependency on libmysqlclient_r.
rm -f %{buildroot}%{_libdir}/mysql/libmysqlclient_r.so*
ln -s libmysqlclient.so %{buildroot}%{_libdir}/mysql/libmysqlclient_r.so
2013-01-10 17:35:12 +00:00
# mysql-test includes one executable that doesn't belong under /usr/share,
# so move it and provide a symlink
mv %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir}
ln -s ../../../../../bin/my_safe_process %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process
2013-01-10 17:35:12 +00:00
# should move this to /etc/ ?
rm -f %{buildroot}%{_bindir}/mysql_embedded
rm -f %{buildroot}%{_libdir}/mysql/*.a
rm -f %{buildroot}%{_datadir}/%{name}/binary-configure
rm -f %{buildroot}%{_datadir}/%{name}/magic
rm -f %{buildroot}%{_datadir}/%{name}/ndb-config-2-node.ini
rm -f %{buildroot}%{_datadir}/%{name}/mysql.server
rm -f %{buildroot}%{_datadir}/%{name}/mysqld_multi.server
rm -f %{buildroot}%{_mandir}/man1/mysql-stress-test.pl.1*
rm -f %{buildroot}%{_mandir}/man1/mysql-test-run.pl.1*
rm -f %{buildroot}%{_bindir}/mytop
2013-01-10 17:35:12 +00:00
# put logrotate script where it needs to be
mkdir -p %{buildroot}%{logrotateddir}
mv %{buildroot}%{_datadir}/%{name}/mysql-log-rotate %{buildroot}%{logrotateddir}/%{daemon_name}
chmod 644 %{buildroot}%{logrotateddir}/%{daemon_name}
2013-01-10 17:35:12 +00:00
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
echo "%{_libdir}/mysql" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
2013-01-10 17:35:12 +00:00
# copy additional docs into build tree so %%doc will find them
install -p -m 0644 %{SOURCE5} %{basename:%{SOURCE5}}
install -p -m 0644 %{SOURCE6} %{basename:%{SOURCE6}}
install -p -m 0644 %{SOURCE7} %{basename:%{SOURCE7}}
install -p -m 0644 %{SOURCE16} %{basename:%{SOURCE16}}
2013-01-10 17:35:12 +00:00
# install the list of skipped tests to be available for user runs
install -p -m 0644 mysql-test/rh-skipped-tests.list %{buildroot}%{_datadir}/mysql-test
2013-01-10 17:35:12 +00:00
# remove unneeded RHEL-4 SELinux stuff
rm -rf %{buildroot}%{_datadir}/%{name}/SELinux/
2013-01-10 17:35:12 +00:00
# remove SysV init script
rm -f %{buildroot}%{_sysconfdir}/init.d/mysql
2013-01-10 17:35:12 +00:00
# remove duplicate logrotate script
rm -f %{buildroot}%{logrotateddir}/mysql
2013-01-10 17:35:12 +00:00
# remove solaris files
rm -rf %{buildroot}%{_datadir}/%{name}/solaris/
%if %{without clibrary}
rm -rf %{buildroot}%{_libdir}/mysql/libmysqlclient*.so.*
rm -rf %{buildroot}%{_sysconfdir}/ld.so.conf.d
%endif
%if %{without embedded}
rm -f %{buildroot}%{_libdir}/mysql/libmysqld.so*
rm -f %{buildroot}%{_bindir}/{mysql_client_test_embedded,mysqltest_embedded}
rm -f %{buildroot}%{_mandir}/man1/{mysql_client_test_embedded,mysqltest_embedded}.1*
%endif
%if %{without devel}
rm -f %{buildroot}%{_bindir}/mysql_config*
rm -rf %{buildroot}%{_includedir}/mysql
rm -f %{buildroot}%{_datadir}/aclocal/mysql.m4
rm -f %{buildroot}%{_libdir}/mysql/libmysqlclient*.so
rm -f %{buildroot}%{_mandir}/man1/mysql_config.1*
%endif
%if %{without client}
rm -f %{buildroot}%{_bindir}/{msql2mysql,mysql,mysql_find_rows,mysql_waitpid,\
mysqlaccess,mysqladmin,mysqlbinlog,mysqlcheck,mysqldump,tokuftdump,mysqlimport,\
mysqlshow,mysqlslap,my_print_defaults,aria_chk,aria_dump_log,aria_ftdump,\
aria_pack,aria_read_log}
rm -f %{buildroot}%{_mandir}/man1/{mysql,mysql_find_rows,mysql_waitpid,\
mysqlaccess,mysqladmin,mysqldump,mysqlshow,mysqlslap,\
my_print_defaults}.1*
rm -f %{buildroot}%{_sysconfdir}/my.cnf.d/{client,connect}.cnf
%endif
%if %{without common}
rm -f %{buildroot}%{_sysconfdir}/my.cnf
rm -f %{buildroot}%{_sysconfdir}/my.cnf.d/mysql-clients.cnf
rm -rf %{buildroot}%{_datadir}/%{name}/charsets
%endif
%if %{without errmsg}
rm -rf %{buildroot}%{_datadir}/%{name}/{english,czech,danish,dutch,estonian,\
french,german,greek,hungarian,italian,japanese,korean,norwegian,norwegian-ny,\
polish,portuguese,romanian,russian,serbian,slovak,spanish,swedish,ukrainian}
%endif
%if %{without bench}
rm -rf %{buildroot}%{_datadir}/sql-bench
%endif
%if %{without test}
rm -f %{buildroot}%{_bindir}/{mysql_client_test,my_safe_process}
rm -rf %{buildroot}%{_datadir}/mysql-test
rm -f %{buildroot}%{_mandir}/man1/mysql_client_test.1*
%endif
%check
%if %{with test}
%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
%endif
%pre server
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
/usr/sbin/useradd -M -N -g mysql -o -r -d %{mysqluserhome} -s /sbin/nologin \
-c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || :
%if %{with init_systemd}
# Explicitly enable mysqld if it was enabled in the beginning
# of the transaction. Otherwise mysqld is disabled always when
# replacing mysql with mariadb, because it is not recognized
# as updating, but rather as removal and install.
if /bin/systemctl is-enabled mysqld.service >/dev/null 2>&1 ; then
touch %mysqld_enabled_flag_file >/dev/null 2>&1 || :
fi
# Since mysqld.service became a symlink to mariadb.service, turning off
# the running mysqld service doesn't work fine (BZ#1002996). As a work-around
# we explicitly stop mysqld before upgrade and start after it again.
if [ ! -L %{_unitdir}/mysqld.service ] && /bin/systemctl is-active mysqld.service &>/dev/null ; then
touch %mysqld_running_flag_file >/dev/null 2>&1 || :
/bin/systemctl stop mysqld.service >/dev/null 2>&1 || :
fi
%posttrans server
if [ -f %mysqld_enabled_flag_file ] ; then
/bin/systemctl enable %{daemon_name}.service >/dev/null 2>&1 || :
rm -f %mysqld_enabled_flag_file >/dev/null 2>&1 || :
fi
if [ -f %mysqld_running_flag_file ] ; then
/bin/systemctl start %{daemon_name}.service >/dev/null 2>&1 || :
rm -f %mysqld_running_flag_file >/dev/null 2>&1 || :
fi
%endif
%if %{with clibrary}
2013-01-10 17:35:12 +00:00
%post libs -p /sbin/ldconfig
%endif
2013-01-10 17:35:12 +00:00
%if %{with embedded}
%post embedded -p /sbin/ldconfig
%endif
2013-01-10 17:35:12 +00:00
%post server
%if %{with init_systemd}
%systemd_post %{daemon_name}.service
%endif
%if %{with init_sysv}
if [ $1 = 1 ]; then
/sbin/chkconfig --add %{daemon_name}
fi
%endif
/bin/chmod 0755 %{_localstatedir}/lib/mysql
2013-01-10 17:35:12 +00:00
%preun server
%if %{with init_systemd}
%systemd_preun %{daemon_name}.service
%endif
%if %{with init_sysv}
if [ $1 = 0 ]; then
/sbin/service %{daemon_name} stop >/dev/null 2>&1
/sbin/chkconfig --del %{daemon_name}
fi
%endif
2013-01-10 17:35:12 +00:00
%if %{with clibrary}
2013-01-10 17:35:12 +00:00
%postun libs -p /sbin/ldconfig
%endif
2013-01-10 17:35:12 +00:00
%if %{with embedded}
%postun embedded -p /sbin/ldconfig
%endif
2013-01-10 17:35:12 +00:00
%postun server
%if %{with init_systemd}
%systemd_postun_with_restart %{daemon_name}.service
%endif
%if %{with init_sysv}
if [ $1 -ge 1 ]; then
/sbin/service %{daemon_name} condrestart >/dev/null 2>&1 || :
fi
%endif
2013-01-10 17:35:12 +00:00
%files
%doc README.mysql-docs
%if %{with client}
2013-01-10 17:35:12 +00:00
%{_bindir}/msql2mysql
%{_bindir}/mysql
%{_bindir}/mysql_find_rows
%{_bindir}/mysql_waitpid
%{_bindir}/mysqlaccess
%{_bindir}/mysqladmin
%{_bindir}/mysqlbinlog
%{_bindir}/mysqlcheck
%{_bindir}/mysqldump
2013-10-12 13:53:31 +00:00
%{?with_tokudb:%{_bindir}/tokuftdump}
2013-01-10 17:35:12 +00:00
%{_bindir}/mysqlimport
%{_bindir}/mysqlshow
%{_bindir}/mysqlslap
%{_bindir}/my_print_defaults
%{_bindir}/aria_chk
%{_bindir}/aria_dump_log
%{_bindir}/aria_ftdump
%{_bindir}/aria_pack
%{_bindir}/aria_read_log
%{_mandir}/man1/mysql.1*
%{_mandir}/man1/mysql_find_rows.1*
%{_mandir}/man1/mysql_waitpid.1*
%{_mandir}/man1/mysqlaccess.1*
%{_mandir}/man1/mysqladmin.1*
%{_mandir}/man1/mysqldump.1*
%{_mandir}/man1/mysqlshow.1*
%{_mandir}/man1/mysqlslap.1*
%{_mandir}/man1/my_print_defaults.1*
%config(noreplace) %{_sysconfdir}/my.cnf.d/client.cnf
2014-04-08 08:37:08 +00:00
%config(noreplace) %{_sysconfdir}/my.cnf.d/connect.cnf
%endif
2013-01-10 17:35:12 +00:00
%if %{with clibrary}
2013-01-10 17:35:12 +00:00
%files libs
%dir %{_libdir}/mysql
%{_libdir}/mysql/libmysqlclient.so.*
%{_sysconfdir}/ld.so.conf.d/*
%endif
%if %{with common}
%files common
2013-01-10 17:35:12 +00:00
%doc README COPYING COPYING.LESSER README.mysql-license
%doc storage/innobase/COPYING.Percona storage/innobase/COPYING.Google
# although the default my.cnf contains only server settings, we put it in the
# common package because it can be used for client settings too.
%if %{ship_my_cnf}
2013-01-10 17:35:12 +00:00
%config(noreplace) %{_sysconfdir}/my.cnf
%dir %{_sysconfdir}/my.cnf.d
2013-01-10 17:35:12 +00:00
%config(noreplace) %{_sysconfdir}/my.cnf.d/mysql-clients.cnf
%endif
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/charsets
%endif
%if %{with errmsg}
%files errmsg
%{_datadir}/%{name}/english
%lang(cs) %{_datadir}/%{name}/czech
%lang(da) %{_datadir}/%{name}/danish
%lang(nl) %{_datadir}/%{name}/dutch
%lang(et) %{_datadir}/%{name}/estonian
%lang(fr) %{_datadir}/%{name}/french
%lang(de) %{_datadir}/%{name}/german
%lang(el) %{_datadir}/%{name}/greek
%lang(hu) %{_datadir}/%{name}/hungarian
%lang(it) %{_datadir}/%{name}/italian
%lang(ja) %{_datadir}/%{name}/japanese
%lang(ko) %{_datadir}/%{name}/korean
%lang(no) %{_datadir}/%{name}/norwegian
%lang(no) %{_datadir}/%{name}/norwegian-ny
%lang(pl) %{_datadir}/%{name}/polish
%lang(pt) %{_datadir}/%{name}/portuguese
%lang(ro) %{_datadir}/%{name}/romanian
%lang(ru) %{_datadir}/%{name}/russian
%lang(sr) %{_datadir}/%{name}/serbian
%lang(sk) %{_datadir}/%{name}/slovak
%lang(es) %{_datadir}/%{name}/spanish
%lang(sv) %{_datadir}/%{name}/swedish
%lang(uk) %{_datadir}/%{name}/ukrainian
%endif
2013-01-10 17:35:12 +00:00
%files server
2014-07-17 13:57:42 +00:00
%doc support-files/*.cnf README.mysql-cnf
2013-01-10 17:35:12 +00:00
%{_bindir}/myisamchk
%{_bindir}/myisam_ftdump
%{_bindir}/myisamlog
%{_bindir}/myisampack
%{_bindir}/mysql_convert_table_format
%{_bindir}/mysql_fix_extensions
%{_bindir}/mysql_install_db
%{_bindir}/mysql_plugin
%{_bindir}/mysql_secure_installation
%{_bindir}/mysql_setpermission
%{_bindir}/mysql_tzinfo_to_sql
%{_bindir}/mysql_upgrade
%{_bindir}/mysql_zap
2014-07-17 14:29:43 +00:00
%{_bindir}/mysqlbug
2013-01-10 17:35:12 +00:00
%{_bindir}/mysqldumpslow
%{_bindir}/mysqld_multi
%{_bindir}/mysqld_safe
%{_bindir}/mysqlhotcopy
%{_bindir}/mysqltest
%{_bindir}/innochecksum
%{_bindir}/perror
%{_bindir}/replace
%{_bindir}/resolve_stack_dump
%{_bindir}/resolveip
%config(noreplace) %{_sysconfdir}/my.cnf.d/server.cnf
2013-10-12 13:53:31 +00:00
%{?with_tokudb:%config(noreplace) %{_sysconfdir}/my.cnf.d/tokudb.cnf}
2013-01-10 17:35:12 +00:00
%{_libexecdir}/mysqld
%{_libdir}/mysql/INFO_SRC
%{_libdir}/mysql/INFO_BIN
%if %{without common}
%dir %{_datadir}/%{name}
%endif
2013-01-10 17:35:12 +00:00
%{_libdir}/mysql/plugin
2014-07-21 13:01:30 +00:00
%exclude %{_libdir}/mysql/plugin/ha_oqgraph.so
2013-01-10 17:35:12 +00:00
%{_mandir}/man1/msql2mysql.1*
%{_mandir}/man1/myisamchk.1*
%{_mandir}/man1/myisamlog.1*
%{_mandir}/man1/myisampack.1*
%{_mandir}/man1/mysql_convert_table_format.1*
%{_mandir}/man1/myisam_ftdump.1*
%{_mandir}/man1/mysql.server.1*
%{_mandir}/man1/mysql_fix_extensions.1*
%{_mandir}/man1/mysql_install_db.1*
%{_mandir}/man1/mysql_plugin.1*
%{_mandir}/man1/mysql_secure_installation.1*
%{_mandir}/man1/mysql_upgrade.1*
%{_mandir}/man1/mysql_zap.1*
%{_mandir}/man1/mysqlbug.1*
%{_mandir}/man1/mysqldumpslow.1*
%{_mandir}/man1/mysqlbinlog.1*
%{_mandir}/man1/mysqlcheck.1*
%{_mandir}/man1/mysqld_multi.1*
%{_mandir}/man1/mysqld_safe.1*
%{_mandir}/man1/mysqlhotcopy.1*
%{_mandir}/man1/mysqlimport.1*
%{_mandir}/man1/mysql_setpermission.1*
%{_mandir}/man1/mysqltest.1*
%{_mandir}/man1/innochecksum.1*
%{_mandir}/man1/perror.1*
%{_mandir}/man1/replace.1*
%{_mandir}/man1/resolve_stack_dump.1*
%{_mandir}/man1/resolveip.1*
%{_mandir}/man1/mysql_tzinfo_to_sql.1*
%{_mandir}/man8/mysqld.8*
%{_datadir}/%{name}/errmsg-utf8.txt
%{_datadir}/%{name}/fill_help_tables.sql
2014-04-08 08:37:08 +00:00
%{_datadir}/%{name}/install_spider.sql
%{_datadir}/%{name}/mysql_system_tables.sql
%{_datadir}/%{name}/mysql_system_tables_data.sql
%{_datadir}/%{name}/mysql_test_data_timezone.sql
%{_datadir}/%{name}/mysql_performance_tables.sql
%{_datadir}/%{name}/my-*.cnf
2013-01-10 17:35:12 +00:00
%{?mysqld_unit:%{_unitdir}/%{mysqld_unit}.service}
%{?mysqld_unit:%{_unitdir}/%{daemon_name}.service.d/mysql-compat.conf}
%{?with_init_systemd:%{_unitdir}/%{daemon_name}.service}
%{?with_init_sysv:%{_initddir}/%{daemon_name}}
%{_libexecdir}/mysql-prepare-db-dir
%{_libexecdir}/mysql-wait-ready
%{_libexecdir}/mysql-check-socket
%{_libexecdir}/mysql-scripts-common
2013-01-10 17:35:12 +00:00
%{?with_init_systemd:%{_tmpfilesdir}/%{name}.conf}
%attr(0755,mysql,mysql) %dir %{_localstatedir}/run/mysqld
%attr(0755,mysql,mysql) %dir %{_localstatedir}/run/%{daemon_name}
%attr(0755,mysql,mysql) %dir %{_localstatedir}/lib/mysql
%attr(0750,mysql,mysql) %dir %{logfiledir}
%attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile}
%if 0%{?old_logfile:1}
%config %ghost %verify(not md5 size mtime) %{old_logfile}
%endif
%config(noreplace) %{logrotateddir}/%{daemon_name}
2013-01-10 17:35:12 +00:00
2014-07-21 13:01:30 +00:00
%if %{with oqgraph}
%files oqgraph
%config(noreplace) %{_sysconfdir}/my.cnf.d/oqgraph.cnf
%{_libdir}/mysql/plugin/ha_oqgraph.so
%endif
%if %{with devel}
2013-01-10 17:35:12 +00:00
%files devel
2014-07-17 14:29:43 +00:00
%{_bindir}/mysql_config
%{_bindir}/mysql_config-%{__isa_bits}
%{_includedir}/mysql
%{_datadir}/aclocal/mysql.m4
2013-01-10 17:35:12 +00:00
%{_libdir}/mysql/libmysqlclient.so
%{_libdir}/mysql/libmysqlclient_r.so
%{_mandir}/man1/mysql_config.1*
%endif
2013-01-10 17:35:12 +00:00
%if %{with embedded}
2013-01-10 17:35:12 +00:00
%files embedded
%{_libdir}/mysql/libmysqld.so.*
%files embedded-devel
%{_libdir}/mysql/libmysqld.so
%{_bindir}/mysql_client_test_embedded
%{_bindir}/mysqltest_embedded
%{_mandir}/man1/mysql_client_test_embedded.1*
%{_mandir}/man1/mysqltest_embedded.1*
%endif
2013-01-10 17:35:12 +00:00
%if %{with bench}
2013-01-10 17:35:12 +00:00
%files bench
%{_datadir}/sql-bench
%endif
2013-01-10 17:35:12 +00:00
%if %{with test}
2013-01-10 17:35:12 +00:00
%files test
%{_bindir}/mysql_client_test
%{_bindir}/my_safe_process
%attr(-,mysql,mysql) %{_datadir}/mysql-test
%{_mandir}/man1/mysql_client_test.1*
%endif
2013-01-10 17:35:12 +00:00
%changelog
2014-07-22 08:39:20 +00:00
* Tue Jul 22 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.12-5
- Hardcoded paths removed to work fine in chroot
- Spec rewrite to be more similar to oterh MySQL implementations
2014-07-22 08:39:20 +00:00
- Use variable for daemon unit name
- Include SysV init script if built on older system
- Add possibility to not ship some sub-packages
2014-07-22 08:39:20 +00:00
* Mon Jul 21 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.12-4
- Reformating spec and removing unnecessary snippets
2014-07-15 13:44:21 +00:00
* Tue Jul 15 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.12-3
2014-07-21 13:01:30 +00:00
- Enable OQGRAPH engine and package it as a sub-package
- Add support for TokuDB engine for x86_64 (currently still disabled)
- Re-enable tokudb_innodb_xa_crash again, seems to be fixed now
- Drop superfluous -libs and -embedded ldconfig deps (thanks Ville Skyttä)
- Separate -lib and -common sub-packages
- Require /etc/my.cnf instead of shipping it
2014-07-17 13:57:42 +00:00
- Include README.mysql-cnf
2014-07-17 14:29:43 +00:00
- Multilib support re-worked
2014-07-17 14:46:12 +00:00
- Introduce new option with_mysqld_unit
- Removed obsolete mysql-cluster, the package should already be removed
- Improve error message when log file is not writable
- Compile all binaries with full RELRO (RHBZ#1092548)
- Use modern symbol filtering with compatible backup
- Add more groupnames for server's my.cnf
- Error messages now provided by a separate package (thanks Alexander Barkov)
- Expand paths in helper scripts using cmake
2014-07-15 13:44:21 +00:00
* Wed Jun 18 2014 Mikko Tiihonen <mikko.tiihonen@iki.fi> - 1:10.0.12-2
- Use -fno-delete-null-pointer-checks to avoid segfaults with gcc 4.9
2014-06-19 14:08:41 +00:00
* Tue Jun 17 2014 Jakub Dorňák <jdornak@redhat.com> - 1:10.0.12-1
- Rebase to version 10.0.12
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:10.0.11-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue Jun 3 2014 Jakub Dorňák <jdornak@redhat.com> - 1:10.0.11-4
- rebuild with tests failing on different arches disabled (#1096787)
* Thu May 29 2014 Dan Horák <dan[at]danny.cz> - 1:10.0.11-2
- rebuild with tests failing on big endian arches disabled (#1096787)
2014-05-14 12:05:26 +00:00
* Wed May 14 2014 Jakub Dorňák <jdornak@redhat.com> - 1:10.0.11-1
- Rebase to version 10.0.11
2014-05-05 10:36:12 +00:00
* Mon May 05 2014 Honza Horak <hhorak@redhat.com> - 1:10.0.10-3
- Script for socket check enhanced
2014-04-10 12:55:31 +00:00
* Thu Apr 10 2014 Jakub Dorňák <jdornak@redhat.com> - 1:10.0.10-2
- use system pcre library
2014-04-10 08:26:59 +00:00
* Thu Apr 10 2014 Jakub Dorňák <jdornak@redhat.com> - 1:10.0.10-1
- Rebase to version 10.0.10
* Wed Mar 12 2014 Honza Horak <hhorak@redhat.com> - 1:5.5.36-2
- Server crashes on SQL select containing more group by and left join statements using innodb tables
Resolves: #1065676
2014-03-13 12:25:10 +00:00
- Fix paths in helper scripts
- Move language files into mariadb directory
* Thu Mar 06 2014 Honza Horak <hhorak@redhat.com> - 1:5.5.36-1
- Rebase to 5.5.36
https://kb.askmonty.org/en/mariadb-5536-changelog/
* Tue Feb 25 2014 Honza Horak <hhorak@redhat.com> 1:5.5.35-5
- Daemon helper scripts sanity changes and spec files clean-up
* Tue Feb 11 2014 Honza Horak <hhorak@redhat.com> 1:5.5.35-4
- Fix typo in mysqld.service
Resolves: #1063981
* Wed Feb 5 2014 Honza Horak <hhorak@redhat.com> 1:5.5.35-3
- Do not touch the log file in post script, so it does not get wrong owner
Resolves: #1061045
2014-01-30 17:03:25 +00:00
* Thu Jan 30 2014 Honza Horak <hhorak@redhat.com> 1:5.5.35-1
- Rebase to 5.5.35
https://kb.askmonty.org/en/mariadb-5535-changelog/
Also fixes: CVE-2014-0001, CVE-2014-0412, CVE-2014-0437, CVE-2013-5908,
CVE-2014-0420, CVE-2014-0393, CVE-2013-5891, CVE-2014-0386, CVE-2014-0401,
CVE-2014-0402
Resolves: #1054043
Resolves: #1059546
* Tue Jan 14 2014 Honza Horak <hhorak@redhat.com> - 1:5.5.34-9
- Adopt compatible system versioning
Related: #1045013
- Use compatibility mysqld.service instead of link
Related: #1014311
* Mon Jan 13 2014 Rex Dieter <rdieter@fedoraproject.org> 1:5.5.34-8
- move mysql_config alternatives scriptlets to -devel too
* Fri Jan 10 2014 Honza Horak <hhorak@redhat.com> 1:5.5.34-7
- Build with -O3 on ppc64
Related: #1051069
- Move mysql_config to -devel sub-package and remove Require: mariadb
Related: #1050920
* Fri Jan 10 2014 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> 1:5.5.34-6
- Disable main.gis-precise test also for AArch64
- Disable perfschema.func_file_io and perfschema.func_mutex for AArch64
(like it is done for 32-bit ARM)
* Fri Jan 10 2014 Honza Horak <hhorak@redhat.com> 1:5.5.34-5
- Clean all non-needed doc files properly
* Wed Jan 8 2014 Honza Horak <hhorak@redhat.com> 1:5.5.34-4
- Read socketfile location in mariadb-prepare-db-dir script
2014-01-06 17:10:30 +00:00
* Mon Jan 6 2014 Honza Horak <hhorak@redhat.com> 1:5.5.34-3
- Don't test EDH-RSA-DES-CBC-SHA cipher, it seems to be removed from openssl
which now makes mariadb/mysql FTBFS because openssl_1 test fails
Related: #1044565
- Use upstream's layout for symbols version in client library
Related: #1045013
- Check if socket file is not being used by another process at a time
of starting the service
Related: #1045435
- Use %%ghost directive for the log file
Related: 1043501
2013-11-27 14:22:54 +00:00
* Wed Nov 27 2013 Honza Horak <hhorak@redhat.com> 1:5.5.34-2
- Fix mariadb-wait-ready script
2013-11-22 07:55:22 +00:00
* Fri Nov 22 2013 Honza Horak <hhorak@redhat.com> 1:5.5.34-1
- Rebase to 5.5.34
* Mon Nov 4 2013 Honza Horak <hhorak@redhat.com> 1:5.5.33a-4
- Fix spec file to be ready for backport by Oden Eriksson
Resolves: #1026404
* Mon Nov 4 2013 Honza Horak <hhorak@redhat.com> 1:5.5.33a-3
- Add pam-devel to build-requires in order to build
Related: #1019945
- Check if correct process is running in mysql-wait-ready script
Related: #1026313
2013-10-14 11:32:21 +00:00
* Mon Oct 14 2013 Honza Horak <hhorak@redhat.com> 1:5.5.33a-2
- Turn on test suite
2013-10-11 07:58:06 +00:00
* Thu Oct 10 2013 Honza Horak <hhorak@redhat.com> 1:5.5.33a-1
- Rebase to 5.5.33a
https://kb.askmonty.org/en/mariadb-5533-changelog/
https://kb.askmonty.org/en/mariadb-5533a-changelog/
2013-10-11 08:57:14 +00:00
- Enable outfile_loaddata test
- Disable tokudb_innodb_xa_crash test
2013-10-11 07:58:06 +00:00
* Mon Sep 2 2013 Honza Horak <hhorak@redhat.com> - 1:5.5.32-12
- Re-organize my.cnf to include only generic settings
Resolves: #1003115
- Move pid file location to /var/run/mariadb
- Make mysqld a symlink to mariadb unit file rather than the opposite way
Related: #999589
* Thu Aug 29 2013 Honza Horak <hhorak@redhat.com> - 1:5.5.32-11
- Move log file into /var/log/mariadb/mariadb.log
- Rename logrotate script to mariadb
- Resolves: #999589
2013-08-14 15:02:37 +00:00
* Wed Aug 14 2013 Rex Dieter <rdieter@fedoraproject.org> 1:5.5.32-10
- fix alternatives usage
* Tue Aug 13 2013 Honza Horak <hhorak@redhat.com> - 1:5.5.32-9
- Multilib issues solved by alternatives
Resolves: #986959
2013-08-03 11:43:23 +00:00
* Sat Aug 03 2013 Petr Pisar <ppisar@redhat.com> - 1:5.5.32-8
- Perl 5.18 rebuild
* Wed Jul 31 2013 Honza Horak <hhorak@redhat.com> - 1:5.5.32-7
2013-07-30 21:25:34 +00:00
- Do not use login shell for mysql user
* Tue Jul 30 2013 Honza Horak <hhorak@redhat.com> - 1:5.5.32-6
2013-07-30 07:31:26 +00:00
- Remove unneeded systemd-sysv requires
2013-07-30 08:04:11 +00:00
- Provide mysql-compat-server symbol
2013-07-30 10:08:59 +00:00
- Create mariadb.service symlink
2013-07-30 10:14:56 +00:00
- Fix multilib header location for arm
2013-07-30 12:27:58 +00:00
- Enhance documentation in the unit file
- Use scriptstub instead of links to avoid multilib conflicts
- Add condition for doc placement in F20+
2013-07-30 07:31:26 +00:00
* Sun Jul 28 2013 Dennis Gilmore <dennis@ausil.us> - 1:5.5.32-5
- remove "Requires(pretrans): systemd" since its not possible
- when installing mariadb and systemd at the same time. as in a new install
* Sat Jul 27 2013 Kevin Fenzi <kevin@scrye.com> 1:5.5.32-4
- Set rpm doc macro to install docs in unversioned dir
* Fri Jul 26 2013 Dennis Gilmore <dennis@ausil.us> 1:5.5.32-3
- add Requires(pre) on systemd for the server package
* Tue Jul 23 2013 Dennis Gilmore <dennis@ausil.us> 1:5.5.32-2
- replace systemd-units requires with systemd
- remove solaris files
* Fri Jul 19 2013 Honza Horak <hhorak@redhat.com> 1:5.5.32-1
- Rebase to 5.5.32
https://kb.askmonty.org/en/mariadb-5532-changelog/
- Clean-up un-necessary systemd snippets
2013-07-17 10:15:20 +00:00
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 1:5.5.31-7
- Perl 5.18 rebuild
* Mon Jul 1 2013 Honza Horak <hhorak@redhat.com> 1:5.5.31-6
- Test suite params enhanced to decrease server condition influence
- Fix misleading error message when uninstalling built-in plugins
Related: #966873
* Thu Jun 27 2013 Honza Horak <hhorak@redhat.com> 1:5.5.31-5
- Apply fixes found by Coverity static analysis tool
* Wed Jun 19 2013 Honza Horak <hhorak@redhat.com> 1:5.5.31-4
- Do not use pretrans scriptlet, which doesn't work in anaconda
Resolves: #975348
* Fri Jun 14 2013 Honza Horak <hhorak@redhat.com> 1:5.5.31-3
- Explicitly enable mysqld if it was enabled in the beginning
of the transaction.
* Thu Jun 13 2013 Honza Horak <hhorak@redhat.com> 1:5.5.31-2
2013-06-13 12:29:22 +00:00
- Apply man page fix from Jan Stanek
* Fri May 24 2013 Honza Horak <hhorak@redhat.com> 1:5.5.31-1
- Rebase to 5.5.31
https://kb.askmonty.org/en/mariadb-5531-changelog/
- Preserve time-stamps in case of installed files
- Use /var/tmp instead of /tmp, since the later is using tmpfs,
which can cause problems
Resolves: #962087
2013-05-24 14:23:46 +00:00
- Fix test suite requirements
* Sun May 5 2013 Honza Horak <hhorak@redhat.com> 1:5.5.30-2
- Remove mytop utility, which is packaged separately
- Resolve multilib conflicts in mysql/private/config.h
* Fri Mar 22 2013 Honza Horak <hhorak@redhat.com> 1:5.5.30-1
2013-03-22 15:14:07 +00:00
- Rebase to 5.5.30
https://kb.askmonty.org/en/mariadb-5530-changelog/
* Fri Mar 22 2013 Honza Horak <hhorak@redhat.com> 1:5.5.29-11
- Obsolete MySQL since it is now renamed to community-mysql
- Remove real- virtual names
* Thu Mar 21 2013 Honza Horak <hhorak@redhat.com> 1:5.5.29-10
- Adding epoch to have higher priority than other mysql implementations
when comes to provider comparison
* Wed Mar 13 2013 Honza Horak <hhorak@redhat.com> 5.5.29-9
- Let mariadb-embedded-devel conflict with MySQL-embedded-devel
- Adjust mariadb-sortbuffer.patch to correspond with upstream patch
* Mon Mar 4 2013 Honza Horak <hhorak@redhat.com> 5.5.29-8
- Mask expected warnings about setrlimit in test suite
* Thu Feb 28 2013 Honza Horak <hhorak@redhat.com> 5.5.29-7
- Use configured prefix value instead of guessing basedir
in mysql_config
Resolves: #916189
- Export dynamic columns and non-blocking API functions documented
by upstream
2013-02-27 16:05:40 +00:00
* Wed Feb 27 2013 Honza Horak <hhorak@redhat.com> 5.5.29-6
- Fix sort_buffer_length option type
* Wed Feb 13 2013 Honza Horak <hhorak@redhat.com> 5.5.29-5
2013-02-13 11:34:52 +00:00
- Suppress warnings in tests and skip tests also on ppc64p7
* Tue Feb 12 2013 Honza Horak <hhorak@redhat.com> 5.5.29-4
- Suppress warning in tests on ppc
- Enable fixed index_merge_myisam test case
* Thu Feb 07 2013 Honza Horak <hhorak@redhat.com> 5.5.29-3
- Packages need to provide also %%_isa version of mysql package
- Provide own symbols with real- prefix to distinguish from mysql
unambiguously
- Fix format for buffer size in error messages (MDEV-4156)
- Disable some tests that fail on ppc and s390
- Conflict only with real-mysql, otherwise mariadb conflicts with ourself
2013-02-05 12:33:52 +00:00
* Tue Feb 05 2013 Honza Horak <hhorak@redhat.com> 5.5.29-2
- Let mariadb-libs to own /etc/my.cnf.d
* Thu Jan 31 2013 Honza Horak <hhorak@redhat.com> 5.5.29-1
- Rebase to 5.5.29
https://kb.askmonty.org/en/mariadb-5529-changelog/
- Fix inaccurate default for socket location in mysqld-wait-ready
Resolves: #890535
2013-01-31 10:18:29 +00:00
* Thu Jan 31 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-8
- Enable obsoleting mysql
* Wed Jan 30 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-7
- Adding necessary hacks for perl dependency checking, rpm is still
not wise enough
- Namespace sanity re-added for symbol default_charset_info
* Mon Jan 28 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-6
- Removed %%{_isa} from provides/obsoletes, which doesn't allow
proper obsoleting
2013-01-28 10:58:18 +00:00
- Do not obsolete mysql at the time of testing
2013-01-10 17:35:12 +00:00
* Thu Jan 10 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-5
- Added licenses LGPLv2 and BSD
- Removed wrong usage of %%{epoch}
- Test-suite is run in %%check
- Removed perl dependency checking adjustment, rpm seems to be smart enough
- Other minor spec file fixes
* Tue Dec 18 2012 Honza Horak <hhorak@redhat.com> 5.5.28a-4
- Packaging of MariaDB based on MySQL package