Install systemd services with autotools

Change-Id: I87299134696bbfc6721b1226d4de6c73854aa846
This commit is contained in:
Pau Espin 2018-09-10 13:18:13 +02:00
parent 17577b7c00
commit 65d3cc7753
14 changed files with 45 additions and 25 deletions

View File

@ -1,11 +1,11 @@
AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
SUBDIRS = include src tests doc
SUBDIRS = include src tests doc contrib
# package the contrib and doc
EXTRA_DIST = \
contrib/dump_docs.py contrib/screenrc-l1fwd contrib/osmo-bts-sysmo.service \
contrib/dump_docs.py contrib/screenrc-l1fwd \
contrib/l1fwd.init contrib/screenrc-sysmobts contrib/respawn.sh \
doc/examples/sysmo/osmo-bts.cfg \
doc/examples/sysmo/sysmobts-mgr.cfg \
@ -14,6 +14,9 @@ EXTRA_DIST = \
git-version-gen .version \
README.md
DISTCHECK_CONFIGURE_FLAGS = \
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
@RELMAKE@
BUILT_SOURCES = $(top_srcdir)/.version

View File

@ -279,6 +279,22 @@ if test "$enable_litecell15" = "yes"; then
CPPFLAGS=$oldCPPFLAGS
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_MSG_RESULT([CFLAGS="$CFLAGS"])
AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
@ -307,4 +323,6 @@ AC_OUTPUT(
tests/meas/Makefile
doc/Makefile
doc/examples/Makefile
contrib/Makefile
contrib/systemd/Makefile
Makefile)

1
contrib/Makefile.am Normal file
View File

@ -0,0 +1 @@
SUBDIRS = systemd

View File

@ -1,20 +0,0 @@
[Unit]
Description=sysmocom sysmoBTS
[Service]
Type=simple
ExecStartPre=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
ExecStart=/usr/bin/osmo-bts-sysmo -s -c /etc/osmocom/osmo-bts.cfg -M
ExecStopPost=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
ExecStopPost=/bin/sh -c 'cat /lib/firmware/sysmobts-v?.bit > /dev/fpgadl_par0 ; sleep 3s; cat /lib/firmware/sysmobts-v?.out > /dev/dspdl_dm644x_0; sleep 1s'
Restart=always
RestartSec=2
RestartPreventExitStatus=1
# The msg queues must be read fast enough
CPUSchedulingPolicy=rr
CPUSchedulingPriority=1
[Install]
WantedBy=multi-user.target
Alias=osmo-bts-sysmo.service

View File

@ -0,0 +1,18 @@
if HAVE_SYSTEMD
SYSTEMD_SERVICES = osmo-bts-virtual.service
if ENABLE_SYSMOBTS
SYSTEMD_SERVICES += osmo-bts-sysmo.service sysmobts-mgr.service
endif
if ENABLE_TRX
SYSTEMD_SERVICES += osmo-bts-trx.service
endif
if ENABLE_LC15BTS
SYSTEMD_SERVICES += osmo-bts-lc15.service lc15bts-mgr.service
endif
EXTRA_DIST = $(SYSTEMD_SERVICES)
systemdsystemunit_DATA = $(SYSTEMD_SERVICES)
endif # HAVE_SYSTEMD

View File

@ -1,3 +1,4 @@
lib/systemd/system/osmo-bts-trx.service
usr/bin/osmo-bts-trx
usr/share/doc/osmo-bts/examples/osmo-bts-trx/osmo-bts.cfg
usr/share/doc/osmo-bts/examples/osmo-bts-trx/osmo-bts-trx-calypso.cfg

View File

@ -1 +0,0 @@
../contrib/systemd/osmo-bts-trx.service

View File

@ -1,3 +1,4 @@
lib/systemd/system/osmo-bts-virtual.service
usr/bin/osmo-bts-virtual
usr/bin/osmo-bts-omldummy
usr/share/doc/osmo-bts/examples/osmo-bts-virtual/osmobts-virtual.cfg

View File

@ -1 +0,0 @@
../contrib/systemd/osmo-bts-virtual.service

2
debian/rules vendored
View File

@ -16,7 +16,7 @@ override_dh_strip:
dh_strip --package=osmo-bts-trx --dbg-package=osmo-bts-trx-dbg
override_dh_auto_configure:
dh_auto_configure -- --enable-trx
dh_auto_configure -- --enable-trx --with-systemdsystemunitdir=/lib/systemd/system
override_dh_clean:
dh_clean