From 4d81022d2ce6738fc7150d28f1e688b5f46a5ddc Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 9 Aug 2022 12:11:22 +0200 Subject: [PATCH] gnome.gnome-system-monitor: Fix privileged operations It was checking /usr/bin/pkexec, which is not available on NixOS. Instead, we need to look for the setuid wrapper in /run/wrappers/bin/pkexec. --- .../gnome/core/gnome-system-monitor/default.nix | 5 +++++ .../gnome/core/gnome-system-monitor/fix-paths.patch | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch diff --git a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix index 5d24a23e4118..aad4744935be 100644 --- a/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix +++ b/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix @@ -30,6 +30,11 @@ stdenv.mkDerivation rec { sha256 = "EyOdIgMiAaIr0pgzxXW2hIFnANLeFooVMCI1d8XAddw="; }; + patches = [ + # Fix pkexec detection on NixOS. + ./fix-paths.patch + ]; + nativeBuildInputs = [ pkg-config gettext diff --git a/pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch b/pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch new file mode 100644 index 000000000000..ab6e845ae4bf --- /dev/null +++ b/pkgs/desktops/gnome/core/gnome-system-monitor/fix-paths.patch @@ -0,0 +1,13 @@ +diff --git a/src/gsm_pkexec.cpp b/src/gsm_pkexec.cpp +index 868969ba..51eb93b5 100644 +--- a/src/gsm_pkexec.cpp ++++ b/src/gsm_pkexec.cpp +@@ -33,6 +33,7 @@ gboolean gsm_pkexec_create_root_password_dialog(const char *command) + gboolean + procman_has_pkexec(void) + { +- return g_file_test("/usr/bin/pkexec", G_FILE_TEST_EXISTS); ++ return g_file_test("/run/wrappers/bin/pkexec", G_FILE_TEST_EXISTS) ++ || g_file_test("/usr/bin/pkexec", G_FILE_TEST_EXISTS); + } +