diff options
author | Muflone | 2018-04-30 00:02:14 +0200 |
---|---|---|
committer | Muflone | 2018-04-30 00:03:19 +0200 |
commit | cf356b133ca89c7e8b63f0f72621c576fd659ae5 (patch) | |
tree | b6a3e83195be4668fbb51d02ea461bc498633dc3 | |
download | aur-cf356b133ca89c7e8b63f0f72621c576fd659ae5.tar.gz |
New package mysql57 5.7.22-1
-rw-r--r-- | .SRCINFO | 68 | ||||
-rw-r--r-- | PKGBUILD | 191 | ||||
-rw-r--r-- | my-default.cnf | 31 | ||||
-rw-r--r-- | mysql.install | 26 | ||||
-rwxr-xr-x | mysqld-post.sh | 8 | ||||
-rw-r--r-- | mysqld-tmpfile.conf | 1 | ||||
-rw-r--r-- | mysqld.service | 16 |
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 |