chiark / gitweb /
time-util: Fix overflow check introduce in commit f977849 (#5216)
[elogind.git] / configure.ac
index 8450bbcd5ba1753c6d67e2b9200a6c46adae1eff..2b78dddcc88dbf8e9655c7e92977275c5bb60006 100644 (file)
@@ -20,7 +20,7 @@
 AC_PREREQ([2.64])
 
 AC_INIT([elogind],
-        [230],
+        [232.2],
         [https://github.com/elogind/elogind/issues],
         [elogind],
         [https://github.com/elogind/elogind])
@@ -111,21 +111,50 @@ fi
 
 
 # ------------------------------------------------------------------------------
-# Find running cgroup controller
+# Let users set the cgroup controller to use, in case the target controller
+# isn't currently running the show.
+# Example: Gentoo Linux, user wants to switch from systemd to openrc+elogind,
+#          and emerges elogind before having booted the machine with openrc.
+#          See: https://github.com/elogind/elogind/issues/18
 with_cgroupctrl=
-AS_IF(  [test -f /proc/self/cgroup], [
-        # If the init system is a cgroup controler, it will be position 1.
-        # Secondary controllers, like cgmanager, do not work.
-        with_cgroupctrl=`grep "^1:name=" /proc/self/cgroup | cut -d ':' -f 2`
-        AS_IF(  [test -z "$with_cgroupctrl"], [
-                # Try to be our own cgroup controller
-                with_cgroupctrl="name=elogind"
+AC_ARG_WITH([cgroup-controller],
+            AS_HELP_STRING([--with-cgroup-controller=name],
+            [Set the name of the cgroup controller to use.
+             Use this when the autodetection fails, or you plan to use your system with a different controller than the one in place now.
+             The value 'auto' (default) detects the running controller.
+             The values 'none' and 'elogind' will cause elogind to be its own (very limited) controller.
+             When elogind shall be its own controller, there *MUST NOT* be any other controller running!
+             Another popular controller would be 'openrc'.]),
+            [with_cgroupctrl=$withval],
+            [with_cgroupctrl=auto])
+
+# ------------------------------------------------------------------------------
+# Find running cgroup controller, if none was set
+AS_IF(  [test "x$with_cgroupctrl" = "xauto"], [
+        AS_IF([test -f /proc/self/cgroup], [
+                # If the init system is a cgroup controler, it will be position 1.
+                # Secondary controllers, like cgmanager, do not work.
+                with_cgroupctrl=`grep "^1:name=" /proc/self/cgroup | \
+                        sed -n 's/.*=//p' | sed -e 's/:.*$//'`
+                AS_IF(  [test -z "$with_cgroupctrl"], [
+                        # Try to be our own cgroup controller
+                        with_cgroupctrl="elogind"
+                        ])
+        ], [
+                # 'auto' but no cgroup fs is a problem.
+                with_cgroupctrl=""
         ])
 ])
+
+# If the user specified 'none', switch to 'elogind'.
+# 'none' is allowed, as this means "there is no controller now"
+AS_IF(  [test "x$with_cgroupctrl" = "xnone"], [with_cgroupctrl=elogind])
+
+# If this was not possible, /proc/self/cgroup not mounted yet, and 'auto'
+# chosen, error out.
 AS_IF(  [test -z "$with_cgroupctrl"],
         AC_MSG_ERROR([No running cgroup controller found]))
 
-
 # ------------------------------------------------------------------------------
 address_sanitizer_cflags=
 address_sanitizer_cppflags=
@@ -216,23 +245,14 @@ AS_CASE([$CC], [*clang*],
                -Wno-gnu-variable-sized-type-not-at-end \
         ])])
 
-
-# ------------------------------------------------------------------------------
-# On some distributions -flto, even if available, leads to linking errors.
-# We therefore make it optional
-have_lto=no
-AC_ARG_ENABLE([lto],
-        [AS_HELP_STRING([--disable-lto], [Disable link time optimization (default: test)])])
-
-AS_IF([test "x$enable_lto" != "xno"], [
-        AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
-                [have_lto=yes],
-                [AC_MSG_RESULT([skipping -flto, optimization not enabled])])
-        AS_IF([test "$have_lto" != "no"],
-                [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-flto])]
-        )
-        AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
-])
+AC_ARG_ENABLE([lto], [AS_HELP_STRING([--disable-lto], [disable -flto])],
+                     [], [enable_lto=yes])
+AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
+        [AS_IF([test "x$enable_lto" = "xyes"],
+               [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [-flto])],
+               [AC_MSG_RESULT([disabling -flto as requested])])],
+        [AC_MSG_RESULT([skipping -flto, optimization not enabled])])
+AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
 
 # ------------------------------------------------------------------------------
 AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
@@ -267,6 +287,7 @@ AC_CHECK_SIZEOF(uid_t)
 AC_CHECK_SIZEOF(gid_t)
 AC_CHECK_SIZEOF(time_t)
 AC_CHECK_SIZEOF(dev_t)
+AC_CHECK_SIZEOF(ino_t)
 AC_CHECK_SIZEOF(rlim_t,,[
        #include <sys/time.h>
        #include <sys/resource.h>
@@ -372,6 +393,8 @@ AC_CHECK_TYPES([char16_t, char32_t, key_serial_t],
 ]])
 
 AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE,
+                IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
+                IFLA_VRF_TABLE,
                 IFLA_MACVLAN_FLAGS,
                 IFLA_IPVLAN_MODE,
                 IFLA_VTI_REMOTE,
@@ -620,16 +643,6 @@ if test "x$enable_polkit" != "xno"; then
 fi
 AM_CONDITIONAL(ENABLE_POLKIT, [test "x$have_polkit" = "xyes"])
 
-# ------------------------------------------------------------------------------
-have_kdbus=no
-AC_ARG_ENABLE(kdbus, AS_HELP_STRING([--disable-kdbus], [do not connect to kdbus by default]))
-if test "x$enable_kdbus" != "xno"; then
-        AC_DEFINE(ENABLE_KDBUS, 1, [Define if kdbus is to be connected to by default])
-        have_kdbus=yes
-        M4_DEFINES="$M4_DEFINES -DENABLE_KDBUS"
-fi
-AM_CONDITIONAL(ENABLE_KDBUS, [test "$have_kdbus" = "yes"])
-
 # ------------------------------------------------------------------------------
 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
 
@@ -697,9 +710,10 @@ AC_ARG_WITH([pamlibdir],
 AX_NORMALIZE_PATH([with_pamlibdir])
 
 AC_ARG_WITH([pamconfdir],
-        AS_HELP_STRING([--with-pamconfdir=DIR], [Directory for PAM configuration]),
+        AS_HELP_STRING([--with-pamconfdir=DIR], [Directory for PAM configuration (pass no to disable installing)]),
         [],
         [with_pamconfdir=${sysconfdir}/pam.d])
+AM_CONDITIONAL(ENABLE_PAM_CONFIG, [test "$with_pamconfdir" != "no"])
 AX_NORMALIZE_PATH([with_pamconfdir])
 
 AC_ARG_ENABLE([split-usr],
@@ -788,13 +802,11 @@ AC_MSG_RESULT([
         ACL:                     ${have_acl}
         KillUserProcesses default: ${KILL_USER_PROCESSES}
         polkit:                  ${have_polkit}
-        kdbus:                   ${have_kdbus}
         Python:                  ${have_python}
         man pages:               ${have_manpages}
         test coverage:           ${have_coverage}
         Split /usr:              ${enable_split_usr}
         utmp/wtmp support:       ${have_utmp}
-        Link time optimization:  ${have_lto}
         extra debugging:         ${enable_debug}
         cgroup controller:       ${with_cgroupctrl}