From 422492998660ba40d3d7986fd43e1d7aafa3774a Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 10 Sep 2018 14:10:29 +0200 Subject: Install systemd services with autotools Change-Id: I9bc40cf9e9a901d28d1f1629f6f1d55e8ba0c0b6 --- debian/control | 1 + debian/osmo-bsc-mgcp.install | 1 + debian/osmo-bsc-mgcp.service | 1 - debian/osmocom-bsc-nat.install | 1 + debian/osmocom-bsc-nat.service | 1 - debian/osmocom-bsc-sccplite.install | 2 +- debian/osmocom-bsc-sccplite.service | 1 - debian/osmocom-nitb.install | 3 ++- debian/osmocom-nitb.service | 1 - debian/rules | 4 ++-- openbsc/Makefile.am | 4 ++++ openbsc/configure.ac | 18 ++++++++++++++++++ openbsc/contrib/Makefile.am | 1 + openbsc/contrib/systemd/Makefile.am | 14 ++++++++++++++ openbsc/debian/osmo-bsc-mgcp.service | 1 - 15 files changed, 45 insertions(+), 9 deletions(-) delete mode 120000 debian/osmo-bsc-mgcp.service delete mode 120000 debian/osmocom-bsc-nat.service delete mode 120000 debian/osmocom-bsc-sccplite.service delete mode 120000 debian/osmocom-nitb.service create mode 100644 openbsc/contrib/Makefile.am create mode 100644 openbsc/contrib/systemd/Makefile.am delete mode 120000 openbsc/debian/osmo-bsc-mgcp.service diff --git a/debian/control b/debian/control index 46a8ab505..0e9bb0cb4 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,7 @@ Build-Depends: debhelper (>= 9), libosmo-sccp-dev, libdbi0-dev, dh-autoreconf, + dh-systemd (>= 1.5), libosmo-abis-dev, libosmo-netif-dev, libdbd-sqlite3, diff --git a/debian/osmo-bsc-mgcp.install b/debian/osmo-bsc-mgcp.install index 155043746..828fb31de 100644 --- a/debian/osmo-bsc-mgcp.install +++ b/debian/osmo-bsc-mgcp.install @@ -1 +1,2 @@ +lib/systemd/system/osmo-bsc-mgcp.service usr/bin/osmo-bsc_mgcp diff --git a/debian/osmo-bsc-mgcp.service b/debian/osmo-bsc-mgcp.service deleted file mode 120000 index 0f8700b6b..000000000 --- a/debian/osmo-bsc-mgcp.service +++ /dev/null @@ -1 +0,0 @@ -../openbsc/contrib/systemd/osmo-bsc-mgcp.service \ No newline at end of file diff --git a/debian/osmocom-bsc-nat.install b/debian/osmocom-bsc-nat.install index b561a7e11..d6cabe23a 100644 --- a/debian/osmocom-bsc-nat.install +++ b/debian/osmocom-bsc-nat.install @@ -1 +1,2 @@ +/lib/systemd/system/osmo-bsc-nat.service /usr/bin/osmo-bsc_nat diff --git a/debian/osmocom-bsc-nat.service b/debian/osmocom-bsc-nat.service deleted file mode 120000 index 0d5b3be2f..000000000 --- a/debian/osmocom-bsc-nat.service +++ /dev/null @@ -1 +0,0 @@ -../openbsc/contrib/systemd/osmo-bsc-nat.service \ No newline at end of file diff --git a/debian/osmocom-bsc-sccplite.install b/debian/osmocom-bsc-sccplite.install index 9ce795c1b..67c50cbca 100644 --- a/debian/osmocom-bsc-sccplite.install +++ b/debian/osmocom-bsc-sccplite.install @@ -1,2 +1,2 @@ -/usr/bin/osmo-bsc_mgcp +/lib/systemd/system/osmo-bsc-sccplite.service /usr/bin/osmo-bsc-sccplite diff --git a/debian/osmocom-bsc-sccplite.service b/debian/osmocom-bsc-sccplite.service deleted file mode 120000 index f30a9db70..000000000 --- a/debian/osmocom-bsc-sccplite.service +++ /dev/null @@ -1 +0,0 @@ -../openbsc/contrib/systemd/osmo-bsc-sccplite.service \ No newline at end of file diff --git a/debian/osmocom-nitb.install b/debian/osmocom-nitb.install index 26caf71f1..78e8f7712 100644 --- a/debian/osmocom-nitb.install +++ b/debian/osmocom-nitb.install @@ -1,2 +1,3 @@ +/lib/systemd/system/osmo-nitb.service /usr/bin/osmo-nitb -openbsc/contrib/*.py usr/bin/ \ No newline at end of file +openbsc/contrib/*.py usr/bin/ diff --git a/debian/osmocom-nitb.service b/debian/osmocom-nitb.service deleted file mode 120000 index eaecd9da1..000000000 --- a/debian/osmocom-nitb.service +++ /dev/null @@ -1 +0,0 @@ -../openbsc/contrib/systemd/osmo-nitb.service \ No newline at end of file diff --git a/debian/rules b/debian/rules index ef085960d..e37a26268 100755 --- a/debian/rules +++ b/debian/rules @@ -10,7 +10,7 @@ VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g') export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: - dh $@ --sourcedirectory=openbsc --with autoreconf + dh $@ --sourcedirectory=openbsc --with=systemd --with autoreconf # This is needed for debian stable (squeeze) override_dh_autoreconf: @@ -25,7 +25,7 @@ override_dh_strip: override_dh_auto_configure: echo $(VERSION) > openbsc/.tarball-version - dh_auto_configure --sourcedirectory=openbsc -- --enable-nat --enable-osmo-bsc --enable-smpp + dh_auto_configure --sourcedirectory=openbsc -- --enable-nat --enable-osmo-bsc --enable-smpp --with-systemdsystemunitdir=/lib/systemd/system # Print test results in case of a failure override_dh_auto_test: diff --git a/openbsc/Makefile.am b/openbsc/Makefile.am index dc5392907..792dcf20d 100644 --- a/openbsc/Makefile.am +++ b/openbsc/Makefile.am @@ -13,6 +13,7 @@ SUBDIRS = \ include \ src \ tests \ + contrib \ $(NULL) pkgconfigdir = $(libdir)/pkgconfig @@ -21,6 +22,9 @@ pkgconfig_DATA = openbsc.pc BUILT_SOURCES = $(top_srcdir)/.version EXTRA_DIST = git-version-gen osmoappdesc.py .version +DISTCHECK_CONFIGURE_FLAGS = \ + --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) + @RELMAKE@ $(top_srcdir)/.version: diff --git a/openbsc/configure.ac b/openbsc/configure.ac index c3615d6a5..75dd5d33f 100644 --- a/openbsc/configure.ac +++ b/openbsc/configure.ac @@ -220,6 +220,22 @@ AC_MSG_CHECKING([whether to enable VTY/CTRL tests]) AC_MSG_RESULT([$enable_ext_tests]) AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes") +# 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_MSG_RESULT([CFLAGS="$CFLAGS"]) AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"]) @@ -262,4 +278,6 @@ AC_OUTPUT( tests/nanobts_omlattr/Makefile doc/Makefile doc/examples/Makefile + contrib/Makefile + contrib/systemd/Makefile Makefile) diff --git a/openbsc/contrib/Makefile.am b/openbsc/contrib/Makefile.am new file mode 100644 index 000000000..3439c97be --- /dev/null +++ b/openbsc/contrib/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = systemd diff --git a/openbsc/contrib/systemd/Makefile.am b/openbsc/contrib/systemd/Makefile.am new file mode 100644 index 000000000..69f973e5e --- /dev/null +++ b/openbsc/contrib/systemd/Makefile.am @@ -0,0 +1,14 @@ +if HAVE_SYSTEMD +SYSTEMD_SERVICES = osmo-nitb.service osmo-bsc-mgcp.service + +if BUILD_NAT +SYSTEMD_SERVICES += osmo-bsc-nat.service +endif + +if BUILD_BSC +SYSTEMD_SERVICES += osmo-bsc-sccplite.service +endif + +EXTRA_DIST = $(SYSTEMD_SERVICES) +systemdsystemunit_DATA = $(SYSTEMD_SERVICES) +endif # HAVE_SYSTEMD diff --git a/openbsc/debian/osmo-bsc-mgcp.service b/openbsc/debian/osmo-bsc-mgcp.service deleted file mode 120000 index eb73b7b70..000000000 --- a/openbsc/debian/osmo-bsc-mgcp.service +++ /dev/null @@ -1 +0,0 @@ -../contrib/systemd/osmo-bsc-mgcp.service \ No newline at end of file -- cgit v1.2.3