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 fb694c2..a6cf761 100644 --- a/flow-tools.spec +++ b/flow-tools.spec @@ -1,4 +1,9 @@ -%bcond_without fedora +# 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} @@ -7,25 +12,33 @@ Version: 0.68.5.1 Name: flow-tools Summary: Tool set for working with NetFlow data -Release: 17%{?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 Source1: flow-capture.service Source2: flow-capture.sysconfig Patch0: flow-werror-fix.patch -BuildRequires: openssl-devel mysql-devel postgresql-devel zlib-devel -BuildRequires: bison flex tcp_wrappers-devel +# 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 -Requires(pre): shadow-utils -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -BuildRequires: systemd -Provides: group(%username) -Provides: user(%username) +%if 0%{?fedora} >= 31 +BuildRequires: python3.12 +%endif +BuildRequires: systemd-rpm-macros +BuildRequires: make %description @@ -39,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, @@ -56,8 +69,12 @@ libft. %package rrdtool Summary: Scripts for flow-tools to build rrd graphs -Group: Applications/System -Requires: %{name} = %{version}-%{release} rrdtool-python +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, @@ -73,7 +90,6 @@ from flow data. %package docs Summary: HTML and other redundant docs for flow-tools -Group: Applications/System Requires: %{name} = %{version}-%{release} %description docs @@ -88,27 +104,42 @@ contributed and are included in the distribution. This package contains additional documentation, such as man pages in html format. %prep -%setup -q -%patch0 -p1 +%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 </dev/null || groupadd -r %{username} -getent passwd %{username} >/dev/null || \ - useradd -r -g %{username} -d %{homedir} -s /sbin/nologin \ - -c '%{gecos}' %{username} -exit 0 %post @@ -135,7 +159,7 @@ exit 0 %systemd_preun flow-capture.service %postun -%systemd_postun +%systemd_postun flow-capture.service %files %doc README README.fork COPYING ChangeLog @@ -196,6 +220,7 @@ exit 0 %attr(-,flow-tools,flow-tools) %{_localstatedir}/%{name}/ %dir %{_datadir}/%{name}/ %{_datadir}/%{name}/* +%{_sysusersdir}/flow-tools.conf %files devel %{_libdir}/*.so @@ -211,6 +236,96 @@ exit 0 %doc docs/*.html ChangeLog.old TODO INSTALL SECURITY %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 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 @@ -366,7 +481,7 @@ exit 0 - 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 @@ -380,10 +495,10 @@ exit 0 - 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