diff options
-rw-r--r-- | .SRCINFO | 40 | ||||
-rw-r--r-- | PKGBUILD | 102 | ||||
-rw-r--r-- | mysql.install | 16 | ||||
-rw-r--r-- | systemd-sysusers-tmpfiles.patch | 7 | ||||
-rw-r--r-- | systemd-sysusers.conf | 3 | ||||
-rw-r--r-- | systemd-tmpfiles.patch | 20 |
6 files changed, 107 insertions, 81 deletions
@@ -1,6 +1,6 @@ pkgbase = mysql pkgdesc = Fast SQL database server, community edition - pkgver = 8.0.16 + pkgver = 8.2.0 pkgrel = 1 url = https://www.mysql.com/products/community/ arch = x86_64 @@ -9,6 +9,7 @@ pkgbase = mysql makedepends = zlib makedepends = cmake makedepends = systemd-tools + makedepends = systemd-libs makedepends = libaio makedepends = jemalloc makedepends = rpcsvc-proto @@ -16,21 +17,23 @@ pkgbase = mysql makedepends = icu makedepends = libedit makedepends = libevent + makedepends = libfido2 makedepends = re2 makedepends = rapidjson - makedepends = protobuf - source = https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-boost-8.0.16.tar.gz + source = https://cdn.mysql.com/Downloads/MySQL-8.2/mysql-boost-8.2.0.tar.gz source = my-default.cnf source = mysql-ld.so.conf source = mysql.sysconfig source = mysqld_service.patch - source = systemd-sysusers-tmpfiles.patch - sha256sums = 7c936aa7bc9f4c462b24bade2e9abe1b3a6869ea19c46e78ec0a9b2a87a3d17f + source = systemd-tmpfiles.patch + source = systemd-sysusers.conf + sha256sums = 9a6fe88c889dfb54a8ee203a3aaa2af4d21c97fbaf171dadaf5956714552010e sha256sums = 6bc24ae510f6b6bbad6b3edda2d0028b29292937b482274a4c2fae335f4de328 sha256sums = e1c23fa0971a13d998f2790379b68c475438d05b6d6f2691b99051dbf497567f sha256sums = 203dcd22fea668477ac7123dbd9909fae72d3d07f8855417a669a9c94db072ae sha256sums = 8fbedfc2c5fe271ed13217feeceeac00202d2cb135e4283eeee2f9a13d6251af - sha256sums = 9e585631cfe95da9d18df6c64fca370c0aff2b2cda5dc29f694579dab9d9f561 + sha256sums = 270074dc0a01e0f959590ad95e5bbaaac3f821bb44eba32d039a6aee506b9c6a + sha256sums = 200a992eb41c95efa99845d017439ddd4018a3e51f57ffca8cb802b0d25123f1 pkgname = mysql pkgdesc = Fast SQL database server, community edition @@ -44,23 +47,27 @@ pkgname = mysql depends = icu depends = lz4 depends = libevent - depends = protobuf depends = systemd-libs - optdepends = perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format and mysql_setpermission - provides = mariadb=8.0.16 - provides = mysql=8.0.16 + depends = zstd + depends = bash + optdepends = perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format, mysql_setpermission, mysqldumpslow + provides = mariadb=8.2.0 + provides = mysql=8.2.0 conflicts = mariadb options = emptydirs backup = etc/mysql/my.cnf + backup = etc/mysqlrouter/mysqlrouter.conf + backup = etc/logrotate.d/mysqlrouter backup = etc/conf.d/mysql.conf pkgname = libmysqlclient pkgdesc = MySQL client libraries depends = libsasl depends = zlib - provides = libmariadbclient=8.0.16 - provides = libmysqlclient=8.0.16 - provides = mariadb-libs=8.0.16 + depends = zstd + provides = libmariadbclient=8.2.0 + provides = libmysqlclient=8.2.0 + provides = mariadb-libs=8.2.0 conflicts = libmariadbclient conflicts = mariadb-libs @@ -72,7 +79,8 @@ pkgname = mysql-clients depends = jemalloc depends = libedit depends = lz4 - provides = mariadb-clients=8.0.16 - provides = mysql-clients=8.0.16 + depends = zstd + depends = bash + provides = mariadb-clients=8.2.0 + provides = mysql-clients=8.2.0 conflicts = mariadb-clients - @@ -6,27 +6,29 @@ pkgname=('mysql' 'libmysqlclient' 'mysql-clients') pkgbase=mysql -pkgver=8.0.16 +pkgver=8.2.0 pkgrel=1 pkgdesc="Fast SQL database server, community edition" arch=('x86_64') -makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'libaio' 'jemalloc' - 'rpcsvc-proto' 'libtirpc' 'icu' 'libedit' 'libevent' 're2' - 'rapidjson' 'protobuf') +makedepends=('openssl' 'zlib' 'cmake' 'systemd-tools' 'systemd-libs' 'libaio' + 'jemalloc' 'rpcsvc-proto' 'libtirpc' 'icu' 'libedit' 'libevent' + 'libfido2' 're2' 'rapidjson') license=('GPL') url="https://www.mysql.com/products/community/" -source=("https://cdn.mysql.com/Downloads/MySQL-8.0/${pkgbase}-boost-${pkgver}.tar.gz" +source=("https://cdn.mysql.com/Downloads/MySQL-8.2/${pkgbase}-boost-${pkgver}.tar.gz" "my-default.cnf" "mysql-ld.so.conf" "mysql.sysconfig" "mysqld_service.patch" - "systemd-sysusers-tmpfiles.patch") -sha256sums=('7c936aa7bc9f4c462b24bade2e9abe1b3a6869ea19c46e78ec0a9b2a87a3d17f' + "systemd-tmpfiles.patch" + "systemd-sysusers.conf") +sha256sums=('9a6fe88c889dfb54a8ee203a3aaa2af4d21c97fbaf171dadaf5956714552010e' '6bc24ae510f6b6bbad6b3edda2d0028b29292937b482274a4c2fae335f4de328' 'e1c23fa0971a13d998f2790379b68c475438d05b6d6f2691b99051dbf497567f' '203dcd22fea668477ac7123dbd9909fae72d3d07f8855417a669a9c94db072ae' '8fbedfc2c5fe271ed13217feeceeac00202d2cb135e4283eeee2f9a13d6251af' - '9e585631cfe95da9d18df6c64fca370c0aff2b2cda5dc29f694579dab9d9f561') + '270074dc0a01e0f959590ad95e5bbaaac3f821bb44eba32d039a6aee506b9c6a' + '200a992eb41c95efa99845d017439ddd4018a3e51f57ffca8cb802b0d25123f1') build() { rm -rf build @@ -53,13 +55,19 @@ build() { -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_DOCDIR=share/mysql/docs \ -DINSTALL_SHAREDIR=share/mysql \ + -DROUTER_INSTALL_CONFIGDIR=../etc/mysqlrouter \ + -DROUTER_INSTALL_DATADIR=/var/lib/mysqlrouter \ + -DROUTER_INSTALL_RUNTIMEDIR=/run \ + -DROUTER_INSTALL_LOGDIR=/var/log/mysqlrouter \ -DWITH_SYSTEM_LIBS=ON \ + -DWITH_FIDO=system \ -DWITH_SSL=system \ -DWITH_LIBWRAP=OFF \ -DWITH_LTO=ON \ -DWITH_JEMALLOC=ON \ -DWITH_READLINE=ON \ -DWITH_SYSTEMD=yes \ + -DWITH_PROTOBUF=bundled \ -DWITH_UNIT_TESTS=OFF \ -DPLUGIN_EXAMPLE=NO \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=ON \ @@ -68,7 +76,7 @@ build() { -DPLUGIN_FEEDBACK=NO \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_C_LINK_FLAGS="${LDFLAGS}" \ - -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ + -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DU_DEFINE_FALSE_AND_TRUE=1" \ -DCMAKE_CXX_LINK_FLAGS="${LDFLAGS}" \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ @@ -85,7 +93,7 @@ check() { package_libmysqlclient(){ pkgdesc="MySQL client libraries" - depends=('libsasl' 'zlib') + depends=('libsasl' 'zlib' 'zstd') conflicts=('libmariadbclient' 'mariadb-libs') provides=("libmariadbclient=${pkgver}" "libmysqlclient=${pkgver}" "mariadb-libs=${pkgver}") @@ -95,38 +103,38 @@ package_libmysqlclient(){ 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" install -m 700 -d "${pkgdir}/var/lib/mysql" install -m 644 -D "${srcdir}/my-default.cnf" "${pkgdir}/etc/mysql/my.cnf.default" install -m 644 -D "${srcdir}/${pkgbase}-${pkgver}/support-files/mysql.m4" "${pkgdir}/usr/share/aclocal/mysql.m4" - for man in mysql_config - 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' 'zlib' 'openssl' 'jemalloc' 'libedit' 'lz4') + depends=('libmysqlclient' 'zlib' 'openssl' 'jemalloc' 'libedit' 'lz4' 'zstd' 'bash') conflicts=('mariadb-clients') provides=("mariadb-clients=${pkgver}" "mysql-clients=${pkgver}") cd build make -C "client" DESTDIR="${pkgdir}" install + install -m 755 -d "${pkgdir}/usr/bin" + install -m 755 "runtime_output_directory/mysql_client_test" "${pkgdir}/usr/bin" + install -m 755 "scripts/mysql_config" "${pkgdir}/usr/bin" + # install man pages - install -d "${pkgdir}/usr/share/man/man1" - for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap + install -m 755 -d "${pkgdir}/usr/share/man/man1" + for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap mysql_config mysql_config_editor do - install -m644 "${srcdir}/${pkgbase}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1" + install -m 644 "${srcdir}/${pkgbase}-${pkgver}/man/${man}.1" "${pkgdir}/usr/share/man/man1/${man}.1" done + # install pkgconfig + install -m 644 -D "${srcdir}/build/scripts/mysqlclient.pc" "${pkgdir}/usr/lib/pkgconfig/mysqlclient.pc" + # provided by mysql rm "${pkgdir}/usr/bin/mysql_upgrade" - rm "${pkgdir}/usr/bin/mysql_config_editor" rm "${pkgdir}/usr/bin/mysqlbinlog" + rm "${pkgdir}/usr/bin/mysql_migrate_keyring" rm "${pkgdir}/usr/bin/mysqlpump" rm "${pkgdir}/usr/bin/mysql_secure_installation" rm "${pkgdir}/usr/bin/mysql_ssl_rsa_setup" @@ -136,13 +144,15 @@ package_mysql-clients(){ package_mysql(){ pkgdesc="Fast SQL database server, community edition" backup=("etc/mysql/my.cnf" + "etc/mysqlrouter/mysqlrouter.conf" + "etc/logrotate.d/mysqlrouter" "etc/conf.d/${pkgname}.conf") install="${pkgbase}.install" depends=('mysql-clients' 'libsasl' 'zlib' 'jemalloc' 'libaio' 'libtirpc' 'icu' - 'lz4' 'libevent' 'protobuf' 'systemd-libs') + 'lz4' 'libevent' 'systemd-libs' 'zstd' 'bash') conflicts=('mariadb') provides=("mariadb=${pkgver}" "mysql=${pkgver}") - optdepends=('perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format and mysql_setpermission') + optdepends=('perl-dbd-mysql: for mysqlhotcopy, mysql_convert_table_format, mysql_setpermission, mysqldumpslow') options=('emptydirs') cd build @@ -151,63 +161,71 @@ package_mysql(){ install -m 644 -D "${srcdir}/my-default.cnf" "${pkgdir}/etc/mysql/my.cnf" install -m 755 -d "${pkgdir}/etc/ld.so.conf.d" install -m 644 -D "${srcdir}/mysql-ld.so.conf" "${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf" + install -m 644 -D "${srcdir}/build/packaging/rpm-common/mysqlrouter.conf" "${pkgdir}/etc/mysqlrouter/mysqlrouter.conf" # provided by libmysqlclient rm "${pkgdir}/usr/bin/mysql_config" + rm "${pkgdir}/usr/lib/libmysqlclient.a" rm "${pkgdir}/usr/lib/libmysqlclient.so" - rm "${pkgdir}/usr/lib/libmysqlclient.so.21" - rm "${pkgdir}/usr/lib/libmysqlclient.so.21.0.16" + rm "${pkgdir}/usr/lib/libmysqlclient.so.22" + rm "${pkgdir}/usr/lib/libmysqlclient.so.22.1.0" rm "${pkgdir}/usr/lib/libmysqlservices.a" - 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" + rm "${pkgdir}/usr/lib/pkgconfig/mysqlclient.pc" + rmdir "${pkgdir}/usr/lib/pkgconfig" + rm -r "${pkgdir}/usr/include" rm "${pkgdir}/usr/share/mysql/aclocal/mysql.m4" - rmdir "${pkgdir}/usr/share/mysql/aclocal/" + rmdir "${pkgdir}/usr/share/mysql/aclocal" # provided by mysql-clients rm "${pkgdir}/usr/bin/mysql" rm "${pkgdir}/usr/bin/mysqladmin" - rm "${pkgdir}/usr/bin/mysqlbinlog" 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/bin/mysql_upgrade" + rm "${pkgdir}/usr/bin/mysql_client_test" + rm "${pkgdir}/usr/bin/mysql_config_editor" rm "${pkgdir}/usr/share/man/man1/mysql.1" rm "${pkgdir}/usr/share/man/man1/mysqladmin.1" - rm "${pkgdir}/usr/share/man/man1/mysqlbinlog.1" rm "${pkgdir}/usr/share/man/man1/mysqlcheck.1" + rm "${pkgdir}/usr/share/man/man1/mysql_config.1" + rm "${pkgdir}/usr/share/man/man1/mysql_config_editor.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" - rm "${pkgdir}/usr/share/man/man1/mysql_upgrade.1" # not needed rm -r "${pkgdir}/usr/mysql-test" - rmdir "${pkgdir}/usr/run" # Move somewhere else mv "${pkgdir}/usr/LICENSE.router" "${pkgdir}/usr/share/mysql/docs" mv "${pkgdir}/usr/README.router" "${pkgdir}/usr/share/mysql/docs" # Create environment file - install -D -m 644 "${srcdir}/mysql.sysconfig" "${pkgdir}/etc/conf.d/${pkgname}.conf" + install -m 644 -D "${srcdir}/mysql.sysconfig" "${pkgdir}/etc/conf.d/${pkgname}.conf" # Fix permissions chmod 755 "${pkgdir}/usr" # Move systemd files - mv "${pkgdir}/usr/usr/lib/systemd" "${pkgdir}/usr/lib/" - mv "${pkgdir}/usr/usr/lib/tmpfiles.d" "${pkgdir}/usr/lib/" + mv "${pkgdir}/usr/usr/lib/systemd" "${pkgdir}/usr/lib" + mv "${pkgdir}/usr/usr/lib/tmpfiles.d" "${pkgdir}/usr/lib" + install -m 755 -d "${pkgdir}/usr/lib/sysusers.d" + install -m 644 "${srcdir}/systemd-sysusers.conf" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" + + # Move logrotate files + install -d -m 755 "${pkgdir}/etc/logrotate.d/" + mv "${pkgdir}/usr/mysqlrouter-log-rotate" "${pkgdir}/etc/logrotate.d/mysqlrouter" + + # Move docs files + mv "${pkgdir}/usr/docs/sample_mysqlrouter.conf" "${pkgdir}/usr/share/mysql/docs" + rmdir "${pkgdir}/usr/docs" # Cleanup rmdir "${pkgdir}/usr/usr/lib" rmdir "${pkgdir}/usr/usr" - rmdir "${pkgdir}/usr/var/lib/mysqlrouter" - rmdir "${pkgdir}/usr/var/lib" - rmdir "${pkgdir}/usr/var" # Arch Linux specific patches: # * enable PrivateTmp for a little bit more security @@ -215,6 +233,6 @@ package_mysql(){ # * fix path to our config cd "${pkgdir}" patch -Np1 -i "${srcdir}/mysqld_service.patch" - patch -Np1 -i "${srcdir}/systemd-sysusers-tmpfiles.patch" + patch -Np1 -i "${srcdir}/systemd-tmpfiles.patch" } diff --git a/mysql.install b/mysql.install index 90583a1e83c4..7c30ee5c4536 100644 --- a/mysql.install +++ b/mysql.install @@ -1,12 +1,4 @@ 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 - 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" @@ -14,11 +6,3 @@ post_install(){ 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/systemd-sysusers-tmpfiles.patch b/systemd-sysusers-tmpfiles.patch deleted file mode 100644 index cd2cd803bd1c..000000000000 --- a/systemd-sysusers-tmpfiles.patch +++ /dev/null @@ -1,7 +0,0 @@ ---- a/usr/lib/tmpfiles.d/mysql.conf -+++ b/usr/lib/tmpfiles.d/mysql.conf -@@ -21,3 +21,4 @@ - # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - d /var/run/mysqld 0755 mysql mysql - -+d /var/lib/mysql 0700 mysql mysql - diff --git a/systemd-sysusers.conf b/systemd-sysusers.conf new file mode 100644 index 000000000000..71d6c26bda1c --- /dev/null +++ b/systemd-sysusers.conf @@ -0,0 +1,3 @@ +u mysqlrouter 88 "MySQL" /var/lib/mysqlrouter +u mysql 89 "MySQL" /var/lib/mysql + diff --git a/systemd-tmpfiles.patch b/systemd-tmpfiles.patch new file mode 100644 index 000000000000..d567794b4b64 --- /dev/null +++ b/systemd-tmpfiles.patch @@ -0,0 +1,20 @@ +diff -Naur a/usr/lib/tmpfiles.d/mysql.conf b/usr/lib/tmpfiles.d/mysql.conf +--- a/usr/lib/tmpfiles.d/mysql.conf 2022-01-29 17:27:06.996635977 +0100 ++++ b/usr/lib/tmpfiles.d/mysql.conf 2022-01-29 17:28:52.839503490 +0100 +@@ -21,3 +21,4 @@ + # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + d /run/mysqld 0755 mysql mysql - ++d /var/lib/mysql 0700 mysql mysql - +diff -Naur a/usr/lib/tmpfiles.d/mysqlrouter.conf b/usr/lib/tmpfiles.d/mysqlrouter.conf +--- a/usr/lib/tmpfiles.d/mysqlrouter.conf 2022-01-29 17:47:51.586650998 +0100 ++++ b/usr/lib/tmpfiles.d/mysqlrouter.conf 2022-01-29 17:48:27.181437880 +0100 +@@ -20,4 +20,7 @@ + # along with this program; if not, write to the Free Software + # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +-d /run 0755 mysqlrouter mysqlrouter - ++d /run/mysqlrouter 0755 mysqlrouter mysqlrouter - ++d /var/lib/mysqlrouter 0700 mysqlrouter mysqlrouter - ++d /var/log/mysqlrouter 0750 mysqlrouter mysqlrouter - ++ |