Date: Thursday, March 5, 2015 @ 18:41:30 Author: mtorromeo Revision: 128779
Fixed community-i686 Added: percona-server/repos/community-i686/PKGBUILD percona-server/repos/community-i686/mysql-user.conf percona-server/repos/community-i686/mysql56-bufsize.patch percona-server/repos/community-i686/mysqld-post.sh percona-server/repos/community-i686/mysqld-tmpfile.conf percona-server/repos/community-i686/mysqld.service percona-server/repos/community-i686/percona.install -----------------------+ PKGBUILD | 149 ++++++++++++++++++++++++++++++++++++++++++++++++ mysql-user.conf | 1 mysql56-bufsize.patch | 20 ++++++ mysqld-post.sh | 8 ++ mysqld-tmpfile.conf | 1 mysqld.service | 16 +++++ percona.install | 25 ++++++++ 7 files changed, 220 insertions(+) Added: PKGBUILD =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2015-03-05 17:41:30 UTC (rev 128779) @@ -0,0 +1,149 @@ +# $Id: PKGBUILD 128772 2015-03-05 16:00:40Z mtorromeo $ +# Maintainer: Massimiliano Torromeo <[email protected]> + +pkgbase=percona-server +pkgname=('libperconaserverclient' 'percona-server-clients' 'percona-server') +pkgver=5.6.23_72.1 +_pkgver=${pkgver/_/-} +_myver=${pkgver/_rel*} +pkgrel=1 +arch=('i686' 'x86_64') +makedepends=('cmake' 'openssl' 'zlib' 'libaio' 'systemd-tools') +license=('GPL') +url="http://www.percona.com/software/percona-server/" +source=("http://www.percona.com/downloads/Percona-Server-${pkgver%.*_*}/Percona-Server-$_pkgver/source/tarball/percona-server-$_pkgver.tar.gz" + 'mysqld-post.sh' + 'mysqld.service' + 'mysql-user.conf' + 'mysqld-tmpfile.conf' + 'mysql56-bufsize.patch') + +prepare() { + cd $pkgbase-$_pkgver + patch -p0 -i ../mysql56-bufsize.patch + + rm -v sql/sql_yacc.{cc,h} +} + +build() { + rm -rf build + mkdir build + cd build + + cmake ../$pkgbase-$_pkgver \ + -DCMAKE_BUILD_TYPE=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/perconaserver \ + -DINSTALL_DOCREADMEDIR=share/mysql \ + -DINSTALL_SUPPORTFILESDIR=share/mysql \ + -DINSTALL_MYSQLSHAREDIR=share/mysql \ + -DINSTALL_DOCDIR=share/mysql/docs \ + -DINSTALL_SHAREDIR=share/mysql \ + -DWITH_ZLIB=system \ + -DWITH_SSL=system \ + -DWITH_LIBWRAP=OFF \ + -DWITH_UNIT_TESTS=OFF \ + -DWITH_PAM=ON \ + -DWITH_EXTRA_CHARSETS=complex \ + -DWITH_EMBEDDED_SERVER=ON \ + -DWITH_INNODB_MEMCACHED=ON \ + -DWITH_INNOBASE_STORAGE_ENGINE=ON \ + -DWITH_PARTITION_STORAGE_ENGINE=ON \ + -DWITH_PERFSCHEMA_STORAGE_ENGINE=ON \ + -DWITH_ARCHIVE_STORAGE_ENGINE=ON \ + -DWITH_BLACKHOLE_STORAGE_ENGINE=ON \ + -DWITH_FEDERATED_STORAGE_ENGINE=OFF \ + -DWITH_EXAMPLE_STORAGE_ENGINE=OFF \ + -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_libperconaserverclient() { + pkgdesc='Percona Server client libraries' + depends=('openssl') + + cd build + for dir in include libmysql libmysqld libservices; do + make -C $dir DESTDIR="$pkgdir" install + done + + rm "$pkgdir"/usr/lib/libmysqlservices.a + + install -Dm755 scripts/mysql_config "$pkgdir"/usr/bin/perconaserver_config + install -d "$pkgdir"/usr/share/man/man1 + install -m644 "$srcdir"/$pkgbase-$_pkgver/man/mysql_config.1 "$pkgdir"/usr/share/man/man1/perconaserver_config.1 +} + +package_percona-server-clients() { + pkgdesc='Percona Server client tools' + depends=('libperconaserverclient' 'zlib') + conflicts=('mysql-clients') + provides=("mysql-clients=$_myver" "mariadb-clients=$_myver") + + cd build + make -C client DESTDIR="$pkgdir" install + + # install man pages + 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 + done + + # provided by percona-server + rm "$pkgdir"/usr/bin/{mysql_{plugin,upgrade},mysqlbinlog,mysqltest,mysql_config_editor} +} + +package_percona-server() { + pkgdesc='A backwards-compatible drop-in replacement for MySQL that provides improved performance, diagnostics and instrumentation' + backup=('etc/mysql/my.cnf') + install=percona.install + depends=('percona-server-clients' 'libaio' 'systemd-tools' 'pam') + optdepends=('perl-dbd-mysql') + conflicts=('mysql') + provides=("mysql=$_myver" "mariadb=$_myver") + options=('emptydirs') + + cd build + make DESTDIR="$pkgdir" install + + install -Dm644 "$pkgdir"/usr/share/mysql/my-default.cnf "$pkgdir"/etc/mysql/my.cnf + install -Dm755 ../mysqld-post.sh "$pkgdir"/usr/bin/mysqld-post + install -Dm644 ../mysqld.service "$pkgdir"/usr/lib/systemd/system/mysqld.service + install -Dm644 ../mysql-user.conf "$pkgdir"/usr/lib/sysusers.d/mysql.conf + install -Dm644 ../mysqld-tmpfile.conf "$pkgdir"/usr/lib/tmpfiles.d/mysqld.conf + + # provided by libperconaserverclient + cd "$pkgdir" + rm usr/bin/mysql_config + rm usr/lib/lib{mysql,perconaserver}* + rm -r usr/include/ + rm usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1 + + # provided by percona-server-clients + rm usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap} + rm usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1 + + # not needed + rm -r usr/{data,mysql-test,sql-bench} + rm usr/share/man/man1/mysql-test-run.pl.1 +} + +sha256sums=('5382630b98dd05f72e372ede5535ddcad2e389b594311a69f03a3d95f68d4907' + '82a241d9fa4032187a26597d044e94ba810b209b53a7ce14bb6eb92555993a48' + '9bc66470f3f80534c0bb62f9f8325ccf60b164f421f74ad74a963f065d7b1869' + 'e638a2657085f15b6728f43c1fd6aa551b27608fbf6b435e33afd3606a0cfb0e' + 'badf6a701d9dc6ea3b4ddca26cb0f42b6236432ccdbc14c64962147802594a60' + '1039e232a7778544b00eb215c93bb06c588c95c2fd49cfb162dc50eb4dfbf729') Added: mysql-user.conf =================================================================== --- mysql-user.conf (rev 0) +++ mysql-user.conf 2015-03-05 17:41:30 UTC (rev 128779) @@ -0,0 +1 @@ +u mysql 89 "MySQL user" Added: mysql56-bufsize.patch =================================================================== --- mysql56-bufsize.patch (rev 0) +++ mysql56-bufsize.patch 2015-03-05 17:41:30 UTC (rev 128779) @@ -0,0 +1,20 @@ +--- storage/innobase/row/row0log.cc.orig 2013-10-14 09:44:46.060172260 +0200 ++++ storage/innobase/row/row0log.cc 2013-10-14 10:05:51.822170509 +0200 +@@ -2364,7 +2364,7 @@ + and be ignored when the operation is unsupported. */ + fallocate(index->online_log->fd, + FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, +- ofs, srv_buf_size); ++ ofs, srv_sort_buf_size); + #endif /* FALLOC_FL_PUNCH_HOLE */ + + next_mrec = index->online_log->head.block; +@@ -3153,7 +3153,7 @@ + and be ignored when the operation is unsupported. */ + fallocate(index->online_log->fd, + FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, +- ofs, srv_buf_size); ++ ofs, srv_sort_buf_size); + #endif /* FALLOC_FL_PUNCH_HOLE */ + + next_mrec = index->online_log->head.block; Added: mysqld-post.sh =================================================================== --- mysqld-post.sh (rev 0) +++ mysqld-post.sh 2015-03-05 17:41:30 UTC (rev 128779) @@ -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 Added: mysqld-tmpfile.conf =================================================================== --- mysqld-tmpfile.conf (rev 0) +++ mysqld-tmpfile.conf 2015-03-05 17:41:30 UTC (rev 128779) @@ -0,0 +1 @@ +d /run/mysqld 0755 mysql mysql - \ No newline at end of file Added: mysqld.service =================================================================== --- mysqld.service (rev 0) +++ mysqld.service 2015-03-05 17:41:30 UTC (rev 128779) @@ -0,0 +1,16 @@ +[Unit] +Description=MySQL database server +After=syslog.target network.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 Added: percona.install =================================================================== --- percona.install (rev 0) +++ percona.install 2015-03-05 17:41:30 UTC (rev 128779) @@ -0,0 +1,25 @@ +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(){ + systemd-sysusers mysql.conf + + if [[ ! -e $datadir ]]; then + install -dm700 $datadir + mysql_install_db --user=mysql --basedir=/usr --datadir=$datadir + fi + + systemd-tmpfiles --create mysqld.conf +} + +post_upgrade(){ + systemd-sysusers mysql.conf + + if [ "$(vercmp $2 5.6)" -lt 0 ]; then + echo " >> " + echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it." + echo " >> " + fi +}
