From 98aa0004e23472ee63753fded33cd55d8b942f36 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 2 Mar 2013 00:04:05 -0800 Subject: Sat Mar 2 00:04:03 PST 2013 --- community/mariadb/PKGBUILD | 100 ++++++++++++++++----------------- community/mariadb/mariadb-post.sh | 8 +++ community/mariadb/mariadb-tmpfile.conf | 1 + community/mariadb/mariadb.install | 33 +++++------ community/mariadb/mariadb.service | 16 ++++++ community/mariadb/rc.d | 77 ------------------------- community/mariadb/service | 21 ------- community/mariadb/tmpfiles.conf | 1 - 8 files changed, 88 insertions(+), 169 deletions(-) create mode 100755 community/mariadb/mariadb-post.sh create mode 100644 community/mariadb/mariadb-tmpfile.conf create mode 100644 community/mariadb/mariadb.service delete mode 100755 community/mariadb/rc.d delete mode 100644 community/mariadb/service delete mode 100644 community/mariadb/tmpfiles.conf (limited to 'community/mariadb') diff --git a/community/mariadb/PKGBUILD b/community/mariadb/PKGBUILD index d2a361d9d..ba946890c 100644 --- a/community/mariadb/PKGBUILD +++ b/community/mariadb/PKGBUILD @@ -1,37 +1,35 @@ -# $Id: PKGBUILD 83403 2013-01-31 12:12:11Z bpiotrowski $ +# $Id: PKGBUILD 85328 2013-03-01 06:31:46Z bpiotrowski $ # Maintainer: Bartłomiej Piotrowski pkgbase=mariadb pkgname=('libmariadbclient' 'mariadb-clients' 'mariadb') pkgver=5.5.29 -pkgrel=1 +pkgrel=4 arch=('i686' 'x86_64') license=('GPL') -url="http://mariadb.org/" +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 - service rc.d tmpfiles.conf) + mariadb.service + mariadb-post.sh + mariadb-tmpfile.conf) sha256sums=('b0e25b5451dbf8e8c8bf243bbd0aeb264db0da2caceafc7e2c9fad77b8d4be74' - 'd9f3d0a897e2e8d5d07c19898ed4c1a4a1c08dfe09f6854f90e79e055e48c02e' - 'a0bfe75c035fa32a10d04238932f5e7ad11829b7fbdb1b8f8997ee645ae1b924' - '08daa863ddd50aff0b608621ed26936919211e286440951dca5866141291004d') + 'a6cf5446159fff16598d0d787dd3a3c30a53a656a5f876ddb608bc60e234d334' + '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd' + '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd') 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} \ + cmake ../$pkgbase-$pkgver \ -DCMAKE_BUILD_TYPE=Release \ -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 \ @@ -49,36 +47,39 @@ build() { -DWITH_ZLIB=system \ -DWITH_SSL=system \ -DWITH_LIBWRAP=OFF \ - -DWITH_MYSQLD_LDFLAGS="${LDFLAGS}" \ -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_PBXT_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ - -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \ - -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \ - -DWITHOUT_FEDERATED_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(){ +package_libmariadbclient() { pkgdesc="MariaDB client libraries" depends=('openssl') conflicts=('libmysqlclient') - provides=("libmysqlclient=${pkgver}") + provides=("libmysqlclient=$pkgver") - cd "${srcdir}"/build + cd "$srcdir"/build for dir in include libmysql libmysqld libservices; do - make -C ${dir} DESTDIR="${pkgdir}" install + 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 + 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 + install -m644 "$srcdir"/$pkgbase-$pkgver/man/$man.1 "$pkgdir"/usr/share/man/man1/$man.1 done } @@ -86,19 +87,19 @@ package_mariadb-clients() { pkgdesc="MariaDB client tools" depends=('libmariadbclient') conflicts=('mysql-clients') - provides=("mysql-clients=${pkgver}") + provides=("mysql-clients=$pkgver") - cd "${srcdir}"/build - make -C client DESTDIR="${pkgdir}" install + cd "$srcdir"/build + make -C client DESTDIR="$pkgdir" install # install man pages - install -d "${pkgdir}"/usr/share/man/man1 + 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 + 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} + rm "$pkgdir"/usr/bin/{mysql_{plugin,upgrade},mysqlbinlog,mysqltest} } package_mariadb() { @@ -107,34 +108,29 @@ package_mariadb() { install=mariadb.install depends=('mariadb-clients') conflicts=('mysql') - provides=("mysql=${pkgver}") + 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}"/rc.d "${pkgdir}"/etc/rc.d/mysqld + cd "$srcdir"/build + make DESTDIR="$pkgdir" install - install -Dm644 "${srcdir}"/service "${pkgdir}"/usr/lib/systemd/system/mysqld.service - install -Dm644 "${srcdir}"/tmpfiles.conf "${pkgdir}"/usr/lib/tmpfiles.d/mysql.conf + 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 + 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 + 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 - - install -dm700 "${pkgdir}"/var/lib/mysql + rm -r "$pkgdir"/usr/{data,mysql-test,sql-bench} + rm "$pkgdir"/usr/share/man/man1/mysql-test-run.pl.1 } - -# vim:set ts=2 sw=2 et: diff --git a/community/mariadb/mariadb-post.sh b/community/mariadb/mariadb-post.sh new file mode 100755 index 000000000..c4ac18171 --- /dev/null +++ b/community/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/community/mariadb/mariadb-tmpfile.conf b/community/mariadb/mariadb-tmpfile.conf new file mode 100644 index 000000000..6883dc798 --- /dev/null +++ b/community/mariadb/mariadb-tmpfile.conf @@ -0,0 +1 @@ +d /run/mysqld 0755 mysql mysql - diff --git a/community/mariadb/mariadb.install b/community/mariadb/mariadb.install index 4ac50ec94..de619b668 100644 --- a/community/mariadb/mariadb.install +++ b/community/mariadb/mariadb.install @@ -1,30 +1,28 @@ +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 /var/lib/mysql -s /bin/false mysql &>/dev/null - usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql - chown -R mysql:mysql var/lib/mysql &>/dev/null + useradd -u 89 -g mysql -d $datadir -s /bin/false mysql &>/dev/null - if [[ ! -d run/mysqld ]]; then - usr/bin/systemd-tmpfiles --create usr/lib/tmpfiles.d/mysql.conf + 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 /var/lib/mysql -s /bin/false mysql &>/dev/null - - if [[ ! -d run/mysqld ]]; then - usr/bin/systemd-tmpfiles --create usr/lib/tmpfiles.d/mysql.conf - fi - - if [[ "$(vercmp $2 5.5)" -lt 0 ]]; then - echo ">>> Major version update. Consider restart the service, and" - echo " then running mysql_upgrade after it." - fi + 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 var/lib/mysql/ + cp -r $x $datadir/ done rm -rf data fi @@ -38,10 +36,9 @@ post_upgrade(){ 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 } - -# vim:set ts=2 sw=2 et: diff --git a/community/mariadb/mariadb.service b/community/mariadb/mariadb.service new file mode 100644 index 000000000..dd65511d7 --- /dev/null +++ b/community/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 diff --git a/community/mariadb/rc.d b/community/mariadb/rc.d deleted file mode 100755 index e9fe8f5a8..000000000 --- a/community/mariadb/rc.d +++ /dev/null @@ -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 MariaDB 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 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/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 diff --git a/community/mariadb/service b/community/mariadb/service deleted file mode 100644 index 1b3a50082..000000000 --- a/community/mariadb/service +++ /dev/null @@ -1,21 +0,0 @@ -[Unit] -Description=MariaDB database server -After=syslog.target network.target - -[Service] -User=mysql -Group=mysql - -ExecStart=/usr/bin/mysqld --pid-file=/var/run/mysqld/mysqld.pid -ExecStop=/bin/kill -15 $MAINPID -PIDFile=/var/run/mysqld/mysqld.pid -WorkingDirectory=/usr - -# We rely on systemd, not mysqld_safe, to restart mysqld if it dies -Restart=always - -# Place temp files in a secure directory, not /tmp -PrivateTmp=true - -[Install] -WantedBy=multi-user.target diff --git a/community/mariadb/tmpfiles.conf b/community/mariadb/tmpfiles.conf deleted file mode 100644 index 74cd5f836..000000000 --- a/community/mariadb/tmpfiles.conf +++ /dev/null @@ -1 +0,0 @@ -d /var/run/mysqld 0755 mysql mysql - -- cgit v1.2.3-54-g00ecf