From 3f4195d6844f8a4417dceb4188b1ddb3649d111d Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@gmail.com>
Date: Mon, 23 Sep 2013 16:26:00 +0200
Subject: [PATCH] New package: mariadb-5.5.33 (close #48).

XXX not cross compilable!
---
 srcpkgs/libmariadbclient              |   1 +
 srcpkgs/libmariadbclient-devel        |   1 +
 srcpkgs/mariadb-client                |   1 +
 srcpkgs/mariadb/INSTALL               |   8 ++
 srcpkgs/mariadb/files/mysqld-post.sh  |   8 ++
 srcpkgs/mariadb/files/mysqld.service  |  16 +++
 srcpkgs/mariadb/files/mysqld.tmpfiles |   1 +
 srcpkgs/mariadb/template              | 139 ++++++++++++++++++++++++++
 8 files changed, 175 insertions(+)
 create mode 120000 srcpkgs/libmariadbclient
 create mode 120000 srcpkgs/libmariadbclient-devel
 create mode 120000 srcpkgs/mariadb-client
 create mode 100644 srcpkgs/mariadb/INSTALL
 create mode 100644 srcpkgs/mariadb/files/mysqld-post.sh
 create mode 100644 srcpkgs/mariadb/files/mysqld.service
 create mode 100644 srcpkgs/mariadb/files/mysqld.tmpfiles
 create mode 100644 srcpkgs/mariadb/template

diff --git a/srcpkgs/libmariadbclient b/srcpkgs/libmariadbclient
new file mode 120000
index 0000000000..45f92cdb79
--- /dev/null
+++ b/srcpkgs/libmariadbclient
@@ -0,0 +1 @@
+mariadb
\ No newline at end of file
diff --git a/srcpkgs/libmariadbclient-devel b/srcpkgs/libmariadbclient-devel
new file mode 120000
index 0000000000..45f92cdb79
--- /dev/null
+++ b/srcpkgs/libmariadbclient-devel
@@ -0,0 +1 @@
+mariadb
\ No newline at end of file
diff --git a/srcpkgs/mariadb-client b/srcpkgs/mariadb-client
new file mode 120000
index 0000000000..45f92cdb79
--- /dev/null
+++ b/srcpkgs/mariadb-client
@@ -0,0 +1 @@
+mariadb
\ No newline at end of file
diff --git a/srcpkgs/mariadb/INSTALL b/srcpkgs/mariadb/INSTALL
new file mode 100644
index 0000000000..f6506edc7d
--- /dev/null
+++ b/srcpkgs/mariadb/INSTALL
@@ -0,0 +1,8 @@
+# *-*-shell-*-*
+#
+case ${ACTION} in
+post)
+	usr/bin/mysql_install_db --user=mysql --basedir=/usr
+	chown -R mysql:mysql var/lib/mysql
+	;;
+esac
diff --git a/srcpkgs/mariadb/files/mysqld-post.sh b/srcpkgs/mariadb/files/mysqld-post.sh
new file mode 100644
index 0000000000..c4ac181710
--- /dev/null
+++ b/srcpkgs/mariadb/files/mysqld-post.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+while true; do
+    response=$(/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1) && break
+    echo "$response" | grep -q "mysqld is alive" && break
+    echo "$response" | grep -q "Access denied for user" && break 
+    sleep 1
+done
diff --git a/srcpkgs/mariadb/files/mysqld.service b/srcpkgs/mariadb/files/mysqld.service
new file mode 100644
index 0000000000..dd65511d7b
--- /dev/null
+++ b/srcpkgs/mariadb/files/mysqld.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=MariaDB database server
+After=syslog.target
+
+[Service]
+User=mysql
+Group=mysql
+
+ExecStart=/usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid 
+ExecStartPost=/usr/bin/mysqld-post
+
+Restart=always
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/srcpkgs/mariadb/files/mysqld.tmpfiles b/srcpkgs/mariadb/files/mysqld.tmpfiles
new file mode 100644
index 0000000000..6883dc7988
--- /dev/null
+++ b/srcpkgs/mariadb/files/mysqld.tmpfiles
@@ -0,0 +1 @@
+d /run/mysqld 0755 mysql mysql -
diff --git a/srcpkgs/mariadb/template b/srcpkgs/mariadb/template
new file mode 100644
index 0000000000..8d912bedec
--- /dev/null
+++ b/srcpkgs/mariadb/template
@@ -0,0 +1,139 @@
+# Template file for 'mariadb'
+pkgname=mariadb
+version=5.5.33
+revision=1
+build_style=cmake
+configure_args="-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=/usr/lib/mysql/plugin -DINSTALL_SCRIPTDIR=bin
+ -DINSTALL_INCLUDEDIR=include/mysql -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_EMBEDDED_SERVER=ON -DWITH_ARCHIVE_STORAGE_ENGINE=1
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
+ -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_TOKUDB_STORAGE_ENGINE=1
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
+ -DWITHOUT_PBXT_STORAGE_ENGINE=1 -DWITH_EXTRA_CHARSETS=complex
+ -DSTACK_DIRECTION=1"
+hostmakedepends="perl cmake bison"
+makedepends="zlib-devel ncurses-devel openssl-devel readline-devel"
+short_desc="Fast SQL database server, drop-in replacement for MySQL"
+maintainer="Juan RP <xtraeme@gmail.com>"
+homepage="http://mariadb.org/"
+license="GPL-2"
+distfiles="http://mirrors.supportex.net/$pkgname/$pkgname-$version/kvm-tarbake-jaunty-x86/$pkgname-$version.tar.gz"
+checksum=233251494242e7c964523f834e513e624728f2c2602ada0eb717aaff777ac546
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" ncurses-devel"
+fi
+
+pre_configure() {
+	# We need some host binaries before starting cross compilation.
+	if [ "$CROSS_BUILD" ]; then
+		# Set sysroot and host.
+		sed -e "s,enable-static,& --sysroot=$XBPS_CROSS_BASE --host=$XBPS_CROSS_TRIPLET," \
+			-i storage/tokudb/ft-index/cmake_modules/TokuThirdParty.cmake
+		sed -e "s,enable-cc-silence\",& \"--host=$XBPS_CROSS_TRIPLET\"," \
+			-i cmake/jemalloc.cmake
+		# XXX still broken: jemalloc configure execs host bins.
+		CC= CXX= CPP= LD= AR= AS= RANLIB= CFLAGS= CXXFLAGS= LDFLAGS= cmake .
+		make comp_err comp_sql gen_lex_hash
+		mkdir bin.host
+		cp extra/comp_err bin.host
+		cp scripts/comp_sql bin.host
+		cp sql/gen_lex_hash bin.host
+		make clean
+		rm CMakeCache.txt
+	fi
+}
+
+pre_build() {
+	if [ "$CROSS_BUILD" ]; then
+		cp bin.host/comp_err ${wrksrc}/extra
+		cp bin.host/comp_sql ${wrksrc}/scripts
+		cp bin.host/gen_lex_hash ${wrksrc}/sql
+		export PATH=${PATH}:${wrksrc}/extra:${wrksrc}/scripts:${wrksrc}/sql
+	fi
+	export LD_LIBRARY_PATH=${wrksrc}/build/storage/tokudb/ft-index/portability
+}
+
+post_install() {
+	# Remove unneeded stuff.
+	rm -rf ${DESTDIR}/usr/{sql-bench,mysql-test,data}
+	rm -f ${DESTDIR}/usr/share/man/man1/mysql-test-run.pl.1
+
+	# Configuration file.
+	install -Dm644 ${DESTDIR}/usr/share/mysql/my-medium.cnf ${DESTDIR}/etc/mysql/my.cnf
+
+	# systemd service.
+	vinstall ${FILESDIR}/mysqld.service 644 usr/lib/systemd/system
+	vinstall ${FILESDIR}/mysqld-post.sh 755 usr/lib/systemd/scripts mysqld-post
+	vinstall ${FILESDIR}/mysqld.tmpfiles 644 usr/lib/tmpfiles.d mysqld.conf
+}
+
+libmariadbclient_package() {
+	short_desc+=" - client library"
+	provides="libmysqlclient-${version}_${revision}"
+	replaces="libmysqlclient>=0"
+	pkg_install() {
+		vmove "usr/lib/libmysqlclient*.so.*"
+	}
+}
+
+libmariadbclient-devel_package() {
+	depends="libmariadbclient>=${version}_${revision}"
+	provides="libmysqlclient-devel-${version}_${revision}"
+	replaces="libmysqlclient-devel>=0"
+	short_desc+=" - client development files"
+	pkg_install() {
+		vmove usr/bin/mysql_config
+		vmove usr/share/man/man1/mysql_config.1
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+	}
+}
+
+mariadb-client_package() {
+	depends="perl"
+	provides="mysql-client-${version}_${revision}"
+	replaces="mysql-client>=0"
+	short_desc=+" - client binaries"
+	pkg_install() {
+		for f in innochecksum innotop myisam_ftdump mysql mysql_client_test \
+			mysql_client_test_embedded mysqldumpslow mysqlbinlog \
+			mysql_find_rows mysql_fix_extensions mysql_waitpid mysqlaccess \
+			mysqladmin mysqlanalyze mysqlbug mysqlcheck mysqldump \
+			mysqlimport mysqloptimize mysqlrepair mysqlreport mysqlshow \
+			mysqlslap mysqltest_embedded mysqlmanager mysqltest \
+			mysqlhotcopy mysql_upgrade mysql_zap; do
+			if [ -f ${DESTDIR}/usr/bin/${f} ]; then
+				vmove usr/bin/${f}
+			elif [ -f ${DESTDIR}/usr/sbin/${f} ]; then
+				vmove usr/sbin/${f}
+			fi
+			if [ -f ${DESTDIR}/usr/share/man/man1/${f}.1 ]; then
+				vmove usr/share/man/man1/${f}.1
+			elif [ -f ${DESTDIR}/usr/share/man/man8/${f}.8 ]; then
+				vmove usr/share/man/man8/${f}.8
+			fi
+		done
+	}
+}
+
+mariadb_package() {
+	depends="shadow mariadb-client"
+	provides="mysql-${version}_${revision}"
+	replaces="mysql>=0"
+	conf_files="/etc/mysql/my.cnf"
+	systemd_services="mysqld.service on"
+	system_accounts="mysql"
+	mysqld_homedir="/var/lib/mysql"
+	pkg_install() {
+		vmove all
+	}
+}