blob: 0c24c6dc60141c811ee7dff3d28d7382cc265542 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
}
|