summaryrefslogtreecommitdiff
path: root/extra/mariadb
diff options
context:
space:
mode:
Diffstat (limited to 'extra/mariadb')
-rw-r--r--extra/mariadb/PKGBUILD136
-rwxr-xr-xextra/mariadb/mariadb-post.sh8
-rw-r--r--extra/mariadb/mariadb-tmpfile.conf1
-rw-r--r--extra/mariadb/mariadb.install44
-rw-r--r--extra/mariadb/mariadb.service16
5 files changed, 205 insertions, 0 deletions
diff --git a/extra/mariadb/PKGBUILD b/extra/mariadb/PKGBUILD
new file mode 100644
index 000000000..9678abd12
--- /dev/null
+++ b/extra/mariadb/PKGBUILD
@@ -0,0 +1,136 @@
+# $Id: PKGBUILD 179064 2013-03-02 21:39:03Z bpiotrowski $
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+
+pkgbase=mariadb
+pkgname=('libmariadbclient' 'mariadb-clients' 'mariadb')
+pkgver=5.5.29
+pkgrel=4
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://mariadb.org/'
+makedepends=('cmake' 'openssl' 'zlib')
+options=('!libtool')
+source=(http://mirrors.supportex.net/$pkgbase/$pkgbase-$pkgver/kvm-tarbake-jaunty-x86/$pkgbase-$pkgver.tar.gz
+ mariadb.service
+ mariadb-post.sh
+ mariadb-tmpfile.conf)
+sha256sums=('b0e25b5451dbf8e8c8bf243bbd0aeb264db0da2caceafc7e2c9fad77b8d4be74'
+ 'a6cf5446159fff16598d0d787dd3a3c30a53a656a5f876ddb608bc60e234d334'
+ '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd'
+ '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd')
+
+build() {
+ cd $srcdir
+ 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=/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_READLINE=ON \
+ -DWITH_ZLIB=system \
+ -DWITH_SSL=system \
+ -DWITH_LIBWRAP=OFF \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
+ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -DWITH_PARTITION_STORAGE_ENGINE=1 \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
+ -DWITHOUT_PBXT_STORAGE_ENGINE=1 \
+ -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_libmariadbclient() {
+ pkgdesc="MariaDB client libraries"
+ depends=('openssl')
+ conflicts=('libmysqlclient')
+ provides=("libmysqlclient=$pkgver")
+
+ cd "$srcdir"/build
+ for dir in include libmysql libmysqld libservices; do
+ make -C $dir DESTDIR="$pkgdir" install
+ done
+
+ install -d "$pkgdir"/usr/bin
+ install -m755 scripts/mysql_config "$pkgdir"/usr/bin/
+ install -d "$pkgdir"/usr/share/man/man1
+ for man in mysql_config mysql_client_test_embedded mysqltest_embedded; do
+ install -m644 "$srcdir"/$pkgbase-$pkgver/man/$man.1 "$pkgdir"/usr/share/man/man1/$man.1
+ done
+}
+
+package_mariadb-clients() {
+ pkgdesc="MariaDB client tools"
+ depends=('libmariadbclient')
+ conflicts=('mysql-clients')
+ provides=("mysql-clients=$pkgver")
+
+ cd "$srcdir"/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 mariadb
+ rm "$pkgdir"/usr/bin/{mysql_{plugin,upgrade},mysqlbinlog,mysqltest}
+}
+
+package_mariadb() {
+ pkgdesc="A fast SQL database server, drop-in replacement for MySQL"
+ backup=('etc/mysql/my.cnf')
+ install=mariadb.install
+ depends=('mariadb-clients')
+ conflicts=('mysql')
+ provides=("mysql=$pkgver")
+ optdepends=('perl-dbi' 'perl-dbd-mysql')
+ options=('emptydirs')
+
+ cd "$srcdir"/build
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$pkgdir"/usr/share/mysql/my-medium.cnf "$pkgdir"/etc/mysql/my.cnf
+ install -Dm755 "$srcdir"/mariadb-post.sh "$pkgdir"/usr/bin/mysqld-post
+ install -Dm644 "$srcdir"/mariadb.service "$pkgdir"/usr/lib/systemd/system/mysqld.service
+ install -Dm644 "$srcdir"/mariadb-tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/mysql.conf
+
+ # provided by libmariadbclient
+ rm "$pkgdir"/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
+ rm "$pkgdir"/usr/lib/libmysql*
+ rm -r "$pkgdir"/usr/include/
+ rm "$pkgdir"/usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1
+
+ # provided by mariadb-clients
+ rm "$pkgdir"/usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
+ rm "$pkgdir"/usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1
+
+ # not needed
+ rm -r "$pkgdir"/usr/{data,mysql-test,sql-bench}
+ rm "$pkgdir"/usr/share/man/man1/mysql-test-run.pl.1
+}
diff --git a/extra/mariadb/mariadb-post.sh b/extra/mariadb/mariadb-post.sh
new file mode 100755
index 000000000..c4ac18171
--- /dev/null
+++ b/extra/mariadb/mariadb-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/extra/mariadb/mariadb-tmpfile.conf b/extra/mariadb/mariadb-tmpfile.conf
new file mode 100644
index 000000000..6883dc798
--- /dev/null
+++ b/extra/mariadb/mariadb-tmpfile.conf
@@ -0,0 +1 @@
+d /run/mysqld 0755 mysql mysql -
diff --git a/extra/mariadb/mariadb.install b/extra/mariadb/mariadb.install
new file mode 100644
index 000000000..de619b668
--- /dev/null
+++ b/extra/mariadb/mariadb.install
@@ -0,0 +1,44 @@
+if [[ $(command -v my_print_defaults >/dev/null 2>&1) ]]; then
+ datadir=$(my_print_defaults mysqld | sed -n "s/^--datadir=//p")
+fi
+[[ -z $datadir ]] && datadir=/var/lib/mysql
+
+post_install(){
+ groupadd -g 89 mysql &>/dev/null
+ useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null
+
+ if [[ ! -e $datadir ]]; then
+ install -dm700 $datadir
+ usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=$datadir
+ chown -R mysql:mysql var/lib/mysql &>/dev/null
+ fi
+
+ usr/bin/systemd-tmpfiles --create mysqld.conf
+}
+
+post_upgrade(){
+ getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null
+ getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null
+
+ if [[ "$(vercmp $2 5.5.25-4)" -lt 0 ]] && [[ -d /data ]]; then
+ for x in data/*; do
+ cp -r $x $datadir/
+ done
+ rm -rf data
+ fi
+
+ if [[ "$(vercmp $2 5.5.25-5)" -lt 0 ]]; then
+ echo ">>> mysql.service has been renamed to mysqld.service to keep"
+ echo " consistency with MySQL package."
+ fi
+}
+
+post_remove(){
+ if getent passwd mysql >/dev/null 2>&1; then
+ userdel mysql
+
+ fi
+ if getent group mysql >/dev/null 2>&1; then
+ groupdel mysql
+ fi
+}
diff --git a/extra/mariadb/mariadb.service b/extra/mariadb/mariadb.service
new file mode 100644
index 000000000..dd65511d7
--- /dev/null
+++ b/extra/mariadb/mariadb.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