summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2015-04-07 16:30:30 +0200
committerKarolin Seeger <kseeger@samba.org>2015-04-19 23:44:30 +0200
commit6352ce70c1d2d3665c2929f4fc4bb313e771f1e2 (patch)
treeb5389f34560d69df7a4066f38398971bbab9fd88 /lib
parent65c7bc547f0d6d6688bb82a90e11527d2d6969b7 (diff)
downloadsamba-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.c12
-rwxr-xr-xlib/util/wscript_build2
-rw-r--r--lib/util/wscript_configure27
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)