1# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
2#
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; version 2 of the License.
6#
7# This program is distributed in the hope that it will be useful,
8# but WITHOUT ANY WARRANTY; without even the implied warranty of
9# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10# GNU General Public License for more details.
11#
12# You should have received a copy of the GNU General Public License
13# along with this program; see the file COPYING. If not, write to the
14# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston
15# MA  02110-1301  USA.
16
17##############################################################################
18# Some common macro definitions
19##############################################################################
20
21# NOTE: "vendor" is used in upgrade/downgrade check, so you can't
22# change these, has to be exactly as is.
23%define mysql_old_vendor        MySQL AB
24%define mysql_vendor_2          Sun Microsystems, Inc.
25%define mysql_vendor            Oracle and/or its affiliates
26%define percona_server_vendor	Percona, Inc
27
28%define mysql_version 5.6.51
29%define redhatversion %(lsb_release -rs | awk -F. '{ print $1}')
30%define percona_server_version 91.0
31%define revision b59139e
32%define tokudb_backup_version
33
34#
35%bcond_with tokudb
36%bcond_with systemd
37#
38%if %{with systemd}
39  %define systemd 1
40%else
41  %if 0%{?rhel} > 6
42    %define systemd 1
43  %else
44    %define systemd 0
45  %endif
46%endif
47
48#
49%if %{with tokudb}
50  %define TOKUDB_FLAGS -DWITH_VALGRIND=OFF -DUSE_VALGRIND=OFF -DDEBUG_EXTNAME=OFF -DBUILD_TESTING=OFF -DUSE_GTAGS=OFF -DUSE_CTAGS=OFF -DUSE_ETAGS=OFF -DUSE_CSCOPE=OFF -DTOKUDB_BACKUP_PLUGIN_VERSION=%{tokudb_backup_version}
51  %define TOKUDB_DEBUG_ON -DTOKU_DEBUG_PARANOID=ON
52  %define TOKUDB_DEBUG_OFF -DTOKU_DEBUG_PARANOID=OFF
53%else
54  %define TOKUDB_FLAGS %{nil}
55  %define TOKUDB_DEBUG_ON %{nil}
56  %define TOKUDB_DEBUG_OFF %{nil}
57%endif
58#
59%define mysqld_user     mysql
60%define mysqld_group    mysql
61%define mysqldatadir    /var/lib/mysql
62
63%define release         rel%{percona_server_version}%{pkg_ver}%{?dist}
64
65%if "%rhel" > "6"
66%define shared_lib_pri_name libmysqlclient
67%define shared_lib_sec_name libperconaserverclient
68%else
69%define shared_lib_pri_name libperconaserverclient
70%define shared_lib_sec_name libmysqlclient
71%endif
72
73#
74# Macros we use which are not available in all supported versions of RPM
75#
76# - defined/undefined are missing on RHEL4
77#
78%if %{expand:%{?defined:0}%{!?defined:1}}
79%define defined()       %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
80%endif
81%if %{expand:%{?undefined:0}%{!?undefined:1}}
82%define undefined()     %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
83%endif
84
85# ----------------------------------------------------------------------------
86# RPM build tools now automatically detect Perl module dependencies.  This
87# detection causes problems as it is broken in some versions, and it also
88# provides unwanted dependencies from mandatory scripts in our package.
89# It might not be possible to disable this in all versions of RPM, but here we
90# try anyway.  We keep the "AutoReqProv: no" for the "test" sub package, as
91# disabling here might fail, and that package has the most problems.
92# See:
93#  http://fedoraproject.org/wiki/Packaging/Perl#Filtering_Requires:_and_Provides
94#  http://www.wideopen.com/archives/rpm-list/2002-October/msg00343.html
95# ----------------------------------------------------------------------------
96%undefine __perl_provides
97%undefine __perl_requires
98
99##############################################################################
100# Command line handling
101##############################################################################
102#
103# To set options:
104#
105#   $ rpmbuild --define="option <x>" ...
106#
107
108# ----------------------------------------------------------------------------
109# Commercial builds
110# ----------------------------------------------------------------------------
111%if %{undefined commercial}
112%define commercial 0
113%endif
114
115# ----------------------------------------------------------------------------
116# Source name
117# ----------------------------------------------------------------------------
118%if %{undefined src_base}
119%define src_base percona-server
120%endif
121%define src_dir %{src_base}-%{mysql_version}-%{percona_server_version}
122
123# ----------------------------------------------------------------------------
124# Feature set (storage engines, options).  Default to community (everything)
125# ----------------------------------------------------------------------------
126%if %{undefined feature_set}
127%define feature_set community
128%endif
129
130# ----------------------------------------------------------------------------
131# Server comment strings
132# ----------------------------------------------------------------------------
133%if %{undefined compilation_comment_debug}
134%define compilation_comment_debug       Percona Server - Debug (GPL), Release %{percona_server_version}, Revision %{revision}
135%endif
136%if %{undefined compilation_comment_release}
137%define compilation_comment_release     Percona Server (GPL), Release %{percona_server_version}, Revision %{revision}
138%endif
139
140
141# ----------------------------------------------------------------------------
142# Product and server suffixes
143# ----------------------------------------------------------------------------
144%define product_suffix -56
145%if %{undefined product_suffix}
146  %if %{defined short_product_tag}
147    %define product_suffix      -%{short_product_tag}
148  %else
149    %define product_suffix      %{nil}
150  %endif
151%endif
152
153%define server_suffix %{product_suffix}
154%if %{undefined server_suffix}
155%define server_suffix   %{nil}
156%endif
157
158# ----------------------------------------------------------------------------
159# Distribution support
160# ----------------------------------------------------------------------------
161%if %{undefined distro_specific}
162%define distro_specific 0
163%endif
164%if %{distro_specific}
165  %if %(test -f /etc/enterprise-release && echo 1 || echo 0)
166    %define oelver %(rpm -qf --qf '%%{version}\\n' /etc/enterprise-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
167    %if "%oelver" == "4"
168      %define distro_description        Oracle Enterprise Linux 4
169      %define distro_releasetag         oel4
170      %define distro_buildreq           gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel libaio-devel bison cmake
171      %define distro_requires           chkconfig coreutils grep procps shadow-utils
172    %else
173      %if "%oelver" == "5"
174        %define distro_description      Oracle Enterprise Linux 5
175        %define distro_releasetag       oel5
176        %define distro_buildreq         gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel libaio-devel bison cmake
177        %define distro_requires         chkconfig coreutils grep procps shadow-utils
178      %else
179        %{error:Oracle Enterprise Linux %{oelver} is unsupported}
180      %endif
181    %endif
182  %else
183    %if %(test -f /etc/redhat-release && echo 1 || echo 0)
184      %define rhelver %(rpm -qf --qf '%%{version}\\n' /etc/redhat-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
185      %if "%rhelver" == "4"
186        %define distro_description      Red Hat Enterprise Linux 4
187        %define distro_releasetag       rhel4
188        %define distro_buildreq         gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel libaio-devel bison cmake
189        %define distro_requires         chkconfig coreutils grep procps shadow-utils
190      %else
191        %if "%rhelver" == "5"
192          %define distro_description    Red Hat Enterprise Linux 5
193          %define distro_releasetag     rhel5
194          %define distro_buildreq       gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel libaio-devel bison cmake
195          %define distro_requires       chkconfig coreutils grep procps shadow-utils
196        %else
197          %{error:Red Hat Enterprise Linux %{rhelver} is unsupported}
198        %endif
199      %endif
200    %else
201      %if %(test -f /etc/SuSE-release && echo 1 || echo 0)
202        %define susever %(rpm -qf --qf '%%{version}\\n' /etc/SuSE-release)
203        %if "%susever" == "10"
204          %define distro_description    SUSE Linux Enterprise Server 10
205          %define distro_releasetag     sles10
206          %define distro_buildreq       gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client readline-devel zlib-devel libaio-devel bison cmake
207          %define distro_requires       aaa_base coreutils grep procps pwdutils
208        %else
209          %if "%susever" == "11"
210            %define distro_description  SUSE Linux Enterprise Server 11
211            %define distro_releasetag   sles11
212            %define distro_buildreq     gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client procps pwdutils readline-devel zlib-devel libaio-devel bison cmake
213            %define distro_requires     aaa_base coreutils grep procps pwdutils
214          %else
215            %{error:SuSE %{susever} is unsupported}
216          %endif
217        %endif
218      %else
219        %{error:Unsupported distribution}
220      %endif
221    %endif
222  %endif
223%else
224  %define generic_kernel %(uname -r | cut -d. -f1-2)
225  %define distro_description            Generic Linux (kernel %{generic_kernel})
226  %define distro_releasetag             linux%{generic_kernel}
227  %define distro_buildreq               gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel libaio-devel bison cmake
228  %define distro_requires               coreutils grep procps /usr/sbin/useradd /usr/sbin/groupadd
229%endif
230
231##############################################################################
232# Configuration based upon above user input, not to be set directly
233##############################################################################
234
235%if %{commercial}
236%define license_files_server    LICENSE.mysql
237%define license_type            Commercial
238%else
239%define license_files_server    README
240%define license_type            GPLv2
241%endif
242
243##############################################################################
244# Main spec file section
245##############################################################################
246
247Name:           Percona-Server%{product_suffix}
248Summary:        Percona-Server: a very fast and reliable SQL database server
249Group:          Applications/Databases
250Version:        %{mysql_version}
251Release:        %{release}
252Distribution:   %{distro_description}
253License:        Copyright (c) 2000, 2010, %{mysql_vendor}.  All rights reserved.  Use is subject to license terms. Under the GNU General Public License (http://www.gnu.org/licenses/).
254Source:         http://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-%{mysql_version}-%{percona_server_version}/source/%{src_dir}.tar.gz
255URL:            http://www.percona.com/
256Packager:       Percona MySQL Development Team <mysqldev@percona.com>
257Vendor:         %{percona_server_vendor}
258Provides:       mysql-server
259BuildRequires:  %{distro_buildreq} pam-devel openssl-devel numactl-devel
260%if 0%{?systemd}
261BuildRequires:  systemd
262%endif
263Patch0:         mysql-5.6-sharedlib-rename.patch
264Patch1:         mysql-5.6-libmysqlclient-symbols.patch
265
266# Think about what you use here since the first step is to
267# run a rm -rf
268BuildRoot:    %{_tmppath}/%{name}-%{version}-build
269
270# From the manual
271%description
272The Percona Server software delivers a very fast, multi-threaded, multi-user,
273and robust SQL (Structured Query Language) database server. Percona Server
274is intended for mission-critical, heavy-load production systems.
275
276Percona recommends that all production deployments be protected with a support
277contract (http://www.percona.com/mysql-suppport/) to ensure the highest uptime,
278be eligible for hot fixes, and boost your team's productivity.
279
280##############################################################################
281# Sub package definition
282##############################################################################
283
284%package -n Percona-Server-server%{product_suffix}
285Summary:        Percona Server: a very fast and reliable SQL database server
286Group:          Applications/Databases
287Requires:       %{distro_requires} Percona-Server-shared%{product_suffix} Percona-Server-client%{product_suffix}
288Requires:       perl(Data::Dumper)
289Requires:       openssl
290%if 0%{?systemd}
291Requires(post):   systemd
292Requires(preun):  systemd
293Requires(postun): systemd
294%else
295Requires(post):   /sbin/chkconfig
296Requires(preun):  /sbin/chkconfig
297Requires(preun):  /sbin/service
298%endif
299Provides:       mysql-server MySQL-server
300Conflicts:	Percona-SQL-server-50 Percona-Server-server-51 Percona-Server-server-55
301
302%description -n Percona-Server-server%{product_suffix}
303The Percona Server software delivers a very fast, multi-threaded, multi-user,
304and robust SQL (Structured Query Language) database server. Percona Server
305is intended for mission-critical, heavy-load production systems.
306
307Percona recommends that all production deployments be protected with a support
308contract (http://www.percona.com/mysql-suppport/) to ensure the highest uptime,
309be eligible for hot fixes, and boost your team's productivity.
310
311This package includes the Percona Server with XtraDB binary
312as well as related utilities to run and administer Percona Server.
313
314If you want to access and work with the database, you have to install
315package "Percona-Server-client%{product_suffix}" as well!
316
317%if %{with tokudb}
318# ----------------------------------------------------------------------------
319%package -n Percona-Server-tokudb%{product_suffix}
320Summary:        Percona Server - TokuDB
321Group:          Applications/Databases
322Requires:       Percona-Server-server%{product_suffix} = %{version}-%{release}
323Requires:       Percona-Server-shared%{product_suffix} = %{version}-%{release}
324Requires:       Percona-Server-client%{product_suffix} = %{version}-%{release}
325Requires:       jemalloc >= 3.3.0
326Provides:       tokudb-plugin = %{version}-%{release}
327
328%description -n Percona-Server-tokudb%{product_suffix}
329This package contains the TokuDB plugin for Percona Server %{version}-%{release}
330%endif
331
332# ----------------------------------------------------------------------------
333%package -n Percona-Server-selinux%{product_suffix}
334Summary: 		Percona Server - Selinux policy module
335Group:          	Applications/Databases
336%if 0%{?rhel} >= 6
337BuildArch:		noarch
338%endif
339Requires:		selinux-policy
340Requires:		policycoreutils
341Requires(pre):		policycoreutils
342Requires(post):		policycoreutils
343Requires(postun):       policycoreutils
344
345%if 0%{?rhel} == 6
346BuildRequires: 		selinux-policy
347%else
348BuildRequires: 		selinux-policy-devel
349%endif
350
351%description -n Percona-Server-selinux%{product_suffix}
352This package contains SELinux policy module for Percona Server package.
353
354For a description of Percona Server see http://www.percona.com/software/percona-server/
355
356# ----------------------------------------------------------------------------
357%package -n Percona-Server-client%{product_suffix}
358Summary:        Percona Server - Client
359Group:          Applications/Databases
360Requires:       Percona-Server-shared%{product_suffix}
361Provides:       mysql-client MySQL-client mysql MySQL
362Conflicts:      Percona-SQL-client-50 Percona-Server-client-51 Percona-Server-client-55
363
364%description -n Percona-Server-client%{product_suffix}
365This package contains the standard Percona Server client and administration tools.
366
367For a description of Percona Server see http://www.percona.com/software/percona-server/
368
369# ----------------------------------------------------------------------------
370%package -n Percona-Server-test%{product_suffix}
371Requires:       Percona-Server-client%{product_suffix} perl
372Requires:       perl(Socket), perl(Time::HiRes), perl(Data::Dumper), perl(Test::More)
373Summary:        Percona Server - Test suite
374Group:          Applications/Databases
375Provides:       mysql-test
376Conflicts:      Percona-SQL-test-50 Percona-Server-test-51 Percona-Server-test-55
377AutoReqProv:    no
378
379%description -n Percona-Server-test%{product_suffix}
380This package contains the Percona Server regression test suite.
381
382For a description of Percona Server see http://www.percona.com/software/percona-server/
383
384# ----------------------------------------------------------------------------
385%package -n Percona-Server-devel%{product_suffix}
386Summary:        Percona Server - Development header files and libraries
387Group:          Applications/Databases
388Provides:       mysql-devel
389Conflicts:      Percona-SQL-devel-50 Percona-Server-devel-51 Percona-Server-devel-55
390Obsoletes:      mariadb-connector-c-devel
391%if "%rhel" > "6"
392Obsoletes:      mariadb-devel
393%endif
394
395%description -n Percona-Server-devel%{product_suffix}
396This package contains the development header files and libraries necessary
397to develop Percona Server client applications.
398
399For a description of Percona Server see http://www.percona.com/software/percona-server/
400
401# ----------------------------------------------------------------------------
402%package -n Percona-Server-shared%{product_suffix}
403Summary:        Percona Server - Shared libraries
404Group:          Applications/Databases
405%if "%rhel" > "6"
406Provides:       mysql-shared mysql-libs
407Obsoletes:      mariadb-libs
408Conflicts:      Percona-Server-shared-55
409%else
410%ifarch x86_64
411Provides:       libmysqlclient.so.18()(64bit)
412Provides:       libmysqlclient.so.18(libmysqlclient_18)(64bit)
413%endif
414%ifarch i386 i686
415Provides:       libmysqlclient.so.18()(32bit)
416Provides:       libmysqlclient.so.18(libmysqlclient_18)(32bit)
417%endif
418%endif
419
420%description -n Percona-Server-shared%{product_suffix}
421This package contains the shared libraries (*.so*) which certain languages
422and applications need to dynamically load and use Percona Server.
423
424##############################################################################
425%prep
426%setup -n %{src_dir}
427
428%if "%rhel" > "6"
429%patch0 -p1
430%patch1 -p1
431%endif
432
433##############################################################################
434%build
435
436# Optional package files
437touch optional-files-devel
438
439#
440# Set environment in order of preference, MYSQL_BUILD_* first, then variable
441# name, finally a default.  RPM_OPT_FLAGS is assumed to be a part of the
442# default RPM build environment.
443#
444
445# This is a hack, $RPM_OPT_FLAGS on ia64 hosts contains flags which break
446# the compile in cmd-line-utils/readline - needs investigation, but for now
447# we simply unset it and use those specified directly in cmake.
448%if "%{_arch}" == "ia64"
449RPM_OPT_FLAGS=
450%endif
451#
452RPM_OPT_FLAGS=$(echo ${RPM_OPT_FLAGS} | sed -e 's|-march=i386|-march=i686|g')
453#
454# Needed on centos5 to force debug symbols compatibility with older gdb version
455%if "%rhel" == "5"
456RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -gdwarf-2"
457%endif
458#
459export PATH=${MYSQL_BUILD_PATH:-$PATH}
460export CC=${MYSQL_BUILD_CC:-${CC:-gcc}}
461export CXX=${MYSQL_BUILD_CXX:-${CXX:-g++}}
462export CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}}
463export CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-${CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-rtti}}
464export LDFLAGS=${MYSQL_BUILD_LDFLAGS:-${LDFLAGS:-}}
465export CMAKE=${MYSQL_BUILD_CMAKE:-${CMAKE:-cmake}}
466
467# "Fix" cmake directories in case we're crosscompiling.
468# We detect crosscompiles to i686 if uname is x86_64 however _libdir does not
469# contain lib64.
470# In this case, we cannot instruct cmake to change CMAKE_SYSTEM_PROCESSOR, so
471# we need to alter the directories in cmake/install_layout.cmake manually.
472if test "x$(uname -m)" = "xx86_64" && echo "%{_libdir}" | fgrep -vq lib64
473then
474    sed -i 's/lib64/lib/' "cmake/install_layout.cmake"
475fi
476
477# Build debug mysqld and libmysqld.a
478mkdir debug
479(
480  cd debug
481  # Attempt to remove any optimisation flags from the debug build
482  # BLD-238 - bug1408232
483  CFLAGS=`echo " ${CFLAGS} " | \
484            sed -e 's/ -O[0-9]* / /' \
485                -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \
486                -e 's/ -unroll2 / /' \
487                -e 's/ -ip / /' \
488                -e 's/^ //' \
489                -e 's/ $//'`
490  CXXFLAGS=`echo " ${CXXFLAGS} " | \
491              sed -e 's/ -O[0-9]* / /' \
492                  -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \
493                  -e 's/ -unroll2 / /' \
494                  -e 's/ -ip / /' \
495                  -e 's/^ //' \
496                  -e 's/ $//'`
497  # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before
498  # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM
499  ${CMAKE} ../ -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
500           -DCMAKE_BUILD_TYPE=Debug \
501           -DENABLE_DTRACE=OFF \
502           -DWITH_EMBEDDED_SERVER=OFF \
503           -DWITH_INNODB_MEMCACHED=ON \
504           -DWITH_SSL=system -DWITH_PAM=ON \
505           -DINSTALL_MYSQLSHAREDIR=share/percona-server \
506           -DINSTALL_SUPPORTFILESDIR=share/percona-server \
507           -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \
508           -DFEATURE_SET="%{feature_set}" \
509           -DWITH_ROCKSDB=0 \
510           -DWITH_SCALABILITY_METRICS=ON \
511           -DCOMPILATION_COMMENT="%{compilation_comment_debug}" %{TOKUDB_FLAGS} %{TOKUDB_DEBUG_ON}
512
513  echo BEGIN_DEBUG_CONFIG ; egrep '^#define' include/config.h ; echo END_DEBUG_CONFIG
514  make %{?_smp_mflags}
515)
516# Build full release
517mkdir release
518(
519  cd release
520  # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before
521  # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM
522  ${CMAKE} ../ -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
523           -DCMAKE_BUILD_TYPE=RelWithDebInfo \
524           -DENABLE_DTRACE=OFF \
525           -DWITH_EMBEDDED_SERVER=OFF \
526           -DWITH_INNODB_MEMCACHED=ON \
527           -DWITH_SSL=system -DWITH_PAM=ON \
528           -DINSTALL_MYSQLSHAREDIR=share/percona-server \
529           -DINSTALL_SUPPORTFILESDIR=share/percona-server \
530           -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \
531           -DFEATURE_SET="%{feature_set}" \
532           -DWITH_ROCKSDB=0 \
533           -DWITH_SCALABILITY_METRICS=ON \
534           -DCOMPILATION_COMMENT="%{compilation_comment_release}" %{TOKUDB_FLAGS} %{TOKUDB_DEBUG_OFF}
535
536  echo BEGIN_NORMAL_CONFIG ; egrep '^#define' include/config.h ; echo END_NORMAL_CONFIG
537  make %{?_smp_mflags}
538)
539
540# For the debuginfo extraction stage, some source files are not located in the release
541# and debug dirs, but in the source dir. Make a link there to avoid errors in the
542# strip phase.
543for d in debug release
544do
545    for f in pars/lexyy.cc pars/pars0grm.cc pars/pars0grm.y pars/pars0lex.l \
546        fts/fts0pars.cc fts/fts0pars.y fts/fts0blex.l fts/fts0blex.cc \
547        include/fts0pars.h fts/fts0tlex.cc fts/fts0tlex.l
548    do
549        ln -s "../../../%{src_dir}/storage/innobase/$f" "$d/storage/innobase/"
550    done
551    mkdir -p "$d/storage/include/"
552    ln -s "../../../%{src_dir}/storage/innobase/include/fts0tlex.h" \
553            "$d/storage/include/"
554    ln -s "../../../%{src_dir}/storage/innobase/include/fts0blex.h" \
555            "$d/storage/include/"
556done
557
558# Use the build root for temporary storage of the shared libraries.
559RBR=$RPM_BUILD_ROOT
560
561# Clean up the BuildRoot first
562[ "$RBR" != "/" ] && [ -d "$RBR" ] && rm -rf "$RBR";
563
564##############################################################################
565%install
566
567RBR=$RPM_BUILD_ROOT
568MBD=$RPM_BUILD_DIR/%{src_dir}
569
570# Ensure that needed directories exists
571install -d $RBR%{_sysconfdir}/{logrotate.d,init.d}
572install -d $RBR%{mysqldatadir}/mysql
573install -d $RBR%{_datadir}/mysql-test
574install -d $RBR%{_datadir}/percona-server/SELinux/RHEL4
575install -d $RBR%{_includedir}
576install -d $RBR%{_libdir}
577install -d $RBR%{_mandir}
578install -d $RBR%{_sbindir}
579install -d $RBR%{_libdir}/mysql/plugin
580install -d -m 0750 $RBR/var/lib/mysql-files
581
582# SElinux
583pushd ${MBD}/policy/selinux
584make -f /usr/share/selinux/devel/Makefile
585install -D -m 0644 $MBD/policy/selinux/percona-server.pp $RBR%{_datadir}/selinux/packages/percona-server/percona-server.pp
586popd
587# SElinux END
588
589(
590  cd $MBD/release
591  make DESTDIR=$RBR benchdir_root=%{_datadir} install
592)
593
594# Install all binaries
595(
596  cd $MBD/release
597  make DESTDIR=$RBR install
598)
599
600# FIXME: at some point we should stop doing this and just install everything
601# FIXME: directly into %{_libdir}/mysql - perhaps at the same time as renaming
602# FIXME: the shared libraries to use libmysql*-$major.$minor.so syntax
603mv -v $RBR/%{_libdir}/*.a $RBR/%{_libdir}/mysql/
604
605# Install logrotate and autostart
606install -m 644 $MBD/release/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql
607%if 0%{?systemd}
608install -D -m 0755 $MBD/build-ps/rpm/mysql-systemd $RBR%{_bindir}/mysql-systemd
609install -D -m 0644 $MBD/build-ps/rpm/mysqld.service $RBR%{_unitdir}/mysqld.service
610install -D -m 0644 $MBD/build-ps/rpm/mysql.conf $RBR%{_tmpfilesdir}/mysql.conf
611%else
612install -m 755 $MBD/release/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql
613%endif
614
615%if "%rhel" > "6"
616install -D -m 0644 $MBD/build-ps/rpm/my.cnf $RBR%{_sysconfdir}/my.cnf
617%endif
618
619#
620%{__rm} -f $RBR/%{_prefix}/README
621%if %{with tokudb}
622%{__rm} -f $RBR/%{_prefix}/README.md
623%{__rm} -f $RBR/%{_prefix}/COPYING.AGPLv3
624%{__rm} -f $RBR/%{_prefix}/COPYING.GPLv2
625%{__rm} -f $RBR/%{_prefix}/PATENTS
626%endif
627#
628# Delete the symlinks to the libraries from the libdir. These are created by
629# ldconfig(8) afterwards.
630rm -f $RBR%{_libdir}/libmysqlclient*.so.18
631
632# Create a symlink "rcmysql", pointing to the init.script. SuSE users
633# will appreciate that, as all services usually offer this.
634ln -s %{_sysconfdir}/init.d/mysql $RBR%{_sbindir}/rcmysql
635
636# Touch the place where the my.cnf config file might be located
637# Just to make sure it's in the file list and marked as a config file
638touch $RBR%{_sysconfdir}/my.cnf
639
640# Install SELinux files in datadir
641install -m 600 $MBD/support-files/RHEL4-SElinux/mysql.{fc,te} \
642  $RBR%{_datadir}/percona-server/SELinux/RHEL4
643
644# Remove files we explicitly do not want to package, avoids 'unpackaged
645# files' warning.
646rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1*
647%if 0%{?systemd}
648rm -rf $RBR%{_sysconfdir}/init.d/mysql
649%endif
650# Not needed if TokuDB package is not created
651%if ! %{with tokudb}
652rm -rf $RBR%{_bindir}/ps_tokudb_admin
653%endif
654
655##############################################################################
656#  Post processing actions, i.e. when installed
657##############################################################################
658
659%pre -n Percona-Server-server%{product_suffix}
660
661# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
662
663# There are users who deviate from the default file system layout.
664# Check local settings to support them.
665if [ -x %{_bindir}/my_print_defaults ]
666then
667  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p' | tail -n 1`
668  PID_FILE_PATT=`%{_bindir}/my_print_defaults server mysqld | grep '^--pid-file=' | sed -n 's/--pid-file=//p' | sort -u`
669fi
670if [ -z "$mysql_datadir" ]
671then
672  mysql_datadir=%{mysqldatadir}
673fi
674if [ -z "$PID_FILE_PATT" ]
675then
676  PID_FILE_PATT="$mysql_datadir/*.pid"
677fi
678
679# Check if we can safely upgrade.  An upgrade is only safe if it's from one
680# of our RPMs in the same version family.
681
682installed=`rpm -q --whatprovides mysql-server 2> /dev/null`
683if [ $? -eq 0 -a -n "$installed" ]; then
684  vendor=`rpm -q --queryformat='%{VENDOR}' "$installed" 2>&1`
685  version=`rpm -q --queryformat='%{VERSION}' "$installed" 2>&1`
686  myoldvendor='%{mysql_old_vendor}'
687  myvendor_2='%{mysql_vendor_2}'
688  myvendor='%{mysql_vendor}'
689  perconaservervendor='%{percona_server_vendor}'
690  myversion='%{mysql_version}'
691
692  old_family=`echo $version \
693    | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
694  new_family=`echo $myversion \
695    | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
696
697  [ -z "$vendor" ] && vendor='<unknown>'
698  [ -z "$old_family" ] && old_family="<unrecognized version $version>"
699  [ -z "$new_family" ] && new_family="<bad package specification: version $myversion>"
700
701  error_text=
702  if [ "$vendor" != "$myoldvendor" \
703    -a "$vendor" != "$myvendor_2" \
704    -a "$vendor" != "$myvendor" \
705    -a "$vendor" != "$perconaservervendor" ]; then
706    error_text="$error_text
707The current MySQL server package is provided by a different
708vendor ($vendor) than $myoldvendor, $myvendor_2,
709$myvendor, or $perconaservervendor.
710Some files may be installed to different locations, including log
711files and the service startup script in %{_sysconfdir}/init.d/.
712"
713  fi
714
715  if [ "$old_family" != "$new_family" ]; then
716    error_text="$error_text
717Upgrading directly from MySQL $old_family to MySQL $new_family may not
718be safe in all cases.  A manual dump and restore using mysqldump is
719recommended.  It is important to review the MySQL manual's Upgrading
720section for version-specific incompatibilities.
721"
722  fi
723
724  if [ -n "$error_text" ]; then
725    cat <<HERE >&2
726
727******************************************************************
728A MySQL server package ($installed) is installed.
729$error_text
730A manual upgrade is required.
731
732- Ensure that you have a complete, working backup of your data and my.cnf
733  files
734- Shut down the MySQL server cleanly
735- Remove the existing MySQL packages.  Usually this command will
736  list the packages you should remove:
737  rpm -qa | grep -i '^mysql-'
738
739  You may choose to use 'rpm --nodeps -ev <package-name>' to remove
740  the package which contains the perconaserverclient shared library.  The
741  library will be reinstalled by the MySQL-shared-compat package.
742- Install the new MySQL packages supplied by $myvendor
743- Ensure that the MySQL server is started
744- Run the 'mysql_upgrade' program
745
746This is a brief description of the upgrade process.  Important details
747can be found in the MySQL manual, in the Upgrading section.
748******************************************************************
749HERE
750    exit 1
751  fi
752fi
753
754# We assume that if there is exactly one ".pid" file,
755# it contains the valid PID of a running MySQL server.
756NR_PID_FILES=`ls -1 $PID_FILE_PATT 2>/dev/null | wc -l`
757case $NR_PID_FILES in
758	0 ) SERVER_TO_START=''  ;;  # No "*.pid" file == no running server
759	1 ) SERVER_TO_START='true' ;;
760	* ) SERVER_TO_START=''      # Situation not clear
761	    SEVERAL_PID_FILES=true ;;
762esac
763# That logic may be debated: We might check whether it is non-empty,
764# contains exactly one number (possibly a PID), and whether "ps" finds it.
765# OTOH, if there is no such process, it means a crash without a cleanup -
766# is that a reason not to start a new server after upgrade?
767
768STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
769
770if [ -f $STATUS_FILE ]; then
771	echo "Some previous upgrade was not finished:"
772	ls -ld $STATUS_FILE
773	echo "Please check its status, then do"
774	echo "    rm $STATUS_FILE"
775	echo "before repeating the MySQL upgrade."
776	exit 1
777elif [ -n "$SEVERAL_PID_FILES" ] ; then
778	echo "You have more than one PID file:"
779	ls -ld $PID_FILE_PATT
780	echo "Please check which one (if any) corresponds to a running server"
781	echo "and delete all others before repeating the MySQL upgrade."
782	exit 1
783fi
784
785NEW_VERSION=%{mysql_version}-%{release}
786
787# The "pre" section code is also run on a first installation,
788# when there  is no data directory yet. Protect against error messages.
789if [ -d $mysql_datadir ] ; then
790	echo "MySQL RPM upgrade to version $NEW_VERSION"  > $STATUS_FILE
791	echo "'pre' step running at `date`"          >> $STATUS_FILE
792	echo                                         >> $STATUS_FILE
793	fcount=`ls -ltr $mysql_datadir/*.err 2>/dev/null | wc -l`
794	if [ $fcount -gt 0 ] ; then
795		echo "ERR file(s):"                          >> $STATUS_FILE
796		ls -ltr $mysql_datadir/*.err                 >> $STATUS_FILE
797		echo                                         >> $STATUS_FILE
798		echo "Latest 'Version' line in latest file:" >> $STATUS_FILE
799		grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \
800			tail -1                              >> $STATUS_FILE
801		echo                                         >> $STATUS_FILE
802	fi
803
804	if [ -n "$SERVER_TO_START" ] ; then
805		# There is only one PID file, race possibility ignored
806		echo "PID file:"                           >> $STATUS_FILE
807		ls -l   $PID_FILE_PATT                     >> $STATUS_FILE
808		cat     $PID_FILE_PATT                     >> $STATUS_FILE
809		echo                                       >> $STATUS_FILE
810		echo "Server process:"                     >> $STATUS_FILE
811		ps -fp `cat $PID_FILE_PATT`                >> $STATUS_FILE
812		echo                                       >> $STATUS_FILE
813		echo "SERVER_TO_START=$SERVER_TO_START"    >> $STATUS_FILE
814	else
815		# Take a note we checked it ...
816		echo "PID file:"                           >> $STATUS_FILE
817		ls -l   $PID_FILE_PATT                     >> $STATUS_FILE 2>&1
818	fi
819fi
820
821# Shut down a previously installed server first
822# Note we *could* make that depend on $SERVER_TO_START, but we rather don't,
823# so a "stop" is attempted even if there is no PID file.
824# (Maybe the "stop" doesn't work then, but we might fix that in itself.)
825if [ -x %{_sysconfdir}/init.d/mysql ] ; then
826        %{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1
827        echo "Giving mysqld 5 seconds to exit nicely"
828        sleep 5
829fi
830
831# SElinux
832%post -n Percona-Server-selinux%{product_suffix}
833/usr/sbin/semodule -i %{_datadir}/selinux/packages/percona-server/percona-server.pp >/dev/null 2>&1 || :
834
835%postun -n Percona-Server-selinux%{product_suffix}
836if [ $1 -eq 0 ] ; then
837    /usr/sbin/semodule -r percona-server >/dev/null 2>&1 || :
838fi
839
840#SElinux
841
842%post -n Percona-Server-server%{product_suffix}
843
844%if 0%{?systemd}
845  %systemd_post mysqld
846%endif
847
848# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
849
850# There are users who deviate from the default file system layout.
851# Check local settings to support them.
852if [ -x %{_bindir}/my_print_defaults ]
853then
854  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p' | tail -n 1`
855fi
856if [ -z "$mysql_datadir" ]
857then
858  mysql_datadir=%{mysqldatadir}
859fi
860NEW_VERSION=%{mysql_version}-%{release}
861STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
862
863if [ -f $STATUS_FILE ] ; then
864	SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
865else
866	SERVER_TO_START=''
867fi
868
869# ----------------------------------------------------------------------
870# Create a MySQL user and group. Do not report any problems if it already
871# exists.
872# ----------------------------------------------------------------------
873groupadd -r %{mysqld_group} 2> /dev/null || true
874useradd -M -r -d $mysql_datadir -s /bin/bash -c "MySQL server" \
875  -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
876# The user may already exist, make sure it has the proper group nevertheless
877# (BUG#12823)
878usermod -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
879
880
881# ----------------------------------------------------------------------
882# Create data directory if needed, check whether upgrade or install
883# ----------------------------------------------------------------------
884if [ ! -d $mysql_datadir ]; then
885    install -d -m 0755 -o %{mysqld_user} -g %{mysqld_group} $mysql_datadir
886fi
887# echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
888if [ ! -d $mysql_datadir/mysql ] ; then
889	echo "MySQL RPM installation of version $NEW_VERSION" >> $STATUS_FILE
890else
891	# If the directory exists, we may assume it is an upgrade.
892	echo "MySQL RPM upgrade to version $NEW_VERSION" >> $STATUS_FILE
893fi
894
895# ----------------------------------------------------------------------
896# Make MySQL start/shutdown automatically when the machine does it.
897# ----------------------------------------------------------------------
898# NOTE: This still needs to be debated. Should we check whether these links
899# for the other run levels exist(ed) before the upgrade?
900# use chkconfig on Enterprise Linux and newer SuSE releases
901%if 0%{?systemd}
902if [ -x %{_bindir}/systemctl ] ; then
903	%{_bindir}/systemctl enable mysqld >/dev/null 2>&1
904fi
905%else
906if [ -x /sbin/chkconfig ] ; then
907        /sbin/chkconfig --add mysql
908# use insserv for older SuSE Linux versions
909elif [ -x /sbin/insserv ] ; then
910        /sbin/insserv %{_sysconfdir}/init.d/mysql
911fi
912%endif
913
914# ----------------------------------------------------------------------
915# Initiate databases if needed
916# ----------------------------------------------------------------------
917    # Does $mysql_datadir/mysql exist? In this case, this is probably an
918    # upgrade from a previous version or a reinstall. It's best not to
919    # call mysql_install_db in this case since the test db would be
920    # possibly recreated (bug #1169522).
921    if test ! -e $mysql_datadir/mysql
922    then
923        %{_bindir}/mysql_install_db --rpm --user=%{mysqld_user} \
924            --datadir=$mysql_datadir
925    fi
926
927%if 0%{?systemd}
928  %tmpfiles_create mysql.conf
929%endif
930
931# ----------------------------------------------------------------------
932# Upgrade databases if needed would go here - but it cannot be automated yet
933# ----------------------------------------------------------------------
934
935# ----------------------------------------------------------------------
936# Change permissions again to fix any new files.
937# ----------------------------------------------------------------------
938chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
939
940# ----------------------------------------------------------------------
941# Fix permissions for the permission database so that only the user
942# can read them.
943# ----------------------------------------------------------------------
944chmod -R og-rw $mysql_datadir/mysql
945
946# ----------------------------------------------------------------------
947# install SELinux files - but don't override existing ones
948# ----------------------------------------------------------------------
949SETARGETDIR=/etc/selinux/targeted/src/policy
950SEDOMPROG=$SETARGETDIR/domains/program
951SECONPROG=$SETARGETDIR/file_contexts/program
952
953if [ -x sbin/restorecon ] ; then
954  sbin/restorecon -R var/lib/mysql
955fi
956
957# For systemd check postun
958%if 0%{?systemd} == 0
959# Was the server running before the upgrade? If so, restart the new one.
960# Don't start it if TokuDB package is installed - it will be started
961# after TokuDB package is upgraded - prevents TokuDB init error
962tokudb_installed=`rpm -q Percona-Server-tokudb-56 2>/dev/null`
963if [ $? -eq 1 -a "$SERVER_TO_START" = "true" ] ; then
964	# Restart in the same way that mysqld will be started normally.
965	if [ -x %{_sysconfdir}/init.d/mysql ] ; then
966		%{_sysconfdir}/init.d/mysql start
967		echo "Giving mysqld 5 seconds to start"
968		sleep 5
969	fi
970fi
971%endif
972
973if [ ! -d %{_datadir}/mysql ]; then
974    pushd %{_datadir}
975    ln -s percona-server mysql
976    popd
977fi
978
979echo "Percona Server is distributed with several useful UDF (User Defined Function) from Percona Toolkit."
980echo "Run the following commands to create these functions:"
981echo "mysql -e \"CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'\""
982echo "mysql -e \"CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'\""
983echo "mysql -e \"CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'\""
984echo "See http://www.percona.com/doc/percona-server/5.6/management/udf_percona_toolkit.html for more details"
985
986# Collect an upgrade history ...
987echo "Upgrade/install finished at `date`"        >> $STATUS_FILE
988echo                                             >> $STATUS_FILE
989echo "====="                                     >> $STATUS_FILE
990STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
991cat $STATUS_FILE >> $STATUS_HISTORY
992mv -f  $STATUS_FILE ${STATUS_FILE}-LAST  # for "triggerpostun" and TokuDB package
993
994
995#echo "Thank you for installing the MySQL Community Server! For Production
996#systems, we recommend MySQL Enterprise, which contains enterprise-ready
997#software, intelligent advisory services, and full production support with
998#scheduled service packs and more.  Visit www.mysql.com/enterprise for more
999#information."
1000
1001%preun -n Percona-Server-server%{product_suffix}
1002
1003# Which '$1' does this refer to?  Fedora docs have info:
1004# " ... a count of the number of versions of the package that are installed.
1005#   Action                           Count
1006#   Install the first time           1
1007#   Upgrade                          2 or higher (depending on the number of versions installed)
1008#   Remove last version of package   0 "
1009#
1010#  http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s04s05.html
1011
1012if [ $1 = 0 ] ; then
1013  if [ -L %{_datadir}/mysql ]; then
1014      rm %{_datadir}/mysql
1015  fi
1016
1017%if 0%{?systemd}
1018	%systemd_preun mysqld
1019%else
1020       # Stop MySQL before uninstalling it
1021        if [ -x %{_sysconfdir}/init.d/mysql ] ; then
1022                %{_sysconfdir}/init.d/mysql stop > /dev/null
1023                # Remove autostart of MySQL
1024                # use chkconfig on Enterprise Linux and newer SuSE releases
1025                if [ -x /sbin/chkconfig ] ; then
1026                        /sbin/chkconfig --del mysql
1027                # For older SuSE Linux versions
1028                elif [ -x /sbin/insserv ] ; then
1029                        /sbin/insserv -r %{_sysconfdir}/init.d/mysql
1030                fi
1031        fi
1032%endif
1033fi
1034
1035# We do not remove the mysql user since it may still own a lot of
1036# database files.
1037
1038%triggerpostun -n Percona-Server-server%{product_suffix} --MySQL-server-community
1039
1040# Setup: We renamed this package, so any existing "server-community"
1041#   package will be removed when this "server" is installed.
1042# Problem: RPM will first run the "pre" and "post" sections of this script,
1043#   and only then the "preun" of that old community server.
1044#   But this "preun" includes stopping the server and uninstalling the service,
1045#   "chkconfig --del mysql" which removes the symlinks to the start script.
1046# Solution: *After* the community server got removed, restart this server
1047#   and re-install the service.
1048#
1049# For information about triggers in spec files, see the Fedora docs:
1050#   http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s02.html
1051# For all details of this code, see the "pre" and "post" sections.
1052
1053# There are users who deviate from the default file system layout.
1054# Check local settings to support them.
1055if [ -x %{_bindir}/my_print_defaults ]
1056then
1057  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p' | tail -n 1`
1058fi
1059if [ -z "$mysql_datadir" ]
1060then
1061  mysql_datadir=%{mysqldatadir}
1062fi
1063NEW_VERSION=%{mysql_version}-%{release}
1064STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER-LAST  # Note the difference!
1065STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
1066
1067if [ -f $STATUS_FILE ] ; then
1068	SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
1069else
1070	# This should never happen, but let's be prepared
1071	SERVER_TO_START=''
1072fi
1073echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
1074
1075%if 0%{?systemd}
1076if [ -x %{_bindir}/systemctl ] ; then
1077	%{_bindir}/systemctl enable mysqld >/dev/null 2>&1
1078fi
1079%else
1080if [ -x /sbin/chkconfig ] ; then
1081        /sbin/chkconfig --add mysql
1082# use insserv for older SuSE Linux versions
1083elif [ -x /sbin/insserv ] ; then
1084        /sbin/insserv %{_sysconfdir}/init.d/mysql
1085fi
1086%endif
1087
1088# Was the server running before the upgrade? If so, restart the new one.
1089if [ "$SERVER_TO_START" = "true" ] ; then
1090# Restart in the same way that mysqld will be started normally.
1091%if 0%{?systemd}
1092	if [ -x %{_bindir}/systemctl ] ; then
1093		%{_bindir}/systemctl start mysqld
1094		echo "Giving mysqld 5 seconds to start"
1095		sleep 5
1096	fi
1097%else
1098	if [ -x %{_sysconfdir}/init.d/mysql ] ; then
1099		%{_sysconfdir}/init.d/mysql start
1100		echo "Giving mysqld 5 seconds to start"
1101		sleep 5
1102	fi
1103%endif
1104fi
1105
1106echo "Trigger 'postun --community' finished at `date`"        >> $STATUS_HISTORY
1107echo                                             >> $STATUS_HISTORY
1108echo "====="                                     >> $STATUS_HISTORY
1109
1110
1111%if %{with tokudb}
1112# ----------------------------------------------------------------------------
1113%post -n Percona-Server-tokudb%{product_suffix}
1114
1115if [ $1 -eq 1 ] ; then
1116  echo -e "\n\n * This release of Percona Server is distributed with TokuDB storage engine."
1117  echo -e " * Run the following script to enable the TokuDB storage engine in Percona Server:\n"
1118  echo -e "\tps_tokudb_admin --enable -u <mysql_admin_user> -p[mysql_admin_pass] [-S <socket>] [-h <host> -P <port>]\n"
1119  echo -e " * See http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_installation.html for more installation details\n"
1120  echo -e " * See http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_intro.html for an introduction to TokuDB\n\n"
1121fi
1122# If upgrade is in question and the server was started before upgrade we need to start it
1123# after upgrading TokuDB package and not before because TokuDB will fail on init
1124%if 0%{?systemd} == 0
1125if [ $1 -eq 2 ]; then
1126	# There are users who deviate from the default file system layout.
1127	# Check local settings to support them.
1128	if [ -x %{_bindir}/my_print_defaults ]
1129	then
1130	  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p' | tail -n 1`
1131	fi
1132	if [ -z "$mysql_datadir" ]
1133	then
1134	  mysql_datadir=%{mysqldatadir}
1135	fi
1136
1137	STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER-LAST
1138
1139	if [ -f $STATUS_FILE ] ; then
1140	  SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
1141	else
1142	  SERVER_TO_START=''
1143	fi
1144
1145	# Was the server running before the upgrade? If so, restart the new one.
1146	if [ "$SERVER_TO_START" = "true" ] ; then
1147	  # Restart in the same way that mysqld will be started normally.
1148	  if [ -x %{_sysconfdir}/init.d/mysql ] ; then
1149	    %{_sysconfdir}/init.d/mysql start
1150	    echo "Giving mysqld 5 seconds to start"
1151	    sleep 5
1152	  fi
1153	fi
1154fi
1155%endif
1156# ----------------------------------------------------------------------------
1157%endif
1158
1159%postun -n Percona-Server-server%{product_suffix}
1160%if 0%{?systemd}
1161%systemd_postun_with_restart mysqld
1162%endif
1163
1164# ----------------------------------------------------------------------
1165# Clean up the BuildRoot after build is done
1166# ----------------------------------------------------------------------
1167%clean
1168[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] \
1169  && rm -rf $RPM_BUILD_ROOT;
1170
1171##############################################################################
1172#  Files section
1173##############################################################################
1174
1175%files -n Percona-Server-selinux%{product_suffix}
1176%dir %attr(755, root, root) %{_datadir}/selinux/packages/percona-server
1177%attr(644, root, root) %{_datadir}/selinux/packages/percona-server/percona-server.pp
1178
1179%files -n Percona-Server-server%{product_suffix}
1180%defattr(-,root,root,0755)
1181
1182%if %{defined license_files_server}
1183%doc %{license_files_server}
1184%endif
1185%doc release/Docs/INFO_SRC
1186%doc release/Docs/INFO_BIN
1187%doc release/support-files/my-*.cnf
1188
1189%doc %attr(644, root, root) %{_infodir}/mysql.info*
1190
1191%doc %attr(644, root, man) %{_mandir}/man1/innochecksum.1*
1192%doc %attr(644, root, man) %{_mandir}/man1/my_print_defaults.1*
1193%doc %attr(644, root, man) %{_mandir}/man1/myisam_ftdump.1*
1194%doc %attr(644, root, man) %{_mandir}/man1/myisamchk.1*
1195%doc %attr(644, root, man) %{_mandir}/man1/myisamlog.1*
1196%doc %attr(644, root, man) %{_mandir}/man1/myisampack.1*
1197%doc %attr(644, root, man) %{_mandir}/man1/mysql_convert_table_format.1*
1198%doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_extensions.1*
1199%doc %attr(644, root, man) %{_mandir}/man1/mysqld_multi.1*
1200%doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1*
1201%doc %attr(644, root, man) %{_mandir}/man1/mysqldumpslow.1*
1202%doc %attr(644, root, man) %{_mandir}/man1/mysql_install_db.1*
1203%doc %attr(644, root, man) %{_mandir}/man1/mysql_secure_installation.1*
1204%doc %attr(644, root, man) %{_mandir}/man1/mysql_setpermission.1*
1205%doc %attr(644, root, man) %{_mandir}/man1/mysql_upgrade.1*
1206%doc %attr(644, root, man) %{_mandir}/man1/mysqlhotcopy.1*
1207%doc %attr(644, root, man) %{_mandir}/man1/mysqlman.1*
1208%doc %attr(644, root, man) %{_mandir}/man1/mysql.server.1*
1209%doc %attr(644, root, man) %{_mandir}/man1/mysql_tzinfo_to_sql.1*
1210%doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1*
1211%doc %attr(644, root, man) %{_mandir}/man1/mysqlbug.1*
1212%doc %attr(644, root, man) %{_mandir}/man1/perror.1*
1213%doc %attr(644, root, man) %{_mandir}/man1/replace.1*
1214%doc %attr(644, root, man) %{_mandir}/man1/resolve_stack_dump.1*
1215%doc %attr(644, root, man) %{_mandir}/man1/resolveip.1*
1216%doc %attr(644, root, man) %{_mandir}/man1/mysql_plugin.1*
1217%doc %attr(644, root, man) %{_mandir}/man8/mysqld.8*
1218
1219%if "%rhel" < "7"
1220%ghost %config(noreplace,missingok) %{_sysconfdir}/my.cnf
1221%endif
1222
1223%attr(755, root, root) %{_bindir}/innochecksum
1224%attr(755, root, root) %{_bindir}/my_print_defaults
1225%attr(755, root, root) %{_bindir}/myisam_ftdump
1226%attr(755, root, root) %{_bindir}/myisamchk
1227%attr(755, root, root) %{_bindir}/myisamlog
1228%attr(755, root, root) %{_bindir}/myisampack
1229%attr(755, root, root) %{_bindir}/mysql_convert_table_format
1230%attr(755, root, root) %{_bindir}/mysql_fix_extensions
1231%attr(755, root, root) %{_bindir}/mysql_install_db
1232%attr(755, root, root) %{_bindir}/mysql_secure_installation
1233%attr(755, root, root) %{_bindir}/mysql_setpermission
1234%attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql
1235%attr(755, root, root) %{_bindir}/mysql_upgrade
1236%attr(755, root, root) %{_bindir}/mysql_plugin
1237%attr(755, root, root) %{_bindir}/mysql_zap
1238%attr(755, root, root) %{_bindir}/mysqlbug
1239%attr(755, root, root) %{_bindir}/mysqld_multi
1240%attr(755, root, root) %{_bindir}/mysqld_safe
1241%attr(755, root, root) %{_bindir}/mysqldumpslow
1242%attr(755, root, root) %{_bindir}/mysqlhotcopy
1243%attr(755, root, root) %{_bindir}/mysqltest
1244%attr(755, root, root) %{_bindir}/perror
1245%attr(755, root, root) %{_bindir}/replace
1246%attr(755, root, root) %{_bindir}/resolve_stack_dump
1247%attr(755, root, root) %{_bindir}/resolveip
1248%if 0%{?systemd}
1249%attr(755, root, root) %{_bindir}/mysql-systemd
1250%endif
1251
1252%attr(755, root, root) %{_sbindir}/mysqld
1253%attr(755, root, root) %{_sbindir}/mysqld-debug
1254%attr(755, root, root) %{_sbindir}/rcmysql
1255%attr(644, root, root) %{_libdir}/mysql/plugin/daemon_example.ini
1256
1257#plugins
1258%attr(755, root, root) %{_libdir}/mysql/plugin/adt_null.so
1259%attr(755, root, root) %{_libdir}/mysql/plugin/auth.so
1260%attr(755, root, root) %{_libdir}/mysql/plugin/auth_socket.so
1261%attr(755, root, root) %{_libdir}/mysql/plugin/auth_test_plugin.so
1262%attr(755, root, root) %{_libdir}/mysql/plugin/innodb_engine.so
1263%attr(755, root, root) %{_libdir}/mysql/plugin/libdaemon_example.so
1264%attr(755, root, root) %{_libdir}/mysql/plugin/libfnv1a_udf.*
1265%attr(755, root, root) %{_libdir}/mysql/plugin/libfnv_udf.*
1266%attr(755, root, root) %{_libdir}/mysql/plugin/libmemcached.so
1267%attr(755, root, root) %{_libdir}/mysql/plugin/libmurmur_udf.*
1268%attr(755, root, root) %{_libdir}/mysql/plugin/mypluglib.so
1269%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_client.so
1270%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_interface.so
1271%attr(755, root, root) %{_libdir}/mysql/plugin/qa_auth_server.so
1272%attr(755, root, root) %{_libdir}/mysql/plugin/semisync_master.so
1273%attr(755, root, root) %{_libdir}/mysql/plugin/semisync_slave.so
1274%attr(755, root, root) %{_libdir}/mysql/plugin/validate_password.so
1275%attr(755, root, root) %{_libdir}/mysql/plugin/auth_pam.so
1276%attr(755, root, root) %{_libdir}/mysql/plugin/auth_pam_compat.so
1277%attr(755, root, root) %{_libdir}/mysql/plugin/dialog.so
1278%attr(755, root, root) %{_libdir}/mysql/plugin/handlersocket.so
1279%attr(755, root, root) %{_libdir}/mysql/plugin/query_response_time.so
1280%attr(755, root, root) %{_libdir}/mysql/plugin/mysql_no_login.so
1281%attr(755, root, root) %{_libdir}/mysql/plugin/test_udf_services.so
1282%attr(755, root, root) %{_libdir}/mysql/plugin/connection_control.so
1283%attr(755, root, root) %{_libdir}/mysql/plugin/udf_example.so
1284%attr(755, root, root) %{_libdir}/mysql/plugin/ha_example.so
1285# %attr(755, root, root) %{_libdir}/mysql/plugin/debug/*.so*
1286%attr(755, root, root) %{_libdir}/mysql/plugin/debug/ha_example.so
1287%attr(755, root, root) %{_libdir}/mysql/plugin/debug/adt_null.so
1288%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth.so
1289%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_pam.so
1290%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_pam_compat.so
1291%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_socket.so
1292%attr(755, root, root) %{_libdir}/mysql/plugin/debug/auth_test_plugin.so
1293%attr(755, root, root) %{_libdir}/mysql/plugin/debug/dialog.so
1294%attr(755, root, root) %{_libdir}/mysql/plugin/debug/innodb_engine.so
1295%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libdaemon_example.so
1296%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libfnv1a_udf.*
1297%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libfnv_udf.*
1298%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libmemcached.so
1299%attr(755, root, root) %{_libdir}/mysql/plugin/debug/libmurmur_udf.*
1300%attr(755, root, root) %{_libdir}/mysql/plugin/debug/mypluglib.so
1301%attr(755, root, root) %{_libdir}/mysql/plugin/debug/qa_auth_client.so
1302%attr(755, root, root) %{_libdir}/mysql/plugin/debug/qa_auth_interface.so
1303%attr(755, root, root) %{_libdir}/mysql/plugin/debug/qa_auth_server.so
1304%attr(755, root, root) %{_libdir}/mysql/plugin/debug/semisync_master.so
1305%attr(755, root, root) %{_libdir}/mysql/plugin/debug/semisync_slave.so
1306%attr(755, root, root) %{_libdir}/mysql/plugin/debug/validate_password.so
1307%attr(755, root, root) %{_libdir}/mysql/plugin/debug/handlersocket.so
1308%attr(755, root, root) %{_libdir}/mysql/plugin/debug/query_response_time.so
1309%attr(755, root, root) %{_libdir}/mysql/plugin/debug/mysql_no_login.so
1310%attr(755, root, root) %{_libdir}/mysql/plugin/debug/test_udf_services.so
1311%attr(755, root, root) %{_libdir}/mysql/plugin/debug/connection_control.so
1312%attr(755, root, root) %{_libdir}/mysql/plugin/debug/udf_example.so
1313
1314# Audit Log and Scalability Metrics files
1315%attr(755, root, root) %{_libdir}/mysql/plugin/audit_log.so
1316%attr(755, root, root) %{_libdir}/mysql/plugin/debug/audit_log.so
1317%attr(755, root, root) %{_libdir}/mysql/plugin/debug/scalability_metrics.so
1318%attr(755, root, root) %{_libdir}/mysql/plugin/scalability_metrics.so
1319
1320%attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql
1321%if 0%{?systemd}
1322%attr(755, root, root) %{_bindir}/mysql-systemd
1323%attr(644, root, root) %{_unitdir}/mysqld.service
1324%attr(644, root, root) %{_tmpfilesdir}/mysql.conf
1325%else
1326%attr(755, root, root) %{_sysconfdir}/init.d/mysql
1327%endif
1328
1329# %attr(755, root, root) %{_datadir}/percona-server/
1330%attr(755, root, root) %{_datadir}/percona-server/binary-configure
1331%attr(755, root, root) %{_datadir}/percona-server/bulgarian
1332%attr(755, root, root) %{_datadir}/percona-server/charsets
1333%attr(755, root, root) %{_datadir}/percona-server/czech
1334%attr(755, root, root) %{_datadir}/percona-server/danish
1335%attr(755, root, root) %{_datadir}/percona-server/dictionary.txt
1336%attr(755, root, root) %{_datadir}/percona-server/dutch
1337%attr(755, root, root) %{_datadir}/percona-server/english
1338%attr(755, root, root) %{_datadir}/percona-server/errmsg-utf8.txt
1339%attr(755, root, root) %{_datadir}/percona-server/estonian
1340%attr(755, root, root) %{_datadir}/percona-server/fill_help_tables.sql
1341%attr(755, root, root) %{_datadir}/percona-server/french
1342%attr(755, root, root) %{_datadir}/percona-server/german
1343%attr(755, root, root) %{_datadir}/percona-server/greek
1344%attr(755, root, root) %{_datadir}/percona-server/hungarian
1345%attr(755, root, root) %{_datadir}/percona-server/innodb_memcached_config.sql
1346%attr(755, root, root) %{_datadir}/percona-server/italian
1347%attr(755, root, root) %{_datadir}/percona-server/japanese
1348%attr(755, root, root) %{_datadir}/percona-server/korean
1349%attr(755, root, root) %{_datadir}/percona-server/magic
1350%attr(755, root, root) %{_datadir}/percona-server/my-default.cnf
1351%attr(755, root, root) %{_datadir}/percona-server/mysqld_multi.server
1352%attr(755, root, root) %{_datadir}/percona-server/mysql-log-rotate
1353%attr(755, root, root) %{_datadir}/percona-server/mysql_security_commands.sql
1354%attr(755, root, root) %{_datadir}/percona-server/mysql.server
1355%attr(755, root, root) %{_datadir}/percona-server/mysql_system_tables_data.sql
1356%attr(755, root, root) %{_datadir}/percona-server/mysql_system_tables.sql
1357%attr(755, root, root) %{_datadir}/percona-server/mysql_test_data_timezone.sql
1358%attr(755, root, root) %{_datadir}/percona-server/norwegian
1359%attr(755, root, root) %{_datadir}/percona-server/norwegian-ny
1360%attr(755, root, root) %{_datadir}/percona-server/polish
1361%attr(755, root, root) %{_datadir}/percona-server/portuguese
1362%attr(755, root, root) %{_datadir}/percona-server/romanian
1363%attr(755, root, root) %{_datadir}/percona-server/russian
1364%attr(755, root, root) %{_datadir}/percona-server/SELinux
1365%attr(755, root, root) %{_datadir}/percona-server/serbian
1366%attr(755, root, root) %{_datadir}/percona-server/slovak
1367%attr(755, root, root) %{_datadir}/percona-server/spanish
1368%attr(755, root, root) %{_datadir}/percona-server/swedish
1369%attr(755, root, root) %{_datadir}/percona-server/ukrainian
1370%dir %attr(750, mysql, mysql) /var/lib/mysql-files
1371
1372# ----------------------------------------------------------------------------
1373%files -n Percona-Server-client%{product_suffix}
1374
1375%defattr(-, root, root, 0755)
1376%attr(755, root, root) %{_bindir}/msql2mysql
1377%attr(755, root, root) %{_bindir}/mysql
1378%attr(755, root, root) %{_bindir}/mysql_find_rows
1379%attr(755, root, root) %{_bindir}/mysql_waitpid
1380%attr(755, root, root) %{_bindir}/mysqlaccess
1381# XXX: This should be moved to %{_sysconfdir}
1382%attr(644, root, root) %{_bindir}/mysqlaccess.conf
1383%attr(755, root, root) %{_bindir}/mysqladmin
1384%attr(755, root, root) %{_bindir}/mysqlbinlog
1385%attr(755, root, root) %{_bindir}/mysqlcheck
1386%attr(755, root, root) %{_bindir}/mysqldump
1387%attr(755, root, root) %{_bindir}/mysqlimport
1388%attr(755, root, root) %{_bindir}/mysqlshow
1389%attr(755, root, root) %{_bindir}/mysqlslap
1390%attr(755, root, root) %{_bindir}/mysql_config_editor
1391
1392%doc %attr(644, root, man) %{_mandir}/man1/msql2mysql.1*
1393%doc %attr(644, root, man) %{_mandir}/man1/mysql.1*
1394%doc %attr(644, root, man) %{_mandir}/man1/mysql_find_rows.1*
1395%doc %attr(644, root, man) %{_mandir}/man1/mysql_waitpid.1*
1396%doc %attr(644, root, man) %{_mandir}/man1/mysqlaccess.1*
1397%doc %attr(644, root, man) %{_mandir}/man1/mysqladmin.1*
1398%doc %attr(644, root, man) %{_mandir}/man1/mysqlbinlog.1*
1399%doc %attr(644, root, man) %{_mandir}/man1/mysqlcheck.1*
1400%doc %attr(644, root, man) %{_mandir}/man1/mysqldump.1*
1401%doc %attr(644, root, man) %{_mandir}/man1/mysqlimport.1*
1402%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1*
1403%doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1*
1404%doc %attr(644, root, man) %{_mandir}/man1/mysql_config_editor.1*
1405
1406# ----------------------------------------------------------------------------
1407%files -n Percona-Server-devel%{product_suffix} -f optional-files-devel
1408%defattr(-, root, root, 0755)
1409%doc %attr(644, root, man) %{_mandir}/man1/comp_err.1*
1410%doc %attr(644, root, man) %{_mandir}/man1/mysql_config.1*
1411%attr(755, root, root) %{_bindir}/mysql_config
1412%dir %attr(755, root, root) %{_includedir}/mysql
1413%dir %attr(755, root, root) %{_libdir}/mysql
1414%{_includedir}/mysql/*
1415%{_datadir}/aclocal/mysql.m4
1416%{_libdir}/mysql/%{shared_lib_pri_name}.a
1417%{_libdir}/mysql/%{shared_lib_pri_name}_r.a
1418%{_libdir}/mysql/libmysqlservices.a
1419%{_libdir}/%{shared_lib_pri_name}.so
1420%{_libdir}/%{shared_lib_pri_name}_r.so
1421
1422%post -n Percona-Server-devel%{product_suffix}
1423# For compatibility after reverting name to libmysql
1424for lib in %{shared_lib_sec_name}{.a,_r.a}; do
1425if [ ! -f %{_libdir}/mysql/$lib ]; then
1426	ln -s %{shared_lib_pri_name}.a %{_libdir}/mysql/$lib;
1427fi
1428done
1429
1430%postun -n Percona-Server-devel%{product_suffix}
1431# Cleanup of symlinks after uninstall
1432for lib in %{shared_lib_sec_name}{.a,_r.a}; do
1433if [ -h %{_libdir}/mysql/$lib ]; then
1434	rm -f %{_libdir}/mysql/$lib;
1435fi
1436done
1437
1438# ----------------------------------------------------------------------------
1439%if %{with tokudb}
1440%files -n Percona-Server-tokudb%{product_suffix}
1441%attr(-, root, root)
1442%{_bindir}/tokuftdump
1443%{_libdir}/mysql/plugin/ha_tokudb.so
1444%attr(755, root, root) %{_libdir}/mysql/plugin/debug/ha_tokudb.so
1445%attr(755, root, root) %{_bindir}/ps_tokudb_admin
1446%attr(755, root, root) %{_bindir}/tokuft_logprint
1447%attr(755, root, root) %{_libdir}/mysql/plugin/tokudb_backup.so
1448%attr(755, root, root) %{_libdir}/mysql/plugin/debug/tokudb_backup.so
1449%attr(755, root, root) %{_libdir}/libHotBackup.so
1450%{_includedir}/backup.h
1451%doc storage/tokudb/PerconaFT/README.md
1452%doc storage/tokudb/PerconaFT/COPYING.AGPLv3
1453%doc storage/tokudb/PerconaFT/COPYING.GPLv2
1454%doc storage/tokudb/PerconaFT/PATENTS
1455%endif
1456
1457# ----------------------------------------------------------------------------
1458%files -n Percona-Server-shared%{product_suffix}
1459%defattr(-, root, root, 0755)
1460# Shared libraries (omit for architectures that don't support them)
1461%{_libdir}/%{shared_lib_pri_name}*.so.*
1462
1463%if "%rhel" > "6"
1464%attr(644, root, root) %config(noreplace) %{_sysconfdir}/my.cnf
1465%endif
1466
1467%post -n Percona-Server-shared%{product_suffix}
1468%if "%rhel" > "6"
1469# Added for compatibility
1470for lib in %{shared_lib_pri_name}{.so.18,_r.so.18}; do
1471    if [ ! -f %{_libdir}/$lib ]; then
1472        ln -s %{shared_lib_pri_name}.so.18.1.0 %{_libdir}/$lib
1473    fi
1474done
1475%endif
1476# For compatibility between different names of library
1477for lib in %{shared_lib_sec_name}{.so.18.0.0,.so.18,_r.so.18.0.0,_r.so.18,.so,_r.so}; do
1478if [ ! -f %{_libdir}/$lib ]; then
1479        ln -s %{shared_lib_pri_name}.so.18 %{_libdir}/$lib;
1480fi
1481done
1482for lib in %{shared_lib_sec_name}{.so.18.1.0,_r.so.18.1.0}; do
1483if [ ! -f %{_libdir}/$lib ]; then
1484        ln -s %{shared_lib_pri_name}.so.18.1.0 %{_libdir}/$lib;
1485fi
1486done
1487
1488/sbin/ldconfig
1489
1490%postun -n Percona-Server-shared%{product_suffix}
1491# Cleanup of symlinks after uninstall
1492for lib in %{shared_lib_sec_name}{.so.18.0.0,.so.18,_r.so.18.0.0,_r.so.18,.so,_r.so,.so.18.1.0,_r.so.18.1.0}; do
1493if [ -h %{_libdir}/$lib ]; then
1494	rm -f %{_libdir}/$lib;
1495fi
1496done
1497%if "%rhel" > "6"
1498for lib in %{shared_lib_pri_name}{.so.18,_r.so.18}; do
1499if [ -h %{_libdir}/$lib ]; then
1500	rm -f %{_libdir}/$lib;
1501fi
1502done
1503%endif
1504/sbin/ldconfig
1505
1506# ----------------------------------------------------------------------------
1507%files -n Percona-Server-test%{product_suffix}
1508%defattr(-, root, root, 0755)
1509%attr(-, root, root) %{_datadir}/mysql-test
1510%attr(755, root, root) %{_bindir}/mysql_client_test
1511#%attr(755, root, root) %{_bindir}/mysql_client_test_embedded
1512#%attr(755, root, root) %{_bindir}/mysqltest_embedded
1513
1514%changelog
1515* Thu Sep  1 2016 Evgeniy Patlan <evgeniy.patlan@percona.com>
1516- fix license field
1517
1518* Thu Mar 03 2016 Tomislav Plavcic <tomislav.plavcic@percona.com>
1519
1520- Fixed systemctl start mysqld fails with timeout if
1521  custom path for socket specified (#1534825)
1522
1523* Tue Nov 24 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1524
1525- Added dependency on numactl-devel
1526
1527* Tue Nov 03 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1528
1529- Fixed yum update fails and complains about duplicate pid (#1454917)
1530- Percona Server fails to install on centos 7 if mariadb-devel package installed (#1499721)
1531
1532* Thu Sep 10 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1533
1534- Included Percona-TokuBackup into TokuDB package
1535
1536* Wed Jul 15 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1537
1538- Fixed symbol versioning for rhel7 in 5.6 rpm (bug1420691)
1539
1540* Wed May 06 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1541
1542- mysql client is now built with readline (bug1266386)
1543
1544* Fri Feb 27 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1545
1546- Fixed RPMs assumes that .pid file is located in datadir (bug1201896)
1547- Fixed errors in debug build when maintainer mode is on (bug1408232)
1548
1549* Wed Feb 04 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1550
1551- Added ps_tokudb_admin script for TokuDB plugin installation (BLD-212)
1552- Fixed TokuDB engine fails after upgrade on centos 5/6 (bug1413956)
1553
1554* Fri Jan 09 2015 Tomislav Plavcic <tomislav.plavcic@percona.com>
1555
1556- Upgrading a running server does not restart the service (bug1311840)
1557- Set MYSQL_MAINTAINER_MODE=OFF for debug build (bug1408232)
1558
1559* Thu Nov 20 2014 Tomislav Plavcic <tomislav.plavcic@percona.com>
1560
1561- Fixed debug symbols on rhel5 (bug 1388972)
1562
1563* Tue Aug 26 2014 Tomislav Plavcic <tomislav.plavcic@percona.com>
1564
1565- Added support for centos7
1566
1567* Mon May 26 2014 Tomislav Plavcic <tomislav.plavcic@percona.com>
1568
1569- Added packaging changes regarding TokuDB
1570
1571* Thu Feb 10 2011 Ignacio Nin <ignacio.nin@percona.com>
1572
1573- Removed lines which prevented -debuginfo packages from being built.
1574
1575* Tue Nov 23 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
1576
1577- EXCEPTIONS-CLIENT has been deleted, remove it from here too
1578- Support MYSQL_BUILD_MAKE_JFLAG environment variable for passing
1579  a '-j' argument to make.
1580
1581* Mon Nov 1 2010 Georgi Kodinov <georgi.godinov@oracle.com>
1582
1583- Added test authentication (WL#1054) plugin binaries
1584
1585* Wed Oct 6 2010 Georgi Kodinov <georgi.godinov@oracle.com>
1586
1587- Added example external authentication (WL#1054) plugin binaries
1588
1589* Wed Aug 11 2010 Joerg Bruehe <joerg.bruehe@oracle.com>
1590
1591- With a recent spec file cleanup, names have changed: A "-community" part was dropped.
1592  Reflect that in the "Obsoletes" specifications.
1593- Add a "triggerpostun" to handle the uninstall of the "-community" server RPM.
1594- This fixes bug#55015 "MySQL server is not restarted properly after RPM upgrade".
1595
1596* Tue Jun 15 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1597
1598- Change the behaviour on installation and upgrade:
1599  On installation, do not autostart the server.
1600  *Iff* the server was stopped before the upgrade is started, this is taken as a
1601  sign the administrator is handling that manually, and so the new server will
1602  not be started automatically at the end of the upgrade.
1603  The start/stop scripts will still be installed, so the server will be started
1604  on the next machine boot.
1605  This is the 5.5 version of fixing bug#27072 (RPM autostarting the server).
1606
1607* Tue Jun 1 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
1608
1609- Implement SELinux checks from distribution-specific spec file.
1610
1611* Wed May 12 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
1612
1613- Large number of changes to build using CMake
1614- Introduce distribution-specific RPMs
1615- Drop debuginfo, build all binaries with debug/symbols
1616- Remove __os_install_post, use native macro
1617- Remove _unpackaged_files_terminate_build, make it an error to have
1618  unpackaged files
1619- Remove cluster RPMs
1620
1621* Wed Mar 24 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1622
1623- Add "--with-perfschema" to the configure options.
1624
1625* Mon Mar 22 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1626
1627- User "usr/lib*" to allow for both "usr/lib" and "usr/lib64",
1628  mask "rmdir" return code 1.
1629- Remove "ha_example.*" files from the list, they aren't built.
1630
1631* Wed Mar 17 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1632
1633- Fix a wrong path name in handling the debug plugins.
1634
1635* Wed Mar 10 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1636
1637- Take the result of the debug plugin build and put it into the optimized tree,
1638  so that it becomes part of the final installation;
1639  include the files in the packlist. Part of the fixes for bug#49022.
1640
1641* Mon Mar 01 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1642
1643- Set "Oracle and/or its affiliates" as the vendor and copyright owner,
1644  accept upgrading from packages showing MySQL or Sun as vendor.
1645
1646* Fri Feb 12 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1647
1648- Formatting changes:
1649  Have a consistent structure of separator lines and of indentation
1650  (8 leading blanks => tab).
1651- Introduce the variable "src_dir".
1652- Give the environment variables "MYSQL_BUILD_CC(CXX)" precedence
1653  over "CC" ("CXX").
1654- Drop the old "with_static" argument analysis, this is not supported
1655  in 5.1 since ages.
1656- Introduce variables to control the handlers individually, as well
1657  as other options.
1658- Use the new "--with-plugin" notation for the table handlers.
1659- Drop handling "/etc/rc.d/init.d/mysql", the switch to "/etc/init.d/mysql"
1660  was done back in 2002 already.
1661- Make "--with-zlib-dir=bundled" the default, add an option to disable it.
1662- Add missing manual pages to the file list.
1663- Improve the runtime check for "libgcc.a", protect it against being tried
1664  with the Intel compiler "icc".
1665
1666* Mon Jan 11 2010 Joerg Bruehe <joerg.bruehe@sun.com>
1667
1668- Change RPM file naming:
1669  - Suffix like "-m2", "-rc" becomes part of version as "_m2", "_rc".
1670  - Release counts from 1, not 0.
1671
1672* Wed Dec 23 2009 Joerg Bruehe <joerg.bruehe@sun.com>
1673
1674- The "semisync" plugin file name has lost its introductory "lib",
1675  adapt the file lists for the subpackages.
1676  This is a part missing from the fix for bug#48351.
1677- Remove the "fix_privilege_tables" manual, it does not exist in 5.5
1678  (and likely, the whole script will go, too).
1679
1680* Mon Nov 16 2009 Joerg Bruehe <joerg.bruehe@sun.com>
1681
1682- remove erroneous traces of the InnoDB plugin (that is 5.1 only).
1683
1684* Fri Oct 06 2009 Magnus Blaudd <mvensson@mysql.com>
1685
1686- Removed mysql_fix_privilege_tables
1687
1688* Fri Oct 02 2009 Alexander Nozdrin <alexander.nozdrin@sun.com>
1689
1690- "mysqlmanager" got removed from version 5.4, all references deleted.
1691
1692* Fri Aug 28 2009 Joerg Bruehe <joerg.bruehe@sun.com>
1693
1694- Merge up from 5.1 to 5.4: Remove handling for the InnoDB plugin.
1695
1696* Thu Aug 27 2009 Joerg Bruehe <joerg.bruehe@sun.com>
1697
1698- This version does not contain the "Instance manager", "mysqlmanager":
1699  Remove it from the spec file so that packaging succeeds.
1700
1701* Mon Aug 24 2009 Jonathan Perkin <jperkin@sun.com>
1702
1703- Add conditionals for bundled zlib and innodb plugin
1704
1705* Fri Aug 21 2009 Jonathan Perkin <jperkin@sun.com>
1706
1707- Install plugin libraries in appropriate packages.
1708- Disable libdaemon_example and ftexample plugins.
1709
1710* Thu Aug 20 2009 Jonathan Perkin <jperkin@sun.com>
1711
1712- Update variable used for mysql-test suite location to match source.
1713
1714* Fri Nov 07 2008 Joerg Bruehe <joerg@mysql.com>
1715
1716- Correct yesterday's fix, so that it also works for the last flag,
1717  and fix a wrong quoting: un-quoted quote marks must not be escaped.
1718
1719* Thu Nov 06 2008 Kent Boortz <kent.boortz@sun.com>
1720
1721- Removed "mysql_upgrade_shell"
1722- Removed some copy/paste between debug and normal build
1723
1724* Thu Nov 06 2008 Joerg Bruehe <joerg@mysql.com>
1725
1726- Modify CFLAGS and CXXFLAGS such that a debug build is not optimized.
1727  This should cover both gcc and icc flags.  Fixes bug#40546.
1728
1729* Fri Aug 29 2008 Kent Boortz <kent@mysql.com>
1730
1731- Removed the "Federated" storage engine option, and enabled in all
1732
1733* Tue Aug 26 2008 Joerg Bruehe <joerg@mysql.com>
1734
1735- Get rid of the "warning: Installed (but unpackaged) file(s) found:"
1736  Some generated files aren't needed in RPMs:
1737  - the "sql-bench/" subdirectory
1738  Some files were missing:
1739  - /usr/share/aclocal/mysql.m4  ("devel" subpackage)
1740  - Manual "mysqlbug" ("server" subpackage)
1741  - Program "innochecksum" and its manual ("server" subpackage)
1742  - Manual "mysql_find_rows" ("client" subpackage)
1743  - Script "mysql_upgrade_shell" ("client" subpackage)
1744  - Program "ndb_cpcd" and its manual ("ndb-extra" subpackage)
1745  - Manuals "ndb_mgm" + "ndb_restore" ("ndb-tools" subpackage)
1746
1747* Mon Mar 31 2008 Kent Boortz <kent@mysql.com>
1748
1749- Made the "Federated" storage engine an option
1750- Made the "Cluster" storage engine and sub packages an option
1751
1752* Wed Mar 19 2008 Joerg Bruehe <joerg@mysql.com>
1753
1754- Add the man pages for "ndbd" and "ndb_mgmd".
1755
1756* Mon Feb 18 2008 Timothy Smith <tim@mysql.com>
1757
1758- Require a manual upgrade if the alread-installed mysql-server is
1759  from another vendor, or is of a different major version.
1760
1761* Wed May 02 2007 Joerg Bruehe <joerg@mysql.com>
1762
1763- "ndb_size.tmpl" is not needed any more,
1764  "man1/mysql_install_db.1" lacked the trailing '*'.
1765
1766* Sat Apr 07 2007 Kent Boortz <kent@mysql.com>
1767
1768- Removed man page for "mysql_create_system_tables"
1769
1770* Wed Mar 21 2007 Daniel Fischer <df@mysql.com>
1771
1772- Add debug server.
1773
1774* Mon Mar 19 2007 Daniel Fischer <df@mysql.com>
1775
1776- Remove Max RPMs; the server RPMs contain a mysqld compiled with all
1777  features that previously only were built into Max.
1778
1779* Fri Mar 02 2007 Joerg Bruehe <joerg@mysql.com>
1780
1781- Add several man pages for NDB which are now created.
1782
1783* Fri Jan 05 2007 Kent Boortz <kent@mysql.com>
1784
1785- Put back "libmygcc.a", found no real reason it was removed.
1786
1787- Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
1788  correct "libgcc.a" path is returned for the 32/64 bit architecture.
1789
1790* Mon Dec 18 2006 Joerg Bruehe <joerg@mysql.com>
1791
1792- Fix the move of "mysqlmanager" to section 8: Directory name was wrong.
1793
1794* Thu Dec 14 2006 Joerg Bruehe <joerg@mysql.com>
1795
1796- Include the new man pages for "my_print_defaults" and "mysql_tzinfo_to_sql"
1797  in the server RPM.
1798- The "mysqlmanager" man page got moved from section 1 to 8.
1799
1800* Thu Nov 30 2006 Joerg Bruehe <joerg@mysql.com>
1801
1802- Call "make install" using "benchdir_root=%{_datadir}",
1803  because that is affecting the regression test suite as well.
1804
1805* Thu Nov 16 2006 Joerg Bruehe <joerg@mysql.com>
1806
1807- Explicitly note that the "MySQL-shared" RPMs (as built by MySQL AB)
1808  replace "mysql-shared" (as distributed by SuSE) to allow easy upgrading
1809  (bug#22081).
1810
1811* Mon Nov 13 2006 Joerg Bruehe <joerg@mysql.com>
1812
1813- Add "--with-partition" to all server builds.
1814
1815- Use "--report-features" in one test run per server build.
1816
1817* Tue Aug 15 2006 Joerg Bruehe <joerg@mysql.com>
1818
1819- The "max" server is removed from packages, effective from 5.1.12-beta.
1820  Delete all steps to build, package, or install it.
1821
1822* Mon Jul 10 2006 Joerg Bruehe <joerg@mysql.com>
1823
1824- Fix a typing error in the "make" target for the Perl script to run the tests.
1825
1826* Tue Jul 04 2006 Joerg Bruehe <joerg@mysql.com>
1827
1828- Use the Perl script to run the tests, because it will automatically check
1829  whether the server is configured with SSL.
1830
1831* Tue Jun 27 2006 Joerg Bruehe <joerg@mysql.com>
1832
1833- move "mysqldumpslow" from the client RPM to the server RPM (bug#20216)
1834
1835- Revert all previous attempts to call "mysql_upgrade" during RPM upgrade,
1836  there are some more aspects which need to be solved before this is possible.
1837  For now, just ensure the binary "mysql_upgrade" is delivered and installed.
1838
1839* Thu Jun 22 2006 Joerg Bruehe <joerg@mysql.com>
1840
1841- Close a gap of the previous version by explicitly using
1842  a newly created temporary directory for the socket to be used
1843  in the "mysql_upgrade" operation, overriding any local setting.
1844
1845* Tue Jun 20 2006 Joerg Bruehe <joerg@mysql.com>
1846
1847- To run "mysql_upgrade", we need a running server;
1848  start it in isolation and skip password checks.
1849
1850* Sat May 20 2006 Kent Boortz <kent@mysql.com>
1851
1852- Always compile for PIC, position independent code.
1853
1854* Wed May 10 2006 Kent Boortz <kent@mysql.com>
1855
1856- Use character set "all" when compiling with Cluster, to make Cluster
1857  nodes independent on the character set directory, and the problem
1858  that two RPM sub packages both wants to install this directory.
1859
1860* Mon May 01 2006 Kent Boortz <kent@mysql.com>
1861
1862- Use "./libtool --mode=execute" instead of searching for the
1863  executable in current directory and ".libs".
1864
1865* Fri Apr 28 2006 Kent Boortz <kent@mysql.com>
1866
1867- Install and run "mysql_upgrade"
1868
1869* Wed Apr 12 2006 Jim Winstead <jimw@mysql.com>
1870
1871- Remove sql-bench, and MySQL-bench RPM (will be built as an independent
1872  project from the mysql-bench repository)
1873
1874* Tue Apr 11 2006 Jim Winstead <jimw@mysql.com>
1875
1876- Remove old mysqltestmanager and related programs
1877* Sat Apr 01 2006 Kent Boortz <kent@mysql.com>
1878
1879- Set $LDFLAGS from $MYSQL_BUILD_LDFLAGS
1880
1881* Wed Mar 07 2006 Kent Boortz <kent@mysql.com>
1882
1883- Changed product name from "Community Edition" to "Community Server"
1884
1885* Mon Mar 06 2006 Kent Boortz <kent@mysql.com>
1886
1887- Fast mutexes is now disabled by default, but should be
1888  used in Linux builds.
1889
1890* Mon Feb 20 2006 Kent Boortz <kent@mysql.com>
1891
1892- Reintroduced a max build
1893- Limited testing of 'debug' and 'max' servers
1894- Berkeley DB only in 'max'
1895
1896* Mon Feb 13 2006 Joerg Bruehe <joerg@mysql.com>
1897
1898- Use "-i" on "make test-force";
1899  this is essential for later evaluation of this log file.
1900
1901* Thu Feb 09 2006 Kent Boortz <kent@mysql.com>
1902
1903- Pass '-static' to libtool, link static with our own libraries, dynamic
1904  with system libraries.  Link with the bundled zlib.
1905
1906* Wed Feb 08 2006 Kristian Nielsen <knielsen@mysql.com>
1907
1908- Modified RPM spec to match new 5.1 debug+max combined community packaging.
1909
1910* Sun Dec 18 2005 Kent Boortz <kent@mysql.com>
1911
1912- Added "client/mysqlslap"
1913
1914* Mon Dec 12 2005 Rodrigo Novo <rodrigo@mysql.com>
1915
1916- Added zlib to the list of (static) libraries installed
1917- Added check against libtool wierdness (WRT: sql/mysqld || sql/.libs/mysqld)
1918- Compile MySQL with bundled zlib
1919- Fixed %packager name to "MySQL Production Engineering Team"
1920
1921* Mon Dec 05 2005 Joerg Bruehe <joerg@mysql.com>
1922
1923- Avoid using the "bundled" zlib on "shared" builds:
1924  As it is not installed (on the build system), this gives dependency
1925  problems with "libtool" causing the build to fail.
1926  (Change was done on Nov 11, but left uncommented.)
1927
1928* Tue Nov 22 2005 Joerg Bruehe <joerg@mysql.com>
1929
1930- Extend the file existence check for "init.d/mysql" on un-install
1931  to also guard the call to "insserv"/"chkconfig".
1932
1933* Thu Oct 27 2005 Lenz Grimmer <lenz@grimmer.com>
1934
1935- added more man pages
1936
1937* Wed Oct 19 2005 Kent Boortz <kent@mysql.com>
1938
1939- Made yaSSL support an option (off by default)
1940
1941* Wed Oct 19 2005 Kent Boortz <kent@mysql.com>
1942
1943- Enabled yaSSL support
1944
1945* Sat Oct 15 2005 Kent Boortz <kent@mysql.com>
1946
1947- Give mode arguments the same way in all places
1948- Moved copy of mysqld.a to "standard" build, but
1949  disabled it as we don't do embedded yet in 5.0
1950
1951* Fri Oct 14 2005 Kent Boortz <kent@mysql.com>
1952
1953- For 5.x, always compile with --with-big-tables
1954- Copy the config.log file to location outside
1955  the build tree
1956
1957* Fri Oct 14 2005 Kent Boortz <kent@mysql.com>
1958
1959- Removed unneeded/obsolete configure options
1960- Added archive engine to standard server
1961- Removed the embedded server from experimental server
1962- Changed suffix "-Max" => "-max"
1963- Changed comment string "Max" => "Experimental"
1964
1965* Thu Oct 13 2005 Lenz Grimmer <lenz@mysql.com>
1966
1967- added a usermod call to assign a potential existing mysql user to the
1968  correct user group (BUG#12823)
1969- Save the perror binary built during Max build so it supports the NDB
1970  error codes (BUG#13740)
1971- added a separate macro "mysqld_group" to be able to define the
1972  user group of the mysql user seperately, if desired.
1973
1974* Thu Sep 29 2005 Lenz Grimmer <lenz@mysql.com>
1975
1976- fixed the removing of the RPM_BUILD_ROOT in the %clean section (the
1977  $RBR variable did not get expanded, thus leaving old build roots behind)
1978
1979* Thu Aug 04 2005 Lenz Grimmer <lenz@mysql.com>
1980
1981- Fixed the creation of the mysql user group account in the postinstall
1982  section (BUG 12348)
1983- Fixed enabling the Archive storage engine in the Max binary
1984
1985* Tue Aug 02 2005 Lenz Grimmer <lenz@mysql.com>
1986
1987- Fixed the Requires: tag for the server RPM (BUG 12233)
1988
1989* Fri Jul 15 2005 Lenz Grimmer <lenz@mysql.com>
1990
1991- create a "mysql" user group and assign the mysql user account to that group
1992  in the server postinstall section. (BUG 10984)
1993
1994* Tue Jun 14 2005 Lenz Grimmer <lenz@mysql.com>
1995
1996- Do not build statically on i386 by default, only when adding either "--with
1997  static" or "--define '_with_static 1'" to the RPM build options. Static
1998  linking really only makes sense when linking against the specially patched
1999  glibc 2.2.5.
2000
2001* Mon Jun 06 2005 Lenz Grimmer <lenz@mysql.com>
2002
2003- added mysql_client_test to the "bench" subpackage (BUG 10676)
2004- added the libndbclient static and shared libraries (BUG 10676)
2005
2006* Wed Jun 01 2005 Lenz Grimmer <lenz@mysql.com>
2007
2008- use "mysqldatadir" variable instead of hard-coding the path multiple times
2009- use the "mysqld_user" variable on all occasions a user name is referenced
2010- removed (incomplete) Brazilian translations
2011- removed redundant release tags from the subpackage descriptions
2012
2013* Wed May 25 2005 Joerg Bruehe <joerg@mysql.com>
2014
2015- Added a "make clean" between separate calls to "BuildMySQL".
2016
2017* Thu May 12 2005 Guilhem Bichot <guilhem@mysql.com>
2018
2019- Removed the mysql_tableinfo script made obsolete by the information schema
2020
2021* Wed Apr 20 2005 Lenz Grimmer <lenz@mysql.com>
2022
2023- Enabled the "blackhole" storage engine for the Max RPM
2024
2025* Wed Apr 13 2005 Lenz Grimmer <lenz@mysql.com>
2026
2027- removed the MySQL manual files (html/ps/texi) - they have been removed
2028  from the MySQL sources and are now available seperately.
2029
2030* Mon Apr 4 2005 Petr Chardin <petr@mysql.com>
2031
2032- old mysqlmanager, mysqlmanagerc and mysqlmanager-pwger renamed into
2033  mysqltestmanager, mysqltestmanager and mysqltestmanager-pwgen respectively
2034
2035* Fri Mar 18 2005 Lenz Grimmer <lenz@mysql.com>
2036
2037- Disabled RAID in the Max binaries once and for all (it has finally been
2038  removed from the source tree)
2039
2040* Sun Feb 20 2005 Petr Chardin <petr@mysql.com>
2041
2042- Install MySQL Instance Manager together with mysqld, touch mysqlmanager
2043  password file
2044
2045* Mon Feb 14 2005 Lenz Grimmer <lenz@mysql.com>
2046
2047- Fixed the compilation comments and moved them into the separate build sections
2048  for Max and Standard
2049
2050* Mon Feb 7 2005 Tomas Ulin <tomas@mysql.com>
2051
2052- enabled the "Ndbcluster" storage engine for the max binary
2053- added extra make install in ndb subdir after Max build to get ndb binaries
2054- added packages for ndbcluster storage engine
2055
2056* Fri Jan 14 2005 Lenz Grimmer <lenz@mysql.com>
2057
2058- replaced obsoleted "BuildPrereq" with "BuildRequires" instead
2059
2060* Thu Jan 13 2005 Lenz Grimmer <lenz@mysql.com>
2061
2062- enabled the "Federated" storage engine for the max binary
2063
2064* Tue Jan 04 2005 Petr Chardin <petr@mysql.com>
2065
2066- ISAM and merge storage engines were purged. As well as appropriate
2067  tools and manpages (isamchk and isamlog)
2068
2069* Thu Dec 31 2004 Lenz Grimmer <lenz@mysql.com>
2070
2071- enabled the "Archive" storage engine for the max binary
2072- enabled the "CSV" storage engine for the max binary
2073- enabled the "Example" storage engine for the max binary
2074
2075* Thu Aug 26 2004 Lenz Grimmer <lenz@mysql.com>
2076
2077- MySQL-Max now requires MySQL-server instead of MySQL (BUG 3860)
2078
2079* Fri Aug 20 2004 Lenz Grimmer <lenz@mysql.com>
2080
2081- do not link statically on IA64/AMD64 as these systems do not have
2082  a patched glibc installed
2083
2084* Tue Aug 10 2004 Lenz Grimmer <lenz@mysql.com>
2085
2086- Added libmygcc.a to the devel subpackage (required to link applications
2087  against the the embedded server libmysqld.a) (BUG 4921)
2088
2089* Mon Aug 09 2004 Lenz Grimmer <lenz@mysql.com>
2090
2091- Added EXCEPTIONS-CLIENT to the "devel" package
2092
2093* Thu Jul 29 2004 Lenz Grimmer <lenz@mysql.com>
2094
2095- disabled OpenSSL in the Max binaries again (the RPM packages were the
2096  only exception to this anyway) (BUG 1043)
2097
2098* Wed Jun 30 2004 Lenz Grimmer <lenz@mysql.com>
2099
2100- fixed server postinstall (mysql_install_db was called with the wrong
2101  parameter)
2102
2103* Thu Jun 24 2004 Lenz Grimmer <lenz@mysql.com>
2104
2105- added mysql_tzinfo_to_sql to the server subpackage
2106- run "make clean" instead of "make distclean"
2107
2108* Mon Apr 05 2004 Lenz Grimmer <lenz@mysql.com>
2109
2110- added ncurses-devel to the build prerequisites (BUG 3377)
2111
2112* Thu Feb 12 2004 Lenz Grimmer <lenz@mysql.com>
2113
2114- when using gcc, _always_ use CXX=gcc
2115- replaced Copyright with License field (Copyright is obsolete)
2116
2117* Tue Feb 03 2004 Lenz Grimmer <lenz@mysql.com>
2118
2119- added myisam_ftdump to the Server package
2120
2121* Tue Jan 13 2004 Lenz Grimmer <lenz@mysql.com>
2122
2123- link the mysql client against libreadline instead of libedit (BUG 2289)
2124
2125* Mon Dec 22 2003 Lenz Grimmer <lenz@mysql.com>
2126
2127- marked /etc/logrotate.d/mysql as a config file (BUG 2156)
2128
2129* Fri Dec 13 2003 Lenz Grimmer <lenz@mysql.com>
2130
2131- fixed file permissions (BUG 1672)
2132
2133* Thu Dec 11 2003 Lenz Grimmer <lenz@mysql.com>
2134
2135- made testing for gcc3 a bit more robust
2136
2137* Fri Dec 05 2003 Lenz Grimmer <lenz@mysql.com>
2138
2139- added missing file mysql_create_system_tables to the server subpackage
2140
2141* Fri Nov 21 2003 Lenz Grimmer <lenz@mysql.com>
2142
2143- removed dependency on MySQL-client from the MySQL-devel subpackage
2144  as it is not really required. (BUG 1610)
2145
2146* Fri Aug 29 2003 Lenz Grimmer <lenz@mysql.com>
2147
2148- Fixed BUG 1162 (removed macro names from the changelog)
2149- Really fixed BUG 998 (disable the checking for installed but
2150  unpackaged files)
2151
2152* Tue Aug 05 2003 Lenz Grimmer <lenz@mysql.com>
2153
2154- Fixed BUG 959 (libmysqld not being compiled properly)
2155- Fixed BUG 998 (RPM build errors): added missing files to the
2156  distribution (mysql_fix_extensions, mysql_tableinfo, mysqldumpslow,
2157  mysql_fix_privilege_tables.1), removed "-n" from install section.
2158
2159* Wed Jul 09 2003 Lenz Grimmer <lenz@mysql.com>
2160
2161- removed the GIF Icon (file was not included in the sources anyway)
2162- removed unused variable shared_lib_version
2163- do not run automake before building the standard binary
2164  (should not be necessary)
2165- add server suffix '-standard' to standard binary (to be in line
2166  with the binary tarball distributions)
2167- Use more RPM macros (_exec_prefix, _sbindir, _libdir, _sysconfdir,
2168  _datadir, _includedir) throughout the spec file.
2169- allow overriding CC and CXX (required when building with other compilers)
2170
2171* Fri May 16 2003 Lenz Grimmer <lenz@mysql.com>
2172
2173- re-enabled RAID again
2174
2175* Wed Apr 30 2003 Lenz Grimmer <lenz@mysql.com>
2176
2177- disabled MyISAM RAID (--with-raid) - it throws an assertion which
2178  needs to be investigated first.
2179
2180* Mon Mar 10 2003 Lenz Grimmer <lenz@mysql.com>
2181
2182- added missing file mysql_secure_installation to server subpackage
2183  (BUG 141)
2184
2185* Tue Feb 11 2003 Lenz Grimmer <lenz@mysql.com>
2186
2187- re-added missing pre- and post(un)install scripts to server subpackage
2188- added config file /etc/my.cnf to the file list (just for completeness)
2189- make sure to create the datadir with 755 permissions
2190
2191* Mon Jan 27 2003 Lenz Grimmer <lenz@mysql.com>
2192
2193- removed unused CC and CXX variables
2194- CFLAGS and CXXFLAGS should honor RPM_OPT_FLAGS
2195
2196* Fri Jan 24 2003 Lenz Grimmer <lenz@mysql.com>
2197
2198- renamed package "MySQL" to "MySQL-server"
2199- fixed Copyright tag
2200- added mysql_waitpid to client subpackage (required for mysql-test-run)
2201
2202* Wed Nov 27 2002 Lenz Grimmer <lenz@mysql.com>
2203
2204- moved init script from /etc/rc.d/init.d to /etc/init.d (the majority of
2205  Linux distributions now support this scheme as proposed by the LSB either
2206  directly or via a compatibility symlink)
2207- Use new "restart" init script action instead of starting and stopping
2208  separately
2209- Be more flexible in activating the automatic bootup - use insserv (on
2210  older SuSE versions) or chkconfig (Red Hat, newer SuSE versions and
2211  others) to create the respective symlinks
2212
2213* Wed Sep 25 2002 Lenz Grimmer <lenz@mysql.com>
2214
2215- MySQL-Max now requires MySQL >= 4.0 to avoid version mismatches
2216  (mixing 3.23 and 4.0 packages)
2217
2218* Fri Aug 09 2002 Lenz Grimmer <lenz@mysql.com>
2219
2220- Turn off OpenSSL in MySQL-Max for now until it works properly again
2221- enable RAID for the Max binary instead
2222- added compatibility link: safe_mysqld -> mysqld_safe to ease the
2223  transition from 3.23
2224
2225* Thu Jul 18 2002 Lenz Grimmer <lenz@mysql.com>
2226
2227- Reworked the build steps a little bit: the Max binary is supposed
2228  to include OpenSSL, which cannot be linked statically, thus trying
2229  to statically link against a special glibc is futile anyway
2230- because of this, it is not required to make yet another build run
2231  just to compile the shared libs (saves a lot of time)
2232- updated package description of the Max subpackage
2233- clean up the BuildRoot directory afterwards
2234
2235* Mon Jul 15 2002 Lenz Grimmer <lenz@mysql.com>
2236
2237- Updated Packager information
2238- Fixed the build options: the regular package is supposed to
2239  include InnoDB and linked statically, while the Max package
2240  should include BDB and SSL support
2241
2242* Fri May 03 2002 Lenz Grimmer <lenz@mysql.com>
2243
2244- Use more RPM macros (e.g. infodir, mandir) to make the spec
2245  file more portable
2246- reorganized the installation of documentation files: let RPM
2247  take care of this
2248- reorganized the file list: actually install man pages along
2249  with the binaries of the respective subpackage
2250- do not include libmysqld.a in the devel subpackage as well, if we
2251  have a special "embedded" subpackage
2252- reworked the package descriptions
2253
2254* Mon Oct  8 2001 Monty
2255
2256- Added embedded server as a separate RPM
2257
2258* Fri Apr 13 2001 Monty
2259
2260- Added mysqld-max to the distribution
2261
2262* Tue Jan 2  2001  Monty
2263
2264- Added mysql-test to the bench package
2265
2266* Fri Aug 18 2000 Tim Smith <tim@mysql.com>
2267
2268- Added separate libmysql_r directory; now both a threaded
2269  and non-threaded library is shipped.
2270
2271* Wed Sep 28 1999 David Axmark <davida@mysql.com>
2272
2273- Added the support-files/my-example.cnf to the docs directory.
2274
2275- Removed devel dependency on base since it is about client
2276  development.
2277
2278* Wed Sep 8 1999 David Axmark <davida@mysql.com>
2279
2280- Cleaned up some for 3.23.
2281
2282* Thu Jul 1 1999 David Axmark <davida@mysql.com>
2283
2284- Added support for shared libraries in a separate sub
2285  package. Original fix by David Fox (dsfox@cogsci.ucsd.edu)
2286
2287- The --enable-assembler switch is now automatically disables on
2288  platforms there assembler code is unavailable. This should allow
2289  building this RPM on non i386 systems.
2290
2291* Mon Feb 22 1999 David Axmark <david@detron.se>
2292
2293- Removed unportable cc switches from the spec file. The defaults can
2294  now be overridden with environment variables. This feature is used
2295  to compile the official RPM with optimal (but compiler version
2296  specific) switches.
2297
2298- Removed the repetitive description parts for the sub rpms. Maybe add
2299  again if RPM gets a multiline macro capability.
2300
2301- Added support for a pt_BR translation. Translation contributed by
2302  Jorge Godoy <jorge@bestway.com.br>.
2303
2304* Wed Nov 4 1998 David Axmark <david@detron.se>
2305
2306- A lot of changes in all the rpm and install scripts. This may even
2307  be a working RPM :-)
2308
2309* Sun Aug 16 1998 David Axmark <david@detron.se>
2310
2311- A developers changelog for MySQL is available in the source RPM. And
2312  there is a history of major user visible changed in the Reference
2313  Manual.  Only RPM specific changes will be documented here.
2314