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-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..ae0686c 100644 --- a/vnstat.spec +++ b/vnstat.spec @@ -1,77 +1,99 @@ Summary: Console-based network traffic monitor Name: vnstat -Version: 2.13 -Release: 3%{?dist} +Version: 1.11 +Release: 14%{?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 %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 # 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,187 +104,34 @@ 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 - -* Sun Oct 26 2014 Adrian Reber - 1.11-22 -- install unit file as 644 and not 755 (fixes #1157199) - -* Thu Aug 21 2014 Kevin Fenzi - 1.11-21 -- Rebuild for rpm bug 1131960 - -* Mon Aug 18 2014 Fedora Release Engineering - 1.11-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 08 2014 Fedora Release Engineering - 1.11-19 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Aug 07 2013 Adrian Reber - 1.11-18 -- fix bogus dates -- added patch for - "vnstat.c:489:22: warning: iteration 12u invokes undefined behavior [-Waggressive-loop-optimizations]" - -* Wed Aug 07 2013 Mathieu Bridon - 1.11-17 -- Fix the build by adding the missing BR on systemd. - -* Sun Aug 04 2013 Fedora Release Engineering - 1.11-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Jun 11 2013 Remi Collet - 1.11-15 -- rebuild for new GD 2.1.0 - * Fri Mar 08 2013 Adrian Reber - 1.11-14 - spec cleanup @@ -354,22 +223,22 @@ install -m0644 -D vnstat.sysusers.conf %{buildroot}%{_sysusersdir}/vnstat.conf * Fri Sep 15 2006 Adrian Reber - 1.4-8 - rebuilt -* Fri Mar 17 2006 Adrian Reber - 1.4-7 +* Fri Mar 18 2006 Adrian Reber - 1.4-7 - rebuilt; fixed dist tag -* Fri Mar 17 2006 Adrian Reber - 1.4-6 +* Fri Mar 18 2006 Adrian Reber - 1.4-6 - rebuilt * Sun May 22 2005 Jeremy Katz - 1.4-5 - rebuild on all arches -* Fri Apr 8 2005 Michael Schwendt +* Fri Apr 7 2005 Michael Schwendt - rebuilt * 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 "#--------------"