diff --git a/.gitignore b/.gitignore index 428ac4e..8504eb2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1 @@ vnstat-1.11.tar.gz -/vnstat-1.14.tar.gz -/vnstat-1.15.tar.gz -/vnstat-1.16.tar.gz -/vnstat-1.17.tar.gz -/vnstat-1.18.tar.gz -/vnstat-2.2.tar.gz -/vnstat-2.3.tar.gz -/vnstat-2.4.tar.gz -/vnstat-2.5.tar.gz -/vnstat-2.6.tar.gz -/vnstat-2.7.tar.gz -/vnstat-2.8.tar.gz -/vnstat-2.9.tar.gz -/vnstat-2.10.tar.gz -/vnstat-2.13.tar.gz diff --git a/sources b/sources index 07bd2b4..f615528 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (vnstat-2.13.tar.gz) = 9b5d7b5085ab2ae39fd6b0d59afe56eb927b6e4ca1ca30ee7710afe2a412c4a1a8d756e095e9c3c81d182e3d6bb2efcd9a2a266e0048cac249477a09c1368969 +a5a113f9176cd61fb954f2ba297f5fdb vnstat-1.11.tar.gz diff --git a/vnstat-1.11-there-are-only-12-months.patch b/vnstat-1.11-there-are-only-12-months.patch new file mode 100644 index 0000000..41806c0 --- /dev/null +++ b/vnstat-1.11-there-are-only-12-months.patch @@ -0,0 +1,11 @@ +--- vnstat-1.11/src/vnstat.c.old 2011-06-01 00:29:51.000000000 +0200 ++++ vnstat-1.11/src/vnstat.c 2013-08-07 14:42:58.396231450 +0200 +@@ -485,7 +485,7 @@ + readdb(interface, dirname); + + data.totalrx=data.totaltx=data.totalrxk=data.totaltxk=0; +- for (i=0; i<=29; i++) { ++ for (i=0; i<=12; i++) { + if (data.month[i].used) { + addtraffic(&data.totalrx, &data.totalrxk, data.month[i].rx, data.month[i].rxk); + addtraffic(&data.totaltx, &data.totaltxk, data.month[i].tx, data.month[i].txk); diff --git a/vnstat-run-vnstat.diff b/vnstat-run-vnstat.diff new file mode 100644 index 0000000..b3d464d --- /dev/null +++ b/vnstat-run-vnstat.diff @@ -0,0 +1,25 @@ +--- a/src/vnstatd.c 2011-06-01 00:29:51.000000000 +0200 ++++ b/src/vnstatd.c 2011-12-22 22:23:22.512967108 +0100 +@@ -482,10 +482,18 @@ + /* lock / pid file */ + pidfile = open(cfg.pidfile, O_RDWR|O_CREAT, 0644); + if (pidfile<0) { +- perror("pidfile"); +- snprintf(errorstring, 512, "pidfile failed, exiting."); +- printe(PT_Error); +- exit(EXIT_FAILURE); /* can't open */ ++ /* for Fedora's move to systemd and /run check ++ * for /run/vnstat/vnstat.pid, so that it needs no changes ++ * to the config file */ ++ pidfile = open("/run/vnstat/vnstat.pid", O_RDWR|O_CREAT, 0644); ++ if (pidfile<0) { ++ perror("pidfile"); ++ snprintf(errorstring, 512, "pidfile failed, exiting."); ++ printe(PT_Error); ++ exit(EXIT_FAILURE); /* can't open */ ++ } else { ++ strncpy(cfg.pidfile, "/run/vnstat/vnstat.pid", 512); ++ } + } + if (lockf(pidfile,F_TLOCK,0)<0) { + perror("pidfile lock"); diff --git a/vnstat.service b/vnstat.service new file mode 100644 index 0000000..3efda38 --- /dev/null +++ b/vnstat.service @@ -0,0 +1,10 @@ +[Unit] +Description=VnStat - Lightweight Network Traffic Monitor +After=network.target + +[Service] +User=vnstat +ExecStart=/usr/sbin/vnstatd -d + +[Install] +WantedBy=multi-user.target diff --git a/vnstat.service.patch b/vnstat.service.patch deleted file mode 100644 index 257adaa..0000000 --- a/vnstat.service.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/examples/systemd/vnstat.service 2015-12-01 08:05:12.053856367 +0100 -+++ b/examples/systemd/vnstat.service 2015-12-01 08:05:07.967936194 +0100 -@@ -4,6 +4,7 @@ - StartLimitBurst=4 - - [Service] -+User=vnstat - ExecStart=/usr/sbin/vnstatd --nodaemon - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure diff --git a/vnstat.spec b/vnstat.spec index e93645c..c857ea9 100644 --- a/vnstat.spec +++ b/vnstat.spec @@ -1,77 +1,102 @@ Summary: Console-based network traffic monitor Name: vnstat -Version: 2.13 -Release: 3%{?dist} +Version: 1.11 +Release: 23%{?dist} -# Automatically converted from old format: GPLv2 - review is highly recommended. -License: GPL-2.0-only +License: GPLv2 +Group: System Environment/Daemons URL: http://humdi.net/vnstat/ Source0: http://humdi.net/vnstat/vnstat-%{version}.tar.gz -Patch0: vnstat.service.patch -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -BuildRequires: make -BuildRequires: gcc +Source1: vnstat.service +Requires(pre): shadow-utils +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units BuildRequires: gd-devel BuildRequires: systemd -BuildRequires: sqlite-devel +Patch0: vnstat-run-vnstat.diff +Patch1: vnstat-1.11-there-are-only-12-months.patch %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 file-system, so vnStat can -be used without root permissions. See the web-page for few 'screenshots'. - -%package vnstati -Summary: Image output support for vnstat -Recommends: %{name} = %{version}-%{release} - -%description vnstati -The purpose of vnstati is to provide image output support for statistics -collected using vnstat. 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. +The traffic information is analyzed from the /proc-filesystem, so vnStat can +be used without root permissions. See the webpage for few 'screenshots'. %prep %setup -q -%patch -P0 -p1 +%patch0 -p1 +%patch1 -p1 # disable maximum bandwidth setting and change pidfile location sed -i -e "s,/var/run/,/run/vnstat/,g; \ s,MaxBandwidth 100,MaxBandwidth 0,g;" \ cfg/vnstat.conf -# Create a sysusers.d config file -cat >vnstat.sysusers.conf <> $RPM_BUILD_ROOT/%{_tmpfilesdir}/%{name}.conf << END +%{__cat} >> $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name} << END +MAILTO=root +# to enable interface monitoring via vnstat remove comment on next line +# */5 * * * * vnstat %{_sbindir}/%{name}.cron +END + +%{__cat} >> $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name} << END +# see also: vnstat(1) +# +# starting with vnstat-1.6 vnstat can also be +# configured via %{_sysconfdir}/vnstat.conf +# +# the following sets vnstat up to monitor eth0 +VNSTAT_OPTIONS="-u -i eth0" +END + +%{__cat} >> $RPM_BUILD_ROOT%{_sbindir}/%{name}.cron << END +#!/bin/bash +# this script (%{_sbindir}/%{name}.cron) reads %{_sysconfdir}/sysconfig/%{name} +# to start %{_bindir}/%{name}. +# example for %{_sysconfdir}/sysconfig/%{name}: +# VNSTAT_OPTIONS="-u -i eth0" +# see also: vnstat(1) + +VNSTAT_CONF=%{_sysconfdir}/sysconfig/%{name} + +if [ ! -f \$VNSTAT_CONF ]; then + exit 0 +fi + +. \$VNSTAT_CONF + +%{_bindir}/%{name} \$VNSTAT_OPTIONS +END + +%{__cat} >> $RPM_BUILD_ROOT/%{_sysconfdir}/tmpfiles.d/vnstat.conf << END D /run/vnstat 0700 vnstat vnstat END -install -m0644 -D vnstat.sysusers.conf %{buildroot}%{_sysusersdir}/vnstat.conf - +%pre +getent group %{name} > /dev/null || %{_sbindir}/groupadd -r %{name} +getent passwd %{name} > /dev/null || %{_sbindir}/useradd -r -g %{name} -M \ + -d %{_localstatedir}/lib/%{name} -s /sbin/nologin -c "vnStat user" %{name} %post %systemd_post vnstat.service @@ -82,158 +107,35 @@ install -m0644 -D vnstat.sysusers.conf %{buildroot}%{_sysusersdir}/vnstat.conf %postun %systemd_postun_with_restart vnstat.service +%triggerun -- vnstat < 1.11-8 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply httpd +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save vnstat >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del vnstat >/dev/null 2>&1 || : +/bin/systemctl try-restart vnstat.service >/dev/null 2>&1 || : + + %files -%license COPYING -%doc CHANGES FAQ README INSTALL examples +%defattr(-,root,root,-) +%doc CHANGES COPYING FAQ README INSTALL examples %config(noreplace) %{_sysconfdir}/%{name}.conf +%config(noreplace) %{_sysconfdir}/cron.d/%{name} %{_unitdir}/%{name}.service -%{_tmpfilesdir}/%{name}.conf -%{_mandir}/man1/vnstat.1* -%{_mandir}/man5/vnstat.conf.5* -%{_mandir}/man8/vnstatd.8* +%config(noreplace) %{_sysconfdir}/sysconfig/%{name} +%{_sysconfdir}/tmpfiles.d/vnstat.conf +%{_mandir}/man*/* %{_bindir}/vnstat +%{_bindir}/vnstati %{_sbindir}/vnstatd %attr(-,vnstat,vnstat)%dir /run/%{name}/ +%attr(755,root,root)%{_sbindir}/%{name}.cron %attr(-,vnstat,vnstat)%{_localstatedir}/lib/%{name} -%{_sysusersdir}/vnstat.conf -%files vnstati -%license COPYING -%{_mandir}/man1/vnstati.1* -%{_bindir}/vnstati %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 2.13-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Sat Jan 17 2026 Fedora Release Engineering - 2.13-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Dec 10 2025 Adrian Reber - 2.13-1 -- Upgrade to 2.13 (#2232896) - -* Fri Jul 25 2025 Fedora Release Engineering - 2.10-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 2.10-8 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Sun Jan 19 2025 Fedora Release Engineering - 2.10-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Jul 29 2024 Miroslav Suchý - 2.10-6 -- convert license to SPDX - -* Sat Jul 20 2024 Fedora Release Engineering - 2.10-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jan 27 2024 Fedora Release Engineering - 2.10-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Jul 22 2023 Fedora Release Engineering - 2.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sat Jan 21 2023 Fedora Release Engineering - 2.10-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Dec 09 2022 Adrian Reber - 2.10-1 -- Upgrade to 2.10 (#2137399) - -* Sat Jul 23 2022 Fedora Release Engineering - 2.9-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed May 18 2022 Adrian Reber - 2.9-2 -- Upgrade to 2.9 (#2044224) - -* Sat Jan 22 2022 Fedora Release Engineering - 2.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Dec 14 2021 Adrian Reber - 2.8-1 -- Upgrade to 2.8 (#1961015) -- Create sub-package for vnstati and its libgd dependency (#1993650) - -* Mon Aug 30 2021 Adrian Reber - 2.7-1 -- Upgrade to 2.7 (#1961015) - -* Fri Jul 23 2021 Fedora Release Engineering - 2.6-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.6-5 -- Rebuilt for updated systemd-rpm-macros - See https://pagure.io/fesco/issue/2583. - -* Wed Jan 27 2021 Fedora Release Engineering - 2.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 2.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri Jan 31 2020 Fedora Release Engineering - 2.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Jan 21 2020 Adrian Reber - 2.6-1 -- Upgrade to 2.6 (#1791158) - -* Wed Jan 15 2020 Adrian Reber - 2.5-1 -- Upgrade to 2.5 (#1791158) - -* Wed Nov 06 2019 Adrian Reber - 2.4-1 -- Upgrade to 2.4 - -* Sat Jul 27 2019 Fedora Release Engineering - 2.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Jun 12 2019 Adrian Reber -2.3-1 -- Upgrade to 2.3 - -* Sun Apr 28 2019 Adrian Reber -2.2-1 -- Upgrade to 2.2 (#1703811) - -* Sun Feb 03 2019 Fedora Release Engineering - 1.18-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Adrian Reber - 1.18-1 -- Upgrade to 1.18 (#1551364) - -* Sat Jul 14 2018 Fedora Release Engineering - 1.17-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Feb 09 2018 Fedora Release Engineering - 1.17-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Aug 03 2017 Fedora Release Engineering - 1.17-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 1.17-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Feb 17 2017 Adrian Reber - 1.17-1 -- Upgrade to 1.17 (#1423060) - -* Sat Feb 11 2017 Fedora Release Engineering - 1.16-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Jan 04 2017 Adrian Reber - 1.16-1 -- Upgrade to 1.16 (#1408565) - -* Fri Feb 05 2016 Fedora Release Engineering - 1.15-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Jan 13 2016 Adrian Reber - 1.15-1 -- Upgrade to 1.15 (#1296771) - -* Tue Dec 01 2015 Adrian Reber - 1.14-3 -- Fixed "Service fails to start because it's run as root" (#1278027) - -* Tue Aug 11 2015 Adrian Reber - 1.14-2 -- Use %%license for COPYING - -* Tue Aug 11 2015 Adrian Reber - 1.14-1 -- Upgrade to 1.14 -- Remove cron based setup (removed functionality) -- Remove systemd unit file (now included) -- Remove unnecessary patches - * Fri Jun 19 2015 Fedora Release Engineering - 1.11-23 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild @@ -369,7 +271,7 @@ install -m0644 -D vnstat.sysusers.conf %{buildroot}%{_sysusersdir}/vnstat.conf * Mon Feb 28 2005 Adrian Reber 1.4-3 - removed occurences of VNSTAT_DISABLED in %%{_sysconfdir}/sysconfig/%%{name} and - %%{_sbindir}/%%{name}.cron + %%{_sbindir}/%{name}.cron * Thu Feb 24 2005 Adrian Reber 1.4-2 - removed "#--------------"