diff --git a/pkgs/kde/frameworks/kio/default.nix b/pkgs/kde/frameworks/kio/default.nix index 03c2da9e0f5a..6d5ba811a518 100644 --- a/pkgs/kde/frameworks/kio/default.nix +++ b/pkgs/kde/frameworks/kio/default.nix @@ -10,8 +10,10 @@ mkKdeDerivation { patches = [ # Remove hardcoded smbd search path - # FIXME(later): discuss with upstream? ./0001-Remove-impure-smbd-search-path.patch + # When running a process through systemd, resolve the full path ourselves + ./early-resolve-executables.diff + # FIXME(later): discuss with upstream? ]; extraBuildInputs = [qt5compat qttools acl attr]; diff --git a/pkgs/kde/frameworks/kio/early-resolve-executables.diff b/pkgs/kde/frameworks/kio/early-resolve-executables.diff new file mode 100644 index 000000000000..d11a6a0dbeee --- /dev/null +++ b/pkgs/kde/frameworks/kio/early-resolve-executables.diff @@ -0,0 +1,13 @@ +diff --git a/src/gui/systemd/systemdprocessrunner.cpp b/src/gui/systemd/systemdprocessrunner.cpp +index afe3e2c69..5e5ee012d 100644 +--- a/src/gui/systemd/systemdprocessrunner.cpp ++++ b/src/gui/systemd/systemdprocessrunner.cpp +@@ -128,7 +128,7 @@ void SystemdProcessRunner::startProcess() + // so we can be notified (see https://github.com/systemd/systemd/pull/3984) + {QStringLiteral("Environment"), m_process->environment()}, + {QStringLiteral("WorkingDirectory"), m_process->workingDirectory()}, +- {QStringLiteral("ExecStart"), QVariant::fromValue(ExecCommandList{{m_process->program().first(), m_process->program(), false}})}, ++ {QStringLiteral("ExecStart"), QVariant::fromValue(ExecCommandList{{QStandardPaths::findExecutable(m_process->program().first()), m_process->program(), false}})}, + }, + {} // aux is currently unused and should be passed as empty array. + );