diff --git a/.gitignore b/.gitignore index dfa1622..69c1709 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -flow-tools-0.68.1.tar.bz2 +flow-tools-0.68.5.tar.bz2 +/flow-tools-0.68.5.1.tar.bz2 diff --git a/flow-capture.init b/flow-capture.init new file mode 100644 index 0000000..0931a32 --- /dev/null +++ b/flow-capture.init @@ -0,0 +1,112 @@ +#!/bin/sh +# +# flow-capture Capture traffic flow data +# +# chkconfig: - 90 10 +# description: Capture traffic flow data + +### BEGIN INIT INFO +# Provides: flow-capture +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Capture traffic flow data +# Description: Capture traffic flow data +### END INIT INFO + +# Source function library. +. /etc/rc.d/init.d/functions + +prog="flow-capture" +exec="/usr/bin/$prog" +config="/etc/sysconfig/$prog" +lockfile=/var/lock/subsys/$prog + +[ -e $config ] && . $config + +# Define the flow-tools username +FLOWTOOLS_USER="${FLOWTOOLS_USER:-flow-tools}" + +# Add pidfile +OPTIONS="-p /var/run/flow-capture.pid $OPTIONS" + +# Check that networking is up. +if [ "$NETWORKING" = "no" ] +then + exit 0 +fi + +start() { + [ -x $exec ] || exit 5 + [ -f $config ] || exit 6 + echo -n $"Starting $prog: " + # if not running, start it up here, usually something like "daemon $exec" + daemon --user=$FLOWTOOLS_USER $exec $OPTIONS + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + retval=$? + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + +reload() { + restart +} + +force_reload() { + restart +} + +rh_status() { + # run checks to determine if the service is running or use generic status + status $prog +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + +case "$1" in + start) + rh_status_q && exit 0 + $1 + ;; + stop) + rh_status_q || exit 0 + $1 + ;; + restart) + $1 + ;; + reload) + rh_status_q || exit 7 + $1 + ;; + force-reload) + force_reload + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? diff --git a/flow-capture.service b/flow-capture.service new file mode 100644 index 0000000..546bddf --- /dev/null +++ b/flow-capture.service @@ -0,0 +1,13 @@ +[Unit] +Description=Flow-capture Capture Traffic Flow Data +After=network.target + +[Service] +User=flow-tools +Group=flow-tools +Type=simple +EnvironmentFile=-/etc/sysconfig/flow-capture +ExecStart=/usr/bin/flow-capture -D $OPTIONS + +[Install] +WantedBy=multi-user.target diff --git a/flow-capture.sysconfig b/flow-capture.sysconfig new file mode 100644 index 0000000..33a3d07 --- /dev/null +++ b/flow-capture.sysconfig @@ -0,0 +1,2 @@ +# Change the source IP and port to what is used on your network +OPTIONS="-n 287 -N 0 -w /var/flow-tools -S 5 0/0/8818" diff --git a/flow-tools-c99.patch b/flow-tools-c99.patch new file mode 100644 index 0000000..c9fd14e --- /dev/null +++ b/flow-tools-c99.patch @@ -0,0 +1,59 @@ +Add a new header file that provides function prototypes for flex/bison +integration. This avoids implicit function declarations and build +failures with future compilers. + +diff --git a/src/acllex.l b/src/acllex.l +index 74dd8882f2fed262..3ab5e3c0cd897f70 100644 +--- a/src/acllex.l ++++ b/src/acllex.l +@@ -11,6 +11,7 @@ + + #include "acl2.h" + #include "aclyacc.h" ++#include "aclparse.h" + %} + + byte ([0-9]+) +diff --git a/src/aclparse.h b/src/aclparse.h +new file mode 100644 +index 0000000000000000..f113fc26d7513042 +--- /dev/null ++++ b/src/aclparse.h +@@ -0,0 +1,3 @@ ++int yylex (void); ++void yyerror(const char *msg); ++int yyparse (void); +diff --git a/src/aclyacc.y b/src/aclyacc.y +index 60001b6e4c820271..711b7eb169b59aba 100644 +--- a/src/aclyacc.y ++++ b/src/aclyacc.y +@@ -2,6 +2,7 @@ + #include + #include "acl2.h" + #include /* XXX REMOVE */ ++#include "aclparse.h" + + /* XXX remove */ + unsigned char fmt_buf[32]; +diff --git a/src/flow-filter.c b/src/flow-filter.c +index 3c1bfea989b2a129..305e2ed4399ca33d 100644 +--- a/src/flow-filter.c ++++ b/src/flow-filter.c +@@ -47,6 +47,7 @@ + #endif + + #include "acl2.h" ++#include "aclparse.h" + + /* + * TODO +@@ -58,9 +59,7 @@ int ip_net_only; + + extern struct acl_list acl_list; + +-int yyparse (void); + void usage(void); +-void yyerror(const char *msg); + + extern FILE *yyin; + extern char *yytext; diff --git a/flow-tools-extern.patch b/flow-tools-extern.patch new file mode 100644 index 0000000..9c0afa9 --- /dev/null +++ b/flow-tools-extern.patch @@ -0,0 +1,12 @@ +diff -up flow-tools-0.68.5.1/src/flow-filter.c.extern flow-tools-0.68.5.1/src/flow-filter.c +--- flow-tools-0.68.5.1/src/flow-filter.c.extern 2008-01-27 13:48:55.000000000 -0700 ++++ flow-tools-0.68.5.1/src/flow-filter.c 2020-01-27 20:44:13.176636051 -0700 +@@ -56,7 +56,7 @@ + int debug; + int ip_net_only; + +-struct acl_list acl_list; ++extern struct acl_list acl_list; + + int yyparse (void); + void usage(void); diff --git a/flow-tools.spec b/flow-tools.spec index f6c4fa4..a6cf761 100644 --- a/flow-tools.spec +++ b/flow-tools.spec @@ -1,15 +1,45 @@ -Version: 0.68.1 +# Does not support openssl 1.1 +%if 0%{?fedora} +%bcond_with openssl +%else +%bcond_without openssl +%endif + +%global username flow-tools +%global homedir %{_localstatedir}/%{name} +%global gecos "Network flow monitoring" + +Version: 0.68.5.1 Name: flow-tools Summary: Tool set for working with NetFlow data -Release: 1%{?dist} -Group: Applications/System -License: BSD +Release: 45%{?dist} +# Automatically converted from old format: BSD - review is highly recommended. +License: LicenseRef-Callaway-BSD URL: http://code.google.com/p/%{name}/ Source0: http://%{name}.googlecode.com/files/%{name}-%{version}.tar.bz2 -Requires: rrdtool-python -BuildRequires: openssl-devel mysql-devel postgresql-devel zlib-devel -BuildRequires: bison flex tcp_wrappers -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +Source1: flow-capture.service +Source2: flow-capture.sysconfig +Patch0: flow-werror-fix.patch +# Fix extern usage +Patch1: flow-tools-extern.patch +Patch2: flow-tools-c99.patch + +BuildRequires: gcc +%if 0%{with openssl} +BuildRequires: openssl-devel +%endif +BuildRequires: mariadb-connector-c-devel +BuildRequires: libpq-devel +BuildRequires: zlib-devel +BuildRequires: bison +BuildRequires: flex +BuildRequires: doxygen +%if 0%{?fedora} >= 31 +BuildRequires: python3.12 +%endif +BuildRequires: systemd-rpm-macros +BuildRequires: make + %description Flow-tools is library and a collection of programs used to collect, @@ -22,8 +52,8 @@ contributed and are included in the distribution. %package devel Summary: Development files for flow-tools -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} zlib-devel +Requires: %{name} = %{version}-%{release} +Requires: zlib-devel %description devel Flow-tools is library and a collection of programs used to collect, @@ -37,55 +67,361 @@ contributed and are included in the distribution. This package contains header files required to build applications that use libft. +%package rrdtool +Summary: Scripts for flow-tools to build rrd graphs +Requires: %{name} = %{version}-%{release} +%if 0%{?fedora} >= 31 +Requires: python3-rrdtool +%else +Requires: python2-rrdtool +%endif + +%description rrdtool +Flow-tools is library and a collection of programs used to collect, +send, process, and generate reports from NetFlow data. The tools can be +used together on a single server or distributed to multiple servers for +large deployments. The flow-toools library provides an API for development +of custom applications for NetFlow export versions 1,5,6 and the 14 currently +defined version 8 subversions. A Perl and Python interface have been +contributed and are included in the distribution. + +This package contains scripts that use python-rrdtool to create rrds and graphs +from flow data. + +%package docs +Summary: HTML and other redundant docs for flow-tools +Requires: %{name} = %{version}-%{release} + +%description docs +Flow-tools is library and a collection of programs used to collect, +send, process, and generate reports from NetFlow data. The tools can be +used together on a single server or distributed to multiple servers for +large deployments. The flow-toools library provides an API for development +of custom applications for NetFlow export versions 1,5,6 and the 14 currently +defined version 8 subversions. A Perl and Python interface have been +contributed and are included in the distribution. + +This package contains additional documentation, such as man pages in html format. + %prep -%setup -qn %{name}-%{version} +%autosetup -p1 +# Remove /bin/env deps +%if 0%{?fedora} >= 31 +sed -i '1s|^#!.*python|#!/usr/bin/python3|' bin/flow* +python3.12 -m lib2to3 --write --nobackups bin/flow* +%else +sed -i '1s|^#!.*python|#!/usr/bin/python2|' bin/flow* +%endif +sed -i '1s|^#!.*perl|#!/usr/bin/perl|' utils/* +# Fix mariadb-connector-c detection +sed -i s/my_init/mysql_init/g configure + +# Create a sysusers.d config file +cat >flow-tools.sysusers.conf < - 0.68.5.1-45 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 0.68.5.1-44 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Thu Jan 16 2025 Fedora Release Engineering - 0.68.5.1-43 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Aug 28 2024 Miroslav Suchý - 0.68.5.1-42 +- convert license to SPDX + +* Wed Jul 17 2024 Fedora Release Engineering - 0.68.5.1-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 0.68.5.1-40 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 0.68.5.1-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 0.68.5.1-38 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jan 19 2023 Florian Weimer - 0.68.5.1-37 +- C99 compatibility fixes (#2162330) + +* Thu Jan 19 2023 Fedora Release Engineering - 0.68.5.1-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 0.68.5.1-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jan 20 2022 Fedora Release Engineering - 0.68.5.1-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 0.68.5.1-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Feb 08 2021 Pavel Raiskup - 0.68.5.1-32 +- rebuild for libpq ABI fix rhbz#1908268 + +* Tue Jan 26 2021 Fedora Release Engineering - 0.68.5.1-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 0.68.5.1-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Orion Poplawski - 0.68.5.1-29 +- Add patch to fix extern usage for gcc 10 + +* Wed Aug 21 2019 Orion Poplawski - 0.68.5.1-28 +- Use python 3 for Fedora 31+ (bugz#1737952) + +* Tue Jul 30 2019 Orion Poplawski - 0.68.5.1-27 +- Fix systemd macro usage + +* Thu Jul 25 2019 Fedora Release Engineering - 0.68.5.1-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 0.68.5.1-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 0.68.5.1-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Feb 27 2018 Orion Poplawski - 0.68.5.1-23 +- Remove /bin/env deps (bug #1512889) +- Drop tcp_wrappers support (bug #1518764) +- Use mariadb-connector-c-devel (bug #1494095) +- Add BR gcc + +* Fri Feb 09 2018 Igor Gnatenko - 0.68.5.1-22 +- Escape macros in %%changelog + +* Wed Feb 07 2018 Fedora Release Engineering - 0.68.5.1-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 0.68.5.1-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.68.5.1-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Orion Poplawski - 0.68.5.1-19 +- Build with openssl support - does not work with openssl 1.1 + +* Fri Feb 10 2017 Fedora Release Engineering - 0.68.5.1-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 0.68.5.1-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.68.5.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Aug 16 2014 Fedora Release Engineering - 0.68.5.1-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jun 17 2014 Marcin Juszkiewicz - 0.68.5.1-14 +- fix syslog() calls to have string format + +* Sat Jun 07 2014 Fedora Release Engineering - 0.68.5.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Dec 21 2013 Paul Komkoff - 0.68.5.1-12 +- bz#850114 + +* Sat Sep 28 2013 Paul Komkoff - 0.68.5.1-11 +- Try to fix bz#1013218 as per https://fedoraproject.org/wiki/Packaging:UsersAndGroups + +* Fri Aug 23 2013 i@stingr.net - 0.68.5.1-10 +- Try to fix bz#929362 + +* Sat Aug 03 2013 Fedora Release Engineering - 0.68.5.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Apr 10 2013 Jon Ciesla - 0.68.5.1-8 +- Migrate from fedora-usermgmt to guideline scriptlets. + +* Wed Feb 13 2013 Fedora Release Engineering - 0.68.5.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 0.68.5.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Apr 24 2012 Jon Ciesla - 0.68.5.1-5 +- Migrate to systemd, BZ 767392. + +* Fri Jan 13 2012 Fedora Release Engineering - 0.68.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Mar 28 2011 Orion Poplawski - 0.68.5.1-3 +- Rebuild for new mysql +- Add LDFLAGS for mysql on 64-bit + +* Tue Feb 08 2011 Fedora Release Engineering - 0.68.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Aug 27 2010 Paul P. Komkoff Jr - 0.68.5.1 +- fix for EINTR while reading/writing in ftio. + +* Thu Feb 25 2010 Paul P Komkoff Jr - 0.68.5 +- bunch of fixes from upstream + +* Fri Aug 21 2009 Tomas Mraz - 0.68.4.1-4 +- rebuilt with new openssl + +* Fri Jul 24 2009 Fedora Release Engineering - 0.68.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Tue Feb 24 2009 Fedora Release Engineering - 0.68.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 2 2009 Paul P Komkoff Jr - 0.68.4.1-1 +- fix for pcap generation, by Dave Plonka +- split out -rrdtool subpackage, for those who don't need rrdtool on their servers. + +* Sat Jan 24 2009 Caolán McNamara - 0.68.4-2 +- rebuild for dependencies + +* Mon Mar 31 2008 Paul P Komkoff Jr - 0.68.4-1 +- New upstream version + +* Tue Feb 19 2008 Fedora Release Engineering - 0.68.4-0.2.rc1 +- Autorebuild for GCC 4.3 + +* Tue Feb 19 2008 Paul P Komkoff Jr - 0.68.4-0.1.rc1 +- new upstream release candidate + +* Fri Dec 07 2007 Release Engineering - 0.68.3-2 +- Rebuild for deps + +* Mon Nov 12 2007 Paul P Komkoff Jr - 0.68.3-1 +- new upstream release +- build tools as PIE +- get rid of ftpaths.h +- do not ship ftconfig.c +- do not require libft + +* Sat Nov 3 2007 Paul P Komkoff Jr - 0.68.2-1 +- New upstream release + +* Thu Sep 13 2007 Orion Poplawski - 0.68.1-2 +- Add user and init scripts + * Sun Aug 5 2007 Paul P Komkoff Jr - 0.68.1-1 - New upstream release @@ -145,7 +481,7 @@ rm -rf $RPM_BUILD_ROOT - simplify %%files - use more macros - change Group to Application/System -- own/create %{_localstatedir}/ft/ +- own/create %%{_localstatedir}/ft/ - add BR: autoconf - don't need generic INSTALL - mark config files as such @@ -159,10 +495,10 @@ rm -rf $RPM_BUILD_ROOT - Make libft shared library - Split to plain/devel -* Fri Jan 7 2004 William Emmanuel S. Yu +* Fri Jan 9 2004 William Emmanuel S. Yu - updated RPM file for version 0.67 -* Tue Aug 8 2003 William Emmanuel S. Yu +* Tue Aug 5 2003 William Emmanuel S. Yu - fixed SQL bug - update flow-export documentation diff --git a/flow-werror-fix.patch b/flow-werror-fix.patch new file mode 100644 index 0000000..59b1349 --- /dev/null +++ b/flow-werror-fix.patch @@ -0,0 +1,49 @@ +diff --git a/lib/fterr.c b/lib/fterr.c +index 1bb5c89..5b47207 100644 +--- a/lib/fterr.c ++++ b/lib/fterr.c +@@ -112,7 +112,7 @@ void fterr_info(const char *fmt, ...) + fprintf(((fterr_file) ? fterr_file : stderr), "%s\n", buf2); + + if (fterr_flags & FTERR_SYSLOG) +- syslog(LOG_INFO, buf); ++ syslog(LOG_INFO, "%s", buf); + + } /* fterr_info */ + +@@ -134,7 +134,7 @@ void fterr_err(int code, const char *fmt, ...) + + if (fterr_flags & FTERR_SYSLOG) { + snprintf(buf2, 1024, "%s: %s", buf, strerror(errno)); +- syslog(LOG_INFO, buf2); ++ syslog(LOG_INFO, "%s", buf2); + } + + if (fterr_exit) +@@ -159,7 +159,7 @@ void fterr_errx(int code, const char *fmt, ...) + } + + if (fterr_flags & FTERR_SYSLOG) +- syslog(LOG_INFO, buf); ++ syslog(LOG_INFO, "%s", buf); + + if (fterr_exit) + fterr_exit(code); +@@ -183,7 +183,7 @@ void fterr_warnx(const char *fmt, ...) + } + + if (fterr_flags & FTERR_SYSLOG) +- syslog(LOG_INFO, buf); ++ syslog(LOG_INFO, "%s", buf); + + } /* fterr_warnx */ + +@@ -205,7 +205,7 @@ void fterr_warn(const char *fmt, ...) + + if (fterr_flags & FTERR_SYSLOG) { + snprintf(buf2, 1024, "%s: %s", buf, strerror(errno)); +- syslog(LOG_INFO, buf2); ++ syslog(LOG_INFO, "%s", buf2); + } + + } /* fterr_warn */ diff --git a/sources b/sources index 70affe8..c1462dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b8388d0f81ce49e4ca97d9f79da3a2a5 flow-tools-0.68.1.tar.bz2 +b8f9a4be19ec22ea6d4031c40a6d5a63 flow-tools-0.68.5.1.tar.bz2