# $Id: PKGBUILD 128772 2015-03-05 16:00:40Z mtorromeo $
# Maintainer: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>

pkgbase=percona-server
pkgname=('libperconaserverclient' 'percona-server-clients' 'percona-server')
pkgver=5.6.23_72.1
_pkgver=${pkgver/_/-}
_myver=${pkgver/_rel*}
pkgrel=1
arch=('i686' 'x86_64')
makedepends=('cmake' 'openssl' 'zlib' 'libaio' 'systemd-tools')
license=('GPL')
url="http://www.percona.com/software/percona-server/"
source=("http://www.percona.com/downloads/Percona-Server-${pkgver%.*_*}/Percona-Server-$_pkgver/source/tarball/percona-server-$_pkgver.tar.gz"
        'mysqld-post.sh'
        'mysqld.service'
        'mysql-user.conf'
        'mysqld-tmpfile.conf'
        'mysql56-bufsize.patch')

prepare() {
	cd $pkgbase-$_pkgver
	patch -p0 -i ../mysql56-bufsize.patch

	rm -v sql/sql_yacc.{cc,h}
}

build() {
	rm -rf build
	mkdir build
	cd build

	cmake ../$pkgbase-$_pkgver \
		-DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DSYSCONFDIR=/etc/mysql \
		-DMYSQL_DATADIR=/var/lib/mysql \
		-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
		-DDEFAULT_CHARSET=utf8 \
		-DDEFAULT_COLLATION=utf8_general_ci \
		-DENABLED_LOCAL_INFILE=ON \
		-DINSTALL_INFODIR=share/mysql/docs \
		-DINSTALL_MANDIR=share/man \
		-DINSTALL_PLUGINDIR=lib/mysql/plugin \
		-DINSTALL_SCRIPTDIR=bin \
		-DINSTALL_INCLUDEDIR=include/perconaserver \
		-DINSTALL_DOCREADMEDIR=share/mysql \
		-DINSTALL_SUPPORTFILESDIR=share/mysql \
		-DINSTALL_MYSQLSHAREDIR=share/mysql \
		-DINSTALL_DOCDIR=share/mysql/docs \
		-DINSTALL_SHAREDIR=share/mysql \
		-DWITH_ZLIB=system \
		-DWITH_SSL=system \
		-DWITH_LIBWRAP=OFF \
		-DWITH_UNIT_TESTS=OFF \
		-DWITH_PAM=ON \
		-DWITH_EXTRA_CHARSETS=complex \
		-DWITH_EMBEDDED_SERVER=ON \
		-DWITH_INNODB_MEMCACHED=ON \
		-DWITH_INNOBASE_STORAGE_ENGINE=ON \
		-DWITH_PARTITION_STORAGE_ENGINE=ON \
		-DWITH_PERFSCHEMA_STORAGE_ENGINE=ON \
		-DWITH_ARCHIVE_STORAGE_ENGINE=ON \
		-DWITH_BLACKHOLE_STORAGE_ENGINE=ON \
		-DWITH_FEDERATED_STORAGE_ENGINE=OFF \
		-DWITH_EXAMPLE_STORAGE_ENGINE=OFF \
		-DCMAKE_C_FLAGS="-fPIC $CFLAGS -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
		-DCMAKE_CXX_FLAGS="-fPIC $CXXFLAGS -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \
		-DWITH_MYSQLD_LDFLAGS="$LDFLAGS"

	make
}

package_libperconaserverclient() {
	pkgdesc='Percona Server client libraries'
	depends=('openssl')

	cd build
	for dir in include libmysql libmysqld libservices; do
		make -C $dir DESTDIR="$pkgdir" install
	done

  rm "$pkgdir"/usr/lib/libmysqlservices.a

	install -Dm755 scripts/mysql_config "$pkgdir"/usr/bin/perconaserver_config
	install -d "$pkgdir"/usr/share/man/man1
	install -m644 "$srcdir"/$pkgbase-$_pkgver/man/mysql_config.1 "$pkgdir"/usr/share/man/man1/perconaserver_config.1
}

package_percona-server-clients() {
	pkgdesc='Percona Server client tools'
	depends=('libperconaserverclient' 'zlib')
	conflicts=('mysql-clients')
	provides=("mysql-clients=$_myver" "mariadb-clients=$_myver")

	cd build
	make -C client DESTDIR="$pkgdir" install

	# install man pages
	install -d "$pkgdir"/usr/share/man/man1
	for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap; do
		install -m644 "$srcdir"/$pkgbase-$_pkgver/man/$man.1 "$pkgdir"/usr/share/man/man1/$man.1
	done

	# provided by percona-server
	rm "$pkgdir"/usr/bin/{mysql_{plugin,upgrade},mysqlbinlog,mysqltest,mysql_config_editor}
}

package_percona-server() {
	pkgdesc='A backwards-compatible drop-in replacement for MySQL that provides improved performance, diagnostics and instrumentation'
	backup=('etc/mysql/my.cnf')
	install=percona.install
	depends=('percona-server-clients' 'libaio' 'systemd-tools' 'pam')
	optdepends=('perl-dbd-mysql')
	conflicts=('mysql')
	provides=("mysql=$_myver" "mariadb=$_myver")
	options=('emptydirs')

	cd build
	make DESTDIR="$pkgdir" install

	install -Dm644 "$pkgdir"/usr/share/mysql/my-default.cnf "$pkgdir"/etc/mysql/my.cnf
	install -Dm755 ../mysqld-post.sh "$pkgdir"/usr/bin/mysqld-post
	install -Dm644 ../mysqld.service "$pkgdir"/usr/lib/systemd/system/mysqld.service
	install -Dm644 ../mysql-user.conf "$pkgdir"/usr/lib/sysusers.d/mysql.conf
	install -Dm644 ../mysqld-tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/mysqld.conf

	# provided by libperconaserverclient
	cd "$pkgdir"
	rm usr/bin/mysql_config
	rm usr/lib/lib{mysql,perconaserver}*
	rm -r usr/include/
	rm usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1

	# provided by percona-server-clients
	rm usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
	rm usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1

	# not needed
	rm -r usr/{data,mysql-test,sql-bench}
	rm usr/share/man/man1/mysql-test-run.pl.1
}

sha256sums=('5382630b98dd05f72e372ede5535ddcad2e389b594311a69f03a3d95f68d4907'
            '82a241d9fa4032187a26597d044e94ba810b209b53a7ce14bb6eb92555993a48'
            '9bc66470f3f80534c0bb62f9f8325ccf60b164f421f74ad74a963f065d7b1869'
            'e638a2657085f15b6728f43c1fd6aa551b27608fbf6b435e33afd3606a0cfb0e'
            'badf6a701d9dc6ea3b4ddca26cb0f42b6236432ccdbc14c64962147802594a60'
            '1039e232a7778544b00eb215c93bb06c588c95c2fd49cfb162dc50eb4dfbf729')
