diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch b/pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch new file mode 100644 index 000000000000..8bdf39ce37b6 --- /dev/null +++ b/pkgs/desktops/gnome/core/gnome-settings-daemon/add-gnome-session-ctl-option.patch @@ -0,0 +1,58 @@ +From aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0 Mon Sep 17 00:00:00 2001 +From: WORLDofPEACE +Date: Sun, 20 Sep 2020 16:09:36 -0400 +Subject: [PATCH] build: add a gnome_session_ctl_path option + +In gsd.service.in the ExecStopPost expects g-s-d libexecdir to +be from the same prefix as gnome-session's, and this is not necessarily +true as there are linux distro's that install their packages into their +own individual prefixes (like NixOS or Guix). +--- + meson_options.txt | 1 + + plugins/gsd.service.in | 2 +- + plugins/meson.build | 6 ++++++ + 3 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/meson_options.txt b/meson_options.txt +index 3e04cf64f..21e003c61 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,4 +1,5 @@ + option('udev_dir', type: 'string', value: '', description: 'Absolute path of the udev base directory') ++option('gnome_session_ctl_path', type: 'string', value: '', description: 'Absolute path to the gnome-session-ctl binary') + option('systemd', type: 'boolean', value: true, description: 'Enable systemd integration') + + option('alsa', type: 'boolean', value: true, description: 'build with ALSA support (not optional on Linux platforms)') +diff --git a/plugins/gsd.service.in b/plugins/gsd.service.in +index 79b5f5536..bfbde6d05 100644 +--- a/plugins/gsd.service.in ++++ b/plugins/gsd.service.in +@@ -23,4 +23,4 @@ BusName=@plugin_dbus_name@ + TimeoutStopSec=5 + # We cannot use OnFailure as e.g. dependency failures are normal + # https://github.com/systemd/systemd/issues/12352 +-ExecStopPost=@libexecdir@/gnome-session-ctl --exec-stop-check ++ExecStopPost=@gnome_session_ctl@ --exec-stop-check +diff --git a/plugins/meson.build b/plugins/meson.build +index 83e018854..266a0f093 100644 +--- a/plugins/meson.build ++++ b/plugins/meson.build +@@ -20,6 +20,11 @@ all_plugins = [ + + disabled_plugins = [] + ++gnome_session_ctl = get_option('gnome_session_ctl_path') ++if gnome_session_ctl == '' ++ gnome_session_ctl = join_paths(gsd_libexecdir, 'gnome-session-ctl') ++endif ++ + if not enable_smartcard + disabled_plugins += ['smartcard'] + endif +@@ -125,6 +130,7 @@ foreach plugin: all_plugins + unit_conf.set('plugin_name', plugin_name) + unit_conf.set('description', plugin_description) + unit_conf.set('libexecdir', gsd_libexecdir) ++ unit_conf.set('gnome_session_ctl', gnome_session_ctl) + unit_conf.set('plugin_dbus_name', plugin_dbus_name) + unit_conf.set('plugin_restart', plugin_restart_rule.get(plugin_name, 'on-failure')) diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix index 2ea3701eb9a4..699f9961c11f 100644 --- a/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix @@ -1,5 +1,5 @@ -{ lib, stdenv -, fetchpatch +{ stdenv +, lib , substituteAll , fetchurl , meson @@ -34,26 +34,22 @@ , wrapGAppsHook , python3 , tzdata -, nss , gcr_4 , gnome-session-ctl }: stdenv.mkDerivation rec { pname = "gnome-settings-daemon"; - version = "45.beta"; + version = "45.0"; src = fetchurl { url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz"; - sha256 = "m0VQRJVekw0AB3M88+g6yVsv1H0JlSsy/AFyxqInLWQ="; + sha256 = "u03EaVDiqQ848jIlhIhW0qextxjInQKFzhl7cBa7Hcg="; }; patches = [ # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202 - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch"; - sha256 = "O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI="; - }) + ./add-gnome-session-ctl-option.patch (substituteAll { src = ./fix-paths.patch; @@ -89,7 +85,6 @@ stdenv.mkDerivation rec { upower colord libgweather - nss polkit geocode-glib_2 geoclue2