diff options
author | Muflone | 2015-06-13 17:59:22 +0200 |
---|---|---|
committer | Muflone | 2015-06-13 17:59:22 +0200 |
commit | 8b388f6b9381038fce39a83eb542589b42ae4acd (patch) | |
tree | 6ab5e1a7644dc2fccc5fe4e7b4f98f52835cc4a1 | |
download | aur-8b388f6b9381038fce39a83eb542589b42ae4acd.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 49 | ||||
-rw-r--r-- | PKGBUILD | 171 | ||||
-rw-r--r-- | mysql-srv_buf_size.patch | 20 | ||||
-rw-r--r-- | mysql.install | 37 | ||||
-rwxr-xr-x | mysqld-post.sh | 8 | ||||
-rw-r--r-- | mysqld-tmpfile.conf | 1 | ||||
-rw-r--r-- | mysqld.service | 16 |
7 files changed, 302 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..05a5da3fe1f5 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,49 @@ +pkgbase = mysql + pkgdesc = Fast SQL database server, community edition + pkgver = 5.6.24 + pkgrel = 1 + url = https://www.mysql.com/products/community/ + arch = i686 + arch = x86_64 + license = GPL + makedepends = openssl + makedepends = zlib + makedepends = cmake + makedepends = systemd-tools + makedepends = libaio + makedepends = jemalloc + options = !libtool + source = https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz + source = mysqld-post.sh + source = mysqld-tmpfile.conf + source = mysqld.service + source = mysql-srv_buf_size.patch + sha256sums = 37e27305b67d76883c5902dce59c89d596beee9dca7dbadd4a2e117f8101dfeb + sha256sums = 368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd + sha256sums = 2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd + sha256sums = 50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556 + sha256sums = bfa3ba5546d470e1c1d32246f687f0faa8c225913a648262fbcae6b2296cb57f + +pkgname = mysql + pkgdesc = Fast SQL database server, community edition + install = mysql.install + depends = mysql-clients + depends = libaio + provides = mariadb=5.6.24 + conflicts = mariadb + options = emptydirs + backup = etc/mysql/my.cnf + +pkgname = libmysqlclient + pkgdesc = MySQL client libraries + depends = openssl + provides = libmariadbclient=5.6.24 + conflicts = libmariadbclient + +pkgname = mysql-clients + pkgdesc = MySQL client tools + depends = libmysqlclient + depends = jemalloc + provides = mariadb-clients=5.6.24 + conflicts = mariadb-clients + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..86c496366b0c --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,171 @@ +# Maintainer: Muflone http://www.muflone.com/contacts/english/ +# Contributor: Rustam Tsurik <rustam.tsurik@gmail.com> +# Contributor: Andrea Scarpino <andrea@archlinux.org> +# Contributor: Douglas Soares de Andrade <douglas@archlinux.org> + +pkgname=('mysql' 'libmysqlclient' 'mysql-clients') +pkgbase=mysql +pkgver=5.6.24 +pkgrel=1 +pkgdesc="Fast SQL database server, community edition" +arch=('i686' 'x86_64') +makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'libaio' 'jemalloc') +license=('GPL') +url="https://www.mysql.com/products/community/" +options=('!libtool') +source=("https://dev.mysql.com/get/Downloads/MySQL-5.6/${pkgbase}-${pkgver}.tar.gz" + "mysqld-post.sh" + "mysqld-tmpfile.conf" + "mysqld.service" + "mysql-srv_buf_size.patch") +sha256sums=('37e27305b67d76883c5902dce59c89d596beee9dca7dbadd4a2e117f8101dfeb' + '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd' + '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd' + '50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556' + 'bfa3ba5546d470e1c1d32246f687f0faa8c225913a648262fbcae6b2296cb57f') + +prepare() { + cd "${pkgbase}-${pkgver}" + patch -p0 -i "../mysql-srv_buf_size.patch" +} + +build() { + rm -rf build + mkdir build + cd build + + cmake "../${pkgbase}-${pkgver}" \ + -DCMAKE_AR=/usr/bin/gcc-ar \ + -DCMAKE_RANLIB=/usr/bin/gcc-ranlib \ + -DBUILD_CONFIG=mysql_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/mysql \ + -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 \ + -DCMAKE_EXE_LINKER_FLAGS='-ljemalloc' \ + -DWITH_EXTRA_CHARSETS=complex \ + -DWITH_EMBEDDED_SERVER=ON \ + -DWITH_ARCHIVE_STORAGE_ENGINE=ON \ + -DWITH_BLACKHOLE_STORAGE_ENGINE=ON \ + -DWITH_INNOBASE_STORAGE_ENGINE=ON \ + -DWITH_PARTITION_STORAGE_ENGINE=ON \ + -DWITHOUT_EXAMPLE_STORAGE_ENGINE=ON \ + -DWITHOUT_FEDERATED_STORAGE_ENGINE=ON \ + -DCMAKE_C_FLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer -fno-delete-null-pointer-checks" \ + -DCMAKE_CXX_FLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti -fno-delete-null-pointer-checks" \ + -DWITH_MYSQLD_LDFLAGS="-pie ${LDFLAGS},-z,now" + make +} + +package_libmysqlclient(){ + pkgdesc="MySQL client libraries" + depends=('openssl') + conflicts=('libmariadbclient') + provides=("libmariadbclient=${pkgver}") + + cd build + for dir in include libmysql libmysqld libservices + do + make -C "${dir}" DESTDIR="${pkgdir}" install + done + + install -m 755 -d "${pkgdir}/usr/bin" + install -m 755 scripts/mysql_config "${pkgdir}/usr/bin/" + install -m 755 -d "${pkgdir}/usr/share/man/man1" + for man in mysql_config mysql_client_test_embedded mysqltest_embedded + do + install -m 644 "${srcdir}/${pkgbase}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1" + done +} + +package_mysql-clients(){ + pkgdesc="MySQL client tools" + depends=('libmysqlclient' 'jemalloc') + conflicts=('mariadb-clients') + provides=("mariadb-clients=${pkgver}") + + 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 mysql + rm "${pkgdir}/usr/bin/mysql_plugin" + rm "${pkgdir}/usr/bin/mysql_upgrade" + rm "${pkgdir}/usr/bin/mysql_config_editor" + rm "${pkgdir}/usr/bin/mysqlbinlog" + rm "${pkgdir}/usr/bin/mysqltest" +} + +package_mysql(){ + pkgdesc="Fast SQL database server, community edition" + backup=('etc/mysql/my.cnf') + install="${pkgbase}.install" + depends=('mysql-clients' 'libaio') + conflicts=('mariadb') + provides=("mariadb=${pkgver}") + options=('emptydirs') + + cd build + make DESTDIR="${pkgdir}" install + + install -m 644 -D "${pkgdir}/usr/share/mysql/my-default.cnf" "${pkgdir}/etc/mysql/my.cnf" + install -m 755 -D "${srcdir}/mysqld-post.sh" "${pkgdir}/usr/bin/mysqld-post" + install -m 644 -D "${srcdir}/mysqld-tmpfile.conf" "${pkgdir}/usr/lib/tmpfiles.d/mysqld.conf" + install -m 755 -d "${pkgdir}/usr/lib/systemd/system" + install -m 644 -D "${srcdir}/mysqld.service" "${pkgdir}/usr/lib/systemd/system/" + + # provided by libmysqlclient + rm "${pkgdir}/usr/bin/mysql_config" + rm "${pkgdir}/usr/bin/mysql_client_test_embedded" + rm "${pkgdir}/usr/bin/mysqltest_embedded" + rm "${pkgdir}"/usr/lib/libmysql* + rm -r "${pkgdir}/usr/include/" + rm "${pkgdir}/usr/share/man/man1/mysql_config.1" + rm "${pkgdir}/usr/share/man/man1/mysql_client_test_embedded.1" + rm "${pkgdir}/usr/share/man/man1/mysqltest_embedded.1" + + # provided by mysql-clients + rm "${pkgdir}/usr/bin/mysql" + rm "${pkgdir}/usr/bin/mysqladmin" + rm "${pkgdir}/usr/bin/mysqlcheck" + rm "${pkgdir}/usr/bin/mysqldump" + rm "${pkgdir}/usr/bin/mysqlimport" + rm "${pkgdir}/usr/bin/mysqlshow" + rm "${pkgdir}/usr/bin/mysqlslap" + rm "${pkgdir}/usr/share/man/man1/mysql.1" + rm "${pkgdir}/usr/share/man/man1/mysqladmin.1" + rm "${pkgdir}/usr/share/man/man1/mysqlcheck.1" + rm "${pkgdir}/usr/share/man/man1/mysqldump.1" + rm "${pkgdir}/usr/share/man/man1/mysqlimport.1" + rm "${pkgdir}/usr/share/man/man1/mysqlshow.1" + rm "${pkgdir}/usr/share/man/man1/mysqlslap.1" + + # not needed + rm -r "${pkgdir}/usr/data" + rm -r "${pkgdir}/usr/mysql-test" + rm -r "${pkgdir}/usr/sql-bench" + rm "${pkgdir}/usr/share/man/man1/mysql-test-run.pl.1" +} + diff --git a/mysql-srv_buf_size.patch b/mysql-srv_buf_size.patch new file mode 100644 index 000000000000..12212fcc345c --- /dev/null +++ b/mysql-srv_buf_size.patch @@ -0,0 +1,20 @@ +--- storage/innobase/row/row0log.cc.orig 2013-07-10 16:17:27.000000000 +0000 ++++ storage/innobase/row/row0log.cc 2013-08-21 12:48:22.216656556 +0000 +@@ -2364,7 +2364,7 @@ all_done: + 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 @@ all_done: + 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; diff --git a/mysql.install b/mysql.install new file mode 100644 index 000000000000..f420406cc0f8 --- /dev/null +++ b/mysql.install @@ -0,0 +1,37 @@ +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 $datadir -s /bin/false mysql &>/dev/null + + 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 $datadir -s /bin/false mysql &>/dev/null + + 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 +} + +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/mysqld-post.sh b/mysqld-post.sh new file mode 100755 index 000000000000..c4ac181710d4 --- /dev/null +++ b/mysqld-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/mysqld-tmpfile.conf b/mysqld-tmpfile.conf new file mode 100644 index 000000000000..6883dc798881 --- /dev/null +++ b/mysqld-tmpfile.conf @@ -0,0 +1 @@ +d /run/mysqld 0755 mysql mysql - diff --git a/mysqld.service b/mysqld.service new file mode 100644 index 000000000000..a6fc8cf889ad --- /dev/null +++ b/mysqld.service @@ -0,0 +1,16 @@ +[Unit] +Description=MySQL 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 |