summaryrefslogtreecommitdiff
path: root/sys-apps/dbus/files/dbus-1.15.8-enable-elogind.patch
blob: 543eac5b30f24281867f8835513a56781952eb59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/53
https://bugs.gentoo.org/599494

Especially see https://bugs.gentoo.org/599494#c21 - this functionality isn't
particularly required. The only known consumer at the moment is hplip.
--- a/dbus/dbus-userdb-util.c
+++ b/dbus/dbus-userdb-util.c
@@ -41,6 +41,9 @@
 #ifdef HAVE_SYSTEMD
 #include <systemd/sd-login.h>
 #endif
+#ifdef HAVE_ELOGIND
+#include <elogind/sd-login.h>
+#endif
 
 /**
  * @addtogroup DBusInternalsUtils
@@ -67,7 +70,7 @@ dbus_bool_t
 _dbus_is_console_user (dbus_uid_t uid,
 		       DBusError *error)
 {
-#ifdef HAVE_SYSTEMD
+#if defined(HAVE_SYSTEMD) || defined(HAVE_ELOGIND)
   /* check if we have logind */
   if (access ("/run/systemd/seats/", F_OK) >= 0)
     {
--- a/dbus/meson.build
+++ b/dbus/meson.build
@@ -23,6 +23,7 @@ dbus_dependencies = [
     threads,
     network_libs,
     systemd,
+    elogind,
     valgrind.partial_dependency(compile_args: true),
 ]
 
--- a/meson.build
+++ b/meson.build
@@ -478,6 +478,10 @@ if use_launchd
     endif
 endif
 
+elogind = dependency('libelogind', version: '>=209', required: get_option('elogind'))
+use_elogind = elogind.found()
+config.set('HAVE_ELOGIND', use_elogind)
+
 systemd = dependency('libsystemd', version: '>=209', required: get_option('systemd'))
 use_systemd = systemd.found()
 config.set('HAVE_SYSTEMD', use_systemd)
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -244,6 +244,13 @@ option(
   description: 'Systemd at_console support'
 )
 
+option(
+  'elogind',
+  type: 'feature',
+  value: 'auto',
+  description: 'elogind at_console support'
+)
+
 option(
   'test_socket_dir',
   type: 'string',