summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-02-16 23:25:09 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2021-02-16 23:35:25 +0100
commit8b744749e2562e7593b07b93c018d4e6cbd51986 (patch)
tree6a00283fe88da3fe12a85c811c91aa43d0f0670d /kde-apps/akonadi
parentkde-apps/akonadi: Unrestrict kde-apps/kaccounts-integration dep (diff)
downloadgentoo-8b744749e2562e7593b07b93c018d4e6cbd51986.tar.gz
gentoo-8b744749e2562e7593b07b93c018d4e6cbd51986.tar.bz2
gentoo-8b744749e2562e7593b07b93c018d4e6cbd51986.zip
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@gmx.at> Thanks-to: Victor Mataré <vmatare+gbug@posteo.de> Thanks-to: Thomas Deutschmann <whissi@gentoo.org> Bug: https://bugs.gentoo.org/709812 Package-Manager: Portage-3.0.14, Repoman-3.0.2 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-apps/akonadi')
-rw-r--r--kde-apps/akonadi/akonadi-20.12.2-r1.ebuild39
-rw-r--r--kde-apps/akonadi/files/akonadi-20.12.2-mysql8-conf.patch75
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 d01ba34d4e70..3c234d906ee2 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 000000000000..8edf9d605dde
--- /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 <asturm@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 <whissi@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
+