It seems that there are several missing files in this package compared with the official ones for Ubuntu 18.04 amd64. Here's a summary CSV I put together: https://gist.github.com/Frederick888/dbc2b80f176d79dcfbd7fb4bafac178a
The following patch fixes the missing mysqlx headers and mysqlbinlog. Additionally, I moved mysql_upgrade to a separate block as it was removed cos of a different reason; libmysqlclient.a to libmysqlclient since in Ubuntu it's also in libmysqlclient-dev; and imho I don't think removing the compiled binaries in build() is a good practice as it voids the purpose of makepkg flags such as -R, -C (and AUR helpers like yay actually asks users whether a clean build is needed) hence the mkdir part at the beginning. I'm not quite sure why some plugins, e.g. innodb_engine.so, are not even built tho (didn't see them in cmake --build . --target help
).
diff --git a/PKGBUILD b/PKGBUILD
index dff0e9a..d128267 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -28,10 +28,9 @@ sha256sums=('d44231316ce30a1d1189125ceed86d3388409778e17d0e3b9a060f532463e29a'
'8fbedfc2c5fe271ed13217feeceeac00202d2cb135e4283eeee2f9a13d6251af'
'9e585631cfe95da9d18df6c64fca370c0aff2b2cda5dc29f694579dab9d9f561')
build() {
- rm -rf build
- mkdir build
+ mkdir -p build
cd build
cmake "../${pkgbase}-${pkgver}" \
-DCMAKE_AR=/usr/bin/gcc-ar \
@@ -93,8 +92,11 @@ package_libmysqlclient(){
for dir in include libmysql libservices
do
make -C "${dir}" DESTDIR="${pkgdir}" install
done
+ install -m 644 -D "${srcdir}/build/plugin/x/generated/mysqlx_ername.h" "${pkgdir}/usr/include/mysqlx_ername.h"
+ install -m 644 -D "${srcdir}/build/plugin/x/generated/mysqlx_error.h" "${pkgdir}/usr/include/mysqlx_error.h"
+ install -m 644 -D "${srcdir}/build/plugin/x/generated/mysqlx_version.h" "${pkgdir}/usr/include/mysqlx_version.h"
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"
@@ -153,8 +155,9 @@ package_mysql(){
install -m 644 -D "${srcdir}/mysql-ld.so.conf" "${pkgdir}/etc/ld.so.conf.d/${pkgname}.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.1.17"
rm "${pkgdir}/usr/lib/libmysqlservices.a"
@@ -166,23 +169,23 @@ package_mysql(){
# 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/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/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"
+
+ # deprecated
+ rm "${pkgdir}/usr/bin/mysql_upgrade"
rm "${pkgdir}/usr/share/man/man1/mysql_upgrade.1"
# not needed
rm -r "${pkgdir}/usr/mysql-test"
Pinned Comments
Muflone commented on 2023-08-16 17:21 (UTC) (edited on 2023-08-16 20:41 (UTC) by Muflone)
Warning
https://dev.mysql.com/doc/refman/8.1/en/downgrading.html
Downgrade from MySQL 8.1 to MySQL 8.0 or earlier is not supported. The only supported alternative is to restore a backup taken before upgrading. It is therefore imperative that you back up your data before starting the upgrade process.
MySQL 8.0 is available in https://aur.archlinux.org/packages/mysql80