description="MariaDB is a fork and a replacement for the MySQL relational database management system."
url="http://www.mariadb.org/en/about/"

packager="tnut <tnu@nutyx.org>"
contributors="Pierre B"

makedepends=(lzo cmake libevent boost libxml2 cracklib pcre ruby libaio openssl)

name=mariadb
version=10.5.5

runyx_version=20200412

source=(https://downloads.tuxfamily.org/nutyx/files/runyx-${runyx_version}.tar.xz
	ftp://ftp.osuosl.org/pub/mariadb/$name-$version/source/$name-$version.tar.gz)
PKGMK_GROUPS=(devel lib man doc service)

prepare() {
groupadd -g 40 mysql
useradd -c "MySQL Server" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql
}

build() {

cd $name-$version

sed -i "s@data/test@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release                        \
      -DCMAKE_INSTALL_PREFIX=/usr                       \
      -DINSTALL_DOCDIR=share/doc/mariadb-$version       \
      -DINSTALL_DOCREADMEDIR=share/doc/mariadb-$version \
      -DINSTALL_MANDIR=share/man                        \
      -DINSTALL_MYSQLSHAREDIR=share/mysql               \
      -DINSTALL_MYSQLTESTDIR=share/mysql/test           \
      -DINSTALL_PLUGINDIR=lib/mysql/plugin              \
      -DINSTALL_SBINDIR=sbin                            \
      -DINSTALL_SCRIPTDIR=bin                           \
      -DINSTALL_SQLBENCHDIR=share/mysql/bench           \
      -DINSTALL_SUPPORTFILESDIR=share/mysql             \
      -DMYSQL_DATADIR=/srv/mysql                        \
      -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock         \
      -DWITH_EXTRA_CHARSETS=complex                     \
      -DWITH_EMBEDDED_SERVER=ON                         \
      -DSKIP_TESTS=ON                                   \
      -DWITH_SSL=system                                 \
      -DTOKUDB_OK=0                                     \
      .. 
make

make DESTDIR=$PKG install

# Make mariadb version seen as mysql version
ln -sfv $PKG/usr/include/mysql/{mariadb,mysql}_version.h

install -v -dm 755 $PKG/etc/mysql

cat > $PKG/etc/mysql/my.cnf.example << "EOF"
# Begin /etc/mysql/my.cnf

# The following options will be passed to all MySQL clients
[client]
#password       = your_password
port            = 3306
socket          = /run/mysqld/mysqld.sock

# The MySQL server
[mysqld]
port            = 3306
socket          = /run/mysqld/mysqld.sock
datadir         = /srv/mysql
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 16K
myisam_sort_buffer_size = 8M

# Don't listen on a TCP/IP port at all.
skip-networking

# required unique id between 1 and 2^32 - 1
server-id       = 1

# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /srv/mysql
innodb_log_group_home_dir = /srv/mysql
# All the innodb_xxx values below are the default ones:
innodb_data_file_path = ibdata1:12M:autoextend
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

# End /etc/mysql/my.cnf
EOF

# Cleanup
rm -r $PKG/usr/share/mysql/test

# Service
cd $SRC/runyx-${runyx_version}
make DESTDIR=$PKG install-sysv-mysql
make DESTDIR=$PKG install-runyx-mysql
make DESTDIR=$PKG install-sysd-mysqld
}
service() {
cd $PKG
bsdtar -r -f \
$PKGMK_PACKAGE_DIR/${name}.${group}${PKGMK_BUILDVER}any.${PKGMK_PACKAGE_EXT} \
etc/rc.d etc/init lib/init lib/systemd
rm -r etc/rc.d etc/init lib/init lib/systemd
}

