Submitted by: DJ Lucas (dj_AT_linuxfromscratch_DOT_org) Date: 2018-12-18 Initial Package Version: 1.12.12 Upstream Status: Submitted Origin: https://raw.githubusercontent.com/gentoo/gentoo/master/sys-apps/dbus/files/dbus-enable-elogind.patch Description: Allows detection and use of elogind diff -Naurp dbus-1.12.12-orig/configure.ac dbus-1.12.12/configure.ac --- dbus-1.12.12-orig/configure.ac 2018-12-04 07:56:54.000000000 -0600 +++ dbus-1.12.12/configure.ac 2018-12-17 23:59:18.407740101 -0600 @@ -206,6 +206,7 @@ AC_ARG_ENABLE(inotify, AS_HELP_STRING([- AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto) AC_ARG_ENABLE(console-owner-file, AS_HELP_STRING([--enable-console-owner-file],[enable console owner file]),enable_console_owner_file=$enableval,enable_console_owner_file=auto) AC_ARG_ENABLE(launchd, AS_HELP_STRING([--enable-launchd],[build with launchd auto-launch support]),enable_launchd=$enableval,enable_launchd=auto) +AC_ARG_ENABLE(elogind, AS_HELP_STRING([--enable-elogind],[build with elogind user seat support]),enable_elogind=$enableval,enable_elogind=auto) AC_ARG_ENABLE(systemd, AS_HELP_STRING([--enable-systemd],[build with systemd at_console support]),enable_systemd=$enableval,enable_systemd=auto) AC_ARG_WITH(session-socket-dir, AS_HELP_STRING([--with-session-socket-dir=[dirname]],[Where to put sockets for the per-login-session message bus])) @@ -1078,6 +1079,24 @@ fi AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes) +dnl elogind detection +if test x$enable_elogind = xno ; then + have_elogind=no; +else + PKG_CHECK_MODULES([ELOGIND], + [libelogind >= 209], + [have_elogind=yes], + [have_elogind=no]) +fi + +if test x$have_elogind = xyes; then + AC_DEFINE(HAVE_ELOGIND,1,[Have elogind]) +fi + +if test x$enable_elogind = xyes -a x$have_elogind != xyes ; then + AC_MSG_ERROR([Explicitly requested elogind support, but libelogind not found]) +fi + dnl systemd detection if test x$enable_systemd = xno ; then have_systemd=no; @@ -1184,7 +1203,7 @@ if test x$with_valgrind != xno; then fi #### Set up final flags -LIBDBUS_LIBS="$THREAD_LIBS $NETWORK_libs $SYSTEMD_LIBS" +LIBDBUS_LIBS="$THREAD_LIBS $NETWORK_libs $SYSTEMD_LIBS $ELOGIND_LIBS" AC_SUBST([LIBDBUS_LIBS]) ### X11 detection @@ -1826,6 +1845,7 @@ echo " Building AppArmor support: ${have_apparmor} Building inotify support: ${have_inotify} Building kqueue support: ${have_kqueue} + Building elogind support: ${have_elogind} Building systemd support: ${have_systemd} Building X11 code: ${have_x11} Building Doxygen docs: ${enable_doxygen_docs} diff -Naurp dbus-1.12.12-orig/dbus/dbus-userdb-util.c dbus-1.12.12/dbus/dbus-userdb-util.c --- dbus-1.12.12-orig/dbus/dbus-userdb-util.c 2017-10-30 07:26:18.000000000 -0500 +++ dbus-1.12.12/dbus/dbus-userdb-util.c 2018-12-17 23:59:18.406740100 -0600 @@ -32,6 +32,9 @@ #ifdef HAVE_SYSTEMD #include #endif +#if HAVE_ELOGIND +#include +#endif /** * @addtogroup DBusInternalsUtils @@ -54,7 +57,7 @@ _dbus_is_console_user (dbus_uid_t uid, const DBusUserInfo *info; dbus_bool_t result = FALSE; -#ifdef HAVE_SYSTEMD +#if defined(HAVE_SYSTEMD) || defined(HAVE_ELOGIND) /* check if we have logind */ if (access ("/run/systemd/seats/", F_OK) >= 0) {