]> granicus.if.org Git - procps-ng/commitdiff
Add support for elogind
authorSven Eden <yamakuzure@gmx.net>
Tue, 30 May 2017 14:33:28 +0000 (16:33 +0200)
committerCraig Small <csmall@enc.com.au>
Fri, 29 Dec 2017 04:57:14 +0000 (15:57 +1100)
A session manager similar to logind from systemd.
See https://github.com/elogind/elogind

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Makefile.am
configure.ac
proc/readproc.c

index 1d9203094ce04f016d98c010ef8cb5334f0eb34a..9d5af83fb899abf2a44748132cea174367455e35 100644 (file)
@@ -215,6 +215,10 @@ if WITH_SYSTEMD
 proc_libprocps_la_LIBADD += @SYSTEMD_LIBS@
 endif
 
+if WITH_ELOGIND
+proc_libprocps_la_LIBADD += @ELOGIND_LIBS@
+endif
+
 proc_libprocps_la_LDFLAGS = \
        -version-info $(LIBprocps_CURRENT):$(LIBprocps_REVISION):$(LIBprocps_AGE) \
        -no-undefined \
index b0f82444da510a5744782caea6cfffe7d779b31d..bc84a0d3e7a10ebfac6505db7f4ebb3591892299 100644 (file)
@@ -178,6 +178,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]),
index 0a30edee74a04a3ef1127e903f64de19c0da9602..6871bad089fa875af25b51137f369770ceef3a18 100644 (file)
@@ -40,6 +40,9 @@
 #ifdef WITH_SYSTEMD
 #include <systemd/sd-login.h>
 #endif
+#ifdef WITH_ELOGIND
+#include <elogind/sd-login.h>
+#endif
 
 // sometimes it's easier to do this manually, w/o gcc helping
 #ifdef PROF
@@ -518,7 +521,7 @@ static void ns2proc(const char *directory, proc_t *restrict p) {
 }
 
 static void sd2proc(proc_t *restrict p) {
-#ifdef WITH_SYSTEMD
+#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
     char buf[64];
     uid_t uid;