aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-10-31 10:38:18 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2018-11-01 12:51:39 +0100
commitb29f84ff6cd4ef6a384af4fe625d4c372a34d938 (patch)
treece42919a534ffeb613b663b272baf711e9f42922
parentb96c957a22e0371978a98ca9fc991f57226a8c08 (diff)
Install systemd services with autotools
-rw-r--r--Makefile.am4
-rw-r--r--configure.ac23
-rw-r--r--contrib/Makefile.am1
-rw-r--r--contrib/systemd/Makefile.am8
-rw-r--r--contrib/systemd/osmo-pcap-client.service12
-rw-r--r--contrib/systemd/osmo-pcap-server.service12
-rw-r--r--debian/osmo-pcap-client.install1
-rw-r--r--debian/osmo-pcap-server.install1
-rwxr-xr-xdebian/rules1
9 files changed, 63 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index 6caa009..0f4a249 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,6 +5,10 @@ SUBDIRS = include src contrib tests
BUILT_SOURCES = $(top_srcdir)/.version
EXTRA_DIST = git-version-gen .version
+DISTCHECK_CONFIGURE_FLAGS = \
+ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
+
+
@RELMAKE@
$(top_srcdir)/.version:
diff --git a/configure.ac b/configure.ac
index b5468ee..f885e6d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,6 +19,13 @@ AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_RANLIB
+dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
+AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
+if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
+ AC_MSG_WARN([You need to install pkg-config])
+fi
+PKG_PROG_PKG_CONFIG([0.20])
+
dnl checks for header files
AC_HEADER_STDC
@@ -52,6 +59,21 @@ then
CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
fi
+# https://www.freedesktop.org/software/systemd/man/daemon.html
+AC_ARG_WITH([systemdsystemunitdir],
+ [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
+ [with_systemdsystemunitdir=auto])
+AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
+ def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
+ AS_IF([test "x$def_systemdsystemunitdir" = "x"],
+ [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
+ [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
+ with_systemdsystemunitdir=no],
+ [with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
+AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
+ [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
+AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
+
AC_ARG_ENABLE([external_tests],
AC_HELP_STRING([--enable-external-tests],
[Include the VTY tests in make check [default=no]]),
@@ -122,5 +144,6 @@ AC_OUTPUT(
include/osmo-pcap/Makefile
src/Makefile
contrib/Makefile
+ contrib/systemd/Makefile
tests/Makefile
Makefile)
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 3585924..7bd8c23 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -1,2 +1,3 @@
+SUBDIRS = systemd
dist_pkgdata_DATA = osmo_pcap_clean_old
EXTRA_DIST = osmo-pcap-server.cfg osmo-pcap-client.cfg
diff --git a/contrib/systemd/Makefile.am b/contrib/systemd/Makefile.am
new file mode 100644
index 0000000..5b41c52
--- /dev/null
+++ b/contrib/systemd/Makefile.am
@@ -0,0 +1,8 @@
+if HAVE_SYSTEMD
+SYSTEMD_SERVICES = \
+ osmo-pcap-client.service \
+ osmo-pcap-server.service
+
+EXTRA_DIST = $(SYSTEMD_SERVICES)
+systemdsystemunit_DATA = $(SYSTEMD_SERVICES)
+endif
diff --git a/contrib/systemd/osmo-pcap-client.service b/contrib/systemd/osmo-pcap-client.service
new file mode 100644
index 0000000..fd0de75
--- /dev/null
+++ b/contrib/systemd/osmo-pcap-client.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=PCAP Client for the PCAP aggregation
+
+[Service]
+Type=simple
+Restart=always
+ExecStart=/usr/bin/osmo-pcap-client -c /etc/osmocom/osmo-pcap-client.cfg
+RestartSec=2
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/contrib/systemd/osmo-pcap-server.service b/contrib/systemd/osmo-pcap-server.service
new file mode 100644
index 0000000..3094fc4
--- /dev/null
+++ b/contrib/systemd/osmo-pcap-server.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=PCAP Server for the PCAP aggregation
+
+[Service]
+Type=simple
+Restart=always
+ExecStart=/usr/bin/osmo-pcap-server -c /etc/osmocom/osmo-pcap-server.cfg
+RestartSec=2
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/debian/osmo-pcap-client.install b/debian/osmo-pcap-client.install
index f149b14..ac7c65c 100644
--- a/debian/osmo-pcap-client.install
+++ b/debian/osmo-pcap-client.install
@@ -1 +1,2 @@
+lib/systemd/system/osmo-pcap-client.service
usr/bin/osmo-pcap-client
diff --git a/debian/osmo-pcap-server.install b/debian/osmo-pcap-server.install
index ad58c8e..6ba698e 100644
--- a/debian/osmo-pcap-server.install
+++ b/debian/osmo-pcap-server.install
@@ -1 +1,2 @@
+lib/systemd/system/osmo-pcap-server.service
usr/bin/osmo-pcap-server
diff --git a/debian/rules b/debian/rules
index 6862888..a9a8b30 100755
--- a/debian/rules
+++ b/debian/rules
@@ -16,6 +16,7 @@ PCAP_LIBS="-lpcap"
override_dh_auto_configure:
dh_auto_configure -- \
+ --with-systemdsystemunitdir=/lib/systemd/system \
--with-pcap-config=/bin/false \
PCAP_CFLAGS=$(PCAP_CFLAGS) \
PCAP_LIBS=$(PCAP_LIBS)