summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO40
-rw-r--r--PKGBUILD102
-rw-r--r--mysql.install16
-rw-r--r--systemd-sysusers-tmpfiles.patch7
-rw-r--r--systemd-sysusers.conf3
-rw-r--r--systemd-tmpfiles.patch20
6 files changed, 107 insertions, 81 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a996df680c70..ab8884c99fb3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
-
diff --git a/PKGBUILD b/PKGBUILD
index 00eca78d68d7..54e47954bca7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 -
++