From 299251e8d4bf4469f99842049f7a952dc2425d48 Mon Sep 17 00:00:00 2001 From: K900 Date: Fri, 1 Mar 2024 12:10:56 +0300 Subject: [PATCH] kdePackages.akonadi: restore mysql backend I guess we're stuck with it for the time being. --- pkgs/kde/gear/akonadi/default.nix | 13 +++++++++++-- .../akonadi/ignore-mysql-config-timestamp.patch | 12 ++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 pkgs/kde/gear/akonadi/ignore-mysql-config-timestamp.patch diff --git a/pkgs/kde/gear/akonadi/default.nix b/pkgs/kde/gear/akonadi/default.nix index 20fd1f54b1ec..15d1436e9cb5 100644 --- a/pkgs/kde/gear/akonadi/default.nix +++ b/pkgs/kde/gear/akonadi/default.nix @@ -1,16 +1,25 @@ { + lib, mkKdeDerivation, qttools, accounts-qt, kaccounts-integration, shared-mime-info, xz, + mariadb, }: mkKdeDerivation { pname = "akonadi"; - # FIXME(later): investigate nixpkgs patches + patches = [ + # Always regenerate MySQL config, as the store paths don't have accurate timestamps + ./ignore-mysql-config-timestamp.patch + ]; + + extraCmakeFlags = [ + "-DMYSQLD_SCRIPTS_PATH=${lib.getBin mariadb}/bin" + ]; extraNativeBuildInputs = [qttools shared-mime-info]; - extraBuildInputs = [kaccounts-integration accounts-qt xz]; + extraBuildInputs = [kaccounts-integration accounts-qt xz mariadb]; } diff --git a/pkgs/kde/gear/akonadi/ignore-mysql-config-timestamp.patch b/pkgs/kde/gear/akonadi/ignore-mysql-config-timestamp.patch new file mode 100644 index 000000000000..62f1556bf687 --- /dev/null +++ b/pkgs/kde/gear/akonadi/ignore-mysql-config-timestamp.patch @@ -0,0 +1,12 @@ +--- a/src/server/storage/dbconfigmysql.cpp ++++ b/src/server/storage/dbconfigmysql.cpp +@@ -241,8 +241,7 @@ bool DbConfigMysql::startInternalServer() + bool confUpdate = false; + QFile actualFile(actualConfig); + // update conf only if either global (or local) is newer than actual +- if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) +- || (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) { ++ if (true) { + QFile globalFile(globalConfig); + QFile localFile(localConfig); + if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {