summaryrefslogtreecommitdiff
path: root/pcr/mariadb-galera
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2014-02-18 01:56:34 +0000
committerNicolás Reynolds <fauno@endefensadelsl.org>2014-02-18 01:56:34 +0000
commit8185891e28635bdb83fdf4ba4391030912dae596 (patch)
tree66a946535bdd228514750233b2cc99dd1866ff64 /pcr/mariadb-galera
parent60a11f87366fdfbd114cdc91ff813518858e5f8d (diff)
Tue Feb 18 01:56:27 UTC 2014
Diffstat (limited to 'pcr/mariadb-galera')
-rw-r--r--pcr/mariadb-galera/PKGBUILD107
-rw-r--r--pcr/mariadb-galera/mariadb-post.sh8
-rw-r--r--pcr/mariadb-galera/mariadb-tmpfile.conf1
-rw-r--r--pcr/mariadb-galera/mariadb.install47
-rw-r--r--pcr/mariadb-galera/mariadb.service16
5 files changed, 179 insertions, 0 deletions
diff --git a/pcr/mariadb-galera/PKGBUILD b/pcr/mariadb-galera/PKGBUILD
new file mode 100644
index 000000000..920137305
--- /dev/null
+++ b/pcr/mariadb-galera/PKGBUILD
@@ -0,0 +1,107 @@
+# $Id$
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+
+pkgname=mariadb-galera
+pkgbase=mariadb-galera
+pkgver=5.5.33a
+_pkgver=${pkgver/.a/a}
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+url='https://mariadb.com/kb/en/galera/'
+pkgdesc='Fast SQL database server, drop-in replacement for MySQL with Galera Cluster'
+backup=('etc/mysql/my.cnf')
+install=mariadb.install
+depends=('mariadb-clients' 'inetutils' 'libaio' 'galera')
+conflicts=('mysql')
+provides=("mysql=$pkgver" "mariadb")
+options=('emptydirs')
+makedepends=('cmake' 'openssl' 'zlib' 'libaio')
+source=(http://ftp.wa.co.za/pub/mariadb/${pkgname}-${pkgver}/kvm-tarbake-jaunty-x86/${pkgname}-${pkgver}.tar.gz
+ mariadb.service
+ mariadb-post.sh
+ mariadb-tmpfile.conf)
+sha256sums=('1b49e41e677d95f7a5b548771a81c6430ec6f0ee16e7ee624fb2fe2b278183b8'
+ 'a6cf5446159fff16598d0d787dd3a3c30a53a656a5f876ddb608bc60e234d334'
+ '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd'
+ '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd')
+
+prepare() {
+ mkdir build
+}
+
+build() {
+ cd build
+
+ cmake ../mariadb-$pkgver \
+ -DBUILD_CONFIG=mysql_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/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 \
+ -DWITH_TOKUDB_STORAGE_ENGINE=1 \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
+ -DWITHOUT_OQGRAPH_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}" \
+ -DWITH_WSREP=ON \
+ -DWITH_INNODB_DISALLOW_WRITES=1
+
+
+ make
+}
+
+package() {
+
+ cd build
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$pkgdir"/usr/share/mysql/my-medium.cnf "$pkgdir"/etc/mysql/my.cnf
+ install -Dm755 ../mariadb-post.sh "$pkgdir"/usr/bin/mysqld-post
+ install -Dm644 ../mariadb.service "$pkgdir"/usr/lib/systemd/system/mysqld.service
+ install -Dm644 ../mariadb-tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/mysql.conf
+
+ # provided by libmariadbclient
+ cd "$pkgdir"
+ rm -f usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
+ rm -f usr/lib/libmysql*
+ rm -rf usr/include/
+ rm -f usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1
+
+ # provided by mariadb-clients
+ rm -f usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
+ rm -f usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1
+
+ # provided by mytop
+ rm -f usr/bin/mytop
+
+ # not needed
+ rm -rf usr/{data,mysql-test,sql-bench}
+ rm -f usr/share/man/man1/mysql-test-run.pl.1
+}
diff --git a/pcr/mariadb-galera/mariadb-post.sh b/pcr/mariadb-galera/mariadb-post.sh
new file mode 100644
index 000000000..c4ac18171
--- /dev/null
+++ b/pcr/mariadb-galera/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/pcr/mariadb-galera/mariadb-tmpfile.conf b/pcr/mariadb-galera/mariadb-tmpfile.conf
new file mode 100644
index 000000000..6883dc798
--- /dev/null
+++ b/pcr/mariadb-galera/mariadb-tmpfile.conf
@@ -0,0 +1 @@
+d /run/mysqld 0755 mysql mysql -
diff --git a/pcr/mariadb-galera/mariadb.install b/pcr/mariadb-galera/mariadb.install
new file mode 100644
index 000000000..7d3c2ce5c
--- /dev/null
+++ b/pcr/mariadb-galera/mariadb.install
@@ -0,0 +1,47 @@
+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 mysql.conf
+
+ echo ">> If you are migrating from MySQL, don't forget to run 'mysql_upgrade'"
+ echo " after mysqld.service restart."
+}
+
+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/pcr/mariadb-galera/mariadb.service b/pcr/mariadb-galera/mariadb.service
new file mode 100644
index 000000000..dd65511d7
--- /dev/null
+++ b/pcr/mariadb-galera/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