summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <andre@pc-01.localdomain>2012-04-13 21:07:32 -0300
committerAndré Fabian Silva Delgado <andre@pc-01.localdomain>2012-04-13 21:07:32 -0300
commit8df0f600e8af6ec882fdc19ffff4ef823b7747b3 (patch)
tree916647d19d9cbc4c29046af0b1848b51d58b735c
parent9af08e6ead241f746accd5b9cfac80b97abd3b85 (diff)
mariadb-5.5.23-1: an optional mysql alternative
-rw-r--r--libre/mariadb/PKGBUILD141
-rw-r--r--libre/mariadb/mariadb.install26
-rwxr-xr-xlibre/mariadb/mariadbd77
-rw-r--r--libre/mariadb/my.cnf145
4 files changed, 389 insertions, 0 deletions
diff --git a/libre/mariadb/PKGBUILD b/libre/mariadb/PKGBUILD
new file mode 100644
index 000000000..3c519dc28
--- /dev/null
+++ b/libre/mariadb/PKGBUILD
@@ -0,0 +1,141 @@
+# $Id$
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy>
+
+_falsename=mysql
+__falsename=MySQL
+pkgbase=mariadb
+_pkgbase=MariaDB
+pkgname=("lib${pkgbase}client" "${pkgbase}-clients" "${pkgbase}")
+conflicts=("lib${_falsename}client" "${_falsename}-clients" "${_falsename}")
+pkgver=5.5.23
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('GPL')
+url="http://www.${pkgbase}.org/"
+makedepends=('cmake' 'openssl' 'zlib')
+options=('!libtool')
+source=("http://mirror.aarnet.edu.au/pub/${_pkgbase}/${pkgbase}-${pkgver}/kvm-tarbake-jaunty-x86/${pkgbase}-${pkgver}.tar.gz"
+ "${pkgbase}d"
+ 'my.cnf')
+md5sums=('7074fa091b3c1489f45a5ddf12cd5e6f'
+ '4c491570ec9f2db20b080082119a1714'
+ '1c949c0dbea5206af0db14942d9927b6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+
+ # CFLAGS/CXXFLAGS as suggested upstream
+ CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
+ CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \
+
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONFDIR=/etc/${pkgbase} \
+ -DMYSQL_DATADIR=/var/lib/${pkgbase} \
+ -DMYSQL_UNIX_ADDR=/var/run/${pkgbase}/${pkgbase}.sock \
+ -DDEFAULT_CHARSET=utf8 \
+ -DDEFAULT_COLLATION=utf8_general_ci \
+ -DENABLED_LOCAL_INFILE=ON \
+ -DINSTALL_INFODIR=share/${pkgbase}/docs \
+ -DINSTALL_MANDIR=share/man \
+ -DINSTALL_PLUGINDIR=/usr/lib/${pkgbase}/plugin \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_INCLUDEDIR=include/${pkgbase} \
+ -DINSTALL_DOCREADMEDIR=share/${pkgbase} \
+ -DINSTALL_SUPPORTFILESDIR=share/${pkgbase} \
+ -DINSTALL_MYSQLSHAREDIR=share/${pkgbase} \
+ -DINSTALL_DOCDIR=share/${pkgbase}/docs \
+ -DINSTALL_SHAREDIR=share/${pkgbase} \
+ -DWITH_READLINE=ON \
+ -DWITH_ZLIB=system \
+ -DWITH_SSL=system \
+ -DWITH_LIBWRAP=OFF \
+ -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -DWITH_PARTITION_STORAGE_ENGINE=1 \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
+ -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
+
+ make
+}
+
+package_libmariadbclient(){
+ pkgdesc="${_pkgbase} client libraries (branch of ${__falsename})"
+ depends=('openssl')
+ replaces=("lib${_falsename}client")
+ provides=("lib${_falsename}client=${pkgver}")
+
+ cd "${srcdir}"/build
+ for dir in include lib${_falsename} lib${_falsename}d libservices; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+
+ install -d "${pkgdir}"/usr/bin
+ install -m755 scripts/${_falsename}_config "${pkgdir}"/usr/bin/
+ install -d "${pkgdir}"/usr/share/man/man1
+ for man in ${_falsename}_config ${_falsename}_client_test_embedded ${_falsename}test_embedded; do
+ install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1
+ done
+}
+
+package_mariadb-clients(){
+ pkgdesc="${_pkgbase} client tools (branch of ${__falsename})"
+ depends=("lib${pkgbase}client")
+ replaces=("${_falsename}-clients")
+ provides=("${_falsename}-clients=${pkgver}")
+
+ cd "${srcdir}"/build
+ make -C client DESTDIR="${pkgdir}" install
+
+ # install man pages
+ install -d "${pkgdir}"/usr/share/man/man1
+ for man in ${_falsename} ${_falsename}admin ${_falsename}check ${_falsename}dump ${_falsename}import ${_falsename}show ${_falsename}slap; do
+ install -m644 "${srcdir}"/${pkgbase}-${pkgver}/man/$man.1 "${pkgdir}"/usr/share/man/man1/$man.1
+ done
+
+ # provided by mariadb
+ rm "${pkgdir}"/usr/bin/{${_falsename}_{plugin,upgrade},${_falsename}binlog,${_falsename}test}
+}
+
+package_mariadb(){
+ pkgdesc="A fast SQL database server branch of ${__falsename} - ${_pkgbase}"
+ backup=("etc/${pkgbase}/my.cnf")
+ install=${pkgbase}.install
+ depends=("${pkgbase}-clients")
+ optdepends=('perl-dbi' "perl-dbd-${_falsename}")
+ replaces=("${_falsename}")
+ provides=("${_falsename}=${pkgver}")
+ options=('emptydirs')
+
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 "${srcdir}"/my.cnf "${pkgdir}"/etc/${pkgbase}/my.cnf
+ install -Dm755 "${srcdir}"/${pkgbase}d "${pkgdir}"/etc/rc.d/${pkgbase}d
+
+ # provided by libmariadbclient
+ rm "${pkgdir}"/usr/bin/{${_falsename}_config,${_falsename}_client_test_embedded,${_falsename}test_embedded}
+ rm "${pkgdir}"/usr/lib/lib${_falsename}*
+ rm -r "${pkgdir}"/usr/include/
+ rm "${pkgdir}"/usr/share/man/man1/{${_falsename}_config,${_falsename}_client_test_embedded,${_falsename}test_embedded}.1
+
+ # provided by mariadb-clients
+ rm "${pkgdir}"/usr/bin/{${_falsename},${_falsename}admin,${_falsename}check,${_falsename}dump,${_falsename}import,${_falsename}show,${_falsename}slap}
+ rm "${pkgdir}"/usr/share/man/man1/{${_falsename},${_falsename}admin,${_falsename}check,${_falsename}dump,${_falsename}import,${_falsename}show,${_falsename}slap}.1
+
+ # not needed
+ rm -r "${pkgdir}"/usr/{data,${_falsename}-test,sql-bench}
+ rm "${pkgdir}"/usr/share/man/man1/${_falsename}-test-run.pl.1
+
+ install -dm700 "${pkgdir}"/var/lib/${pkgbase}
+}
diff --git a/libre/mariadb/mariadb.install b/libre/mariadb/mariadb.install
new file mode 100644
index 000000000..f56a0dcaa
--- /dev/null
+++ b/libre/mariadb/mariadb.install
@@ -0,0 +1,26 @@
+post_install(){
+ groupadd -g 89 mysql &>/dev/null
+ useradd -u 89 -g mysql -d /var/lib/mariadb -s /bin/false mysql &>/dev/null
+ /usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mariadb
+ chown -R mysql:mysql /var/lib/mariadb &>/dev/null
+}
+
+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 /var/lib/mariadb -s /bin/false mysql &>/dev/null
+
+ if [ "$(vercmp $2 5.5)" -lt 0 ]; then
+ echo " >> "
+ echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it."
+ echo " >> "
+ 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/libre/mariadb/mariadbd b/libre/mariadb/mariadbd
new file mode 100755
index 000000000..3ae612096
--- /dev/null
+++ b/libre/mariadb/mariadbd
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+getPID() {
+ echo $(pgrep -u mysql mysqld 2>/dev/null);
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting MariaDB Server"
+ [ ! -d /var/run/mariadb ] && install -d -g mysql -o mysql /var/run/mariadb &>/dev/null
+ if [ -z "$(getPID)" ]; then
+ /usr/bin/mysqld_safe --user=mysql &>/dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ timeo=30
+ while [ $timeo -gt 0 ]; do
+ response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
+ echo "$response" | grep -q "mysqld is alive" && break
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ $timeo -eq 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(getPID) > /var/run/mariadb/mariadb.pid
+ add_daemon mysqld
+ stat_done
+ fi
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping MariaDB Server"
+ if [ ! -z "$(getPID)" ]; then
+ timeo=30
+ kill $(getPID) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ -z "$(getPID)" ]; then
+ rm -f /var/run/mariadb/mariadb.pid &>/dev/null
+ rm_daemon mysqld
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/libre/mariadb/my.cnf b/libre/mariadb/my.cnf
new file mode 100644
index 000000000..9a41b4fc3
--- /dev/null
+++ b/libre/mariadb/my.cnf
@@ -0,0 +1,145 @@
+# MySQL config file for medium systems.
+#
+# This is for a system with little memory (32M - 64M) where MySQL plays
+# an important part, or systems up to 128M where MySQL is used together with
+# other programs (such as a web server)
+#
+# MySQL programs look for option files in a set of
+# locations which depend on the deployment platform.
+# You can copy this option file to one of those
+# locations. For information about these locations, see:
+# http://dev.mysql.com/doc/mysql/en/option-files.html
+#
+# In this file, you can use all long options that a program supports.
+# If you want to know which options a program supports, run the program
+# with the "--help" option.
+
+# The following options will be passed to all MySQL clients
+[client]
+#password = your_password
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+
+# Here follows entries for some specific programs
+
+# The MySQL server
+[mysqld]
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+datadir = /var/lib/mysql
+skip-external-locking
+key_buffer_size = 16M
+max_allowed_packet = 1M
+table_open_cache = 64
+sort_buffer_size = 512K
+net_buffer_length = 8K
+read_buffer_size = 256K
+read_rnd_buffer_size = 512K
+myisam_sort_buffer_size = 8M
+
+# Don't listen on a TCP/IP port at all. This can be a security enhancement,
+# if all processes that need to connect to mysqld run on the same host.
+# All interaction with mysqld must be made via Unix sockets or named pipes.
+# Note that using this option without enabling named pipes on Windows
+# (via the "enable-named-pipe" option) will render mysqld useless!
+#
+skip-networking
+
+# Replication Master Server (default)
+# binary logging is required for replication
+log-bin=mysql-bin
+
+# binary logging format - mixed recommended
+binlog_format=mixed
+
+# required unique id between 1 and 2^32 - 1
+# defaults to 1 if master-host is not set
+# but will not function as a master if omitted
+server-id = 1
+
+# Replication Slave (comment out master section to use this)
+#
+# To configure this host as a replication slave, you can choose between
+# two methods :
+#
+# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
+# the syntax is:
+#
+# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
+# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
+#
+# where you replace <host>, <user>, <password> by quoted strings and
+# <port> by the master's port number (3306 by default).
+#
+# Example:
+#
+# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
+# MASTER_USER='joe', MASTER_PASSWORD='secret';
+#
+# OR
+#
+# 2) Set the variables below. However, in case you choose this method, then
+# start replication for the first time (even unsuccessfully, for example
+# if you mistyped the password in master-password and the slave fails to
+# connect), the slave will create a master.info file, and any later
+# change in this file to the variables' values below will be ignored and
+# overridden by the content of the master.info file, unless you shutdown
+# the slave server, delete master.info and restart the slaver server.
+# For that reason, you may want to leave the lines below untouched
+# (commented) and instead use CHANGE MASTER TO (see above)
+#
+# required unique id between 2 and 2^32 - 1
+# (and different from the master)
+# defaults to 2 if master-host is set
+# but will not function as a slave if omitted
+#server-id = 2
+#
+# The replication master for this slave - required
+#master-host = <hostname>
+#
+# The username the slave will use for authentication when connecting
+# to the master - required
+#master-user = <username>
+#
+# The password the slave will authenticate with when connecting to
+# the master - required
+#master-password = <password>
+#
+# The port the master is listening on.
+# optional - defaults to 3306
+#master-port = <port>
+#
+# binary logging - not required for slaves, but recommended
+#log-bin=mysql-bin
+
+# Uncomment the following if you are using InnoDB tables
+#innodb_data_home_dir = /var/lib/mysql
+#innodb_data_file_path = ibdata1:10M:autoextend
+#innodb_log_group_home_dir = /var/lib/mysql
+# You can set .._buffer_pool_size up to 50 - 80 %
+# of RAM but beware of setting memory usage too high
+#innodb_buffer_pool_size = 16M
+#innodb_additional_mem_pool_size = 2M
+# Set .._log_file_size to 25 % of buffer pool size
+#innodb_log_file_size = 5M
+#innodb_log_buffer_size = 8M
+#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
+
+[myisamchk]
+key_buffer_size = 20M
+sort_buffer_size = 20M
+read_buffer = 2M
+write_buffer = 2M
+
+[mysqlhotcopy]
+interactive-timeout