commit:     8b744749e2562e7593b07b93c018d4e6cbd51986
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 16 22:25:09 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Feb 16 22:35:25 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b744749

kde-apps/akonadi: Switch back mariadb -> mysql, use 'loose_' options

This is reverting commit 6b90510a (kde overlay), instead trying to fix
MySQL server settings while keeping MariaDB settings intact.

KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=421922

Reported-by: Stephan Karacson <stkaopen <AT> gmx.at>
Thanks-to: Victor Mataré <vmatare+gbug <AT> posteo.de>
Thanks-to: Thomas Deutschmann <whissi <AT> gentoo.org>
Bug: https://bugs.gentoo.org/709812
Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 kde-apps/akonadi/akonadi-20.12.2-r1.ebuild         | 39 +++++------
 .../files/akonadi-20.12.2-mysql8-conf.patch        | 75 ++++++++++++++++++++++
 2 files changed, 92 insertions(+), 22 deletions(-)

diff --git a/kde-apps/akonadi/akonadi-20.12.2-r1.ebuild 
b/kde-apps/akonadi/akonadi-20.12.2-r1.ebuild
index d01ba34d4e7..3c234d906ee 100644
--- a/kde-apps/akonadi/akonadi-20.12.2-r1.ebuild
+++ b/kde-apps/akonadi/akonadi-20.12.2-r1.ebuild
@@ -17,16 +17,19 @@ HOMEPAGE="https://community.kde.org/KDE_PIM/akonadi";
 LICENSE="LGPL-2.1+"
 SLOT="5"
 KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-IUSE="+kaccounts +mariadb postgres sqlite tools xml"
+IUSE="+kaccounts +mysql postgres sqlite tools xml"
 
-REQUIRED_USE="|| ( mariadb postgres sqlite ) test? ( tools )"
+REQUIRED_USE="|| ( mysql postgres sqlite ) test? ( tools )"
+
+# some akonadi tests time out, that probably needs more work as it's ~700 tests
+RESTRICT+=" test"
 
 COMMON_DEPEND="
        app-arch/xz-utils
        >=dev-qt/qtdbus-${QTMIN}:5
        >=dev-qt/qtgui-${QTMIN}:5
        >=dev-qt/qtnetwork-${QTMIN}:5
-       >=dev-qt/qtsql-${QTMIN}:5[postgres?]
+       >=dev-qt/qtsql-${QTMIN}:5[mysql?,postgres?]
        >=dev-qt/qtwidgets-${QTMIN}:5
        >=dev-qt/qtxml-${QTMIN}:5
        >=kde-frameworks/kconfig-${KFMIN}:5
@@ -45,7 +48,6 @@ COMMON_DEPEND="
                >=kde-apps/kaccounts-integration-20.08.3:5
                net-libs/accounts-qt
        )
-       mariadb? ( >=dev-qt/qtsql-${QTMIN}:5[mysql] )
        sqlite? (
                dev-db/sqlite:3
                >=dev-qt/qtsql-${QTMIN}:5=[sqlite]
@@ -58,24 +60,24 @@ DEPEND="${COMMON_DEPEND}
        test? ( sys-apps/dbus )
 "
 RDEPEND="${COMMON_DEPEND}
-       mariadb? ( >=dev-db/mariadb-10.4:* )
+       mysql? ( virtual/mysql )
        postgres? ( dev-db/postgresql )
 "
 
-# some akonadi tests time out, that probably needs more work as it's ~700 tests
-RESTRICT+=" test"
-
-PATCHES=( "${FILESDIR}/${PN}-18.12.2-mysql56-crash.patch" )
+PATCHES=(
+       "${FILESDIR}/${PN}-18.12.2-mysql56-crash.patch"
+       "${FILESDIR}/${P}-mysql8-conf.patch" # bug 709812
+)
 
 pkg_setup() {
-       # Set default storage backend in order: MariaDB, PostgreSQL, SQLite
+       # Set default storage backend in order: MySQL, PostgreSQL, SQLite
        # reverse driver check to keep the order
        use sqlite && DRIVER="QSQLITE3"
        use postgres && DRIVER="QPSQL"
-       use mariadb && DRIVER="QMYSQL"
+       use mysql && DRIVER="QMYSQL"
 
-       if use mariadb && has_version ">=dev-db/mariadb-10.4"; then
-               ewarn "If an existing Akonadi MariaDB database is being 
upgraded using"
+       if use mysql && has_version ">=dev-db/mariadb-10.4"; then
+               ewarn "If an existing Akonadi QMYSQL database is being upgraded 
using"
                ewarn ">=dev-db/mariadb-10.4 and KMail stops fetching and 
sending mail,"
                ewarn "check ~/.local/share/akonadi/akonadiserver.error for 
errors like:"
                ewarn "  \"Cannot add or update a child row: a foreign key 
constraint fails\""
@@ -88,17 +90,10 @@ pkg_setup() {
 
        if use sqlite || has_version "<${CATEGORY}/${P}[sqlite]"; then
                ewarn "We strongly recommend you change your Akonadi database 
backend to"
-               ewarn "either MariaDB or PostgreSQL in your user configuration."
+               ewarn "either MariaDB/MySQL or PostgreSQL in your user 
configuration."
                ewarn "In particular, kde-apps/kmail does not work properly 
with the sqlite backend."
        fi
 
-       if has_version "kde-apps/akonadi[mysql]"; then
-               ewarn "Due to configuration incompatibilities we are unable to 
provide"
-               ewarn "the option to use dev-db/mysql. You must switch to 
dev-db/mariadb."
-               ewarn "  https://bugs.gentoo.org/709812";
-               ewarn "  https://bugs.kde.org/show_bug.cgi?id=421922";
-       fi
-
        ecm_pkg_setup
 }
 
@@ -130,7 +125,7 @@ pkg_postinst() {
        ecm_pkg_postinst
        elog "You can select the storage backend in 
~/.config/akonadi/akonadiserverrc."
        elog "Available drivers are:"
-       use mariadb && elog "  QMYSQL"
+       use mysql && elog "  QMYSQL"
        use postgres && elog "  QPSQL"
        use sqlite && elog "  QSQLITE3"
        elog "${DRIVER} has been set as your default akonadi storage backend."

diff --git a/kde-apps/akonadi/files/akonadi-20.12.2-mysql8-conf.patch 
b/kde-apps/akonadi/files/akonadi-20.12.2-mysql8-conf.patch
new file mode 100644
index 00000000000..8edf9d605dd
--- /dev/null
+++ b/kde-apps/akonadi/files/akonadi-20.12.2-mysql8-conf.patch
@@ -0,0 +1,75 @@
+From 9c666d0d6039a87f6286014c7d9c7281a5bd9dd1 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <ast...@gentoo.org>
+Date: Tue, 16 Feb 2021 21:38:14 +0100
+Subject: [PATCH] MySQL server settings: Make use of 'loose_' option prefix
+
+Idea by one of the Gentoo MySQL maintainers. This makes MySQL skip over
+unsupported options rather than fail, which is important with >=MySQL-8.
+
+See also:
+https://dev.mysql.com/doc/refman/8.0/en/option-files.html#option-file-syntax
+https://mariadb.com/kb/en/configuring-mariadb-with-option-files/#option-prefixes
+
+BUG: 421922
+
+Thanks-to: Thomas Deutschmann <whi...@gentoo.org>
+---
+ src/server/storage/mysql-global-mobile.conf | 6 +++---
+ src/server/storage/mysql-global.conf        | 6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/server/storage/mysql-global-mobile.conf 
b/src/server/storage/mysql-global-mobile.conf
+index 19649d347..48e150af7 100644
+--- a/src/server/storage/mysql-global-mobile.conf
++++ b/src/server/storage/mysql-global-mobile.conf
+@@ -65,7 +65,7 @@ innodb_large_prefix=1
+ log_error=mysql.err
+ 
+ # print warnings and connection errors (default:1)
+-log_warnings=2
++loose_log_warnings=2
+ 
+ # Convert table named to lowercase
+ lower_case_table_names=1
+@@ -80,10 +80,10 @@ max_connections=256
+ # (make sense when having the same query multiple times)
+ 
+ # Memory allocated for caching query results (default:0 (disabled))
+-query_cache_size=0
++loose_query_cache_size=0
+ 
+ # Do not cache results (default:1)
+-query_cache_type=0
++loose_query_cache_type=0
+ 
+ # Do not use the privileges mechanisms
+ skip_grant_tables
+diff --git a/src/server/storage/mysql-global.conf 
b/src/server/storage/mysql-global.conf
+index ab4a4a1e3..b67a4ec1e 100644
+--- a/src/server/storage/mysql-global.conf
++++ b/src/server/storage/mysql-global.conf
+@@ -62,7 +62,7 @@ innodb_log_file_size=64M
+ log_error=mysql.err
+ 
+ # print warnings and connection errors (default:1)
+-log_warnings=2
++loose_log_warnings=2
+ 
+ # Convert table named to lowercase
+ lower_case_table_names=1
+@@ -77,10 +77,10 @@ max_connections=256
+ # (make sense when having the same query multiple times)
+ 
+ # Memory allocated for caching query results (default:0 (disabled))
+-query_cache_size=0
++loose_query_cache_size=0
+ 
+ # Do not cache results (default:1)
+-query_cache_type=0
++loose_query_cache_type=0
+ 
+ # Do not use the privileges mechanisms
+ skip_grant_tables
+-- 
+2.30.1
+

Reply via email to