2 # - build instructions: http://www.percona.com/doc/percona-xtrabackup/2.2/installation/compiling_xtrabackup.html
3 Summary: XtraBackup online backup for MySQL / InnoDB
8 Group: Applications/Databases
9 Source0: https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-%{version}/source/tarball/percona-%{name}-%{version}.tar.gz
10 # Source0-md5: c086206421a77f7c1ad28771a75cf396
11 Source1: http://downloads.sourceforge.net/boost/boost_1_59_0.tar.bz2
12 # Source1-md5: 6aa9a5c6a4ca1016edd0ed1178e3cb87
14 URL: http://www.percona.com/doc/percona-xtrabackup/
16 BuildRequires: cmake >= 2.6
17 BuildRequires: acl-devel
18 BuildRequires: curl-devel
19 BuildRequires: expat-devel
20 BuildRequires: jsmn-devel
22 BuildRequires: libaio-devel
23 BuildRequires: libarchive-devel
25 BuildRequires: libev-devel
26 BuildRequires: libgcrypt-devel
27 BuildRequires: libmd-devel
28 BuildRequires: libstdc++-devel
29 BuildRequires: libxml2-devel
30 BuildRequires: zlib-devel
31 BuildRequires: ncurses-devel >= 4.2
32 BuildRequires: python-modules
33 BuildRequires: readline-devel
35 BuildRequires: sphinx-pdg
36 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
39 Percona XtraBackup is an open-source hot backup utility for
40 MySQL-based servers that doesn't lock your database during the backup.
42 It can back up data from InnoDB, XtraDB, and MyISAM tables on MySQL
43 5.1, 5.5 and 5.6 servers, as well as Percona Server with XtraDB.
45 Percona XtraBackup is a combination of the xtrabackup C program, and
46 the innobackupex Perl script. The xtrabackup program copies and
47 manipulates InnoDB and XtraDB data files, and the Perl script enables
48 enhanced functionality, such as interacting with a running MySQL
49 server and backing up MyISAM tables.
52 %setup -q -n percona-%{name}-%{version} -a1
56 mv storage/innobase/xtrabackup/src/jsmn .
63 -DBUILD_CONFIG=xtrabackup_release \
64 -DBUILD_SHARED_LIBS:BOOL=OFF \
65 -DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
66 -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
67 -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
69 -DINSTALL_PLUGINDIR="%{_lib}/xtrabackup/plugins" \
70 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
72 -DWITH_READLINE=system \
75 -DWITH_BOOST="$(pwd)/$(ls -1d ../boost_*)" \
81 rm -rf $RPM_BUILD_ROOT
82 %{__make} -C build install \
83 DESTDIR=$RPM_BUILD_ROOT
85 # TODO: find fix in make or cmake rules
86 install -d $RPM_BUILD_ROOT%{_mandir}
87 b=$(readlink -f %{_builddir})
88 mv $RPM_BUILD_ROOT$b/percona-xtrabackup-%{version}/build/man/man1 $RPM_BUILD_ROOT%{_mandir}
90 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/xtrabackup-test
93 rm -rf $RPM_BUILD_ROOT
96 %defattr(644,root,root,755)
97 %attr(755,root,root) %{_bindir}/innobackupex
98 %attr(755,root,root) %{_bindir}/xbcloud
99 %attr(755,root,root) %{_bindir}/xbcloud_osenv
100 %attr(755,root,root) %{_bindir}/xbcrypt
101 %attr(755,root,root) %{_bindir}/xbstream
102 %attr(755,root,root) %{_bindir}/xtrabackup
103 %{_mandir}/man1/innobackupex.1*
104 %{_mandir}/man1/xbcrypt.1*
105 %{_mandir}/man1/xbstream.1*
106 %{_mandir}/man1/xtrabackup.1*