diff options
author | Andreas Schneider <asn@samba.org> | 2015-04-07 16:30:30 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2015-04-19 23:44:30 +0200 |
commit | 6352ce70c1d2d3665c2929f4fc4bb313e771f1e2 (patch) | |
tree | b5389f34560d69df7a4066f38398971bbab9fd88 /lib | |
parent | 65c7bc547f0d6d6688bb82a90e11527d2d6969b7 (diff) | |
download | samba-6352ce70c1d2d3665c2929f4fc4bb313e771f1e2.tar.gz |
waf: Fix systemd detection
https://bugzilla.samba.org/show_bug.cgi?id=11200
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
(cherry picked from commit 5ee27b4ead57c15db7168d80f6fdf821663c44fc)
Autobuild-User(v4-2-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-2-test): Sun Apr 19 23:44:30 CEST 2015 on sn-devel-104
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util/become_daemon.c | 12 | ||||
-rwxr-xr-x | lib/util/wscript_build | 2 | ||||
-rw-r--r-- | lib/util/wscript_configure | 27 |
3 files changed, 22 insertions, 19 deletions
diff --git a/lib/util/become_daemon.c b/lib/util/become_daemon.c index 78bebfc8309..46229719078 100644 --- a/lib/util/become_daemon.c +++ b/lib/util/become_daemon.c @@ -24,7 +24,7 @@ #include "includes.h" #include "system/filesys.h" #include "system/locale.h" -#if HAVE_SYSTEMD +#if HAVE_LIBSYSTEMD_DAEMON #include <systemd/sd-daemon.h> #endif #include "lib/util/close_low_fd.h" @@ -69,9 +69,9 @@ _PUBLIC_ void become_daemon(bool do_fork, bool no_process_group, bool log_stdout if (do_fork) { newpid = fork(); if (newpid) { -#if HAVE_SYSTEMD +#if HAVE_LIBSYSTEMD_DAEMON sd_notifyf(0, "READY=0\nSTATUS=Starting process...\nMAINPID=%lu", (unsigned long) newpid); -#endif /* HAVE_SYSTEMD */ +#endif /* HAVE_LIBSYSTEMD_DAEMON */ _exit(0); } } @@ -98,7 +98,7 @@ _PUBLIC_ void become_daemon(bool do_fork, bool no_process_group, bool log_stdout _PUBLIC_ void exit_daemon(const char *msg, int error) { -#ifdef HAVE_SYSTEMD +#ifdef HAVE_LIBSYSTEMD_DAEMON if (msg == NULL) { msg = strerror(error); } @@ -117,7 +117,7 @@ _PUBLIC_ void daemon_ready(const char *name) if (name == NULL) { name = "Samba"; } -#ifdef HAVE_SYSTEMD +#ifdef HAVE_LIBSYSTEMD_DAEMON sd_notifyf(0, "READY=1\nSTATUS=%s: ready to serve connections...", name); #endif DEBUG(0, ("STATUS=daemon '%s' finished starting up and ready to serve " @@ -129,7 +129,7 @@ _PUBLIC_ void daemon_status(const char *name, const char *msg) if (name == NULL) { name = "Samba"; } -#ifdef HAVE_SYSTEMD +#ifdef HAVE_LIBSYSTEMD_DAEMON sd_notifyf(0, "\nSTATUS=%s: %s", name, msg); #endif DEBUG(0, ("STATUS=daemon '%s' : %s", name, msg)); diff --git a/lib/util/wscript_build b/lib/util/wscript_build index 5db7e35a729..cb9e8e5e5da 100755 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -54,7 +54,7 @@ if not bld.env.SAMBA_UTIL_CORE_ONLY: tevent_debug.c util_process.c memcache.c''', deps='samba-util-core DYNCONFIG close-low-fd tini tiniparser', - public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid systemd-daemon', + public_deps='talloc tevent execinfo pthread LIBCRYPTO charset util_setid systemd systemd-daemon', public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h samba_util.h string_wrappers.h idtree.h idtree_random.h blocking.h signal.h substitute.h fault.h', header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ], local_include=False, diff --git a/lib/util/wscript_configure b/lib/util/wscript_configure index 1cfba3e1a40..8d8dc876ba8 100644 --- a/lib/util/wscript_configure +++ b/lib/util/wscript_configure @@ -100,16 +100,19 @@ conf.CHECK_CODE('struct statvfs buf; buf.f_flags = 0', local_include=False, execute=False) +# +# systemd removed the libsystemd-daemon and libsystemd-journal libraries. In newer +# versions it is only libsystemd. As waf pkg-config handling does not provide +# targets which could be used as a dependency based on the package name we need +# to look for them on our own. This enabled one of the library targets based on +# which version we detect. +# +conf.SET_TARGET_TYPE('systemd-daemon', 'EMPTY') +conf.SET_TARGET_TYPE('systemd-journal', 'EMPTY') +conf.SET_TARGET_TYPE('systemd', 'EMPTY') + if Options.options.enable_systemd != False: - conf.CHECK_CFG(package='libsystemd-daemon', args='--cflags --libs', - msg='Checking for libsystemd-daemon', uselib_store="SYSTEMD-DAEMON") - conf.CHECK_HEADERS('systemd/sd-daemon.h', lib='systemd-daemon') - conf.CHECK_LIB('systemd-daemon', shlib=True) - -if (conf.CONFIG_SET('HAVE_SYSTEMD_SD_DAEMON_H') and - conf.CONFIG_SET('HAVE_LIBSYSTEMD_DAEMON')): - conf.DEFINE('HAVE_SYSTEMD', '1') - conf.env['ENABLE_SYSTEMD'] = True -else: - conf.SET_TARGET_TYPE('systemd-daemon', 'EMPTY') - conf.undefine('HAVE_SYSTEMD') + conf.check_cfg(package='libsystemd-daemon', args='--cflags --libs', + msg='Checking for libsystemd-daemon') + if not conf.CHECK_LIB('systemd-daemon', shlib=True): + conf.CHECK_LIB('systemd', shlib=True) |