# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mysql
pkgver=5.5.40
pkgrel=1
pkgdesc="A fast SQL database server"
url="http://www.mysql.com/"
pkgusers="mysql"
pkggroups="mysql"
arch="all"
license='GPL'
depends="mysql-common"
depends_dev="openssl-dev zlib-dev"
makedepends="libtool readline-dev openssl-dev ncurses-dev zlib-dev cmake bison perl libaio-dev"
source="ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.5/mysql-$pkgver.tar.gz
	mysql-prefer-dynamic-library.patch
	mysql-va-list.patch
	$pkgname.initd
	"
subpackages="$pkgname-doc $pkgname-dev $pkgname-libs $pkgname-test:mytest
	$pkgname-common $pkgname-client $pkgname-bench"

_builddir="$srcdir/$pkgname-$pkgver"

prepare() {
	cd "$_builddir"
	for i in $source; do
		case $i in
		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
		esac
	done
}

build() {
	cd "$_builddir"
	cmake . -DCMAKE_BUILD_TYPE=Release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DDEFAULT_CHARSET=utf8 \
		-DDEFAULT_COLLATION=utf8_general_ci \
		-DENABLED_LOCAL_INFILE=ON \
		-DINSTALL_DOCDIR=share/doc/mysql \
		-DINSTALL_DOCREADMEDIR=share/doc/mysql \
		-DINSTALL_INCLUDEDIR=include/mysql \
		-DINSTALL_INFODIR=share/info \
		-DINSTALL_LAYOUT=RPM \
		-DINSTALL_LIBDIR=lib \
		-DINSTALL_MANDIR=share/man \
		-DINSTALL_MYSQLDATADIR="/var/lib/mysql" \
		-DINSTALL_MYSQLSHAREDIR=share/mysql \
		-DINSTALL_MYSQLTESTDIR=share/mysql-test \
		-DINSTALL_PLUGINDIR=lib/mysql/plugin \
		-DINSTALL_SCRIPTDIR=bin \
		-DINSTALL_SHAREDIR=share/mysql \
		-DINSTALL_SQLBENCHDIR=share \
		-DINSTALL_SUPPORTFILESDIR=share/mysql \
		-DMYSQL_DATADIR="/var/lib/mysql" \
		-DMYSQL_UNIX_ADDR="/var/run/mysqld/mysqld.sock" \
		-DSYSCONFDIR=/etc/mysql \
		-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
		-DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
		-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
		-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
		-DWITH_EMBEDDED_SERVER=ON \
		-DWITH_EXTRA_CHARSETS=complex \
		-DWITH_INNOBASE_STORAGE_ENGINE=1 \
		-DWITH_PARTITION_STORAGE_ENGINE=1 \
		-DWITH_READLINE=ON \
		-DWITH_SSL=system \
		-DWITH_ZLIB=system \
		|| return 1
        make || return 1
}

#		-DWITH_LIBWRAP=ON \
package() {
        cd "$_builddir"
        make DESTDIR="$pkgdir/" install || return 1

        install -Dm 755 "$startdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname || return 1

	# use small example config as default, which has tcp disabled
	install -D  "$pkgdir"/usr/share/mysql/my-medium.cnf \
		"$pkgdir"/etc/mysql/my.cnf || return 1

        install -dDo mysql "$pkgdir"/var/log/mysql || return 1
        install -dDo mysql "$pkgdir"/var/run/mysqld || return 1

	# libmysqlclient_r is no more.  Upstream tries to replace it with
	# symlinks but that really doesn't work (wrong soname in particular).
	# We'll keep just the devel libmysqlclient_r.so link, so that
	# rebuilding without any source change is enough to get rid of
	# dependency on libmysqlclient_r.
	rm -f "$pkgdir"/usr/lib/libmysqlclient_r.so*
	ln -s libmysqlclient.so "$pkgdir"/usr/lib/libmysqlclient_r.so

	# mysql-test includes one executable that doesn't belong under
	# /usr/share, so move it and provide a symlink
	mv "$pkgdir"/usr/share/mysql-test/lib/My/SafeProcess/my_safe_process \
		"$pkgdir"/usr/bin
	ln -s ../../../../../bin/my_safe_process \
		"$pkgdir"/usr/share/mysql-test/lib/My/SafeProcess/my_safe_process

}

dev(){
	default_dev
	replaces="libmysqlclient"
}

libs() {
	pkgdesc="MySQL client library"
	# some files moved
	replaces="mysql libmysqlclient"
	depends="mysql-common"
	mkdir -p "$subpkgdir"/usr/lib \
		"$subpkgdir"/usr/share/mysql \
		|| return 1
	mv "$pkgdir"/usr/lib/libmysqlclient.so* \
		"$subpkgdir"/usr/lib/ || return 1
}

common() {
	pkgdesc="MySQL common files for both server and client"
	replaces="mysql"
	depends=
	mkdir -p "$subpkgdir"/usr/share/mysql \
	mv "$pkgdir"/etc "$subpkgdir"/ || return 1
	mv "$pkgdir"/usr/share/mysql/english \
		"$pkgdir"/usr/share/mysql/czech \
		"$pkgdir"/usr/share/mysql/danish \
		"$pkgdir"/usr/share/mysql/dutch \
		"$pkgdir"/usr/share/mysql/estonian \
		"$pkgdir"/usr/share/mysql/french \
		"$pkgdir"/usr/share/mysql/german \
		"$pkgdir"/usr/share/mysql/greek \
		"$pkgdir"/usr/share/mysql/hungarian \
		"$pkgdir"/usr/share/mysql/italian \
		"$pkgdir"/usr/share/mysql/japanese \
		"$pkgdir"/usr/share/mysql/korean \
		"$pkgdir"/usr/share/mysql/norwegian \
		"$pkgdir"/usr/share/mysql/norwegian-ny \
		"$pkgdir"/usr/share/mysql/polish \
		"$pkgdir"/usr/share/mysql/portuguese \
		"$pkgdir"/usr/share/mysql/romanian \
		"$pkgdir"/usr/share/mysql/russian \
		"$pkgdir"/usr/share/mysql/serbian \
		"$pkgdir"/usr/share/mysql/slovak \
		"$pkgdir"/usr/share/mysql/spanish \
		"$pkgdir"/usr/share/mysql/swedish \
		"$pkgdir"/usr/share/mysql/ukrainian \
		"$pkgdir"/usr/share/mysql/charsets \
		"$subpkgdir"/usr/share/mysql/ \
		|| return 1
}

mytest() {
	pkgdesc="The test suite distributed with MySQL"
        mkdir -p "$subpkgdir"/usr/bin || return 1
        mv "$pkgdir"/usr/share/mysql-test \
		"$subpkgdir"/usr/share/ \
		|| return 1
	mv "$pkgdir"/usr/bin/mysql_client_test \
		"$pkgdir"/usr/bin/my_safe_process \
		"$subpkgdir"/usr/bin/ \
		|| return 1
}

client() {
	pkgdesc="client for the MySQL database"
	depends="mysql-common"
	install=""
	local bins="myisam_ftdump mysql mysqlaccess mysqladmin mysqlbug
	mysqlcheck mysqldump mysqldumpslow mysql_find_rows
	mysql_fix_extensions mysqlimport mysqlshow mysql_waitpid"

	mkdir -p "$subpkgdir"/usr/bin/ || return 1

	for i in $bins; do
		mv "$pkgdir"/usr/bin/${i} "$subpkgdir"/usr/bin/ || return 1
	done
}

bench() {
	pkgdesc="MySQL benchmark scripts and data"
	replaces="mysql"
	mkdir -p "$subpkgdir"/usr/share/
	mv "$pkgdir"/usr/share/sql-bench "$subpkgdir"/usr/share/
}

md5sums="90c5a7b69e833c393de5f07659b786bd  mysql-5.5.40.tar.gz
b2b038b1905fa5b80f6723d0ee2f811f  mysql-prefer-dynamic-library.patch
b08bf0844d4e52ab4a78a825511845fc  mysql-va-list.patch
01fe0055305d8f974c35d0898245014b  mysql.initd"
sha256sums="4d3721761a31c28866e8ee0fde47558a3e9047aaef3b89135ae8d45eebb74960  mysql-5.5.40.tar.gz
83d685f6c03d0a1c4811b82ff973e617c3758a72e5d1659b409194221d0cc1c7  mysql-prefer-dynamic-library.patch
9398daa424cf15518566dda6fbf6faed476da902e54e39b7acf222a3f5c7ab2e  mysql-va-list.patch
cbf3c99c41310033ed092b38ae0f55bc74334ce4531a6c82f21feff26f25008d  mysql.initd"
sha512sums="9adc3c0ace48a84ee87fb7e1f36b2f3d3e5cd95d50ca3012828c7fb33b723cfbfdf85760a30ea38c719a90cc449613747e974768b7f0b070dc346e05a5c418b3  mysql-5.5.40.tar.gz
2b6dfe1262a68f08f6d9aa53d204b7fb7bb88af2c5d1e8f84bd83529ea0fb2521c2f10fdfb730ecc29c6d0acfca762badbd89a3679a05315572e679e4f3c12b0  mysql-prefer-dynamic-library.patch
cd07298193db594f971adfe0f89939c38975b6aedd9480153920a9f65977f94daddc0bd35c287a81e76aaec52f311ce02517231ae44dea221d77a730749f45dc  mysql-va-list.patch
fccc31e8e67dc21087c4feb3a36d2ac129dccfe6d393172b58834b408faa85ab6f9f70ec423c88ab7613df9ae258a8db990f3c48d69ef2a1906f7e3b4e18c892  mysql.initd"