Date: Tuesday, August 14, 2012 @ 14:41:59 Author: andrea Revision: 165265
Move the pid file to /run; first attempt to use a systemd service file Added: mysql/trunk/mysqld-post.sh mysql/trunk/mysqld-tmpfile.conf mysql/trunk/mysqld.rc mysql/trunk/mysqld.service Modified: mysql/trunk/PKGBUILD mysql/trunk/mysql.install Deleted: mysql/trunk/mysqld ---------------------+ PKGBUILD | 33 +++++++++++---------- mysql.install | 2 + mysqld | 77 -------------------------------------------------- mysqld-post.sh | 5 +++ mysqld-tmpfile.conf | 1 mysqld.rc | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++ mysqld.service | 11 +++++++ 7 files changed, 114 insertions(+), 92 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2012-08-14 17:01:07 UTC (rev 165264) +++ PKGBUILD 2012-08-14 18:41:59 UTC (rev 165265) @@ -1,26 +1,26 @@ # $Id$ -# Maintainer: -# Contributor: Andrea Scarpino <[email protected]> +# Maintainer: Andrea Scarpino <[email protected]> # Contributor: Douglas Soares de Andrade <[email protected]> pkgbase=mysql pkgname=('libmysqlclient' 'mysql-clients' 'mysql') pkgver=5.5.27 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') license=('GPL') url="https://www.mysql.com/products/community/" makedepends=('cmake' 'openssl' 'zlib') options=('!libtool') source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz" - 'mysqld' - 'my.cnf') + 'mysqld.rc' 'my.cnf' 'mysqld-post.sh' 'mysqld-tmpfile.conf' 'mysqld.service') md5sums=('82baf46acfced6eef072e9d8a479c86e' - '2234207625baa29b2ff7d7b4f088abce' - '1c949c0dbea5206af0db14942d9927b6') + 'e7eb2faeab755cbb2fe03542bf328da9' + '1c949c0dbea5206af0db14942d9927b6' + 'f772d69f43f6563c6e5434e988612b00' + '2fa6e456964d4ff5e6d4f9ff0126aed6' + 'a0e1460c276a50a9666c331de83271f2') build() { - cd "${srcdir}" mkdir build cd build @@ -31,7 +31,7 @@ -DCMAKE_INSTALL_PREFIX=/usr \ -DSYSCONFDIR=/etc/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ - -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \ + -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DENABLED_LOCAL_INFILE=ON \ @@ -68,7 +68,7 @@ pkgdesc="MySQL client libraries" depends=('openssl') - cd "${srcdir}"/build + cd build for dir in include libmysql libmysqld libservices; do make -C ${dir} DESTDIR="${pkgdir}" install done @@ -85,7 +85,7 @@ pkgdesc="MySQL client tools" depends=('libmysqlclient') - cd "${srcdir}"/build + cd build make -C client DESTDIR="${pkgdir}" install # install man pages @@ -102,15 +102,18 @@ pkgdesc="A fast SQL database server" backup=('etc/mysql/my.cnf') install=mysql.install - depends=('mysql-clients') - optdepends=('perl-dbi' 'perl-dbd-mysql') + depends=('mysql-clients' 'systemd-tools') options=('emptydirs') - cd "${srcdir}"/build + cd build make DESTDIR="${pkgdir}" install install -Dm644 "${srcdir}"/my.cnf "${pkgdir}"/etc/mysql/my.cnf - install -Dm755 "${srcdir}"/mysqld "${pkgdir}"/etc/rc.d/mysqld + install -Dm755 "${srcdir}"/mysqld.rc "${pkgdir}"/etc/rc.d/mysqld + install -Dm755 "${srcdir}"/mysqld-post.sh "${pkgdir}"/usr/bin/mysqld-post + install -Dm644 "${srcdir}"/mysqld-tmpfile.conf "${pkgdir}"/etc/tmpfiles.d/mysqld.conf + install -d "${pkgdir}"/usr/lib/systemd/system + install -Dm644 "${srcdir}"/mysqld.service "${pkgdir}"/usr/lib/systemd/system/ # provided by libmysqlclient rm "${pkgdir}"/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded} Modified: mysql.install =================================================================== --- mysql.install 2012-08-14 17:01:07 UTC (rev 165264) +++ mysql.install 2012-08-14 18:41:59 UTC (rev 165265) @@ -3,6 +3,8 @@ 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 + + usr/bin/systemd-tmpfiles --create mysqld.conf } post_upgrade(){ Deleted: mysqld =================================================================== --- mysqld 2012-08-14 17:01:07 UTC (rev 165264) +++ mysqld 2012-08-14 18:41:59 UTC (rev 165265) @@ -1,77 +0,0 @@ -#!/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 Added: mysqld-post.sh =================================================================== --- mysqld-post.sh (rev 0) +++ mysqld-post.sh 2012-08-14 18:41:59 UTC (rev 165265) @@ -0,0 +1,5 @@ +while true; do + response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break + echo "$response" | grep -q "mysqld is alive" && break + sleep 1 +done Property changes on: mysql/trunk/mysqld-post.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: mysqld-tmpfile.conf =================================================================== --- mysqld-tmpfile.conf (rev 0) +++ mysqld-tmpfile.conf 2012-08-14 18:41:59 UTC (rev 165265) @@ -0,0 +1 @@ +d /run/mysqld 0755 mysql mysql - Added: mysqld.rc =================================================================== --- mysqld.rc (rev 0) +++ mysqld.rc 2012-08-14 18:41:59 UTC (rev 165265) @@ -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 /run/mysqld ] && install -d -g mysql -o mysql /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) > /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 /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 Property changes on: mysql/trunk/mysqld.rc ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: mysqld.service =================================================================== --- mysqld.service (rev 0) +++ mysqld.service 2012-08-14 18:41:59 UTC (rev 165265) @@ -0,0 +1,11 @@ +[Unit] +Description=MySQL Server + +[Service] +User=mysql +ExecStart=/usr/bin/mysqld --user=mysql +ExecStartPost=/usr/bin/mysqld-post +Restart=always + +[Install] +WantedBy=multi-user.target
