summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMuflone2018-04-30 00:02:14 +0200
committerMuflone2018-04-30 00:03:19 +0200
commitcf356b133ca89c7e8b63f0f72621c576fd659ae5 (patch)
treeb6a3e83195be4668fbb51d02ea461bc498633dc3
downloadaur-cf356b133ca89c7e8b63f0f72621c576fd659ae5.tar.gz
New package mysql57 5.7.22-1
-rw-r--r--.SRCINFO68
-rw-r--r--PKGBUILD191
-rw-r--r--my-default.cnf31
-rw-r--r--mysql.install26
-rwxr-xr-xmysqld-post.sh8
-rw-r--r--mysqld-tmpfile.conf1
-rw-r--r--mysqld.service16
7 files changed, 341 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..76d3fc1a2aed
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,68 @@
+# Generated by mksrcinfo v8
+# Sun Apr 29 22:02:52 UTC 2018
+pkgbase = mysql57
+ pkgdesc = Fast SQL database server, community edition
+ pkgver = 5.7.22
+ pkgrel = 1
+ url = https://www.mysql.com/products/community/
+ arch = x86_64
+ license = GPL
+ makedepends = openssl
+ makedepends = zlib
+ makedepends = cmake
+ makedepends = systemd-tools
+ makedepends = libaio
+ makedepends = jemalloc
+ makedepends = rpcsvc-proto
+ makedepends = libtirpc
+ options = !libtool
+ source = https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22.tar.gz
+ source = http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
+ source = bug_83814_my_aes_openssl.patch::https://bugs.mysql.com/file.php?id=25081&bug_id=83814
+ source = bug_83814_viosslfactories.patch::https://bugs.mysql.com/file.php?id=25082&bug_id=83814
+ source = bug_83814_xcom_ssl_transport.c.patch::https://bugs.mysql.com/file.php?id=25084&bug_id=83814
+ source = bug_83814_mysqld.cc.patch::https://bugs.mysql.com/file.php?id=25085&bug_id=83814
+ source = mysqld-post.sh
+ source = mysqld-tmpfile.conf
+ source = mysqld.service
+ source = my-default.cnf
+ sha256sums = 4eb8405b0a9acb0381eae94c1741b2850dfc6467742b24b676e62b566409cff2
+ sha256sums = 47f11c8844e579d02691a607fbd32540104a9ac7a2534a8ddaef50daf502baac
+ sha256sums = 1353162f5ae6e3dd4b0b8660738adbbc36c6d514d65331c013d9c45359665c52
+ sha256sums = ca49f11ed70d4673d14df700caff4380ae27b81d4d10c7a49297d5b56f0eb288
+ sha256sums = 4d2333651b0727fbe182155b3c5b01e00a2769f4e0158d28a09fefc61ae5f198
+ sha256sums = a063a76ea1705423218e36a45417a3077643a0b673ce676294c864bcb4052ec2
+ sha256sums = 368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd
+ sha256sums = 2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd
+ sha256sums = 50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556
+ sha256sums = 3cc3ba4149fb2f9e823601b9a414ff5b28a2a52f20bc68c74cc0505cf2d1832d
+
+pkgname = mysql57
+ pkgdesc = Fast SQL database server, community edition
+ install = mysql.install
+ depends = mysql-clients57
+ depends = libsasl
+ depends = zlib
+ depends = jemalloc
+ depends = libaio
+ provides = mariadb=5.7.22
+ conflicts = mariadb
+ options = emptydirs
+ backup = etc/mysql/my.cnf
+
+pkgname = libmysqlclient57
+ pkgdesc = MySQL client libraries
+ depends = libsasl
+ depends = zlib
+ provides = libmariadbclient=5.7.22
+ conflicts = libmariadbclient
+
+pkgname = mysql-clients57
+ pkgdesc = MySQL client tools
+ depends = libmysqlclient57
+ depends = zlib
+ depends = openssl
+ depends = jemalloc
+ provides = mariadb-clients=5.7.22
+ conflicts = mariadb-clients
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..0467a3c993f7
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,191 @@
+# 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=('mysql57' 'libmysqlclient57' 'mysql-clients57')
+_pkgname=mysql
+pkgbase=mysql57
+pkgver=5.7.22
+pkgrel=1
+pkgdesc="Fast SQL database server, community edition"
+arch=('x86_64')
+makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'libaio' 'jemalloc'
+ 'rpcsvc-proto' 'libtirpc')
+_boost_ver=1.59.0
+license=('GPL')
+url="https://www.mysql.com/products/community/"
+options=('!libtool')
+source=("https://dev.mysql.com/get/Downloads/MySQL-5.7/${_pkgname}-${pkgver}.tar.gz"
+ "http://sourceforge.net/projects/boost/files/boost/${_boost_ver}/boost_${_boost_ver//./_}.tar.gz"
+ "bug_83814_my_aes_openssl.patch"::"https://bugs.mysql.com/file.php?id=25081&bug_id=83814"
+ "bug_83814_viosslfactories.patch"::"https://bugs.mysql.com/file.php?id=25082&bug_id=83814"
+ "bug_83814_xcom_ssl_transport.c.patch"::"https://bugs.mysql.com/file.php?id=25084&bug_id=83814"
+ "bug_83814_mysqld.cc.patch"::"https://bugs.mysql.com/file.php?id=25085&bug_id=83814"
+ "mysqld-post.sh"
+ "mysqld-tmpfile.conf"
+ "mysqld.service"
+ "my-default.cnf")
+sha256sums=('4eb8405b0a9acb0381eae94c1741b2850dfc6467742b24b676e62b566409cff2'
+ '47f11c8844e579d02691a607fbd32540104a9ac7a2534a8ddaef50daf502baac'
+ '1353162f5ae6e3dd4b0b8660738adbbc36c6d514d65331c013d9c45359665c52'
+ 'ca49f11ed70d4673d14df700caff4380ae27b81d4d10c7a49297d5b56f0eb288'
+ '4d2333651b0727fbe182155b3c5b01e00a2769f4e0158d28a09fefc61ae5f198'
+ 'a063a76ea1705423218e36a45417a3077643a0b673ce676294c864bcb4052ec2'
+ '368f9fd2454d80eb32abb8f29f703d1cf9553353fb9e1ae4529c4b851cb8c5dd'
+ '2af318c52ae0fe5428e8a9245d1b0fc3bc5ce153842d1563329ceb1edfa83ddd'
+ '50212165bdb09855b97b15a917464ba34f82edf30a0c43f9a0c93a27071df556'
+ '3cc3ba4149fb2f9e823601b9a414ff5b28a2a52f20bc68c74cc0505cf2d1832d')
+
+prepare() {
+ cd "${_pkgname}-${pkgver}"
+ patch -p0 -i "${srcdir}/bug_83814_my_aes_openssl.patch" \
+ "mysys_ssl/my_aes_openssl.cc"
+ patch -p0 -i "${srcdir}/bug_83814_viosslfactories.patch" \
+ "vio/viosslfactories.c"
+ patch -p0 -i "${srcdir}/bug_83814_xcom_ssl_transport.c.patch" \
+ "rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_ssl_transport.c"
+ patch -p0 -i "${srcdir}/bug_83814_mysqld.cc.patch" \
+ "sql/mysqld.cc"
+}
+
+build() {
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake "../${_pkgname}-${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} -std=gnu++98 -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-delete-null-pointer-checks" \
+ -DWITH_MYSQLD_LDFLAGS="-pie ${LDFLAGS},-z,now" \
+ -DWITH_BOOST="../boost_${_boost_ver//./_}"
+ make
+}
+
+package_libmysqlclient57(){
+ pkgdesc="MySQL client libraries"
+ depends=('libsasl' 'zlib')
+ 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
+ do
+ install -m 644 "${srcdir}/${_pkgname}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1"
+ done
+}
+
+package_mysql-clients57(){
+ pkgdesc="MySQL client tools"
+ depends=('libmysqlclient57' 'zlib' 'openssl' '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}/${_pkgname}-${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/mysql_install_db"
+ rm "${pkgdir}/usr/bin/mysql_secure_installation"
+ rm "${pkgdir}/usr/bin/mysql_ssl_rsa_setup"
+ rm "${pkgdir}/usr/bin/mysqltest"
+}
+
+package_mysql57(){
+ pkgdesc="Fast SQL database server, community edition"
+ backup=('etc/mysql/my.cnf')
+ install="${_pkgname}.install"
+ depends=('mysql-clients57' 'libsasl' 'zlib' 'jemalloc' 'libaio')
+ conflicts=('mariadb')
+ provides=("mariadb=${pkgver}")
+ options=('emptydirs')
+
+ cd build
+ make DESTDIR="${pkgdir}" install
+
+ install -m 644 -D "${srcdir}/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/mysqltest_embedded"
+ rm "${pkgdir}"/usr/lib/libmysql*
+ rm "${pkgdir}/usr/lib/mysql/plugin/authentication_ldap_sasl_client.so"
+ rm -r "${pkgdir}/usr/include/"
+ rm "${pkgdir}/usr/share/man/man1/mysql_config.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/mysqlpump"
+ 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/mysql-test"
+}
+
diff --git a/my-default.cnf b/my-default.cnf
new file mode 100644
index 000000000000..caf77cbcd5de
--- /dev/null
+++ b/my-default.cnf
@@ -0,0 +1,31 @@
+# For advice on how to change settings please see
+# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
+# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
+# *** default location during install, and will be replaced if you
+# *** upgrade to a newer version of MySQL.
+
+[mysqld]
+
+# Remove leading # and set to the amount of RAM for the most important data
+# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
+# innodb_buffer_pool_size = 128M
+
+# Remove leading # to turn on a very important data integrity option: logging
+# changes to the binary log between backups.
+# log_bin
+
+# These are commonly set, remove the # and set as required.
+# basedir = .....
+# datadir = .....
+# port = .....
+# server_id = .....
+# socket = .....
+
+# Remove leading # to set options mainly useful for reporting servers.
+# The server defaults are faster for transactions and fast SELECTs.
+# Adjust sizes as needed, experiment to find the optimal values.
+# join_buffer_size = 128M
+# sort_buffer_size = 2M
+# read_rnd_buffer_size = 2M
+
+sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
diff --git a/mysql.install b/mysql.install
new file mode 100644
index 000000000000..c534f40cfafb
--- /dev/null
+++ b/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
+
+ if [[ ! -e "/var/lib/mysql" ]]; then
+ install -dm700 "/var/lib/mysql"
+ chown -R mysql:mysql "/var/lib/mysql" &>/dev/null
+ fi
+
+ /usr/bin/systemd-tmpfiles --create mysqld.conf
+
+ echo ":: You need to initialize the MySQL data directory prior to starting"
+ echo " the service. This can be done with mysqld --initialize command, e.g.:"
+ echo " mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql"
+ echo ":: Additionally you should secure your MySQL installation using"
+ echo " mysql_secure_installation command after starting the mysqld service"
+}
+
+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