nixpkgs/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
Paul Stadig 6a2999310e xfce.xfce4-power-manager: use fixed path for helpers
Using a nix store path for `xfpm-power-backlight-helper` and `xfce4-pm-helper` causes permission
errors after a rebuild when adjusting brightness or putting the system to sleep, because the
permitted executables are different from the ones `xfce4-power-manager` wants to execute.  Using a
fixed path (/run/current-system/sw/bin) means the paths do not change after a rebuild, so there's no
permission error.

A similar approach is taken with gnome's `gsd-backlight-helper`.

Fixes #77485
2023-07-27 06:12:34 -04:00

41 lines
1 KiB
Nix

{ lib
, mkXfceDerivation
, gtk3
, libnotify
, libxfce4ui
, libxfce4util
, upower
, xfconf
, xfce4-panel
}:
mkXfceDerivation {
category = "xfce";
pname = "xfce4-power-manager";
version = "4.18.2";
sha256 = "sha256-1+DP5CACzzj96FyRTeCdVEFORnpzFT49d9Uk1iijbFs=";
buildInputs = [
gtk3
libnotify
libxfce4ui
libxfce4util
upower
xfconf
xfce4-panel
];
# using /run/current-system/sw/bin instead of nix store path prevents polkit permission errors on
# rebuild. See https://github.com/NixOS/nixpkgs/issues/77485
postPatch = ''
substituteInPlace src/org.xfce.power.policy.in2 --replace "@sbindir@" "/run/current-system/sw/bin"
substituteInPlace common/xfpm-brightness.c --replace "SBINDIR" "\"/run/current-system/sw/bin\""
substituteInPlace src/xfpm-suspend.c --replace "SBINDIR" "\"/run/current-system/sw/bin\""
'';
meta = with lib; {
description = "A power manager for the Xfce Desktop Environment";
maintainers = with maintainers; [ ] ++ teams.xfce.members;
};
}