diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2017-06-27 18:24:27 +0200 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2017-06-27 18:25:56 +0200 |
commit | 9bedfaa050827b35da830925cfd8a2e1469b3411 (patch) | |
tree | dbb1caaa1216febaeed131ade19488ff72c59159 /net-analyzer | |
parent | gnome-extra/cinnamon-desktop: Add missing accountservice dep (diff) | |
download | gentoo-9bedfaa050827b35da830925cfd8a2e1469b3411.tar.gz gentoo-9bedfaa050827b35da830925cfd8a2e1469b3411.tar.bz2 gentoo-9bedfaa050827b35da830925cfd8a2e1469b3411.zip |
net-analyzer/vnstat: Rev bump to improve runscript and to add systemd support (bug #522226)
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'net-analyzer')
-rw-r--r-- | net-analyzer/vnstat/files/vnstat.cron-r1 | 7 | ||||
-rw-r--r-- | net-analyzer/vnstat/files/vnstatd.confd-r1 | 18 | ||||
-rw-r--r-- | net-analyzer/vnstat/files/vnstatd.initd-r2 | 29 | ||||
-rw-r--r-- | net-analyzer/vnstat/files/vnstatd.systemd | 11 | ||||
-rw-r--r-- | net-analyzer/vnstat/files/vnstatd.tmpfile | 1 | ||||
-rw-r--r-- | net-analyzer/vnstat/vnstat-1.17-r1.ebuild | 123 |
6 files changed, 189 insertions, 0 deletions
diff --git a/net-analyzer/vnstat/files/vnstat.cron-r1 b/net-analyzer/vnstat/files/vnstat.cron-r1 new file mode 100644 index 000000000000..178133675c6f --- /dev/null +++ b/net-analyzer/vnstat/files/vnstat.cron-r1 @@ -0,0 +1,7 @@ +#!/bin/bash + +# run vnstat if installed and at least one database exists + +if [ -x /usr/bin/vnstat ] && [ `ls /var/lib/vnstat/ | wc -l` -ge 1 ] ; then + exec /usr/bin/vnstat -u +fi diff --git a/net-analyzer/vnstat/files/vnstatd.confd-r1 b/net-analyzer/vnstat/files/vnstatd.confd-r1 new file mode 100644 index 000000000000..33edf3560ee8 --- /dev/null +++ b/net-analyzer/vnstat/files/vnstatd.confd-r1 @@ -0,0 +1,18 @@ +# /etc/conf.d/vnstatd: config file for /etc/init.d/vnstatd + +# Configuration file +VNSTATD_CONFIGFILE="/etc/vnstat.conf" + +# PID file +VNSTATD_PIDFILE="/run/vnstat/vnstatd.pid" + +# Options to vnstatd +# See vnstatd(8) for more details +# Notes: +# * Do not specify another PIDFILE but use the variable above to change the location +# * Do not specify another CONFIGFILE but use the variable above to change the location +VNSTATD_OPTS="" + +# Wait x milliseconds after starting and check that daemon is still running. +# See start-stop-daemon(8) for more details +SSD_STARTWAIT=500 diff --git a/net-analyzer/vnstat/files/vnstatd.initd-r2 b/net-analyzer/vnstat/files/vnstatd.initd-r2 new file mode 100644 index 000000000000..2b4a9336c2a5 --- /dev/null +++ b/net-analyzer/vnstat/files/vnstatd.initd-r2 @@ -0,0 +1,29 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +VNSTATD_CONFIGFILE=${VNSTATD_CONFIGFILE:-"/etc/vnstat.conf"} +VNSTATD_PIDFILE=${VNSTATD_PIDFILE:-"/run/vnstat/vnstatd.pid"} + +pidfile="${VNSTATD_PIDFILE}" +command="/usr/bin/vnstatd" +command_args="${VNSTATD_OPTS} --daemon --config \"${VNSTATD_CONFIGFILE}\" --pidfile \"${pidfile}\"" +start_stop_daemon_args="--wait ${SSD_STARTWAIT:-500}" +name="vnStat daemon" + +description="vnstatd updates vnStat databases." +description_reload="Reload ${name}'s configuration" + +required_files="${VNSTATD_CONFIGFILE}" + +start_pre() { + checkpath --directory --mode 0775 --owner vnstat:vnstat $(dirname "${pidfile}") +} + +reload() { + ebegin "Reloading ${name} configuration" + start-stop-daemon --signal HUP --pidfile "${pidfile}" + eend $? +} diff --git a/net-analyzer/vnstat/files/vnstatd.systemd b/net-analyzer/vnstat/files/vnstatd.systemd new file mode 100644 index 000000000000..51b079c5a9fb --- /dev/null +++ b/net-analyzer/vnstat/files/vnstatd.systemd @@ -0,0 +1,11 @@ +[Unit] +Description=vnStat network traffic monitor +Documentation=man:vnstatd(1) man:vnstat(1) man:vnstat.conf(5) +After=network-online.target + +[Service] +ExecStart=/usr/bin/vnstatd --nodaemon +ExecReload=/bin/kill -HUP $MAINPID + +[Install] +WantedBy=multi-user.target diff --git a/net-analyzer/vnstat/files/vnstatd.tmpfile b/net-analyzer/vnstat/files/vnstatd.tmpfile new file mode 100644 index 000000000000..36ecf2259495 --- /dev/null +++ b/net-analyzer/vnstat/files/vnstatd.tmpfile @@ -0,0 +1 @@ +d /run/vnstat 0775 vnstat vnstat - diff --git a/net-analyzer/vnstat/vnstat-1.17-r1.ebuild b/net-analyzer/vnstat/vnstat-1.17-r1.ebuild new file mode 100644 index 000000000000..0c24c6dc6014 --- /dev/null +++ b/net-analyzer/vnstat/vnstat-1.17-r1.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +inherit systemd toolchain-funcs user versionator + +DESCRIPTION="Console-based network traffic monitor that keeps statistics of network usage" +HOMEPAGE="http://humdi.net/vnstat/" +SRC_URI="http://humdi.net/vnstat/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="gd selinux test" + +COMMON_DEPEND=" + gd? ( media-libs/gd[png] ) +" +DEPEND=" + ${COMMON_DEPEND} + test? ( dev-libs/check ) +" +RDEPEND=" + ${COMMON_DEPEND} + selinux? ( sec-policy/selinux-vnstatd ) +" + +pkg_setup() { + enewgroup vnstat + enewuser vnstat -1 -1 /var/lib/vnstat vnstat +} + +src_prepare() { + default + + tc-export CC + + sed -i \ + -e 's|^\(MaxBWethnone.*\)$|#\1|' \ + -e 's|^Daemon\(.*\) ""$|Daemon\1 "vnstat"|' \ + -e 's|vnstat[.]log|vnstatd.log|' \ + -e 's|vnstat[.]pid|vnstatd.pid|' \ + -e 's|/var/run|/run|' \ + cfg/${PN}.conf || die + sed -i \ + -e '/PIDFILE/s|/var/run|/run|' \ + src/common.h || die +} + +src_compile() { + emake ${PN} ${PN}d $(usex gd ${PN}i '') +} + +src_install() { + use gd && dobin vnstati + dobin vnstat vnstatd + + exeinto /usr/share/${PN} + newexe "${FILESDIR}"/vnstat.cron-r1 vnstat.cron + + insinto /etc + doins cfg/vnstat.conf + fowners root:vnstat /etc/vnstat.conf + + keepdir /var/lib/vnstat + fowners vnstat:vnstat /var/lib/vnstat + + newconfd "${FILESDIR}"/vnstatd.confd-r1 vnstatd + newinitd "${FILESDIR}"/vnstatd.initd-r2 vnstatd + + systemd_newunit "${FILESDIR}"/vnstatd.systemd vnstatd.service + systemd_newtmpfilesd "${FILESDIR}"/vnstatd.tmpfile vnstatd.conf + + use gd && doman man/vnstati.1 + doman man/vnstat.1 man/vnstatd.1 + + newdoc INSTALL README.setup + dodoc CHANGES README UPGRADE FAQ examples/vnstat.cgi +} + +pkg_postinst() { + local _v + for _v in ${REPLACING_VERSIONS}; do + if ! version_is_at_least 1.17-r1 ${_v}; then + # This is an upgrade + elog "" + elog "Beginning with ${PN}-1.17-r1, we no longer install and use the cron job" + elog "per default to update vnStat databases because you will lose some traffic" + elog "if your interface transfers more than ~4GB in the time between two cron" + elog "runs". + elog "" + elog "Please make sure that the vnstatd service is enabled if you want to" + elog "continue monitoring your traffic." + + # Show this elog only once + break + fi + done + + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # This is a new installation + + elog + elog "Repeat the following command for every interface you" + elog "wish to monitor (replace eth0):" + elog " vnstat -u -i eth0" + elog "and set correct permissions after that, e.g." + elog " chown -R vnstat:vnstat /var/lib/vnstat" + elog + elog "It is highly recommended to use the included vnstatd to update your" + elog "vnStat databases." + elog + elog "If you want to use the old cron way to update your vnStat databases," + elog "you have to install the cron job manually:" + elog "" + elog " cp /usr/share/${PN}/vnstat.cron /etc/cron.hourly/vnstat" + elog "" + elog "Note: if an interface transfers more than ~4GB in" + elog "the time between cron runs, you may miss traffic." + elog "That's why using vnstatd instead of the cronjob is" + elog "the recommended way to update your vnStat databases." + fi +} |