gnome3.gnome-settings-daemon: fix #14168

The issue in brief is caused by the fact that gnome-settings-daemon is
non-restartable and if the policy definitions change in any way
it won't propagate to the running system because of that.

By patching references to the backlight helper to
/run/current-system/sw/bin/gsd-backlight-helper
the polkit policy will not undergo a change.
This commit is contained in:
worldofpeace 2019-04-22 15:55:18 -04:00
parent eb60ddb5d2
commit f6e92290b3
2 changed files with 33 additions and 0 deletions

View File

@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
inherit tzdata;
})
./global-backlight-helper.patch
];
nativeBuildInputs = [
@ -93,6 +94,12 @@ stdenv.mkDerivation rec {
"-Dudev_dir=${placeholder "out"}/lib/udev"
];
# So the polkit policy can reference /run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper
postFixup = ''
mkdir -p $out/bin/gnome-settings-daemon
ln -s $out/libexec/gsd-backlight-helper $out/bin/gnome-settings-daemon/gsd-backlight-helper
'';
postPatch = ''
for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
chmod +x $f

View File

@ -0,0 +1,26 @@
diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
index d7d10fd2..5619d6ad 100644
--- a/plugins/power/gsd-backlight.c
+++ b/plugins/power/gsd-backlight.c
@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
&error,
"pkexec",
- LIBEXECDIR "/gsd-backlight-helper",
+ "/run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper",
g_udev_device_get_sysfs_path (backlight->udev_device),
data->value_str, NULL);
} else {
diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
index f16300f8..79d6bd17 100644
--- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
+++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
@@ -25,7 +25,7 @@
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
- <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gsd-backlight-helper</annotate>
+ <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper</annotate>
</action>
</policyconfig>