[mrtg/f16] add systemd support
Tom Callaway
spot at fedoraproject.org
Thu Sep 8 18:56:23 UTC 2011
commit 0850604d3e4e76d3fc4cecc087e0cd846875c62e
Author: Tom "spot" Callaway <tcallawa at redhat.com>
Date: Thu Sep 8 14:56:10 2011 -0400
add systemd support
mrtg.service | 36 ++++++++++++++++++++++++++++++++++++
mrtg.spec | 53 ++++++++++++++++++++++++++++++++++-------------------
mrtg.timer | 20 ++++++++++++++++++++
3 files changed, 90 insertions(+), 19 deletions(-)
---
diff --git a/mrtg.service b/mrtg.service
new file mode 100644
index 0000000..e480970
--- /dev/null
+++ b/mrtg.service
@@ -0,0 +1,36 @@
+# To customize, copy this file to /etc/systemd/system and edit there
+#
+# This unit facilitates starting of MRTG. There are 2 options of
+# how to run MRTG:
+# - as a daemon (preferred); in this case please put
+# RunAsDaemon: yes in mrtg.conf (or use --daemon switch)
+# - periodically - please see and enable mrtg.timer
+# Periodic settings need Type=oneshot set here
+#
+# Other recommended settings in mrtg.cfg for daemon mode:
+# NoDetach: yes
+# If you set this, change below Type=simple
+#
+# Please disable /etc/crond.d/mrtg job when using this unit!
+#
+# do not enable both mrtg-as-a-daemon and timer at the same time
+
+[Unit]
+Description=Multi-router Traffic Grapher
+After=syslog.target
+
+[Service]
+Environment=LANG=C
+ExecStart=/usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok
+# Type= settings cheatsheet:
+# - RunAsDaemon: yes; NoDetach: yes :
+#Type=simple
+# - RunAsDaemon: yes; NoDetach: no :
+#Type=forking
+# - RunAsDaemon: no; (periodic invocation) :
+#Type=oneshot
+Type=simple
+StandardOutput=syslog
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mrtg.spec b/mrtg.spec
index ff9bd5e..9bd5d06 100644
--- a/mrtg.spec
+++ b/mrtg.spec
@@ -6,26 +6,27 @@
Summary: Multi Router Traffic Grapher
Name: mrtg
Version: 2.17.2
-Release: 2%{?dist}
+Release: 4%{?dist}
URL: http://oss.oetiker.ch/mrtg/
Source0: http://oss.oetiker.ch/mrtg/pub/mrtg-%{version}.tar.gz
Source1: http://oss.oetiker.ch/mrtg/pub/mrtg-%{version}.tar.gz.md5
Source2: mrtg.cfg
Source3: filter-requires-mrtg.sh
-Source4: mrtg.crond.in
Source5: mrtg-httpd.conf
Source6: filter-provides-mrtg.sh
Source7: mrtg.tmpfiles
+Source8: mrtg.service
+Source9: mrtg.timer
Patch0: mrtg-2.15.0-lib64.patch
License: GPLv2+
Group: Applications/Internet
-Requires: vixie-cron
-Requires(post): /sbin/service
-Requires(postun): /sbin/service
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
Requires: perl-Socket6 perl-IO-Socket-INET6
Requires: gd
-Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gd-devel, libpng-devel
+BuildRequires: systemd-units
%global __find_requires %{SOURCE3}
%global __find_provides %{SOURCE6}
@@ -59,7 +60,6 @@ rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/mrtg
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/cron.d
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/mrtg
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lock/mrtg
mkdir -p $RPM_BUILD_ROOT%{contentdir}
@@ -69,10 +69,6 @@ install -m 644 images/* $RPM_BUILD_ROOT%{contentdir}/
sed 's, at CONTENTDIR@,%{contentdir},g; s, at LIBDIR@,%{_localstatedir}/lib/mrtg,g' \
%{SOURCE2} > $RPM_BUILD_ROOT%{_sysconfdir}/mrtg/mrtg.cfg
chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/mrtg/mrtg.cfg
-sed -e 's, at bindir@,%{_bindir},g; s, at sysconfdir@,%{_sysconfdir},g;' \
- -e 's, at localstatedir@,%{_localstatedir},g' %{SOURCE4} \
- > $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/mrtg
-chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/mrtg
install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/mrtg.conf
@@ -80,6 +76,11 @@ install -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/mrtg.conf
install -p -D -m 644 %{SOURCE7} $RPM_BUILD_ROOT/%{_sysconfdir}/tmpfiles.d/mrtg.conf
%endif
+# install systemd files
+mkdir -p $RPM_BUILD_ROOT/lib/systemd/system
+install -p -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_unitdir}/mrtg.service
+install -p -m 644 %{SOURCE9} $RPM_BUILD_ROOT%{_unitdir}/mrtg.timer
+
# Add mrtg-traffic-sum here when upstream decides to install it
for i in mrtg cfgmaker indexmaker mrtg-traffic-sum; do
sed -i 's;@@lib@@;%{_lib};g' "$RPM_BUILD_ROOT"%{_bindir}/"$i"
@@ -87,28 +88,32 @@ done
sed -i 's;@@lib@@;%{_lib};g' "$RPM_BUILD_ROOT"%{_mandir}/man1/*.1
-# Tell crond to reload its configuration.
%post
install -d -m 0755 -o root -g root /var/lock/mrtg
-/sbin/service crond condrestart 2>&1 > /dev/null || :
+if [ $1 -eq 1 ] ; then
+ # Initial installation
+ /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
%preun
if [ $1 -eq 0 ]; then
rm -rf /var/lock/mrtg
+ # Package removal, not upgrade
+ /bin/systemctl --no-reload disable mrtg.service > /dev/null 2>&1 || :
+ /bin/systemctl stop mrtg.service > /dev/null 2>&1 || :
fi
%postun
-/sbin/service crond condrestart 2>&1 > /dev/null || :
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /bin/systemctl try-restart mrtg.service >/dev/null 2>&1 || :
+fi
%files
-%defattr(-,root,root,-)
%doc contrib CHANGES COPYING COPYRIGHT README THANKS
%dir %{_sysconfdir}/mrtg
%config(noreplace) %{_sysconfdir}/mrtg/mrtg.cfg
-%config(noreplace) %{_sysconfdir}/cron.d/mrtg
%config(noreplace) %{_sysconfdir}/httpd/conf.d/mrtg.conf
%{contentdir}
%{_bindir}/*
@@ -122,8 +127,18 @@ rm -rf $RPM_BUILD_ROOT
%config(noreplace) %{_sysconfdir}/tmpfiles.d/mrtg.conf
%endif
%ghost /var/lock/mrtg
+%{_unitdir}/mrtg.service
+%{_unitdir}/mrtg.timer
%changelog
+* Thu Sep 8 2011 Tom Callaway <spot at fedoraproject.org> - 2.17.2-4
+- add missing systemd scriptlets
+- drop cron.d config (systemd handles it now)
+
+* Wed Aug 24 2011 Vitezslav Crhonek <vcrhonek at redhat.com> - 2.17.2-3
+- Ship systemd files
+ Resolves: #696147
+
* Thu Mar 24 2011 Vitezslav Crhonek <vcrhonek at redhat.com> - 2.17.2-2
- Use %%ghost for /var/lock/mrtg
Resolves: #656629
diff --git a/mrtg.timer b/mrtg.timer
new file mode 100644
index 0000000..814627c
--- /dev/null
+++ b/mrtg.timer
@@ -0,0 +1,20 @@
+# To customize, copy this file to /etc/systemd/system and edit there
+#
+# You can use this unit to periodically run mrtg.service.
+# Only enable if you do not want to run mrtg as a daemon.
+# Starting mrtg.timer while mrtg.service is running as a daemon has no point.
+#
+# Please disable /etc/crond.d/mrtg job when using this unit!
+#
+# Default is to run mrtg.service every 5 minutes, starting
+# 1 minute after system boot.
+
+[Unit]
+Description=periodic invocation of MRTG
+
+[Timer]
+OnBootSec=1m
+OnUnitActiveSec=5m
+
+[Install]
+WantedBy=multi-user.target
More information about the scm-commits
mailing list