[packages/xtrabackup] up to 2.0.3, build innodb 5.5 target

glen glen at pld-linux.org
Mon Oct 29 00:04:23 CET 2012


commit 9463cff2ffa85d919ae37325bce8813707c8b266
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Mon Oct 29 01:04:05 2012 +0200

    up to 2.0.3, build innodb 5.5 target

 xtrabackup.spec | 108 ++++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 77 insertions(+), 31 deletions(-)
---
diff --git a/xtrabackup.spec b/xtrabackup.spec
index 38541c8..7609157 100644
--- a/xtrabackup.spec
+++ b/xtrabackup.spec
@@ -1,52 +1,96 @@
 # TODO
-# - which configure args should be set? same as mysql.spec?
-Summary:	Open source backup tool for InnoDB and XtraDB
+# - system zlib (seems unmodified)
+# - BR deps (for libarchive, mysql builds)
+Summary:	XtraBackup online backup for MySQL / InnoDB
 Name:		xtrabackup
-Version:	0.7
-Release:	0.2
+Version:	2.0.3
+Release:	0.1
 License:	GPL v2
 Group:		Applications/Databases
-URL:		http://www.percona.com/docs/wiki/percona-xtrabackup:start
-Source0:	http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/mysql-5.0.83.tar.gz
-# Source0-md5:	051392064a1e32cca5c23a593908b10e
-Source1:	xtrabackup.tar.bz2
-# Source1-md5:	79ad151ec9055d30ee30d66993751f98
+URL:		http://www.percona.com/doc/percona-xtrabackup/
+Source0:	http://www.percona.com/downloads/XtraBackup/XtraBackup-%{version}/source/percona-%{name}-%{version}.tar.gz
+# Source0-md5:	f59e7d26b71bd105d11a8d9eb665faad
+Source1:	http://s3.amazonaws.com/percona.com/downloads/community/mysql-5.5.17.tar.gz
+# Source1-md5:	dcb6a06e68c5e8f30f57b15300730c9c
+BuildRequires:	bash
+BuildRequires:	cmake >= 2.6
+BuildRequires:	libaio-devel
+#BuildRequires:	libarchive-devel
 BuildRequires:	libstdc++-devel
+BuildRequires:	ncurses-devel >= 4.2
+#BuildRequires:	zlib-devel
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-# CFLAGS for innodb are altered
-%undefine	configure_cache
-
 %description
 Percona XtraBackup is OpenSource online (non-blockable) backup
-solution for InnoDB and XtraDB engines. It works with MySQL 5.0 and
-5.1 versions (InnoDB Plugin is not supported yet as for alpha-0.3) and
-also can handle MyISAM tables.
+solution for InnoDB and XtraDB engines.
 
 %prep
-%setup -qc -a1
-mv mysql-*/* .
-%{__patch} -p1 < xtrabackup/fix_innodb_for_backup.patch
-mv xtrabackup innobase
+%setup -q -n percona-%{name}-%{version} -a1
+
+mv mysql-5.5.* mysql-5.5
+cd mysql-5.5
+%{__patch} -p1 < ../patches/innodb55.patch
 
 %build
 # The compiler flags are as per mysql "official" spec ;)
-CXXFLAGS="%{rpmcflags} -felide-constructors -fno-rtti -fno-exceptions %{!?debug:-fomit-frame-pointer}"
-CFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"
+export CC="%{__cc}"
+export CXX="%{__cxx}"
+export CXXFLAGS="%{rpmcflags} -felide-constructors -fno-rtti -fno-exceptions %{!?debug:-fomit-frame-pointer}"
+export CFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"
+
+cd mysql-5.5
+# We need to build with partitioning due to MySQL bug #58632
+%cmake \
+	-DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
+	-DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+	-DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+	-DWITH_ZLIB=bundled \
+	%{?with_system_zlib:-DWITH_ZLIB=system} \
+	-DENABLED_LOCAL_INFILE=ON \
+	-DWITH_INNOBASE_STORAGE_ENGINE=ON \
+	-DWITH_PARTITION_STORAGE_ENGINE=ON \
+	-DWITH_EXTRA_CHARSETS=all \
+	-DENABLE_DTRACE=OFF \
+	-DWITH_LIBEDIT=OFF \
+	-DWITH_READLINE=OFF \
+	-DCURSES_INCLUDE_PATH=/usr/include/ncurses \
+	.
+
+for dir in include strings mysys dbug extra storage/innobase; do
+	%{__make} -C $dir
+done
 
-%configure \
-	--with-extra-charsets=all
+# build_libarchive()
+cd ../src/libarchive
+%cmake \
+	-DENABLE_CPIO=OFF \
+	-DENABLE_OPENSSL=OFF \
+	-DENABLE_TAR=OFF \
+	-DENABLE_TEST=OFF \
+	.
 %{__make}
-%{__make} -C innobase/xtrabackup \
-	CC="%{__cc}" \
-	CXXFLAGS="$CFLAGS" \
-	CFLAGS="$CFLAGS"
+
+# build_xtrabackup
+cd ../..
+# Read XTRABACKUP_VERSION from the VERSION file
+. ./VERSION
+
+server_dir=$(pwd)/mysql-5.5
+xtrabackup_target=5.5
+cd src
+
+export LIBS="$LIBS -lrt"
+%{__make} MYSQL_ROOT_DIR=$server_dir clean
+%{__make} MYSQL_ROOT_DIR=$server_dir XTRABACKUP_VERSION=$XTRABACKUP_VERSION $xtrabackup_target
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_bindir}
-install innobase/xtrabackup/innobackupex-1.5.1 $RPM_BUILD_ROOT%{_bindir}/innobackupex
-install innobase/xtrabackup/xtrabackup $RPM_BUILD_ROOT%{_bindir}
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1}
+install -p innobackupex $RPM_BUILD_ROOT%{_bindir}
+install -p src/xbstream $RPM_BUILD_ROOT%{_bindir}
+install -p src/xtrabackup_innodb55 $RPM_BUILD_ROOT%{_bindir}
+cp -p doc/xtrabackup.1 $RPM_BUILD_ROOT%{_mandir}/man1
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -54,4 +98,6 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/innobackupex
-%attr(755,root,root) %{_bindir}/xtrabackup
+%attr(755,root,root) %{_bindir}/xbstream
+%attr(755,root,root) %{_bindir}/xtrabackup_innodb55
+%{_mandir}/man1/xtrabackup.1*
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xtrabackup.git/commitdiff/9463cff2ffa85d919ae37325bce8813707c8b266



More information about the pld-cvs-commit mailing list