forked from pool/mariadb
e99c0e19d4
- based on MySQL 5.1.50 maintenance update - changelog: http://kb.askmonty.org/v/mariadb-5150-changelog - release notes: http://kb.askmonty.org/v/mariadb-5150-release-notes OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=25
960 lines
37 KiB
RPMSpec
960 lines
37 KiB
RPMSpec
#
|
|
# spec file for package mariadb (Version 5.1.44)
|
|
#
|
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
# norootforbuild
|
|
|
|
# Few definitions which will alter build
|
|
%define prefered 0
|
|
%define cluster 0
|
|
%define srv_vers 5.1.50
|
|
|
|
%if %{?rel:0}%{!?rel:1}
|
|
%define rel 1
|
|
%endif
|
|
#Distribution: %dist
|
|
#Packager: %packager
|
|
#Vendor: %vendor
|
|
|
|
Name: mariadb
|
|
Summary: A True Multiuser, Multithreaded SQL Database Server
|
|
Version: 5.1.50
|
|
Release: 0
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Group: Productivity/Databases/Servers
|
|
Url: http://www.mysql.com
|
|
# http://askmonty.org/downloads/r/http://ftp.rediris.es/mirror/MariaDB/mariadb-5.1.47/kvm-tarbake-jaunty-x86/%{name}-%{version}.tar.gz
|
|
Source: mariadb-%{version}.tar.bz2
|
|
Source2: baselibs.conf
|
|
Source3: README.debug
|
|
Source4: suse-test-run
|
|
Source5: mysql.SuSEfirewall2
|
|
Source7: rc.mysql-multi
|
|
Source8: README.SuSE
|
|
# Polishing default config file
|
|
Patch2: mysql-cnf.patch
|
|
Patch3: mysql-multi-configuration.patch
|
|
# Adds option to set group to something else similarly to the user settings
|
|
Patch4: mysql-group.patch
|
|
# Warning about initscript in mysql_install_db disabled, since the SUSE RPM comes with an init script installed
|
|
Patch5: mysql-install_db-quiet.patch
|
|
# Checks flush-logs exit status in support-files/mysql-log-rotate.sh
|
|
Patch7: mysql-logrotate.patch
|
|
# Adds reload funcionality to mysqld_multi.sh perl script and adds --datadir support
|
|
Patch8: mysqld_multi.patch
|
|
# Disables failure on one test during update and improves error message during update a little bit
|
|
Patch13: mysql_upgrade-exit-status.patch
|
|
# Changes pkglib_LIBRARIES into lib_LIBRARIES in libmysql
|
|
Patch18: libmysql-no-pkglibdir.patch
|
|
# Adds option -avoid-version to LDFLAGS for plugins blackhole, archive and example
|
|
Patch19: mysql-plugins-avoid-version.patch
|
|
# This patch loads plugins by default if there is no settings regarding plugins.
|
|
Patch23: mysql-enable-plugins.patch
|
|
# PATCH-FIX-UPSTREAM mysql-5.1.31-shebang.patch [] mhrusecky@suse.cz -- adds mising shebangs
|
|
Patch25: mysql-5.1.31-shebang.patch
|
|
# PATCH-FIX-UPSTREAM mysql-5.1.35-test-variables-big.patch [upstream bug #38811] -- different way to test whether server crashed
|
|
# http://bugs.mysql.com/bug.php?id=38811
|
|
Patch27: mysql-5.1.35-test-variables-big.patch
|
|
# PATCH-FIX-SUSE mysql-5.1.32-myslq-test.patch mhrusecky@suse.cz -- installs tests into datadir not into prefix
|
|
Patch28: mysql-5.1.42-myslq-test.patch
|
|
# PATCH-FIX-UPSTREAM mysql-5.1.33-scripts-paths.patch [ upstream#45616 ] mhrusecky@suse.cz -- fixes build of scripts when compilation occurs somewhere else
|
|
# http://bugs.mysql.com/bug.php?id=45616
|
|
Patch29: mysql-5.1.33-scripts-paths.patch
|
|
# PATCH-FIX-SUSE mysql-5.1.33-safe-process-in-bin.patch [] mhrusecky@suse.cz -- this will let us move one binary to /usr/bin instead of /usr/share/mysql-test/...
|
|
Patch30: mysql-5.1.45-safe-process-in-bin.patch
|
|
# PATCH-FIX-SUSE mysql-5.1.33-ssl-lib64-macro.patch [] mhrusecky@suse.cz -- search for ssl libraries also in lib64
|
|
Patch31: mysql-5.1.33-ssl-lib64-macro.patch
|
|
# PATCH-FIX-SUSE mysql-5.1.35-test-utf8.patch [] mhrusecky@suse.cz -- we use utf-8 by default which produces different output with few tests
|
|
Patch35: mysql-5.1.35-test-utf8.patch
|
|
# PATCH-FIX-UPSTREAM mysql-5.1.36-bmove512.patch [ upstream#19975 ] mhrusecky@suse.cz -- using standard memcpy instead of bmove512 as it should be beeter
|
|
# http://bugs.mysql.com/bug.php?id=19975
|
|
Patch37: mysql-5.1.36-bmove512.patch
|
|
# PATCH-FIX-UPSTREAM mysql-5.1.36-hotcopy.patch [ upstream#43594, bnc#525325 ] mhrusecky@suse.cz -- hotcopy ignores log tables
|
|
# http://bugs.mysql.com/bug.php?id=43594
|
|
Patch38: mysql-5.1.36-hotcopy.patch
|
|
# PATCH-FIX-UPSTREAM mysql_config.patch [ upstream#39175, bnc#420313 ] mhrusecky@suse.cz -- Fix linking options.
|
|
Patch39: mysql_config.patch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if 0%{?suse_version}
|
|
PreReq: pwdutils
|
|
%else
|
|
PreReq: /usr/sbin/useradd /usr/sbin/usermod /usr/sbin/groupadd
|
|
%endif
|
|
PreReq: coreutils sed grep
|
|
%if 0%{?suse_version}
|
|
PreReq: %install_info_prereq %insserv_prereq
|
|
%endif
|
|
BuildRequires: gcc-c++ ncurses-devel openssl-devel procps readline-devel zlib-devel
|
|
%if 0%{?suse_version}
|
|
BuildRequires: pwdutils tcpd-devel
|
|
%endif
|
|
%if 0%{?suse_version} > 1030 || 0%{?fedora_version} > 8
|
|
BuildRequires: fdupes
|
|
%endif
|
|
%if 0%{?fedora_version} > 11
|
|
BuildRequires: sqlite
|
|
%endif
|
|
%if 0%{?suse_version} > 1030
|
|
Recommends: logrotate
|
|
%else
|
|
Requires: logrotate
|
|
%endif
|
|
# required by rcmysql
|
|
Requires: %{name}-client perl-base
|
|
Provides: mysql-Max = %{srv_vers}
|
|
Provides: mysql = %{srv_vers}
|
|
Conflicts: otherproviders(mysql)
|
|
|
|
%description
|
|
MariaDB is a backward compatible, drop-in replacement branch of the MySQL
|
|
Database Server. It includes all major open source storage engines, including
|
|
the Maria storage engine.
|
|
|
|
This package only contains the server-side programs.
|
|
|
|
%if ! 0%{?prefered} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%package -n libmariadbclient16
|
|
#-------------------------------------------------------------------------------
|
|
Summary: MariaDB Shared Libraries
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Group: Development/Libraries/Other
|
|
|
|
%description -n libmariadbclient16
|
|
This package contains the shared libraries (.so) which certain
|
|
languages and applications need to dynamically load and use MariaDB.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package -n libmariadbclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
Summary: MariaDB Shared Libraries
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Group: Development/Libraries/Other
|
|
|
|
%description -n libmariadbclient_r16
|
|
This package contains the shared libraries (.so) which certain
|
|
languages and applications need to dynamically load and use MariaDB.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
%endif
|
|
%if 0%{?prefered} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%package -n libmysqlclient-devel
|
|
#-------------------------------------------------------------------------------
|
|
# mysql-devel was last used in openSUSE 10.2
|
|
Provides: mysql-devel = %srv_vers-%release
|
|
Requires: libmysqlclient16 = %srv_vers libmysqlclient_r16 = %srv_vers glibc-devel zlib-devel openssl-devel
|
|
Summary: MariaDB Development Header Files and Libraries
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%description -n libmysqlclient-devel
|
|
This package contains the development header files and libraries
|
|
necessary to develop MariaDB client applications.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package -n libmysqld0
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB embedded server development files
|
|
# the headers files are the shared
|
|
Requires: libmysqlclient-devel = %srv_vers
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%description -n libmysqld0
|
|
This package contains the development header files and libraries
|
|
for developing application that embed the MariaDB server
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package -n libmysqld-devel
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB embedded server development files
|
|
# the headers files are the shared
|
|
Requires: libmysqlclient-devel = %srv_vers
|
|
Requires: libmysqld0 = %srv_vers
|
|
Group: Development/Libraries/C and C++
|
|
|
|
%description -n libmysqld-devel
|
|
This package contains the development header files and libraries
|
|
for developing application that embed the MariaDB server
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package -n libmysqlclient16
|
|
#-------------------------------------------------------------------------------
|
|
Summary: MariaDB Shared Libraries
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Group: Development/Libraries/Other
|
|
|
|
%description -n libmysqlclient16
|
|
This package contains the shared libraries (.so) which certain
|
|
languages and applications need to dynamically load and use MariaDB.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package -n libmysqlclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
Summary: MariaDB Shared Libraries
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Group: Development/Libraries/Other
|
|
|
|
%description -n libmysqlclient_r16
|
|
This package contains the shared libraries (.so) which certain
|
|
languages and applications need to dynamically load and use MariaDB.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
%endif
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%package client
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB Client
|
|
Group: Productivity/Databases/Clients
|
|
Provides: mysql-client = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-client)
|
|
|
|
%description client
|
|
This package contains the standard MariaDB clients.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package bench
|
|
#-------------------------------------------------------------------------------
|
|
Requires: %{name}-client perl-DBD-mysql
|
|
License: LGPLv2.1
|
|
Summary: MariaDB - Benchmarks
|
|
Group: Productivity/Databases/Tools
|
|
Provides: mysql-bench = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-bench)
|
|
|
|
%description bench
|
|
This package contains MariaDB benchmark scripts and data.
|
|
|
|
To run these database benchmarks, start the script "run-all-tests" in
|
|
the directory /usr/share/sql-bench after starting MariaDB.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package debug
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB server with debug options turned on
|
|
Group: Productivity/Databases/Servers
|
|
Requires: %{name} = %{srv_vers}
|
|
Provides: mysql-debug = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-debug)
|
|
|
|
%description debug
|
|
A version of the mysql server that has some debug code turned on.
|
|
It should be only used to track down problems with the standard
|
|
servers. Note that merely installing this package won't replace the
|
|
standard server. Read /usr/share/doc/packages/mysql/README.debug for
|
|
information on how to use the debug server.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package test
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB testsuite
|
|
Group: Productivity/Databases/Servers
|
|
Requires: %{name} = %{srv_vers}
|
|
Requires: %{name}-client = %{srv_vers}
|
|
Requires: perl-DBD-mysql
|
|
Requires: %{name}-tools = %{srv_vers}
|
|
Requires: %{name}-bench = %{srv_vers}
|
|
Provides: mysql-test = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-test)
|
|
|
|
%description test
|
|
This package contains the MariaDB test scripts and data.
|
|
|
|
To run the testsuite, run /usr/share/mysql-test/suse-test-run.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package tools
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB tools
|
|
Group: Productivity/Databases/Servers
|
|
Requires: perl-DBD-mysql
|
|
# make sure this package is installed when updating from 10.2 and older
|
|
Provides: mysql:/usr/bin/mysqlhotcopy mysql-client:/usr/bin/perror
|
|
Provides: mysql-tools = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-tools)
|
|
|
|
%description tools
|
|
A set of scripts for administering a MariaDB server or developing
|
|
applications with MariaDB.
|
|
|
|
Authors:
|
|
--------
|
|
Michael Widenius <monty@mysql.com>
|
|
David Axmark <davida@mysql.com>
|
|
|
|
%if 0%{?cluster} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%package ndb-storage
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB - ndbcluster storage engine
|
|
Group: Productivity/Databases/Servers
|
|
Provides: mysql-ndb-storage = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-ndb-storage)
|
|
|
|
%description ndb-storage
|
|
This package contains the ndbcluster storage engine.
|
|
It is necessary to have this package installed on all
|
|
computers that should store ndbcluster table data.
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package ndb-management
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB - ndbcluster storage engine management
|
|
Group: Productivity/Databases/Servers
|
|
Provides: mysql-ndb-management = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-ndb-management)
|
|
|
|
%description ndb-management
|
|
This package contains ndbcluster storage engine management.
|
|
It is necessary to have this package installed on at least
|
|
one computer in the cluster.
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package ndb-tools
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB - ndbcluster storage engine basic tools
|
|
Group: Productivity/Databases/Servers
|
|
Provides: mysql-ndb-tools = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-ndb-tools)
|
|
|
|
%description ndb-tools
|
|
This package contains ndbcluster storage engine basic tools.
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
%package ndb-extra
|
|
#-------------------------------------------------------------------------------
|
|
License: GPLv2 ; with additional permissions: EXCEPTIONS-CLIENT
|
|
Summary: MariaDB - ndbcluster storage engine extra tools
|
|
Group: Productivity/Databases/Servers
|
|
Provides: mysql-ndb-extra = %{srv_vers}
|
|
Conflicts: otherproviders(mysql-ndb-extra)
|
|
|
|
%description ndb-extra
|
|
This package contains some extra ndbcluster storage engine tools for the
|
|
advanced user. They should be used with caution.
|
|
|
|
%endif
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%prep
|
|
#-------------------------------------------------------------------------------
|
|
%setup -q -n mariadb-%{version}
|
|
cp %_sourcedir/README.SuSE .
|
|
cp %_sourcedir/suse-test-run .
|
|
%patch2
|
|
%patch3
|
|
%patch4
|
|
%patch5
|
|
%patch7
|
|
%patch8
|
|
%patch13
|
|
%patch18
|
|
%patch19
|
|
%patch23
|
|
%patch25 -p1
|
|
%patch27
|
|
%patch28
|
|
%patch29
|
|
%patch30
|
|
%patch31
|
|
%patch35
|
|
%patch37
|
|
%patch38
|
|
%patch39
|
|
# remove unneeded manpages ('make install' basically installs everything under
|
|
# man/*)
|
|
rm -f man/mysqlman.1 # dummy fallback manpage
|
|
rm -f man/mysql.server.1 # init script, not installed in our rpm
|
|
rm -f man/make_win_*.1 # windows build scripts
|
|
rm -f man/comp_err.1 # built-time utility
|
|
# 5.1 Carrier Grade Edition only / still under development as of 5.1.22
|
|
rm -f man/ndbd_redo_log_reader.1
|
|
# breaks VPATH builds when in sourcedir, is generated in the builddirs
|
|
rm -f sql/sql_builtin.cc
|
|
sed -i 's|@localstatedir@|/var/log|' support-files/mysql-log-rotate.sh
|
|
%if ! 0%{?prefered} > 0
|
|
for i in `grep -Rl mysqlclient .`; do
|
|
sed -i 's|mysqlclient|mariadbclient|g' $i
|
|
done
|
|
%endif
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%build
|
|
#-------------------------------------------------------------------------------
|
|
%if 0%{?suse_version} < 1120 && 0%{?suse_version} > 0
|
|
%define socketpath /var/lib/mysql
|
|
%else
|
|
%define socketpath /var/run/mysql
|
|
%endif
|
|
autoreconf -f -i
|
|
export CFLAGS="$RPM_OPT_FLAGS -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -DFORCE_INIT_OF_VARS -fno-strict-aliasing"
|
|
export CXXFLAGS="$CFLAGS -fno-exceptions -fno-rtti"
|
|
# Make the compile a function, since we do multiple builds
|
|
BuildMySQL() {
|
|
# The --enable-assembler simply does nothing on systems that do not
|
|
# support assembler speedups.
|
|
suffix="$1"; shift
|
|
mkdir _build$suffix
|
|
pushd _build$suffix
|
|
../configure \
|
|
--enable-assembler \
|
|
--without-readline \
|
|
--infodir=%{_infodir} \
|
|
--libdir=%{_libdir} \
|
|
--libexecdir=/usr/sbin \
|
|
--localstatedir=/var/lib/mysql \
|
|
--mandir=%{_mandir} \
|
|
--prefix=%{_prefix} \
|
|
--sysconfdir=/etc \
|
|
--with-mysqld-user=mysql \
|
|
--with-mysqld-group=mysql \
|
|
--without-debug \
|
|
--datadir=/usr/share \
|
|
--includedir=/usr/include \
|
|
--with-charset=utf8 \
|
|
--with-collation=utf8_unicode_ci \
|
|
--with-extra-charsets=all \
|
|
--with-unix-socket-path=%{socketpath}/mysql.sock \
|
|
--enable-thread-safe-client \
|
|
--with-comment="SUSE MariaDB RPM" \
|
|
--with-libwrap \
|
|
--with-server-suffix=$suffix \
|
|
%ifarch s390 s390x
|
|
--with-atomic-ops=rwlocks \
|
|
%else
|
|
--with-atomic-ops=smp \
|
|
%endif
|
|
--with-ssl=/usr \
|
|
--with-plugins=partition,csv,heap,myisam,ndbcluster \
|
|
HOSTNAME="/bin/hostname -f" \
|
|
"$@"
|
|
# Add this for MyISAM RAID support:
|
|
# --with-raid
|
|
# benchdir does not fit in above model. Fix when we make a separate package
|
|
make %{?jobs:-j%jobs}
|
|
nm --numeric-sort sql/mysqld > sql/mysqld.sym
|
|
# needed for make check, which is not VPATH aware
|
|
# copy the files unconditionally so that manual 'make check' after
|
|
# the build works, too
|
|
cp -a ../mysql-test/* mysql-test/
|
|
cp -a ../sql/share/{english,charsets} sql/share/
|
|
cp -a ../scripts/*.sql scripts/
|
|
%if %{?_with_testsuite:1}0
|
|
pushd mysql-test; perl ./mysql-test-run.pl --force; popd
|
|
%endif
|
|
popd
|
|
}
|
|
# Build the client, extra tools, libraries
|
|
BuildMySQL "" --with-embedded-server
|
|
# build mysqld-debug
|
|
BuildMySQL "-debug" --with-debug --without-embedded-server
|
|
|
|
%if 0%{?prefered} > 0
|
|
mkdir -p _buildlibmysqld/tmp
|
|
cd _buildlibmysqld/tmp
|
|
ar -x ../../_build/libmysqld/libmysqld.a
|
|
gcc $CFLAGS $LDFLAGS -shared -Wl,-soname,libmysqld.so.0 -o ../libmysqld.so.0.0.1 \
|
|
*.o \
|
|
-lpthread -lcrypt -lnsl -lssl -lcrypto -lz -lrt -lstdc++ -lm -lc
|
|
cd ..
|
|
rm -rf tmp
|
|
cd ..
|
|
%endif
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%install
|
|
#-------------------------------------------------------------------------------
|
|
# install the debug server first, so that we don't overwrite the standard
|
|
# /usr/sbin/mysqld
|
|
mkdir -p %buildroot%_libdir/mysql
|
|
make -C _build-debug/sql install DESTDIR=%buildroot
|
|
mv %buildroot/usr/sbin/mysqld %buildroot/usr/sbin/mysqld-debug
|
|
install -m 644 _build-debug/sql/mysqld.sym %buildroot%_libdir/mysql/mysqld-debug.sym
|
|
# install the client, extra tools, libraries and the standard server
|
|
make -C _build install DESTDIR=%buildroot benchdir_root=/usr/share/
|
|
install -m 644 _build/sql/mysqld.sym %buildroot%_libdir/mysql/mysqld.sym
|
|
# remove most static libs (FIXME: don't build them at all...)
|
|
rm -f %buildroot%_libdir/libmysqlclient*a
|
|
rm -f %buildroot%_libdir/mysql/*.a %buildroot%_libdir/mysql/*.la
|
|
rm -f %buildroot%_libdir/mysql/plugin/*a
|
|
# XXX: package these? The ndb tools are linked statically atm
|
|
rm -f %buildroot%_libdir/mysql/libndbclient.*
|
|
rm -f %{buildroot}/usr/share/mysql-test/mysql-test-run
|
|
rm -f %{buildroot}/usr/share/mysql-test/mtr
|
|
ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mtr
|
|
ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mysql-test-run
|
|
mv %{buildroot}/usr/share/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir}
|
|
# generate filelist for binaries and their manpages (easier than enumerating
|
|
# all the binaries and manapages manually, esp. when there are new manpages in
|
|
# each release)
|
|
filelist()
|
|
{
|
|
echo '%%defattr(-, root, root)'
|
|
pushd %buildroot >/dev/null
|
|
for i; do
|
|
if test -e usr/sbin/"$i"; then
|
|
echo /usr/sbin/"$i"
|
|
fi
|
|
if test -e usr/bin/"$i"; then
|
|
echo /usr/bin/"$i"
|
|
fi
|
|
if ls usr/share/man/*/"$i".[1-9]* >/dev/null 2>&1; then
|
|
echo "%%doc %_mandir/*/$i.[1-9]*"
|
|
fi
|
|
done
|
|
popd >/dev/null
|
|
}
|
|
filelist innochecksum my_print_defaults myisam_ftdump myisamchk myisamlog myisampack mysql_fix_extensions mysql_fix_privilege_tables mysql_install_db mysql_secure_installation mysql_upgrade mysqlbug mysqld mysqld_multi mysqld_safe mysqlbinlog mysqldumpslow mysqlmanager resolve_stack_dump resolveip >mysql.files
|
|
filelist mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow >mysql-client.files
|
|
filelist mysql_config >libmysqlclient-devel.files
|
|
filelist mysqlslap >mysql-bench.files
|
|
filelist mysql_client_test mysql_client_test_embedded mysql_waitpid mysqltest mysqltest_embedded >mysql-test.files
|
|
# all binaries that don't need to be in a "default" install (mysql.rpm +
|
|
# mysql-client.rpm)
|
|
filelist msql2mysql mysql_convert_table_format mysql_find_rows mysql_setpermission mysql_tzinfo_to_sql mysql_zap mysqlaccess mysqlhotcopy perror replace >mysql-tools.files
|
|
filelist ndbd ndbmtd ndbd_redo_log_reader >mysql-ndb-storage.files
|
|
filelist ndb_mgmd >mysql-ndb-management.files
|
|
filelist ndb_{config,desc,error_reporter,mgm,print_backup_file,print_schema_file,print_sys_file,restore,select_all,select_count,show_tables,size.pl,test_platform,waiter} >mysql-ndb-tools.files
|
|
filelist ndb_{cpcd,delete_all,drop_index,drop_table} >mysql-ndb-extra.files
|
|
### files not installed by make install
|
|
# Create directory structure
|
|
DOCS=(COPYING README EXCEPTIONS-CLIENT %_sourcedir/README.debug %_sourcedir/README.SuSE)
|
|
DOCDIR=%buildroot%_defaultdocdir/%name
|
|
install -d -m 755 ${DOCDIR}
|
|
install -d -m 755 %buildroot/etc/logrotate.d
|
|
install -d -m 755 %buildroot/etc/init.d
|
|
install -m 644 _build/support-files/mysql-log-rotate %buildroot/etc/logrotate.d/mysql
|
|
%if 0%{?prefered} > 0
|
|
install -m 644 _buildlibmysqld/*.so* %buildroot%_libdir
|
|
ln -s libmysqld.so.0.0.1 %buildroot%_libdir/libmysqld.so.0
|
|
ln -s libmysqld.so.0.0.1 %buildroot%_libdir/libmysqld.so
|
|
%endif
|
|
install -m 660 _build/support-files/my-medium.cnf %buildroot/etc/my.cnf
|
|
install -m 640 scripts/mysqlaccess.conf %buildroot/etc/mysqlaccess.conf
|
|
install -m 644 "${DOCS[@]}" ${DOCDIR}
|
|
install -m 755 %_sourcedir/rc.mysql-multi %buildroot/etc/init.d/mysql
|
|
ln -sf ../../etc/init.d/mysql %buildroot/usr/sbin/rcmysql
|
|
# SuSEfirewall service description
|
|
install -D -m 644 %_sourcedir/mysql.SuSEfirewall2 \
|
|
%buildroot/etc/sysconfig/SuSEfirewall2.d/services/mysql
|
|
# testsuite
|
|
mkdir -p '%buildroot'/usr/share/mysql-test/
|
|
install -m 755 suse-test-run '%buildroot'/usr/share/mysql-test/
|
|
# XXX this should go under /var/..., but some tests get confused by a symlink
|
|
# var -> ../../../var/...
|
|
#ln -sf ../../../var/lib/mysql/mysql-test %buildroot/usr/share/mysql-test/var
|
|
mkdir '%buildroot'/usr/share/mysql-test/var
|
|
# Final fixes
|
|
find '%buildroot'/usr/share/mysql-test -name '*.orig' -delete
|
|
%if 0%{?suse_version} > 1030
|
|
%fdupes -s '%buildroot'/usr/share/mysql-test
|
|
%endif
|
|
%if 0%{?fedora_version} > 8
|
|
fdupes -q -n -r '%buildroot'/usr/share/mysql-test
|
|
%endif
|
|
dos2unixConversion() {
|
|
%{__sed} -i 's/\r//g' "$1"
|
|
}
|
|
for i in `grep -Rl '\r' '%buildroot'/usr/share/sql-bench`; do
|
|
dos2unixConversion "$i"
|
|
done
|
|
%if ! 0%{cluster} > 0
|
|
cat mysql-ndb-storage.files mysql-ndb-management.files \
|
|
mysql-ndb-tools.files mysql-ndb-extra.files | \
|
|
sed 's|^%%doc\ ||' | while read tmp; do
|
|
cd '%buildroot'
|
|
rm -f .$tmp
|
|
done
|
|
%endif
|
|
%if ! 0%{prefered} > 0
|
|
cat libmysqlclient-devel.files | while read tmp; do
|
|
cd '%buildroot'
|
|
rm -f .$tmp
|
|
done
|
|
rm -rf '%buildroot'/%_libdir/libmysqld.*
|
|
rm -rf '%buildroot'/%_libdir/libmysqlclient*
|
|
rm -rf '%buildroot'/%_libdir/libmariadbclient.{a,la,so}
|
|
rm -rf '%buildroot'/%_libdir/libmariadbclient_r*.{a,la,so}
|
|
rm -rf '%buildroot'/%_includedir
|
|
rm -rf '%buildroot'/%_datadir/man/*/mysql_config*
|
|
rm -rf '%buildroot'/%_bindir/mysql_config
|
|
rm -rf '%buildroot'/%_datadir/aclocal
|
|
%endif
|
|
sed -i 's|doc/packages/mysql|doc/packages/%{name}|g' '%buildroot'/etc/init.d/mysql
|
|
ln -s mysqlcheck '%buildroot'%_bindir/mysqlrepair
|
|
ln -s mysqlcheck '%buildroot'%_bindir/mysqlanalyze
|
|
ln -s mysqlcheck '%buildroot'%_bindir/mysqloptimize
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%pre
|
|
#-------------------------------------------------------------------------------
|
|
/usr/sbin/groupadd -r mysql >/dev/null 2>/dev/null || :
|
|
/usr/sbin/useradd -r -o -g mysql -u 60 -c "MySQL database admin" \
|
|
-s /bin/false -d /var/lib/mysql mysql 2> /dev/null || :
|
|
/usr/sbin/usermod -g mysql -s /bin/false mysql || :
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%preun
|
|
#-------------------------------------------------------------------------------
|
|
[ $1 = 1 ] || /usr/sbin/rcmysql stop
|
|
%pretrans
|
|
if [ -x /usr/sbin/rcmysql ]; then
|
|
RESTART=""
|
|
/usr/sbin/rcmysql status > /dev/null && RESTART="yes"
|
|
/usr/sbin/rcmysql stop
|
|
[ "$RESTART" ] && mkdir -p /var/run/mysql/restart
|
|
fi
|
|
dbfile=var/mysql/mysql/db.ISM
|
|
olddir=var/mysql
|
|
newdir=var/lib/mysql
|
|
# Do the database files still belong to root (very old installation)?
|
|
# Change ownerships
|
|
if [ -O $dbfile ]
|
|
then
|
|
chown -Rv mysql:mysql var/mysql/
|
|
fi
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%posttrans
|
|
#-------------------------------------------------------------------------------
|
|
%install_info --info-dir=%{_infodir} %{_infodir}/mysql.info.gz
|
|
if [ -d /var/lib/mysql ]; then
|
|
touch /var/lib/mysql/.run-mysql_upgrade
|
|
chown -R mysql:mysql /var/lib/mysql
|
|
fi
|
|
for i in /var/lib/mysql/{.protected,.tmp}; do
|
|
( [ -d "$i" ] && rmdir "$i" ) || :
|
|
done
|
|
# start mysql again if it should run
|
|
if [ "`ls /etc/rc.d/rc*.d/S*mysql 2> /dev/null`" ] || [ -d /var/run/mysql/restart ]; then
|
|
[ -x /usr/sbin/rcmysql ] && /usr/sbin/rcmysql start
|
|
rmdir /var/run/mysql/restart || :
|
|
fi
|
|
|
|
%if ! 0%{prefered} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%post -n libmariadbclient16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%postun -n libmariadbclient16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%post -n libmariadbclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%postun -n libmariadbclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
%endif
|
|
%if 0%{prefered} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%post -n libmysqlclient16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%postun -n libmysqlclient16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%post -n libmysqlclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%postun -n libmysqlclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%post -n libmysqld0
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%postun -n libmysqld0
|
|
#-------------------------------------------------------------------------------
|
|
/sbin/ldconfig
|
|
#-------------------------------------------------------------------------------
|
|
%endif
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%postun
|
|
#-------------------------------------------------------------------------------
|
|
if [ $1 = 0 ]; then
|
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/mysql.info.gz
|
|
%{insserv_cleanup}
|
|
fi
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%clean
|
|
#-------------------------------------------------------------------------------
|
|
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && %{__rm} -rf $RPM_BUILD_ROOT
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -f mysql.files
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%config(noreplace) %attr(0640, root, mysql) /etc/my.cnf
|
|
%config /etc/logrotate.d/mysql
|
|
%doc %{_defaultdocdir}/%{name}
|
|
%doc %{_infodir}/mysql.info.gz
|
|
/etc/init.d/mysql
|
|
/usr/sbin/rcmysql
|
|
/usr/share/mysql/
|
|
%dir %{_libdir}/mysql
|
|
%{_libdir}/mysql/mysqld.sym
|
|
%config /etc/sysconfig/SuSEfirewall2.d/services/mysql
|
|
%dir %_libdir/mysql/plugin
|
|
%_libdir/mysql/plugin/*.so
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files client -f mysql-client.files
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%config /etc/mysqlaccess.conf
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%if ! 0%{prefered} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmariadbclient16
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%{_libdir}/libmariadbclient.so.*
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmariadbclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%{_libdir}/libmariadbclient_r.so.*
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%endif
|
|
%if 0%{prefered} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmysqlclient-devel -f libmysqlclient-devel.files
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
/usr/include/mysql
|
|
%{_libdir}/libmysqlclient.so
|
|
%{_libdir}/libmysqlclient_r.so
|
|
/usr/share/aclocal/mysql.m4
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmysqld-devel
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-,root,root)
|
|
%_libdir/libmysqld.a
|
|
%_libdir/libmysqld.so
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmysqld0
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-,root,root)
|
|
%_libdir/libmysqld.so.*
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmysqlclient16
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%{_libdir}/libmysqlclient.so.*
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files -n libmysqlclient_r16
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%{_libdir}/libmysqlclient_r.so.*
|
|
#-------------------------------------------------------------------------------
|
|
%endif
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files bench -f mysql-bench.files
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
/usr/share/sql-bench
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files debug
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
/usr/sbin/mysqld-debug
|
|
%{_libdir}/mysql/mysqld-debug.sym
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files test -f mysql-test.files
|
|
#-------------------------------------------------------------------------------
|
|
%defattr(-, root, root)
|
|
%{_bindir}/my_safe_process
|
|
%_mandir/man1/mysql-test-run.pl.1*
|
|
%_mandir/man1/mysql-stress-test.pl.1*
|
|
/usr/share/mysql-test/valgrind.supp
|
|
%dir %attr(755, root, root)/usr/share/mysql-test
|
|
/usr/share/mysql-test/[^v]*
|
|
%dir %attr(755, mysql, mysql) /usr/share/mysql-test/var
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files tools -f mysql-tools.files
|
|
%defattr(-, root, root)
|
|
%_bindir/mysqlrepair
|
|
%_bindir/mysqlanalyze
|
|
%_bindir/mysqloptimize
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%if 0%{cluster} > 0
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files ndb-storage -f mysql-ndb-storage.files
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files ndb-management -f mysql-ndb-management.files
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files ndb-tools -f mysql-ndb-tools.files
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
|
|
%files ndb-extra -f mysql-ndb-extra.files
|
|
#-------------------------------------------------------------------------------
|
|
%endif
|
|
|
|
%changelog
|