mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-05 06:33:50 +02:00
polkit: patch to support turnstile
This commit is contained in:
parent
e0b21413de
commit
c9ca7d6997
2 changed files with 58 additions and 1 deletions
57
srcpkgs/polkit/patches/turnstile.patch
Normal file
57
srcpkgs/polkit/patches/turnstile.patch
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
commit 8d98aa421b92765695af13c033cf7e80375c03fe
|
||||||
|
Author: q66 <q66@chimera-linux.org>
|
||||||
|
Date: Sun Jul 2 15:44:51 2023 +0200
|
||||||
|
|
||||||
|
ensure turnstile-session processes fall back to display check
|
||||||
|
|
||||||
|
As turnstile session is shared between sessions, let us fall back
|
||||||
|
to the check for whether a graphical session is in place. We need
|
||||||
|
this as our dbus session bus is managed through turnstile. In
|
||||||
|
systemd-using systems there is no problem because user units are
|
||||||
|
not a part of any explicit session (we don't get this luxury
|
||||||
|
because using a session is the only way to make sure our pid is
|
||||||
|
tracked in systemd at all; we need that to be able to resolve
|
||||||
|
PID to UID).
|
||||||
|
|
||||||
|
diff --git a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
|
||||||
|
index b00cdbd..9a3f3c3 100644
|
||||||
|
--- a/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
|
||||||
|
+++ b/src/polkitbackend/polkitbackendsessionmonitor-systemd.c
|
||||||
|
@@ -346,7 +346,7 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
|
||||||
|
PolkitUnixProcess *tmp_process = NULL;
|
||||||
|
PolkitUnixProcess *process = NULL;
|
||||||
|
PolkitSubject *session = NULL;
|
||||||
|
- char *session_id = NULL;
|
||||||
|
+ char *session_id = NULL, *service_id = NULL;
|
||||||
|
pid_t pid;
|
||||||
|
#if HAVE_SD_UID_GET_DISPLAY
|
||||||
|
uid_t uid;
|
||||||
|
@@ -377,8 +377,26 @@ polkit_backend_session_monitor_get_session_for_subject (PolkitBackendSessionMoni
|
||||||
|
|
||||||
|
if (sd_pid_get_session (pid, &session_id) >= 0)
|
||||||
|
{
|
||||||
|
- session = polkit_unix_session_new (session_id);
|
||||||
|
- goto out;
|
||||||
|
+ /* if belonging to turnstile, ignore */
|
||||||
|
+ if (sd_session_get_service (session_id, &service_id) >= 0)
|
||||||
|
+ {
|
||||||
|
+ if (strcmp (service_id, "turnstiled"))
|
||||||
|
+ {
|
||||||
|
+ free (service_id);
|
||||||
|
+ session = polkit_unix_session_new (session_id);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* turnstile-managed processes are shared */
|
||||||
|
+ free(service_id);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ session = polkit_unix_session_new (session_id);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
#if HAVE_SD_UID_GET_DISPLAY
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'polkit'
|
# Template file for 'polkit'
|
||||||
pkgname=polkit
|
pkgname=polkit
|
||||||
version=121
|
version=121
|
||||||
revision=1
|
revision=2
|
||||||
build_style=meson
|
build_style=meson
|
||||||
build_helper=gir
|
build_helper=gir
|
||||||
configure_args="$(vopt_bool gir introspection) -Dman=true
|
configure_args="$(vopt_bool gir introspection) -Dman=true
|
||||||
|
|
Loading…
Add table
Reference in a new issue