This is based on the respectve patch from NixPkgs, but with the parts pinning
mysql and postgresql executables removed. The our package definition on why.


Index: akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
===================================================================
--- akonadi-19.08.0.orig/src/akonadicontrol/agentmanager.cpp
+++ akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose,
     mStorageController = new Akonadi::ProcessControl;
     mStorageController->setShutdownTimeout(15 * 1000);   // the server needs more time for shutdown if we are using an internal mysqld
     connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
-    mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+    mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
 
     if (mAgentServerEnabled) {
         mAgentServer = new Akonadi::ProcessControl;
         connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure);
-        mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+        mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
     }
 }
 
Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
===================================================================
--- akonadi-19.08.0.orig/src/akonadicontrol/agentprocessinstance.cpp
+++ akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A
     } else {
         Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
         const QStringList arguments = QStringList() << executable << identifier();
-        const QString agentLauncherExec = Akonadi::StandardDirs::findExecutable(QStringLiteral("akonadi_agent_launcher"));
+        const QString agentLauncherExec = QLatin1String(NIX_OUT "/bin/akonadi_agent_launcher");
         mController->start(agentLauncherExec, arguments);
     }
     return true;
Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
===================================================================
--- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp
+++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer(
 #endif
 
     // generate config file
-    const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
+    const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
     const QString localConfig  = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
     const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
     if (globalConfig.isEmpty()) {
