]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
build-sys: consolidate systemd support
authorKarel Zak <kzak@redhat.com>
Wed, 9 Apr 2014 10:23:30 +0000 (12:23 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 9 Apr 2014 10:23:30 +0000 (12:23 +0200)
 * systemd (since v209) uses only one library (when compiled
   without --enable-compat-libs)

 * all systemd build-sys stuff is merged into HAVE_SYSTEMD
  (automake) and HAVE_LIBSYSTEMD (C macro) now

 * all is controlled by --with-systemd, default is to automatically
   check for systemd libs

 * no more --enable-socket-activation and --enable-journald

Signed-off-by: Karel Zak <kzak@redhat.com>
configure.ac
misc-utils/Makemodule.am
misc-utils/logger.c
misc-utils/uuidd.c
sys-utils/Makemodule.am

index 70df7ff6a915d84fb0637ce4285dbf1b01e5992e..21c63e9780c296809f65b84d984aa5ee6ab92045 100644 (file)
@@ -1419,19 +1419,33 @@ UL_BUILD_INIT([write])
 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
 
 
-AC_ARG_ENABLE([socket-activation],
-  AS_HELP_STRING([--enable-socket-activation], [build uuidd with support for systemd socket activation]),
-  [], [enable_socket_activation=no]
-)
-have_systemd_daemon=no
-AS_IF([test "x$enable_socket_activation" = xyes], [
-  PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon], [], [
-    AC_MSG_ERROR([cannot find libsystemd-daemon support])
+AC_ARG_WITH([systemd],
+  AS_HELP_STRING([--with-systemd], [build with support for systemd]),
+  [], [with_systemd=check]
+)
+
+have_systemd=no
+AS_IF([test "x$with_systemd" != xno], [
+  # new version -- all libsystemd-* libs merged into libsystemd
+  PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
+  # old versions
+  AS_IF([test "x$have_systemd" != "xyes"], [
+    PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
+                     [have_systemd_daemon=yes], [have_systemd_daemon=no])
+    PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
+                     [have_systemd_journal=yes], [have_systemd_journal=no])
+    AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
+          have_systemd=yes])
   ])
-  have_systemd_daemon=yes
-  AC_DEFINE([HAVE_LIBSYSTEMD_DAEMON], [1], [Define if libsystemd-daemon is available])
+  AS_CASE([$with_systemd:$have_systemd],
+    [yes:no],
+      [AC_MSG_ERROR([systemd expected but libsystemd not found])],
+    [*:yes],
+       AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
+  )
 ])
-AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$have_systemd_daemon" = xyes])
+AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
+
 
 AC_ARG_WITH([systemdsystemunitdir],
   AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
@@ -1442,21 +1456,6 @@ AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
 ])
 
 
-AC_ARG_ENABLE([journald],
-  AS_HELP_STRING([--enable-journald], [add journald support to logger]),
-  [], [enable_journald=no]
-)
-have_journald=no
-AS_IF([test "x$enable_journald" = xyes], [
-  PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal], [], [
-    AC_MSG_ERROR([cannot find libsystemd-journal support])
-  ])
-  have_journald=yes
-  AC_DEFINE([HAVE_JOURNALD], [1], [Define if journald is available])
-])
-AM_CONDITIONAL([HAVE_JOURNALD], [test "x$have_journald" = xyes])
-
-
 AC_ARG_WITH([smack],
   AS_HELP_STRING([--with-smack], [build with SMACK support]),
   [], [with_smack=no]
@@ -1653,6 +1652,7 @@ AC_MSG_RESULT([
        Python libs:       ${pyexecdir}
 
        Bash completions:  ${with_bashcompletiondir}
+       Systemd support:   ${have_systemd}
 
        warnings:
 
index 82577f2fabeb5be71cec64c654396e999c4e2567..1ff2e540c960240581e9bb27ad51d813d3f8a3b4 100644 (file)
@@ -20,9 +20,9 @@ endif
 usrbin_exec_PROGRAMS += logger
 dist_man_MANS += misc-utils/logger.1
 logger_SOURCES = misc-utils/logger.c lib/strutils.c
-if HAVE_JOURNALD
-logger_LDADD = $(SYSTEMD_JOURNAL_LIBS)
-logger_CFLAGS = $(SYSTEMD_JOURNAL_CFLAGS)
+if HAVE_SYSTEMD
+logger_LDADD = $(SYSTEMD_LIBS) $(SYSTEMD_JOURNAL_LIBS)
+logger_CFLAGS = $(SYSTEMD_CFLAGS) $(SYSTEMD_JOURNAL_CFLAGS)
 endif
 
 usrbin_exec_PROGRAMS += look
@@ -77,9 +77,9 @@ uuidd_LDADD = $(LDADD) libuuid.la libcommon.la
 uuidd_CFLAGS = $(DAEMON_CFLAGS) $(AM_CFLAGS) -I$(ul_libuuid_incdir)
 uuidd_LDFLAGS = $(DAEMON_LDFLAGS) $(AM_LDFLAGS)
 uuidd_SOURCES = misc-utils/uuidd.c
-if HAVE_SYSTEMD_DAEMON
-uuidd_LDADD += $(SYSTEMD_DAEMON_LIBS)
-uuidd_CFLAGS += $(SYSTEMD_DAEMON_CFLAGS)
+if HAVE_SYSTEMD
+uuidd_LDADD += $(SYSTEMD_LIBS) $(SYSTEMD_DAEMON_LIBS)
+uuidd_CFLAGS += $(SYSTEMD_CFLAGS) $(SYSTEMD_DAEMON_CFLAGS)
 systemdsystemunit_DATA += \
        misc-utils/uuidd.service \
        misc-utils/uuidd.socket
index c07bfac8992f59d009acdcbee5714395c7bd46ae..f3bdc903baf1235c6104f691c4a6210fbaea212c 100644 (file)
@@ -59,7 +59,7 @@
 #define        SYSLOG_NAMES
 #include <syslog.h>
 
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
 # include <systemd/sd-journal.h>
 #endif
 
@@ -210,7 +210,7 @@ static int inet_socket(const char *servername, const char *port,
        return fd;
 }
 
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
 static int journald_entry(FILE *fp)
 {
        struct iovec *iovec;
@@ -289,7 +289,7 @@ static void __attribute__ ((__noreturn__)) usage(FILE *out)
        fputs(_(" -s, --stderr          output message to standard error as well\n"), out);
        fputs(_(" -t, --tag <tag>       mark every line with this tag\n"), out);
        fputs(_(" -u, --socket <socket> write to this Unix socket\n"), out);
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
        fputs(_("     --journald[=<file>]  write journald entry\n"), out);
 #endif
 
@@ -315,7 +315,7 @@ int main(int argc, char **argv)
        char *server = NULL;
        char *port = NULL;
        int LogSock = -1, socket_type = ALL_TYPES;
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
        FILE *jfd = NULL;
 #endif
        static const struct option longopts[] = {
@@ -332,7 +332,7 @@ int main(int argc, char **argv)
                { "version",    no_argument,        0, 'V' },
                { "help",       no_argument,        0, 'h' },
                { "prio-prefix", no_argument, 0, OPT_PRIO_PREFIX },
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
                { "journald",   optional_argument,  0, OPT_JOURNALD },
 #endif
                { NULL,         0, 0, 0 }
@@ -390,7 +390,7 @@ int main(int argc, char **argv)
                case OPT_PRIO_PREFIX:
                        prio_prefix = 1;
                        break;
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
                case OPT_JOURNALD:
                        if (optarg) {
                                jfd = fopen(optarg, "r");
@@ -410,7 +410,7 @@ int main(int argc, char **argv)
        argv += optind;
 
        /* setup for logging */
-#ifdef HAVE_JOURNALD
+#ifdef HAVE_LIBSYSTEMD
        if (jfd) {
                int ret = journald_entry(jfd);
                if (stdin != jfd)
index dd399631af086dc139c346adbcb677b763e29b66..c62610509709a818a74ec633dcd1b056b5bb9e0b 100644 (file)
@@ -38,8 +38,8 @@ extern int optind;
 #include "closestream.h"
 #include "strutils.h"
 
-#ifdef HAVE_LIBSYSTEMD_DAEMON
-#include <systemd/sd-daemon.h>
+#ifdef HAVE_LIBSYSTEMD
+# include <systemd/sd-daemon.h>
 #endif
 
 #include "nls.h"
@@ -304,7 +304,7 @@ static void server_loop(const char *socket_path, const char *pidfile_path,
        int                     fd_pidfile = -1;
        int                     ret;
 
-#ifdef HAVE_LIBSYSTEMD_DAEMON
+#ifdef HAVE_LIBSYSTEMD
        if (!uuidd_cxt->no_sock)        /* no_sock implies no_fork and no_pid */
 #endif
        {
@@ -352,7 +352,7 @@ static void server_loop(const char *socket_path, const char *pidfile_path,
        signal(SIGALRM, terminate_intr);
        signal(SIGPIPE, SIG_IGN);
 
-#ifdef HAVE_LIBSYSTEMD_DAEMON
+#ifdef HAVE_LIBSYSTEMD
        if (uuidd_cxt->no_sock) {
                if (sd_listen_fds(0) != 1)
                        errx(EXIT_FAILURE, _("no or too many file descriptors received"));
@@ -538,7 +538,7 @@ int main(int argc, char **argv)
                        uuidd_cxt.no_fork = 1;
                        break;
                case 'S':
-#ifdef HAVE_LIBSYSTEMD_DAEMON
+#ifdef HAVE_LIBSYSTEMD
                        uuidd_cxt.no_sock = 1;
                        uuidd_cxt.no_fork = 1;
                        no_pid = 1;
index 598f3fee08c68c7b513a530df565af2ec6fa2227..a19d58b84a4d6bee17e88c453ea0d0c82be1a7fa 100644 (file)
@@ -53,7 +53,7 @@ dist_man_MANS += sys-utils/fstrim.8
 fstrim_SOURCES = sys-utils/fstrim.c
 fstrim_LDADD = $(LDADD) libcommon.la libmount.la
 fstrim_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir)
-if HAVE_SYSTEMD_DAEMON
+if HAVE_SYSTEMD
 systemdsystemunit_DATA += \
                sys-utils/fstrim.service \
                sys-utils/fstrim.timer