diff --git a/configure.ac b/configure.ac index a5fd5cfb11..d8c8e97461 100644 --- a/configure.ac +++ b/configure.ac @@ -312,7 +312,7 @@ else fi AC_SUBST(UDEV_BASE_DIR) -# systemd +# systemd unit support AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), [], @@ -322,37 +322,27 @@ if test "x$with_systemdsystemunitdir" != xno; then fi AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) -SESSION_TRACKING=none - -dnl -dnl Disable ConsoleKit support -dnl -AC_ARG_WITH(ck, AS_HELP_STRING([--without-ck], [Build NetworkManager without ConsoleKit session tracking support])) -AM_CONDITIONAL(WITH_CONSOLEKIT, test x"$with_ck" != xno) -no_ck=0 -if test x"$with_ck" = x"no"; then - no_ck="1" -else - with_ck="yes" - SESSION_TRACKING=ConsoleKit -fi -AC_DEFINE_UNQUOTED(NO_CONSOLEKIT, $no_ck, [Define to disable use of ConsoleKit]) - -# systemd session tracking -AC_ARG_ENABLE([systemd], - AS_HELP_STRING([--enable-systemd], [Use systemd for session tracking]), - [with_systemd=$enableval], - [with_systemd=no]) -if test "$with_systemd" = "yes" ; then - PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login]) - SESSION_TRACKING=systemd +AC_ARG_WITH(session-tracking, AS_HELP_STRING([--with-session-tracking=systemd], [Build NetworkManager with specific session tracking support])) +if test "z$with_session_tracking" = "z"; then + # Default to ConsoleKit session tracking like we used before + with_session_tracking=ck fi +case $with_session_tracking in + ck|none) ;; + systemd) + PKG_CHECK_MODULES(SYSTEMD, [libsystemd-login]) + ;; + *) + AC_MSG_ERROR(--with-session-tracking must be one of [none, ck, systemd]) + ;; +esac AC_SUBST(SYSTEMD_CFLAGS) AC_SUBST(SYSTEMD_LIBS) +AM_CONDITIONAL(SESSION_TRACKING_CK, test "x$with_session_tracking" = "xck") +AM_CONDITIONAL(SESSION_TRACKING_SYSTEMD, test "x$with_session_tracking" = "xsystemd") -AM_CONDITIONAL(WITH_SYSTEMD, [test "$with_systemd" = "yes"], [Using systemd]) have_libnl="no" PKG_CHECK_MODULES(LIBNL3, libnl-3.0, [have_libnl3=yes], [have_libnl3=no]) PKG_CHECK_MODULES(LIBNL_ROUTE3, libnl-route-3.0, [have_libnl_route3=yes], [have_libnl_route3=no]) @@ -806,7 +796,7 @@ else echo PolicyKit support: no fi - echo Session tracking: ${SESSION_TRACKING} + echo Session tracking: ${with_session_tracking} if test "${enable_wimax}" = "yes"; then echo WiMAX support: yes diff --git a/src/Makefile.am b/src/Makefile.am index 8e24974460..4a9b6a3d0f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -187,13 +187,14 @@ NetworkManager_SOURCES = \ nm-session-utils.c \ nm-session-utils.h -if WITH_SYSTEMD -NetworkManager_SOURCES += \ - nm-session-monitor-systemd.c - +if SESSION_TRACKING_SYSTEMD +NetworkManager_SOURCES += nm-session-monitor-systemd.c else -NetworkManager_SOURCES += \ - nm-session-monitor.c +if SESSION_TRACKING_CK +NetworkManager_SOURCES += nm-session-monitor-ck.c +else +NetworkManager_SOURCES += nm-session-monitor-null.c +endif endif nm-access-point-glue.h: $(top_srcdir)/introspection/nm-access-point.xml diff --git a/src/nm-session-monitor.c b/src/nm-session-monitor-ck.c similarity index 97% rename from src/nm-session-monitor.c rename to src/nm-session-monitor-ck.c index 9f05b99d7f..72ffc9ff04 100644 --- a/src/nm-session-monitor.c +++ b/src/nm-session-monitor-ck.c @@ -234,10 +234,6 @@ ensure_database (NMSessionMonitor *self, GError **error) { gboolean ret = FALSE; -#if NO_CONSOLEKIT - return TRUE; -#endif - if (self->database != NULL) { struct stat statbuf; @@ -284,10 +280,6 @@ nm_session_monitor_init (NMSessionMonitor *self) GError *error = NULL; GFile *file; -#if NO_CONSOLEKIT - return; -#endif - /* Sessions-by-user is responsible for destroying the Session objects */ self->sessions_by_user = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) session_free); @@ -392,12 +384,6 @@ nm_session_monitor_user_has_session (NMSessionMonitor *monitor, { Session *s; -#if NO_CONSOLEKIT - if (!user_to_uid (username, out_uid, error)) - return FALSE; - return TRUE; -#endif - if (!ensure_database (monitor, error)) return FALSE; @@ -435,12 +421,6 @@ nm_session_monitor_uid_has_session (NMSessionMonitor *monitor, { Session *s; -#if NO_CONSOLEKIT - if (!uid_to_user (uid, out_user, error)) - return FALSE; - return TRUE; -#endif - if (!ensure_database (monitor, error)) return FALSE; @@ -477,10 +457,6 @@ nm_session_monitor_user_active (NMSessionMonitor *monitor, { Session *s; -#if NO_CONSOLEKIT - return TRUE; -#endif - if (!ensure_database (monitor, error)) return FALSE; @@ -515,10 +491,6 @@ nm_session_monitor_uid_active (NMSessionMonitor *monitor, { Session *s; -#if NO_CONSOLEKIT - return TRUE; -#endif - if (!ensure_database (monitor, error)) return FALSE;