summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-analyzer/vnstat/files/vnstat.cron-r17
-rw-r--r--net-analyzer/vnstat/files/vnstatd.confd-r118
-rw-r--r--net-analyzer/vnstat/files/vnstatd.initd-r229
-rw-r--r--net-analyzer/vnstat/files/vnstatd.systemd11
-rw-r--r--net-analyzer/vnstat/files/vnstatd.tmpfile1
-rw-r--r--net-analyzer/vnstat/vnstat-1.17-r1.ebuild123
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
+}