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',
|