diff options
Diffstat (limited to 'libre')
-rw-r--r-- | libre/mariadb/PKGBUILD | 87 | ||||
-rw-r--r-- | libre/mariadb/mysql.install | 26 | ||||
-rw-r--r-- | libre/mariadb/mysqld | 77 |
3 files changed, 145 insertions, 45 deletions
diff --git a/libre/mariadb/PKGBUILD b/libre/mariadb/PKGBUILD index a87c3082a..df4bb9a16 100644 --- a/libre/mariadb/PKGBUILD +++ b/libre/mariadb/PKGBUILD @@ -4,23 +4,23 @@ # Contributor: Douglas Soares de Andrade <douglas@archlinux.org> # Maintainer (Parabola): Márcio Silva <coadde@adinet.com.uy> -_falsename=mysql -__falsename=MySQL +falsename=mysql +_falsename=MySQL pkgbase=mariadb _pkgbase=MariaDB pkgname=("lib${pkgbase}client" "${pkgbase}-clients" "${pkgbase}") pkgver=5.5.23 -pkgrel=2 +pkgrel=1.4 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" + "${falsename}d" 'my.cnf') md5sums=('7074fa091b3c1489f45a5ddf12cd5e6f' - '4c491570ec9f2db20b080082119a1714' + '2234207625baa29b2ff7d7b4f088abce' '1c949c0dbea5206af0db14942d9927b6') build() { @@ -35,22 +35,22 @@ build() { 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 \ + -DSYSCONFDIR=/etc/${falsename} \ + -DMYSQL_DATADIR=/var/lib/${falsename} \ + -DMYSQL_UNIX_ADDR=/var/run/${falsename}/${falsename}.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=ON \ - -DINSTALL_INFODIR=share/${pkgbase}/docs \ + -DINSTALL_INFODIR=share/${falsename}/docs \ -DINSTALL_MANDIR=share/man \ - -DINSTALL_PLUGINDIR=/usr/lib/${pkgbase}/plugin \ + -DINSTALL_PLUGINDIR=/usr/lib/${falsename}/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} \ + -DINSTALL_INCLUDEDIR=include/${falsename} \ + -DINSTALL_DOCREADMEDIR=share/${falsename} \ + -DINSTALL_SUPPORTFILESDIR=share/${falsename} \ + -DINSTALL_MYSQLSHAREDIR=share/${falsename} \ + -DINSTALL_DOCDIR=share/${falsename}/docs \ + -DINSTALL_SHAREDIR=share/${falsename} \ -DWITH_READLINE=ON \ -DWITH_ZLIB=system \ -DWITH_SSL=system \ @@ -69,75 +69,72 @@ build() { } package_libmariadbclient(){ - pkgdesc="${_pkgbase} client libraries (branch of ${__falsename})" + pkgdesc="${_pkgbase} client libraries (branch of ${_falsename})" depends=('openssl') - replaces=("lib${_falsename}client") - conflicts=("lib${_falsename}client") - provides=("lib${_falsename}client=${pkgver}") + conflicts=("lib${falsename}client") + provides=("lib${falsename}client=${pkgver}") cd "${srcdir}"/build - for dir in include lib${_falsename} lib${_falsename}d libservices; do + 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 -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 + 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})" + pkgdesc="${_pkgbase} client tools (branch of ${_falsename})" depends=("lib${pkgbase}client") - replaces=("${_falsename}-clients") - conflicts=("${_falsename}-clients") - provides=("${_falsename}-clients=${pkgver}") + conflicts=("${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 + 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} + rm "${pkgdir}"/usr/bin/{${falsename}_{plugin,upgrade},${falsename}binlog,${falsename}test} } package_mariadb(){ - pkgdesc="A fast SQL database server branch of ${__falsename} - ${_pkgbase}" + pkgdesc="A fast SQL database server branch of ${_falsename} - ${_pkgbase}" backup=("etc/${pkgbase}/my.cnf") - install=${pkgbase}.install + install=${falsename}.install depends=("${pkgbase}-clients") - optdepends=('perl-dbi' "perl-dbd-${_falsename}") - replaces=("${_falsename}") - conflicts=("${_falsename}") - provides=("${_falsename}=${pkgver}") + optdepends=('perl-dbi' "perl-dbd-${falsename}") + conflicts=("${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 + install -Dm644 "${srcdir}"/my.cnf "${pkgdir}"/etc/${falsename}/my.cnf + install -Dm755 "${srcdir}"/${falsename}d "${pkgdir}"/etc/rc.d/${falsename}d # provided by libmariadbclient - rm "${pkgdir}"/usr/bin/{${_falsename}_config,${_falsename}_client_test_embedded,${_falsename}test_embedded} - rm "${pkgdir}"/usr/lib/lib${_falsename}* + 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 + 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 + 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 + 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} + install -dm700 "${pkgdir}"/var/lib/${falsename} } diff --git a/libre/mariadb/mysql.install b/libre/mariadb/mysql.install new file mode 100644 index 000000000..9a4479215 --- /dev/null +++ b/libre/mariadb/mysql.install @@ -0,0 +1,26 @@ +post_install(){ + groupadd -g 89 mysql &>/dev/null + useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null + usr/bin/mysql_install_db --user=mysql --basedir=/usr + chown -R mysql:mysql var/lib/mysql &>/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/mysql -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/mysqld b/libre/mariadb/mysqld new file mode 100644 index 000000000..1ac88a7cc --- /dev/null +++ b/libre/mariadb/mysqld @@ -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 MySQL Server" + [ ! -d /var/run/mysqld ] && install -d -g mysql -o mysql /var/run/mysqld &>/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/mysqld/mysqld.pid + add_daemon mysqld + stat_done + fi + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping MySQL 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/mysqld/mysqld.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 |