# SPEC file for vnStat package
Name: vnstat
Version: 2.2
Release: alt1
Summary: console-based network traffic monitor
Summary(ru_RU.UTF-8): консольная утилита для подсчёта трафика
License: %gpl2only
Group: Monitoring
URL: http://humdi.net/vnstat/
Packager: Nikolay A. Fetisov <naf@altlinux.ru>
Source0: %name-%version.tar
Patch0: %name-%version-%release.patch
Source1: %name.control
Source2: %{name}d.init
Source3: %name.cron
Source4: %{name}d.tmpfiles
Source5: %{name}-update.sh
BuildRequires(pre): rpm-build-licenses
# Automatically added by buildreq on Thu May 09 2019
# optimized out: fontconfig gem-power-assert glibc-kernheaders-generic glibc-kernheaders-x86 gnu-config pkg-config python-base python-modules python3 python3-base python3-dev ruby ruby-coderay ruby-method_source ruby-pry ruby-rake ruby-rdoc ruby-stdlibs sh4 tzdata
BuildRequires: libgd3-devel libsqlite3-devel
%define cron_freq 5
%define cron_file %_sysconfdir/cron.d/%name
%define data_dir %_localstatedir/%name
%define piddir /var/run/%{name}d
%description
vnStat is a console-based network traffic monitor 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. vnStat runs under unprivileged user account and does not
need any system's tuning, but can account only a total interface's
traffic with some issues on accuracy.
%description -l ru_RU.UTF-8
vnStat собирает и выводит статистику потребления трафика.
Для получения информации он использует файловую систему /proc.
Достоинством такого подхода является возможность собирать информацию
с привилегиями рядового пользователя. С другой стороны, при этом не
учитываются такие подробности, как IP-адреса клиентов, типы соединений
и т.д. Отчёты содержат только общее количество принятых и переданных
байт, упорядоченное по периодам времени и сетевым интерфейсам.
Для накопления статистики vnStat вызывает себя через Cron каждые
%cron_freq минут; для сохранения статистики используется база несложного
собственного формата. При запуске из консоли vnStat читает её и выводит
отчёт по заданным критериям.
%package server
Summary: optional server for vnstat network traffic monitor
#Summary(ru_RU.UTF-8):
Group: Monitoring
Requires: %name = %version-%release
Provides: %name-server = %version-%release
%description server
vnStat is a console-based network traffic monitor that keeps a log
of daily network traffic for the selected interface(s).
This package contains optional standalone server for vnstat network
traffice monitor.
%package vnstati
Summary: optional png image output support for vnstat
Group: Monitoring
Requires: %name = %version-%release
Provides: %name-vnstati = %version-%release
%description vnstati
vnStat is a console-based network traffic monitor that keeps a log
of daily network traffic for the selected interface(s).
This package contains optional vnstati utility to provide PNG image
output support for statistics collected using vnstat.
%prep
%setup -q
%patch0 -p1
mv -f -- COPYING COPYING.orig
ln -s -- $(relative %_licensedir/GPL-2 %_docdir/%name/COPYING) COPYING
chmod a-x examples/vnstat.cgi
%build
%configure
%make_build
%install
%makeinstall
/bin/install -pD %SOURCE1 %buildroot%_controldir/%name
/bin/install -pD -m 0664 %SOURCE3 %buildroot%cron_file
/bin/sed -e 's#%%cron_freq#%{cron_freq}#' -i %buildroot%cron_file
/bin/install -pD %SOURCE4 %buildroot%_tmpfilesdir/%{name}d.conf
/bin/install -pD %SOURCE5 %buildroot%_sbindir/%{name}-update
install -pD -m 0755 -- %SOURCE2 %buildroot/%_initdir/%{name}d
install -pD -m 0755 examples/systemd/vnstat.service %buildroot%_unitdir/%{name}d.service
mkdir -p %buildroot%piddir
mkdir -p %buildroot%data_dir
%pre
%_sbindir/groupadd -r -f %name &>/dev/null
%_sbindir/useradd -r -g %name -d %data_dir -s /dev/null \
-c "vnStat database producer" -M -G proc -n %name &>/dev/null ||:
# For upgrade from 1.4-alt1
/usr/bin/id -Gn %name | /bin/grep -qw proc || %_sbindir/usermod -G proc %name ||:
%post
# Replace unknown Interface in the configuration
%_sbindir/%{name}-update config-unknown
%post server
# Create databases for all found network interfaces
%_sbindir/%{name}-update bases
%post_service %{name}d
%postun server
[ $1 = 0 ] && echo 'NOTE: %name databases still exists in %data_dir directory!'
%preun_service %{name}d
%files
%doc CHANGES FAQ README
%doc --no-dereference COPYING
%config(noreplace) %cron_file
%config(noreplace) %_sysconfdir/%name.conf
%_bindir/%name
%_sbindir/%{name}-update
%_man1dir/%{name}.*
%_man5dir/%{name}.*
%attr(1770,root,%name) %data_dir
%files server
%_sbindir/%{name}d
%_man1dir/%{name}d*
%config %_initdir/%{name}d
%_unitdir/%{name}d.service
%_tmpfilesdir/%{name}d.conf
%_controldir/%name
%ghost %attr(1775,root,%name) %dir %piddir
%files vnstati
%doc examples/vnstat.cgi
%_bindir/%{name}i
%_man1dir/%{name}i*
%changelog
* Thu May 09 2019 Nikolay A. Fetisov <naf@altlinux.org> 2.2-alt1
- New version
* Sat Aug 25 2018 Nikolay A. Fetisov <naf@altlinux.org> 1.18-alt1
- New version
- Move cron script to -server package and disable it by default (Closes: 31477)
- Add vnstat-update script for databases and configuration updates
* Sat May 30 2015 Nikolay A. Fetisov <naf@altlinux.ru> 1.14-alt1
- New version 1.14
* Wed Sep 17 2014 Nikolay A. Fetisov <naf@altlinux.ru> 1.12-alt1
- New version 1.12
* Tue Jun 21 2011 Nikolay A. Fetisov <naf@altlinux.ru> 1.11-alt1
- New version 1.11
* Sun Oct 10 2010 Nikolay A. Fetisov <naf@altlinux.ru> 1.10-alt1
- New version 1.10
- New subpackage for vnstati utility
- Set default MaxBandwidth to 1 GiB/s (Closes: 22996)
* Sat Oct 17 2009 Nikolay A. Fetisov <naf@altlinux.ru> 1.9-alt1
- New version 1.9
- Fix repocop warning for /var/run/vnstatd/ directory
* Sat Sep 05 2009 Nikolay A. Fetisov <naf@altlinux.ru> 1.8-alt1
- New version 1.8 (closes: #19950)
* Mon May 25 2009 Nikolay A. Fetisov <naf@altlinux.ru> 1.7-alt0.1
- New version 1.7
* Wed Dec 10 2008 Nikolay A. Fetisov <naf@altlinux.ru> 1.6-alt1
- New version 1.6
- Fix rights on /var/lib/vnstat/* files
* Thu Aug 4 2005 Ilya G. Evseev <evseev@altlinux.ru> 1.4-alt3
- suppress mail sending on each invocation via crontab
- execute cron job under non-privileged account;
change previous root ownership on existing databases
* Mon Aug 1 2005 Ilya G. Evseev <evseev@altlinux.ru> 1.4-alt2
- create statistic databases automatically on install
for all found network interfaces
- added control facility for accessing database directory
- override default cron calling time (5 minutes) by our own value
(15 minutes, may be changed via rpmbuild --define 'cron_freq ...')
- specfile: better russian description
* Tue Jul 12 2005 Ilya G. Evseev <evseev@altlinux.ru> 1.4-alt1
- Initial build
## EOF ##