build: try harder to avoid systemd/consolekit misconfiguration
authorGiovanni Campagna <gcampagna@src.gnome.org>
Tue, 19 Feb 2013 16:31:45 +0000 (17:31 +0100)
committerColin Walters <walters@verbum.org>
Thu, 11 Apr 2013 17:02:34 +0000 (13:02 -0400)
Check if the system is booting systemd, and fail if the automatic
configuration picks the wrong value. Emit a warning if the user explicitly
chose one way or the other, to account for cross-building.

https://bugs.freedesktop.org/show_bug.cgi?id=61127

configure.ac

index 7d2dfcd..b1e478b 100644 (file)
@@ -175,6 +175,26 @@ if test "$enable_libsystemd_login" != "no"; then
   fi
 fi
 
+AS_IF([test "x$cross_compiling" != "xyes" ], [
+  AS_IF([test "$have_libsystemd_login" = "yes"], [
+    AS_IF([test ! -d /sys/fs/cgroup/systemd/ ], [
+      AS_IF([test "$enable_libsystemd_login" = "yes"], [
+        AC_MSG_WARN([libsystemd-login requested but system does not appear to be using systemd])
+      ], [
+        AC_MSG_ERROR([libsystemd-login autoconfigured, but system does not appear to use systemd])
+      ])
+    ])
+  ], [
+    AS_IF([test -d /sys/fs/cgroup/systemd/ ], [
+      AS_IF([test "$enable_libsystemd_login" = "no" ], [
+        AC_MSG_WARN([ConsoleKit requested but system appears to use systemd])
+      ], [
+        AC_MSG_ERROR([ConsoleKit autoconfigured, but systemd is in use (missing libsystemd-login pkg-config?)])
+      ])
+    ])
+  ])
+])
+
 AC_SUBST(LIBSYSTEMD_LOGIN_CFLAGS)
 AC_SUBST(LIBSYSTEMD_LOGIN_LIBS)
 AM_CONDITIONAL(HAVE_LIBSYSTEMD_LOGIN, [test "$have_libsystemd_login" = "yes"], [Using libsystemd-login])