about summary refs log tree commit diff
path: root/pkgs/kde/gear
diff options
context:
space:
mode:
authorK900 <me@0upti.me>2024-03-01 12:10:56 +0300
committerK900 <me@0upti.me>2024-03-01 16:03:27 +0300
commit299251e8d4bf4469f99842049f7a952dc2425d48 (patch)
tree27ab168e83b746ffbbdabc636fc20298c67fb7a1 /pkgs/kde/gear
parent13a94ad1fb9b9a190c196cd3df4f03e38d638845 (diff)
kdePackages.akonadi: restore mysql backend
I guess we're stuck with it for the time being.
Diffstat (limited to 'pkgs/kde/gear')
-rw-r--r--pkgs/kde/gear/akonadi/default.nix13
-rw-r--r--pkgs/kde/gear/akonadi/ignore-mysql-config-timestamp.patch12
2 files changed, 23 insertions, 2 deletions
diff --git a/pkgs/kde/gear/akonadi/default.nix b/pkgs/kde/gear/akonadi/default.nix
index 20fd1f54b1ec1..15d1436e9cb52 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 0000000000000..62f1556bf687c
--- /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)) {