Add support for elogind

A session manager similar to logind from systemd.
See https://github.com/elogind/elogind

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
This commit is contained in:
Sven Eden 2017-05-30 16:33:28 +02:00 committed by Craig Small
parent e914f4b068
commit d014c5c9f2
3 changed files with 21 additions and 1 deletions

View File

@ -246,6 +246,10 @@ if WITH_SYSTEMD
proc_libproc_2_la_LIBADD += @SYSTEMD_LIBS@
endif
if WITH_ELOGIND
proc_libproc_2_la_LIBADD += @ELOGIND_LIBS@
endif
proc_libproc_2_la_LDFLAGS = \
-version-info $(LIBproc_2_CURRENT):$(LIBproc_2_REVISION):$(LIBproc_2_AGE) \
-no-undefined \

View File

@ -249,6 +249,19 @@ AS_IF([test "x$with_systemd" != "xno"], [
])
AM_CONDITIONAL([WITH_SYSTEMD], [test x$with_systemd != xno])
AC_ARG_WITH([elogind],
[AS_HELP_STRING([--with-elogind], [enable elogind support])],
[], [with_elogind=no]
)
# Do not allow elogind if systemd is wanted and found
AS_IF([test "x$with_systemd" != "xno"], [with_elogind=no])
AS_IF([test "x$with_elogind" != "xno"], [
PKG_CHECK_MODULES([ELOGIND], [libelogind])
AC_DEFINE(WITH_ELOGIND, 1, [enable elogind support])
])
AM_CONDITIONAL([WITH_ELOGIND], [test x$with_elogind != xno])
# AC_ARG_ENABLEs
AC_ARG_ENABLE([pidof],
AS_HELP_STRING([--disable-pidof], [do not build pidof]),

View File

@ -35,6 +35,9 @@
#ifdef WITH_SYSTEMD
#include <systemd/sd-login.h>
#endif
#ifdef WITH_ELOGIND
#include <elogind/sd-login.h>
#endif
#include "devname.h"
#include "escape.h"
@ -495,7 +498,7 @@ static inline void oomadj2proc(const char *S, proc_t *restrict P)
///////////////////////////////////////////////////////////////////////
static int sd2proc (proc_t *restrict p) {
#ifdef WITH_SYSTEMD
#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
char buf[64];
uid_t uid;