Merge branch 'elogind-support' into 'main'

build: add elogind support

See merge request dbus/dbus!509
This commit is contained in:
Simon McVittie 2025-08-11 15:09:54 +00:00
commit dd998d569c
4 changed files with 25 additions and 1 deletions

View file

@ -42,6 +42,10 @@
#include <systemd/sd-login.h>
#endif
#ifdef HAVE_ELOGIND
#include <elogind/sd-login.h>
#endif
/**
* @addtogroup DBusInternalsUtils
* @{
@ -67,7 +71,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)
{

View file

@ -24,6 +24,7 @@ dbus_dependencies = [
adt_libs,
network_libs,
systemd,
elogind,
valgrind.partial_dependency(compile_args: true),
]

View file

@ -535,6 +535,17 @@ else
endif
data_config.set('SYSTEMCTL', systemctl)
elogind_opt = get_option('elogind')
if use_systemd
if elogind_opt.enabled()
error('-Dsystemd and -Delogind are mutually exclusive')
endif
elogind = dependency('', required: false)
else
elogind = dependency('libelogind', version: '>=209', required: elogind_opt)
endif
use_elogind = elogind.found()
config.set('HAVE_ELOGIND', use_elogind)
use_traditional_activation = message_bus and get_option('traditional_activation')
@ -1378,6 +1389,7 @@ summary_dict += {
'Building inotify support': use_inotify,
'Building kqueue support': use_kqueue,
'Building systemd support': use_systemd,
'Building elogind support': use_elogind,
'Traditional activation': use_traditional_activation,
'Building X11 code': config.get('DBUS_BUILD_X11'),
'Building Doxygen docs': doxygen.found(),

View file

@ -95,6 +95,13 @@ option(
description: 'Enable tests that require insecure extra code in the library and binaries'
)
option(
'elogind',
type: 'feature',
value: 'disabled',
description: 'Use elogind for detecting user sessions'
)
option(
'epoll',
type: 'feature',