mirror of
https://github.com/void-linux/void-packages.git
synced 2025-04-21 16:47:00 +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
srcpkgs/polkit
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'
|
||||
pkgname=polkit
|
||||
version=121
|
||||
revision=1
|
||||
revision=2
|
||||
build_style=meson
|
||||
build_helper=gir
|
||||
configure_args="$(vopt_bool gir introspection) -Dman=true
|
||||
|
|
Loading…
Add table
Reference in a new issue