diff --git a/Makefile.am b/Makefile.am index 10ff2d275..b573aa876 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/configure.ac b/configure.ac index aad55db98..38e6713c8 100644 --- a/configure.ac +++ b/configure.ac @@ -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) diff --git a/contrib/Makefile.am b/contrib/Makefile.am new file mode 100644 index 000000000..3439c97be --- /dev/null +++ b/contrib/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = systemd diff --git a/contrib/sysmobts.service b/contrib/sysmobts.service deleted file mode 100644 index 64e012714..000000000 --- a/contrib/sysmobts.service +++ /dev/null @@ -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 diff --git a/contrib/systemd/Makefile.am b/contrib/systemd/Makefile.am new file mode 100644 index 000000000..16463087f --- /dev/null +++ b/contrib/systemd/Makefile.am @@ -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 diff --git a/contrib/lc15bts-mgr.service b/contrib/systemd/lc15bts-mgr.service similarity index 100% rename from contrib/lc15bts-mgr.service rename to contrib/systemd/lc15bts-mgr.service diff --git a/contrib/osmo-bts-lc15.service b/contrib/systemd/osmo-bts-lc15.service similarity index 100% rename from contrib/osmo-bts-lc15.service rename to contrib/systemd/osmo-bts-lc15.service diff --git a/contrib/osmo-bts-sysmo.service b/contrib/systemd/osmo-bts-sysmo.service similarity index 100% rename from contrib/osmo-bts-sysmo.service rename to contrib/systemd/osmo-bts-sysmo.service diff --git a/contrib/sysmobts-mgr.service b/contrib/systemd/sysmobts-mgr.service similarity index 100% rename from contrib/sysmobts-mgr.service rename to contrib/systemd/sysmobts-mgr.service diff --git a/debian/osmo-bts-trx.install b/debian/osmo-bts-trx.install index e821cb462..2343d254a 100644 --- a/debian/osmo-bts-trx.install +++ b/debian/osmo-bts-trx.install @@ -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 diff --git a/debian/osmo-bts-trx.service b/debian/osmo-bts-trx.service deleted file mode 120000 index 1abb0cea6..000000000 --- a/debian/osmo-bts-trx.service +++ /dev/null @@ -1 +0,0 @@ -../contrib/systemd/osmo-bts-trx.service \ No newline at end of file diff --git a/debian/osmo-bts-virtual.install b/debian/osmo-bts-virtual.install index 3815d7c00..0e6ca1b2b 100644 --- a/debian/osmo-bts-virtual.install +++ b/debian/osmo-bts-virtual.install @@ -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 diff --git a/debian/osmo-bts-virtual.service b/debian/osmo-bts-virtual.service deleted file mode 120000 index 9a660b441..000000000 --- a/debian/osmo-bts-virtual.service +++ /dev/null @@ -1 +0,0 @@ -../contrib/systemd/osmo-bts-virtual.service \ No newline at end of file diff --git a/debian/rules b/debian/rules index dcc8a11aa..27de11b82 100755 --- a/debian/rules +++ b/debian/rules @@ -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