vnstat: import from packages, add myself as maintainer
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
This commit is contained in:
parent
56fd1eaa78
commit
177bfef1c7
|
@ -0,0 +1,109 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2014 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=vnstat
|
||||||
|
PKG_VERSION:=1.11
|
||||||
|
PKG_RELEASE:=4
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=http://humdi.net/vnstat
|
||||||
|
PKG_MD5SUM:=a5a113f9176cd61fb954f2ba297f5fdb
|
||||||
|
PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
|
||||||
|
|
||||||
|
PKG_INSTALL:=1
|
||||||
|
|
||||||
|
PKG_BUILD_DEPENDS:=libgd
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/vnstat/Default
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
URL:=http://humdi.net/vnstat/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstat
|
||||||
|
$(call Package/vnstat/Default)
|
||||||
|
TITLE:=Console-based network traffic monitor
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstat/description
|
||||||
|
vnStat is a network traffic monitor for Linux that keeps a log of daily
|
||||||
|
network traffic for the selected interface(s). vnStat isn't a packet
|
||||||
|
sniffer. The traffic information is analyzed from the /proc -filesystem,
|
||||||
|
so vnStat can be used without root permissions.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstati
|
||||||
|
$(call Package/vnstat/Default)
|
||||||
|
DEPENDS+=vnstat +libgd
|
||||||
|
TITLE:=PNG image output support for vnStat
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstati/description
|
||||||
|
The purpose of vnstati is to provide image output support for statistics
|
||||||
|
collected using vnstat(1). However, the image file format is limited to
|
||||||
|
png. All basic outputs of vnStat are supported excluding live traffic
|
||||||
|
features. The image can be outputted either to a file or to standard
|
||||||
|
output.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstat/conffiles
|
||||||
|
/etc/vnstat.conf
|
||||||
|
/etc/config/vnstat
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile/vnstat
|
||||||
|
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
CFLAGS="$(TARGET_CFLAGS)"
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile/vnstati
|
||||||
|
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
|
||||||
|
LDFLAGS="$(TARGET_LDFLAGS) -Wl,-rpath-link,$(STAGING_DIR)/usr/lib" \
|
||||||
|
all
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/Compile
|
||||||
|
$(call Build/Compile/vnstat)
|
||||||
|
$(call Build/Compile/vnstati)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstat/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/vnstat $(1)/usr/bin/
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/vnstatd $(1)/usr/sbin/
|
||||||
|
$(INSTALL_DIR) $(1)/etc
|
||||||
|
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/vnstat.conf $(1)/etc/
|
||||||
|
$(INSTALL_DIR) $(1)/etc/config
|
||||||
|
$(INSTALL_CONF) ./files/vnstat.config $(1)/etc/config/vnstat
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) ./files/vnstat.init $(1)/etc/init.d/vnstat
|
||||||
|
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||||
|
$(INSTALL_BIN) ./files/vnstat.defaults $(1)/etc/uci-defaults/vnstat
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstati/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/vnstati $(1)/usr/bin/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/vnstat/postinst
|
||||||
|
#!/bin/sh
|
||||||
|
[ -n "$${IPKG_INSTROOT}" ] || (. /etc/uci-defaults/vnstat) && rm -f /etc/uci-defaults/vnstat
|
||||||
|
exit 0
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,vnstat))
|
||||||
|
$(eval $(call BuildPackage,vnstati))
|
|
@ -0,0 +1,5 @@
|
||||||
|
config vnstat
|
||||||
|
list interface br-lan
|
||||||
|
# list interface eth0.1
|
||||||
|
# option remote http://example.org/vnstat/
|
||||||
|
# option symlink /www/vnstat
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
wan="$(uci -P/var/state get network.wan.ifname)"
|
||||||
|
|
||||||
|
if [ -n "$wan" ]; then
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
del_list vnstat.@vnstat[-1].interface=$wan
|
||||||
|
add_list vnstat.@vnstat[-1].interface=$wan
|
||||||
|
commit vnstat
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,82 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# Copyright (C) 2008-2011 OpenWrt.org
|
||||||
|
|
||||||
|
START=99
|
||||||
|
|
||||||
|
vnstat_option() {
|
||||||
|
sed -ne "s/^[[:space:]]*$1[[:space:]]*['\"]\([^'\"]*\)['\"].*/\1/p" \
|
||||||
|
/etc/vnstat.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
local lib="$(vnstat_option DatabaseDir)"
|
||||||
|
local pid="$(vnstat_option PidFile)"
|
||||||
|
|
||||||
|
[ -n "$lib" ] || {
|
||||||
|
echo "Error: No DatabaseDir set in vnstat.conf" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -n "$pid" ] || {
|
||||||
|
echo "Error: No PidFile set in vnstat.conf" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
mkdir -p "$lib"
|
||||||
|
|
||||||
|
init_ifaces() {
|
||||||
|
local cfg="$1"
|
||||||
|
local url lnk
|
||||||
|
|
||||||
|
init_iface() {
|
||||||
|
local ifn="$1"
|
||||||
|
|
||||||
|
[ -n "$url" ] && {
|
||||||
|
local try=0
|
||||||
|
local max=3
|
||||||
|
local hostname="$(cat /proc/sys/kernel/hostname)"
|
||||||
|
|
||||||
|
while [ $((++try)) -le $max ]; do
|
||||||
|
if wget -q -O "$lib/$ifn" "$url/${hostname}_$ifn" 2>/dev/null && [ -e "$lib/$ifn" ]; then
|
||||||
|
logger -t "vnstat" "Downloaded backup for database $ifn"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
logger -t "vnstat" "Download try $try/$max for database $ifn failed"
|
||||||
|
sleep 30
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
/usr/bin/vnstat -u -i "$ifn" >/dev/null
|
||||||
|
|
||||||
|
[ -n "$lnk" ] && {
|
||||||
|
mkdir -p "$lnk"
|
||||||
|
[ -L "$lnk/$ifn" ] || ln -s "$lib/$ifn" "$lnk/$ifn"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
config_get url "$cfg" remote
|
||||||
|
config_get lnk "$cfg" symlink
|
||||||
|
config_list_foreach "$cfg" interface init_iface
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load vnstat
|
||||||
|
config_foreach init_ifaces vnstat
|
||||||
|
|
||||||
|
SERVICE_PID_FILE="${pid}"
|
||||||
|
service_start /usr/sbin/vnstatd -d
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
local pid="$(vnstat_option PidFile)"
|
||||||
|
|
||||||
|
[ -n "$pid" ] || {
|
||||||
|
echo "Error: No PidFile set in vnstat.conf" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
SERVICE_PID_FILE="${pid}"
|
||||||
|
service_stop /usr/sbin/vnstatd
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
--- a/cfg/vnstat.conf
|
||||||
|
+++ b/cfg/vnstat.conf
|
||||||
|
@@ -72,13 +72,13 @@ TrafficlessDays 1
|
||||||
|
##
|
||||||
|
|
||||||
|
# how often (in seconds) interface data is updated
|
||||||
|
-UpdateInterval 30
|
||||||
|
+UpdateInterval 60
|
||||||
|
|
||||||
|
# how often (in seconds) interface status changes are checked
|
||||||
|
-PollInterval 5
|
||||||
|
+PollInterval 30
|
||||||
|
|
||||||
|
# how often (in minutes) data is saved to file
|
||||||
|
-SaveInterval 5
|
||||||
|
+SaveInterval 30
|
||||||
|
|
||||||
|
# how often (in minutes) data is saved when all interface are offline
|
||||||
|
OfflineSaveInterval 30
|
|
@ -0,0 +1,35 @@
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -54,11 +54,11 @@ install:
|
||||||
|
|
||||||
|
# install everything else
|
||||||
|
install -d -m 755 $(BIN) $(SBIN) $(MAN)/man1 $(MAN)/man5 $(DESTDIR)/var/lib/vnstat
|
||||||
|
- install -s -m 755 src/vnstat $(BIN)
|
||||||
|
- install -s -m 755 src/vnstatd $(SBIN)
|
||||||
|
+ install -m 755 src/vnstat $(BIN)
|
||||||
|
+ install -m 755 src/vnstatd $(SBIN)
|
||||||
|
@if [ -f "src/vnstati" ]; \
|
||||||
|
- then echo install -s -m 755 src/vnstati $(BIN); \
|
||||||
|
- install -s -m 755 src/vnstati $(BIN); \
|
||||||
|
+ then echo install -m 755 src/vnstati $(BIN); \
|
||||||
|
+ install -m 755 src/vnstati $(BIN); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update man pages, gzip it if previous version was done so
|
||||||
|
@@ -127,12 +127,12 @@ bsdinstall:
|
||||||
|
|
||||||
|
# install binaries
|
||||||
|
install -d -m 755 $(DESTDIR)/var/db/vnstat
|
||||||
|
- install -s -m 755 src/vnstat $(BIN_BSD)
|
||||||
|
- install -s -m 755 src/vnstatd $(SBIN_BSD)
|
||||||
|
+ install -m 755 src/vnstat $(BIN_BSD)
|
||||||
|
+ install -m 755 src/vnstatd $(SBIN_BSD)
|
||||||
|
|
||||||
|
@if [ -f "src/vnstati" ]; \
|
||||||
|
- then echo install -s -m 755 src/vnstati $(BIN_BSD); \
|
||||||
|
- install -s -m 755 src/vnstati $(BIN_BSD); \
|
||||||
|
+ then echo install -m 755 src/vnstati $(BIN_BSD); \
|
||||||
|
+ install -m 755 src/vnstati $(BIN_BSD); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install default config if such doesn't exist
|
|
@ -0,0 +1,15 @@
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -22,12 +22,6 @@ clean:
|
||||||
|
install:
|
||||||
|
@echo "Installing vnStat..."
|
||||||
|
|
||||||
|
-# check that system is really Linux
|
||||||
|
- @if [ `uname` != "Linux" ]; \
|
||||||
|
- then echo "This isn't a Linux system. Maybe 'make bsdinstall' is what you need?"; \
|
||||||
|
- false; \
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
# check that there's something to install
|
||||||
|
@if [ ! -f "src/vnstat" ] || [ ! -f "src/vnstatd" ]; \
|
||||||
|
then echo "Nothing to install, run make first."; \
|
|
@ -0,0 +1,21 @@
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -43,7 +43,8 @@ install:
|
||||||
|
# install default config if such doesn't exist
|
||||||
|
@if [ ! -f "$(DESTDIR)/etc/vnstat.conf" ]; \
|
||||||
|
then echo "Installing config to $(DESTDIR)/etc/vnstat.conf"; \
|
||||||
|
- install -D -m 644 cfg/vnstat.conf $(DESTDIR)/etc/vnstat.conf; \
|
||||||
|
+ install -d -m 755 $(DESTDIR)/etc; \
|
||||||
|
+ install -m 644 cfg/vnstat.conf $(DESTDIR)/etc/vnstat.conf; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# install everything else
|
||||||
|
@@ -63,7 +64,7 @@ install:
|
||||||
|
then echo install -m 644 man/vnstati.1 $(MAN)/man1; \
|
||||||
|
install -m 644 man/vnstati.1 $(MAN)/man1; \
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
+
|
||||||
|
@if [ -f $(MAN)/man1/vnstat.1.gz ]; \
|
||||||
|
then gzip -f9 $(MAN)/man1/vnstat.1; \
|
||||||
|
gzip -f9 $(MAN)/man1/vnstatd.1; \
|
Loading…
Reference in New Issue