commit:     9bedfaa050827b35da830925cfd8a2e1469b3411
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 27 16:24:27 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Jun 27 16:25:56 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9bedfaa0

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

 net-analyzer/vnstat/files/vnstat.cron-r1   |   7 ++
 net-analyzer/vnstat/files/vnstatd.confd-r1 |  18 +++++
 net-analyzer/vnstat/files/vnstatd.initd-r2 |  29 +++++++
 net-analyzer/vnstat/files/vnstatd.systemd  |  11 +++
 net-analyzer/vnstat/files/vnstatd.tmpfile  |   1 +
 net-analyzer/vnstat/vnstat-1.17-r1.ebuild  | 123 +++++++++++++++++++++++++++++
 6 files changed, 189 insertions(+)

diff --git a/net-analyzer/vnstat/files/vnstat.cron-r1 
b/net-analyzer/vnstat/files/vnstat.cron-r1
new file mode 100644
index 00000000000..178133675c6
--- /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 00000000000..33edf3560ee
--- /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 00000000000..2b4a9336c2a
--- /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 00000000000..51b079c5a9f
--- /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 00000000000..36ecf225949
--- /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 00000000000..0c24c6dc601
--- /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
+}

Reply via email to