9c7c797
Name: mariadb
cd9eeb6
Version: 5.5.30
cd9eeb6
Release: 1%{?dist}
8ae62ad
Epoch: 1
9c7c797
9c7c797
Summary: A community developed branch of MySQL
9c7c797
Group: Applications/Databases
9c7c797
URL: http://mariadb.org
9c7c797
# Exceptions allow client libraries to be linked with most open source SW,
9c7c797
# not only GPL code.  See README.mysql-license
9c7c797
# Some innobase code from Percona and Google is under BSD license
9c7c797
# Some code related to test-suite is under LGPLv2
9c7c797
License: GPLv2 with exceptions and LGPLv2 and BSD
9c7c797
1e074ee
# The evr of mysql we want to obsolete
1e074ee
%global obsoleted_mysql_evr 5.6-0
dff95bf
%global obsoleted_mysql_case_evr 5.5.30-5
647547d
9c7c797
# Regression tests take a long time, you can skip 'em with this
9c7c797
%{!?runselftest:%global runselftest 1}
9c7c797
9c7c797
Source0: http://ftp.osuosl.org/pub/mariadb/mariadb-%{version}/kvm-tarbake-jaunty-x86/mariadb-%{version}.tar.gz
9c7c797
Source3: my.cnf
9c7c797
Source5: my_config.h
9c7c797
Source6: README.mysql-docs
9c7c797
Source7: README.mysql-license
9c7c797
Source8: libmysql.version
9c7c797
Source9: mysql-embedded-check.c
9c7c797
Source10: mariadb.tmpfiles.d
9c7c797
Source11: mysqld.service
9c7c797
Source12: mysqld-prepare-db-dir
9c7c797
Source13: mysqld-wait-ready
9c7c797
Source14: rh-skipped-tests-base.list
9c7c797
Source15: rh-skipped-tests-arm.list
9c7c797
# mysql_plugin is missing in mariadb tar ball
9c7c797
Source16: mysql_plugin.1
5f858ee
# Working around perl dependency checking bug in rpm FTTB. Remove later.
5f858ee
Source999: filter-requires-mysql.sh
9c7c797
9c7c797
# Comments for these patches are in the patch files.
9c7c797
Patch1: mariadb-errno.patch
9c7c797
Patch2: mariadb-strmov.patch
9c7c797
Patch3: mariadb-install-test.patch
9c7c797
Patch4: mariadb-expired-certs.patch
9c7c797
Patch5: mariadb-versioning.patch
9c7c797
Patch6: mariadb-dubious-exports.patch
9c7c797
Patch7: mariadb-s390-tsc.patch
9c7c797
Patch8: mariadb-logrotate.patch
9c7c797
Patch9: mariadb-cipherspec.patch
9c7c797
Patch10: mariadb-file-contents.patch
9c7c797
Patch11: mariadb-string-overflow.patch
9c7c797
Patch12: mariadb-dh1024.patch
9c7c797
Patch13: mariadb-man-plugin.patch
cd9eeb6
Patch14: mariadb-basedir.patch
9c7c797
9c7c797
BuildRequires: perl, readline-devel, openssl-devel
9c7c797
BuildRequires: cmake, ncurses-devel, zlib-devel, libaio-devel
9c7c797
BuildRequires: systemd-units, systemtap-sdt-devel
9c7c797
# make test requires time and ps
9c7c797
BuildRequires: time procps
9c7c797
# perl modules needed to run regression tests
9c7c797
BuildRequires: perl(Socket), perl(Time::HiRes)
9c7c797
BuildRequires: perl(Data::Dumper), perl(Test::More)
9c7c797
dff95bf
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
9c7c797
Requires: grep, fileutils, bash
9c7c797
9c7c797
%{?systemd_requires: %systemd_requires}
9c7c797
9c7c797
# MySQL (with caps) is upstream's spelling of their own RPMs for mysql
dff95bf
Obsoletes: MySQL < %{obsoleted_mysql_case_evr}
dff95bf
Conflicts: community-mysql
9c7c797
# MariaDB replaces mysql packages
8ae62ad
Provides: mysql = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql%{?_isa} = %{epoch}:%{version}-%{release}
1e074ee
Obsoletes: mysql < %{obsoleted_mysql_evr}
9c7c797
# mysql-cluster used to be built from this SRPM, but no more
9c7c797
Obsoletes: mysql-cluster < 5.1.44
5f858ee
 
5f858ee
# When rpm 4.9 is universal, this could be cleaned up:
5f858ee
%global __perl_requires %{SOURCE999}
5f858ee
%global __perllib_requires %{SOURCE999}
9c7c797
5cefe26
# By default, patch(1) creates backup files when chunks apply with offsets.
5cefe26
# Turn that off to ensure such files don't get included in RPMs (cf bz#884755).
9c7c797
%global _default_patch_flags --no-backup-if-mismatch
9c7c797
9c7c797
%description
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server.
9c7c797
It is a client/server implementation consisting of a server daemon (mysqld)
9c7c797
and many different client programs and libraries. The base package
9c7c797
contains the standard MariaDB/MySQL client programs and generic MySQL files.
9c7c797
9c7c797
%package libs
9c7c797
9c7c797
Summary: The shared libraries required for MariaDB/MySQL clients
9c7c797
Group: Applications/Databases
9c7c797
Requires: /sbin/ldconfig
8ae62ad
Provides: mysql-libs = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-libs%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Obsoletes: MySQL-libs < %{obsoleted_mysql_case_evr}
1e074ee
Obsoletes: mysql-libs < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description libs
9c7c797
The mariadb-libs package provides the essential shared libraries for any 
9c7c797
MariaDB/MySQL client program or interface. You will need to install this
9c7c797
package to use any other MariaDB package or any clients that need to connect
9c7c797
to a MariaDB/MySQL server. MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%package server
9c7c797
9c7c797
Summary: The MariaDB server and related files
9c7c797
Group: Applications/Databases
dff95bf
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
9c7c797
Requires: sh-utils
9c7c797
Requires(pre): /usr/sbin/useradd
9c7c797
# We require this to be present for %%{_prefix}/lib/tmpfiles.d
9c7c797
Requires: systemd-units
9c7c797
# Make sure it's there when scriptlets run, too
9c7c797
Requires(post): systemd-units
9c7c797
Requires(preun): systemd-units
9c7c797
Requires(postun): systemd-units
9c7c797
# This is actually needed for the %%triggerun script but Requires(triggerun)
9c7c797
# is not valid.  We can use %%post because this particular %%triggerun script
9c7c797
# should fire just after this package is installed.
9c7c797
Requires(post): systemd-sysv
9c7c797
# mysqlhotcopy needs DBI/DBD support
9c7c797
Requires: perl-DBI, perl-DBD-MySQL
8ae62ad
Provides: mysql-server = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-server%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Obsoletes: MySQL-server < %{obsoleted_mysql_case_evr}
dff95bf
Conflicts: community-mysql-server
1e074ee
Obsoletes: mysql-server < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description server
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server. It is a
9c7c797
client/server implementation consisting of a server daemon (mysqld)
9c7c797
and many different client programs and libraries. This package contains
9c7c797
the MariaDB server and some accompanying files and directories.
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%package devel
9c7c797
9c7c797
Summary: Files for development of MariaDB/MySQL applications
9c7c797
Group: Applications/Databases
dff95bf
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
9c7c797
Requires: openssl-devel%{?_isa}
8ae62ad
Provides: mysql-devel = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-devel%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Obsoletes: MySQL-devel < %{obsoleted_mysql_case_evr}
dff95bf
Conflicts: community-mysql-devel
1e074ee
Obsoletes: mysql-devel < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description devel
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server. This
9c7c797
package contains the libraries and header files that are needed for
9c7c797
developing MariaDB/MySQL client applications.
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%package embedded
9c7c797
9c7c797
Summary: MariaDB as an embeddable library
9c7c797
Group: Applications/Databases
9c7c797
Requires: /sbin/ldconfig
8ae62ad
Provides: mysql-embedded = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-embedded%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Obsoletes: MySQL-embedded < %{obsoleted_mysql_case_evr}
1e074ee
Obsoletes: mysql-embedded < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description embedded
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server. This
9c7c797
package contains a version of the MariaDB server that can be embedded
9c7c797
into a client application instead of running as a separate process.
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%package embedded-devel
9c7c797
9c7c797
Summary: Development files for MariaDB as an embeddable library
9c7c797
Group: Applications/Databases
dff95bf
Requires: %{name}-embedded%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-embedded-devel = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-embedded-devel%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Conflicts: community-mysql-embedded-devel
dff95bf
Obsoletes: MySQL-embedded-devel < %{obsoleted_mysql_case_evr}
1e074ee
Obsoletes: mysql-embedded-devel < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description embedded-devel
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server. This
9c7c797
package contains files needed for developing and testing with
9c7c797
the embedded version of the MariaDB server.
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%package bench
9c7c797
9c7c797
Summary: MariaDB benchmark scripts and data
9c7c797
Group: Applications/Databases
dff95bf
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-bench = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-bench%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Conflicts: community-mysql-bench
dff95bf
Obsoletes: MySQL-bench < %{obsoleted_mysql_case_evr}
1e074ee
Obsoletes: mysql-bench < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description bench
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server. This
9c7c797
package contains benchmark scripts and data for use when benchmarking
9c7c797
MariaDB.
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%package test
9c7c797
9c7c797
Summary: The test suite distributed with MariaD
9c7c797
Group: Applications/Databases
dff95bf
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Requires: %{name}-server%{?_isa} = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-test = %{epoch}:%{version}-%{release}
8ae62ad
Provides: mysql-test%{?_isa} = %{epoch}:%{version}-%{release}
dff95bf
Conflicts: community-mysql-test
dff95bf
Obsoletes: MySQL-test < %{obsoleted_mysql_case_evr}
1e074ee
Obsoletes: mysql-test < %{obsoleted_mysql_evr}
9c7c797
9c7c797
%description test
9c7c797
MariaDB is a multi-user, multi-threaded SQL database server. This
9c7c797
package contains the regression test suite distributed with
9c7c797
the MariaDB sources.
9c7c797
MariaDB is a community developed branch of MySQL.
9c7c797
9c7c797
%prep
9c7c797
%setup -q -n mariadb-%{version}
9c7c797
9c7c797
%patch1 -p1
9c7c797
%patch2 -p1
9c7c797
%patch3 -p1
9c7c797
%patch4 -p1
9c7c797
%patch5 -p1
9c7c797
%patch6 -p1
9c7c797
%patch7 -p1
9c7c797
%patch8 -p1
9c7c797
%patch9 -p1
9c7c797
%patch10 -p1
9c7c797
%patch11 -p1
9c7c797
%patch12 -p1
9c7c797
%patch13 -p1
e3d7534
%patch14 -p1
9c7c797
9c7c797
# workaround for upstream bug #56342
9c7c797
rm -f mysql-test/t/ssl_8k_key-master.opt
9c7c797
9c7c797
# upstream has fallen down badly on symbol versioning, do it ourselves
9c7c797
cp %{SOURCE8} libmysql/libmysql.version
9c7c797
9c7c797
# generate a list of tests that fail, but are not disabled by upstream
9c7c797
cat %{SOURCE14} > mysql-test/rh-skipped-tests.list
9c7c797
# disable some tests failing on ARM architectures
9c7c797
%ifarch %{arm}
9c7c797
cat %{SOURCE15} >> mysql-test/rh-skipped-tests.list
9c7c797
%endif
a4dbe8d
# disable some tests failing on ppc and s390
7ef2ba1
%ifarch ppc ppc64 ppc64p7 s390 s390x
a4dbe8d
echo "main.gis-precise : rhbz#906367" >> mysql-test/rh-skipped-tests.list
a4dbe8d
%endif
9c7c797
9c7c797
# install mysql_plugin
9c7c797
cp %{SOURCE16} man/
9c7c797
9c7c797
%build
9c7c797
9c7c797
# fail quickly and obviously if user tries to build as root
9c7c797
%if %runselftest
9c7c797
	if [ x"`id -u`" = x0 ]; then
9c7c797
		echo "mariadb's regression tests fail if run as root."
9c7c797
		echo "If you really need to build the RPM as root, use"
9c7c797
		echo "--define='runselftest 0' to skip the regression tests."
9c7c797
		exit 1
9c7c797
	fi
9c7c797
%endif
9c7c797
9c7c797
CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
9c7c797
# force PIC mode so that we can build libmysqld.so
9c7c797
CFLAGS="$CFLAGS -fPIC"
9c7c797
# gcc seems to have some bugs on sparc as of 4.4.1, back off optimization
9c7c797
# submitted as bz #529298
9c7c797
%ifarch sparc sparcv9 sparc64
9c7c797
CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O1|g" `
9c7c797
%endif
9c7c797
CXXFLAGS="$CFLAGS"
9c7c797
export CFLAGS CXXFLAGS
9c7c797
# building with PIE
9c7c797
LDFLAGS="$LDFLAGS -pie"
9c7c797
export LDFLAGS
9c7c797
9c7c797
# The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX
9c7c797
# so we can't use %%{_datadir} and so forth here.
9c7c797
9c7c797
cmake . -DBUILD_CONFIG=mysql_release \
9c7c797
	-DFEATURE_SET="community" \
9c7c797
	-DINSTALL_LAYOUT=RPM \
9c7c797
	-DCMAKE_INSTALL_PREFIX="%{_prefix}" \
9c7c797
	-DINSTALL_INCLUDEDIR=include/mysql \
9c7c797
	-DINSTALL_INFODIR=share/info \
9c7c797
	-DINSTALL_LIBDIR="%{_lib}/mysql" \
9c7c797
	-DINSTALL_MANDIR=share/man \
9c7c797
	-DINSTALL_MYSQLSHAREDIR=share/mysql \
9c7c797
	-DINSTALL_MYSQLTESTDIR=share/mysql-test \
9c7c797
	-DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
9c7c797
	-DINSTALL_SBINDIR=libexec \
9c7c797
	-DINSTALL_SCRIPTDIR=bin \
9c7c797
	-DINSTALL_SQLBENCHDIR=share \
9c7c797
	-DINSTALL_SUPPORTFILESDIR=share/mysql \
9c7c797
	-DMYSQL_DATADIR="/var/lib/mysql" \
9c7c797
	-DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \
9c7c797
	-DENABLED_LOCAL_INFILE=ON \
9c7c797
	-DENABLE_DTRACE=ON \
9c7c797
	-DWITH_EMBEDDED_SERVER=ON \
9c7c797
	-DWITH_READLINE=ON \
9c7c797
	-DWITH_SSL=system \
9c7c797
	-DWITH_ZLIB=system \
9c7c797
	-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
9c7c797
9c7c797
make %{?_smp_mflags} VERBOSE=1
9c7c797
9c7c797
# debuginfo extraction scripts fail to find source files in their real
9c7c797
# location -- satisfy them by copying these files into location, which
9c7c797
# is expected by scripts
9c7c797
for e in innobase xtradb ; do
9c7c797
  for f in pars0grm.c pars0grm.y pars0lex.l lexyy.c ; do
9c7c797
    cp "storage/$e/pars/$f" "storage/$e/$f"
9c7c797
  done
9c7c797
done
9c7c797
9c7c797
%check
9c7c797
%if %runselftest
9c7c797
  # hack to let 32- and 64-bit tests run concurrently on same build machine
9c7c797
  case `uname -m` in
7ef2ba1
    ppc64 | ppc64p7 | s390x | x86_64 | sparc64 )
9c7c797
      MTR_BUILD_THREAD=7
9c7c797
      ;;
9c7c797
    *)
9c7c797
      MTR_BUILD_THREAD=11
9c7c797
      ;;
9c7c797
  esac
9c7c797
  export MTR_BUILD_THREAD
9c7c797
9c7c797
  make test VERBOSE=1
9c7c797
9c7c797
  # The cmake build scripts don't provide any simple way to control the
9c7c797
  # options for mysql-test-run, so ignore the make target and just call it
9c7c797
  # manually.  Nonstandard options chosen are:
9c7c797
  # --force to continue tests after a failure
9c7c797
  # no retries please
9c7c797
  # test SSL with --ssl
9c7c797
  # skip tests that are listed in rh-skipped-tests.list
9c7c797
  # avoid redundant test runs with --binlog-format=mixed
9c7c797
  # increase timeouts to prevent unwanted failures during mass rebuilds
9c7c797
  (
9c7c797
    cd mysql-test
9c7c797
    perl ./mysql-test-run.pl --force --retry=0 --ssl \
9c7c797
	--skip-test-list=rh-skipped-tests.list \
9c7c797
	--suite-timeout=720 --testcase-timeout=30
9c7c797
    # cmake build scripts will install the var cruft if left alone :-(
9c7c797
    rm -rf var
9c7c797
  ) 
9c7c797
%endif
9c7c797
9c7c797
%install
9c7c797
make DESTDIR=$RPM_BUILD_ROOT install
9c7c797
9c7c797
# List the installed tree for RPM package maintenance purposes.
9c7c797
find $RPM_BUILD_ROOT -print | sed "s|^$RPM_BUILD_ROOT||" | sort > ROOTFILES
9c7c797
9c7c797
# multilib header hacks
9c7c797
# we only apply this to known Red Hat multilib arches, per bug #181335
9c7c797
case `uname -i` in
7ef2ba1
  i386 | x86_64 | ppc | ppc64 | ppc64p7 | s390 | s390x | sparc | sparc64 )
9c7c797
    mv $RPM_BUILD_ROOT/usr/include/mysql/my_config.h $RPM_BUILD_ROOT/usr/include/mysql/my_config_`uname -i`.h
9c7c797
    install -m 644 %{SOURCE5} $RPM_BUILD_ROOT/usr/include/mysql/
9c7c797
    ;;
9c7c797
  *)
9c7c797
    ;;
9c7c797
esac
9c7c797
9c7c797
# cmake generates some completely wacko references to -lprobes_mysql when
9c7c797
# building with dtrace support.  Haven't found where to shut that off,
9c7c797
# so resort to this blunt instrument.  While at it, let's not reference
9c7c797
# libmysqlclient_r anymore either.
9c7c797
sed -e 's/-lprobes_mysql//' -e 's/-lmysqlclient_r/-lmysqlclient/' \
9c7c797
	${RPM_BUILD_ROOT}%{_bindir}/mysql_config >mysql_config.tmp
9c7c797
cp -f mysql_config.tmp ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
9c7c797
chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
9c7c797
9c7c797
# install INFO_SRC, INFO_BIN into libdir (upstream thinks these are doc files,
9c7c797
# but that's pretty wacko --- see also mariadb-file-contents.patch)
9c7c797
install -m 644 Docs/INFO_SRC ${RPM_BUILD_ROOT}%{_libdir}/mysql/
9c7c797
install -m 644 Docs/INFO_BIN ${RPM_BUILD_ROOT}%{_libdir}/mysql/
9c7c797
9c7c797
mkdir -p $RPM_BUILD_ROOT/var/log
9c7c797
touch $RPM_BUILD_ROOT/var/log/mysqld.log
9c7c797
9c7c797
mkdir -p $RPM_BUILD_ROOT/var/run/mysqld
9c7c797
install -m 0755 -d $RPM_BUILD_ROOT/var/lib/mysql
9c7c797
9c7c797
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
9c7c797
install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/my.cnf
9c7c797
9c7c797
# install systemd unit files and scripts for handling server startup
9c7c797
mkdir -p ${RPM_BUILD_ROOT}%{_unitdir}
9c7c797
install -m 644 %{SOURCE11} ${RPM_BUILD_ROOT}%{_unitdir}/
9c7c797
install -m 755 %{SOURCE12} ${RPM_BUILD_ROOT}%{_libexecdir}/
9c7c797
install -m 755 %{SOURCE13} ${RPM_BUILD_ROOT}%{_libexecdir}/
9c7c797
9c7c797
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d
9c7c797
install -m 0644 %{SOURCE10} $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/%{name}.conf
9c7c797
9c7c797
# Fix funny permissions that cmake build scripts apply to config files
9c7c797
chmod 644 ${RPM_BUILD_ROOT}%{_datadir}/mysql/config.*.ini
9c7c797
9c7c797
# Fix scripts for multilib safety
9c7c797
mv ${RPM_BUILD_ROOT}%{_bindir}/mysql_config ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysql_config
9c7c797
ln -sf %{_libdir}/mysql/mysql_config ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
9c7c797
9c7c797
mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug
9c7c797
ln -sf %{_libdir}/mysql/mysqlbug ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
9c7c797
9c7c797
# Remove libmysqld.a
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
9c7c797
9c7c797
# libmysqlclient_r is no more.  Upstream tries to replace it with symlinks
9c7c797
# but that really doesn't work (wrong soname in particular).  We'll keep
9c7c797
# just the devel libmysqlclient_r.so link, so that rebuilding without any
9c7c797
# source change is enough to get rid of dependency on libmysqlclient_r.
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqlclient_r.so*
9c7c797
ln -s libmysqlclient.so ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqlclient_r.so
9c7c797
 
9c7c797
# mysql-test includes one executable that doesn't belong under /usr/share,
9c7c797
# so move it and provide a symlink
9c7c797
mv ${RPM_BUILD_ROOT}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process ${RPM_BUILD_ROOT}%{_bindir}
9c7c797
ln -s ../../../../../bin/my_safe_process ${RPM_BUILD_ROOT}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process
9c7c797
9c7c797
# should move this to /etc/ ?
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_bindir}/mysql_embedded
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/*.a
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/binary-configure
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/magic
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/ndb-config-2-node.ini
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql.server
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysqld_multi.server
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-stress-test.pl.1*
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mysql-test-run.pl.1*
9c7c797
9c7c797
# put logrotate script where it needs to be
9c7c797
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d
9c7c797
mv ${RPM_BUILD_ROOT}%{_datadir}/mysql/mysql-log-rotate $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/mysqld
9c7c797
chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/mysqld
9c7c797
9c7c797
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
9c7c797
echo "%{_libdir}/mysql" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
9c7c797
9c7c797
# copy additional docs into build tree so %%doc will find them
9c7c797
cp %{SOURCE6} README.mysql-docs
9c7c797
cp %{SOURCE7} README.mysql-license
9c7c797
9c7c797
# install the list of skipped tests to be available for user runs
9c7c797
install -m 0644 mysql-test/rh-skipped-tests.list ${RPM_BUILD_ROOT}%{_datadir}/mysql-test
9c7c797
9c7c797
# remove unneeded RHEL-4 SELinux stuff
9c7c797
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mysql/SELinux/
9c7c797
9c7c797
# remove SysV init script
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d/mysql
9c7c797
9c7c797
# remove duplicate logrotate script
9c7c797
rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/mysql
9c7c797
9c7c797
%pre server
9c7c797
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
9c7c797
/usr/sbin/useradd -M -N -g mysql -o -r -d /var/lib/mysql -s /bin/bash \
9c7c797
	-c "MariaDB Server" -u 27 mysql >/dev/null 2>&1 || :
9c7c797
9c7c797
%post libs -p /sbin/ldconfig
9c7c797
9c7c797
%post server
9c7c797
# As soon as Fedora 17, which doesn't know %%systemd_post macro,
9c7c797
# is retired, we can remove the check for availability of the macro
9c7c797
# and the alternative code.
9c7c797
# Let's keep it there now for anyone trying to build the package
9c7c797
# for F17 on his own.
9c7c797
%if 0%{?systemd_post:1}
9c7c797
%systemd_post mysqld.service
9c7c797
%else
9c7c797
if [ $1 = 1 ]; then
9c7c797
    # Initial installation
9c7c797
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
9c7c797
fi
9c7c797
%endif
9c7c797
/bin/chmod 0755 /var/lib/mysql
9c7c797
/bin/touch /var/log/mysqld.log
9c7c797
9c7c797
# Handle upgrading from SysV initscript to native systemd unit.
9c7c797
# We can tell if a SysV version of mysql was previously installed by
9c7c797
# checking to see if the initscript is present.
9c7c797
%triggerun server -- mysql-server
9c7c797
if [ -f /etc/rc.d/init.d/mysqld ]; then
9c7c797
    # Save the current service runlevel info
9c7c797
    # User must manually run systemd-sysv-convert --apply mysqld
9c7c797
    # to migrate them to systemd targets
9c7c797
    /usr/bin/systemd-sysv-convert --save mysqld >/dev/null 2>&1 || :
9c7c797
9c7c797
    # Run these because the SysV package being removed won't do them
9c7c797
    /sbin/chkconfig --del mysqld >/dev/null 2>&1 || :
9c7c797
    /bin/systemctl try-restart mysqld.service >/dev/null 2>&1 || :
9c7c797
fi
9c7c797
9c7c797
%post embedded -p /sbin/ldconfig
9c7c797
9c7c797
%preun server
9c7c797
%if 0%{?systemd_preun:1}
9c7c797
%systemd_preun mysqld.service
9c7c797
%else
9c7c797
if [ $1 = 0 ]; then
9c7c797
    # Package removal, not upgrade
9c7c797
    /bin/systemctl --no-reload disable mysqld.service >/dev/null 2>&1 || :
9c7c797
    /bin/systemctl stop mysqld.service >/dev/null 2>&1 || :
9c7c797
fi
9c7c797
%endif
9c7c797
9c7c797
%postun libs -p /sbin/ldconfig
9c7c797
9c7c797
%postun server
9c7c797
%if 0%{?systemd_postun_with_restart:1}
9c7c797
%systemd_postun_with_restart mysqld.service
9c7c797
%else
9c7c797
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
9c7c797
if [ $1 -ge 1 ]; then
9c7c797
    # Package upgrade, not uninstall
9c7c797
    /bin/systemctl try-restart mysqld.service >/dev/null 2>&1 || :
9c7c797
fi
9c7c797
%endif
9c7c797
9c7c797
%postun embedded -p /sbin/ldconfig
9c7c797
9c7c797
%files
9c7c797
%doc README COPYING COPYING.LESSER README.mysql-license
9c7c797
%doc storage/innobase/COPYING.Percona storage/innobase/COPYING.Google
9c7c797
%doc README.mysql-docs
9c7c797
9c7c797
%{_bindir}/msql2mysql
9c7c797
%{_bindir}/mysql
9c7c797
%{_bindir}/mysql_config
9c7c797
%{_bindir}/mysql_find_rows
9c7c797
%{_bindir}/mysql_waitpid
9c7c797
%{_bindir}/mysqlaccess
9c7c797
%{_bindir}/mysqladmin
9c7c797
%{_bindir}/mysqlbinlog
9c7c797
%{_bindir}/mysqlcheck
9c7c797
%{_bindir}/mysqldump
9c7c797
%{_bindir}/mysqlimport
9c7c797
%{_bindir}/mysqlshow
9c7c797
%{_bindir}/mysqlslap
9c7c797
%{_bindir}/my_print_defaults
9c7c797
%{_bindir}/mytop
9c7c797
%{_bindir}/aria_chk
9c7c797
%{_bindir}/aria_dump_log
9c7c797
%{_bindir}/aria_ftdump
9c7c797
%{_bindir}/aria_pack
9c7c797
%{_bindir}/aria_read_log
9c7c797
9c7c797
%{_mandir}/man1/mysql.1*
9c7c797
%{_mandir}/man1/mysql_config.1*
9c7c797
%{_mandir}/man1/mysql_find_rows.1*
9c7c797
%{_mandir}/man1/mysql_waitpid.1*
9c7c797
%{_mandir}/man1/mysqlaccess.1*
9c7c797
%{_mandir}/man1/mysqladmin.1*
9c7c797
%{_mandir}/man1/mysqldump.1*
9c7c797
%{_mandir}/man1/mysqlshow.1*
9c7c797
%{_mandir}/man1/mysqlslap.1*
9c7c797
%{_mandir}/man1/my_print_defaults.1*
9c7c797
%{_mandir}/man1/mysql_fix_privilege_tables.1*
9c7c797
%{_mandir}/man8/mysqlmanager.8*
9c7c797
9c7c797
%{_libdir}/mysql/mysql_config
9c7c797
%config(noreplace) %{_sysconfdir}/my.cnf.d/client.cnf
9c7c797
9c7c797
%files libs
9c7c797
%doc README COPYING COPYING.LESSER README.mysql-license
9c7c797
%doc storage/innobase/COPYING.Percona storage/innobase/COPYING.Google
9c7c797
# although the default my.cnf contains only server settings, we put it in the
9c7c797
# libs package because it can be used for client settings too.
9c7c797
%config(noreplace) %{_sysconfdir}/my.cnf
9c7c797
%config(noreplace) %{_sysconfdir}/my.cnf.d/mysql-clients.cnf
30d1fbf
%dir %{_sysconfdir}/my.cnf.d
9c7c797
%dir %{_libdir}/mysql
9c7c797
%{_libdir}/mysql/libmysqlclient.so.*
9c7c797
%{_sysconfdir}/ld.so.conf.d/*
9c7c797
9c7c797
%dir %{_datadir}/mysql
9c7c797
%{_datadir}/mysql/english
9c7c797
%lang(cs) %{_datadir}/mysql/czech
9c7c797
%lang(da) %{_datadir}/mysql/danish
9c7c797
%lang(nl) %{_datadir}/mysql/dutch
9c7c797
%lang(et) %{_datadir}/mysql/estonian
9c7c797
%lang(fr) %{_datadir}/mysql/french
9c7c797
%lang(de) %{_datadir}/mysql/german
9c7c797
%lang(el) %{_datadir}/mysql/greek
9c7c797
%lang(hu) %{_datadir}/mysql/hungarian
9c7c797
%lang(it) %{_datadir}/mysql/italian
9c7c797
%lang(ja) %{_datadir}/mysql/japanese
9c7c797
%lang(ko) %{_datadir}/mysql/korean
9c7c797
%lang(no) %{_datadir}/mysql/norwegian
9c7c797
%lang(no) %{_datadir}/mysql/norwegian-ny
9c7c797
%lang(pl) %{_datadir}/mysql/polish
9c7c797
%lang(pt) %{_datadir}/mysql/portuguese
9c7c797
%lang(ro) %{_datadir}/mysql/romanian
9c7c797
%lang(ru) %{_datadir}/mysql/russian
9c7c797
%lang(sr) %{_datadir}/mysql/serbian
9c7c797
%lang(sk) %{_datadir}/mysql/slovak
9c7c797
%lang(es) %{_datadir}/mysql/spanish
9c7c797
%lang(sv) %{_datadir}/mysql/swedish
9c7c797
%lang(uk) %{_datadir}/mysql/ukrainian
9c7c797
%{_datadir}/mysql/charsets
9c7c797
9c7c797
%files server
9c7c797
%doc support-files/*.cnf
9c7c797
9c7c797
%{_bindir}/myisamchk
9c7c797
%{_bindir}/myisam_ftdump
9c7c797
%{_bindir}/myisamlog
9c7c797
%{_bindir}/myisampack
9c7c797
%{_bindir}/mysql_convert_table_format
9c7c797
%{_bindir}/mysql_fix_extensions
9c7c797
%{_bindir}/mysql_install_db
9c7c797
%{_bindir}/mysql_plugin
9c7c797
%{_bindir}/mysql_secure_installation
9c7c797
%{_bindir}/mysql_setpermission
9c7c797
%{_bindir}/mysql_tzinfo_to_sql
9c7c797
%{_bindir}/mysql_upgrade
9c7c797
%{_bindir}/mysql_zap
9c7c797
%{_bindir}/mysqlbug
9c7c797
%{_bindir}/mysqldumpslow
9c7c797
%{_bindir}/mysqld_multi
9c7c797
%{_bindir}/mysqld_safe
9c7c797
%{_bindir}/mysqlhotcopy
9c7c797
%{_bindir}/mysqltest
9c7c797
%{_bindir}/innochecksum
9c7c797
%{_bindir}/perror
9c7c797
%{_bindir}/replace
9c7c797
%{_bindir}/resolve_stack_dump
9c7c797
%{_bindir}/resolveip
9c7c797
9c7c797
%config(noreplace) %{_sysconfdir}/my.cnf.d/server.cnf
9c7c797
9c7c797
%{_libexecdir}/mysqld
9c7c797
9c7c797
%{_libdir}/mysql/INFO_SRC
9c7c797
%{_libdir}/mysql/INFO_BIN
9c7c797
9c7c797
%{_libdir}/mysql/mysqlbug
9c7c797
9c7c797
%{_libdir}/mysql/plugin
9c7c797
9c7c797
%{_mandir}/man1/msql2mysql.1*
9c7c797
%{_mandir}/man1/myisamchk.1*
9c7c797
%{_mandir}/man1/myisamlog.1*
9c7c797
%{_mandir}/man1/myisampack.1*
9c7c797
%{_mandir}/man1/mysql_convert_table_format.1*
9c7c797
%{_mandir}/man1/myisam_ftdump.1*
9c7c797
%{_mandir}/man1/mysql.server.1*
9c7c797
%{_mandir}/man1/mysql_fix_extensions.1*
9c7c797
%{_mandir}/man1/mysql_install_db.1*
9c7c797
%{_mandir}/man1/mysql_plugin.1*
9c7c797
%{_mandir}/man1/mysql_secure_installation.1*
9c7c797
%{_mandir}/man1/mysql_upgrade.1*
9c7c797
%{_mandir}/man1/mysql_zap.1*
9c7c797
%{_mandir}/man1/mysqlbug.1*
9c7c797
%{_mandir}/man1/mysqldumpslow.1*
9c7c797
%{_mandir}/man1/mysqlbinlog.1*
9c7c797
%{_mandir}/man1/mysqlcheck.1*
9c7c797
%{_mandir}/man1/mysqld_multi.1*
9c7c797
%{_mandir}/man1/mysqld_safe.1*
9c7c797
%{_mandir}/man1/mysqlhotcopy.1*
9c7c797
%{_mandir}/man1/mysqlimport.1*
9c7c797
%{_mandir}/man1/mysqlman.1*
9c7c797
%{_mandir}/man1/mysql_setpermission.1*
9c7c797
%{_mandir}/man1/mysqltest.1*
9c7c797
%{_mandir}/man1/innochecksum.1*
9c7c797
%{_mandir}/man1/perror.1*
9c7c797
%{_mandir}/man1/replace.1*
9c7c797
%{_mandir}/man1/resolve_stack_dump.1*
9c7c797
%{_mandir}/man1/resolveip.1*
9c7c797
%{_mandir}/man1/mysql_tzinfo_to_sql.1*
9c7c797
%{_mandir}/man8/mysqld.8*
9c7c797
9c7c797
%{_datadir}/mysql/errmsg-utf8.txt
9c7c797
%{_datadir}/mysql/fill_help_tables.sql
9c7c797
%{_datadir}/mysql/mysql_system_tables.sql
9c7c797
%{_datadir}/mysql/mysql_system_tables_data.sql
9c7c797
%{_datadir}/mysql/mysql_test_data_timezone.sql
5cefe26
%{_datadir}/mysql/mysql_performance_tables.sql
9c7c797
%{_datadir}/mysql/my-*.cnf
9c7c797
%{_datadir}/mysql/config.*.ini
9c7c797
9c7c797
%{_unitdir}/mysqld.service
9c7c797
%{_libexecdir}/mysqld-prepare-db-dir
9c7c797
%{_libexecdir}/mysqld-wait-ready
9c7c797
9c7c797
%{_prefix}/lib/tmpfiles.d/%{name}.conf
9c7c797
%attr(0755,mysql,mysql) %dir /var/run/mysqld
9c7c797
%attr(0755,mysql,mysql) %dir /var/lib/mysql
9c7c797
%attr(0640,mysql,mysql) %config(noreplace) %verify(not md5 size mtime) /var/log/mysqld.log
9c7c797
%config(noreplace) %{_sysconfdir}/logrotate.d/mysqld
9c7c797
9c7c797
%files devel
9c7c797
/usr/include/mysql
9c7c797
/usr/share/aclocal/mysql.m4
9c7c797
%{_libdir}/mysql/libmysqlclient.so
9c7c797
%{_libdir}/mysql/libmysqlclient_r.so
9c7c797
9c7c797
%files embedded
9c7c797
%doc README COPYING COPYING.LESSER README.mysql-license
9c7c797
%doc storage/innobase/COPYING.Percona storage/innobase/COPYING.Google
9c7c797
%{_libdir}/mysql/libmysqld.so.*
9c7c797
9c7c797
%files embedded-devel
9c7c797
%{_libdir}/mysql/libmysqld.so
9c7c797
%{_bindir}/mysql_client_test_embedded
9c7c797
%{_bindir}/mysqltest_embedded
9c7c797
%{_mandir}/man1/mysql_client_test_embedded.1*
9c7c797
%{_mandir}/man1/mysqltest_embedded.1*
9c7c797
9c7c797
%files bench
9c7c797
%{_datadir}/sql-bench
9c7c797
9c7c797
%files test
9c7c797
%{_bindir}/mysql_client_test
9c7c797
%{_bindir}/my_safe_process
9c7c797
%attr(-,mysql,mysql) %{_datadir}/mysql-test
9c7c797
9c7c797
%{_mandir}/man1/mysql_client_test.1*
9c7c797
9c7c797
%changelog
cd9eeb6
* Fri Mar 22 2013 Honza Horak <hhorak@redhat.com> 5.5.30-1
cd9eeb6
- Rebase to 5.5.30
cd9eeb6
  https://kb.askmonty.org/en/mariadb-5530-changelog/
cd9eeb6
dff95bf
* Fri Mar 22 2013 Honza Horak <hhorak@redhat.com> 1:5.5.29-11
dff95bf
- Obsolete MySQL since it is now renamed to community-mysql
dff95bf
- Remove real- virtual names
dff95bf
8ae62ad
* Thu Mar 21 2013 Honza Horak <hhorak@redhat.com> 1:5.5.29-10
8ae62ad
- Adding epoch to have higher priority than other mysql implementations
8ae62ad
  when comes to provider comparison
8ae62ad
91bd546
* Wed Mar 13 2013 Honza Horak <hhorak@redhat.com> 5.5.29-9
91bd546
- Let mariadb-embedded-devel conflict with MySQL-embedded-devel
061f172
- Adjust mariadb-sortbuffer.patch to correspond with upstream patch
91bd546
e9b1460
* Mon Mar  4 2013 Honza Horak <hhorak@redhat.com> 5.5.29-8
e9b1460
- Mask expected warnings about setrlimit in test suite
e9b1460
50cf48a
* Thu Feb 28 2013 Honza Horak <hhorak@redhat.com> 5.5.29-7
50cf48a
- Use configured prefix value instead of guessing basedir
50cf48a
  in mysql_config
50cf48a
Resolves: #916189
b8f9351
- Export dynamic columns and non-blocking API functions documented
b8f9351
  by upstream
50cf48a
0cb8294
* Wed Feb 27 2013 Honza Horak <hhorak@redhat.com> 5.5.29-6
0cb8294
- Fix sort_buffer_length option type
0cb8294
dd2088f
* Wed Feb 13 2013 Honza Horak <hhorak@redhat.com> 5.5.29-5
7ef2ba1
- Suppress warnings in tests and skip tests also on ppc64p7
dd2088f
e6d746a
* Tue Feb 12 2013 Honza Horak <hhorak@redhat.com> 5.5.29-4
e6d746a
- Suppress warning in tests on ppc
e6d746a
- Enable fixed index_merge_myisam test case
e6d746a
de551aa
* Thu Feb 07 2013 Honza Horak <hhorak@redhat.com> 5.5.29-3
de551aa
- Packages need to provide also %%_isa version of mysql package
cc31a55
- Provide own symbols with real- prefix to distinguish from mysql
cc31a55
  unambiguously
e3d7534
- Fix format for buffer size in error messages (MDEV-4156)
a4dbe8d
- Disable some tests that fail on ppc and s390
473e3e8
- Conflict only with real-mysql, otherwise mariadb conflicts with ourself
de551aa
30d1fbf
* Tue Feb 05 2013 Honza Horak <hhorak@redhat.com> 5.5.29-2
30d1fbf
- Let mariadb-libs to own /etc/my.cnf.d
30d1fbf
5cefe26
* Thu Jan 31 2013 Honza Horak <hhorak@redhat.com> 5.5.29-1
5cefe26
- Rebase to 5.5.29
5cefe26
  https://kb.askmonty.org/en/mariadb-5529-changelog/
5cefe26
- Fix inaccurate default for socket location in mysqld-wait-ready
5cefe26
  Resolves: #890535
5cefe26
1e074ee
* Thu Jan 31 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-8
1e074ee
- Enable obsoleting mysql
1e074ee
5f858ee
* Wed Jan 30 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-7
5f858ee
- Adding necessary hacks for perl dependency checking, rpm is still
5f858ee
  not wise enough
5ebb875
- Namespace sanity re-added for symbol default_charset_info
5f858ee
96467d4
* Mon Jan 28 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-6
96467d4
- Removed %%{_isa} from provides/obsoletes, which doesn't allow
96467d4
  proper obsoleting
6595c88
- Do not obsolete mysql at the time of testing
96467d4
9c7c797
* Thu Jan 10 2013 Honza Horak <hhorak@redhat.com> 5.5.28a-5
9c7c797
- Added licenses LGPLv2 and BSD
9c7c797
- Removed wrong usage of %%{epoch}
9c7c797
- Test-suite is run in %%check
9c7c797
- Removed perl dependency checking adjustment, rpm seems to be smart enough
9c7c797
- Other minor spec file fixes
9c7c797
9c7c797
* Tue Dec 18 2012 Honza Horak <hhorak@redhat.com> 5.5.28a-4
9c7c797
- Packaging of MariaDB based on MySQL package
9c7c797