mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-09 00:10:21 +03:00
net-analyzer/flow-tools: EAPI 8; fix modern C issues & LTO; fix config path
* EAPI 8 * Modern C porting ** Fix a C99 issue (missing 'config.h' include in lexer) ** Fix a C23 issue (mismatched function pointer types) ** Fix an LTO issue (yy* prefix clash, linker warning) * Fix config location The upstream location was fixed in 6bccc64533fcc32597a4cc8de07fd031019ea2fd but we retained our --sysconfdir workaround with the bump to 0.68.6, which meant configs were installed to /etc/flow-tools/flow-tools/. Fix that and add a warning... Closes: https://bugs.gentoo.org/785040 Closes: https://bugs.gentoo.org/851159 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
https://bugs.gentoo.org/945075
|
||||
--- a/lib/ftstat.c
|
||||
+++ b/lib/ftstat.c
|
||||
@@ -831,11 +831,11 @@ struct jump {
|
||||
|
||||
struct typelookup {
|
||||
char *name;
|
||||
- void* (*f_new)();
|
||||
- void* (*f_accum)();
|
||||
- void* (*f_calc)();
|
||||
- void* (*f_dump)();
|
||||
- void* (*f_free)();
|
||||
+ void* (*f_new)(struct ftstat_rpt *);
|
||||
+ void* (*f_accum)(struct ftstat_rpt *, char *, struct fts3rec_offsets *);
|
||||
+ void* (*f_calc)(struct ftstat_rpt *);
|
||||
+ void* (*f_dump)(FILE *, struct ftio *, struct ftstat_rpt *);
|
||||
+ void* (*f_free)(void *);
|
||||
int allowed_fields; /* FT_STAT_FIELD_* */
|
||||
int allowed_options;/* FT_STAT_OPT_* */
|
||||
uint64_t xfields; /* FT_XFIELD_* */
|
||||
--- a/src/acllex.l
|
||||
+++ b/src/acllex.l
|
||||
@@ -1,4 +1,5 @@
|
||||
%{
|
||||
+#include <ftconfig.h>
|
||||
#include <ftlib.h>
|
||||
|
||||
#if HAVE_STRINGS_H
|
||||
--- a/src/flow-print.c
|
||||
+++ b/src/flow-print.c
|
||||
@@ -89,9 +89,7 @@ struct jump format[] = {{format0}, {format1}, {format2},
|
||||
|
||||
void usage(void);
|
||||
|
||||
-int main(argc, argv)
|
||||
-int argc;
|
||||
-char **argv;
|
||||
+int main(int argc, char **argv)
|
||||
{
|
||||
struct ftio ftio;
|
||||
struct ftprof ftp;
|
||||
31
net-analyzer/flow-tools/files/flow-tools-0.68.6-lto.patch
Normal file
31
net-analyzer/flow-tools/files/flow-tools-0.68.6-lto.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
We get a linker warning otherwise from YYSTYPE changing.
|
||||
--- a/lib/getdate.y
|
||||
+++ b/lib/getdate.y
|
||||
@@ -1,3 +1,5 @@
|
||||
+%define api.prefix {getdate}
|
||||
+
|
||||
%{
|
||||
/*
|
||||
** Originally written by Steven M. Bellovin <smb@research.att.com> while
|
||||
@@ -117,10 +119,6 @@ extern struct tm *localtime();
|
||||
extern time_t get_date(char * p, struct timeb * now);
|
||||
/*@=exportheader@*/
|
||||
|
||||
-#define yyparse getdate_yyparse
|
||||
-#define yylex getdate_yylex
|
||||
-#define yyerror getdate_yyerror
|
||||
-
|
||||
static int yyparse (void);
|
||||
static int yylex (void);
|
||||
static int yyerror(const char * s);
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
noinst_HEADERS = flow-dscan.h pcap.h cflowd.h acl2.h
|
||||
|
||||
-BUILT_SOURCES = aclyacc.h
|
||||
+BUILT_SOURCES = aclyacc.h acllex.c
|
||||
AM_YFLAGS = -d
|
||||
|
||||
EXTRA_DIST = ftbuild.sh
|
||||
@@ -1,9 +1,9 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
EAPI=8
|
||||
|
||||
inherit autotools
|
||||
inherit autotools eapi9-ver
|
||||
|
||||
DESCRIPTION="library and programs to process reports from NetFlow data"
|
||||
HOMEPAGE="https://github.com/5u623l20/flow-tools/"
|
||||
@@ -19,39 +19,49 @@ RDEPEND="
|
||||
acct-user/flows
|
||||
sys-apps/tcp-wrappers
|
||||
sys-libs/zlib
|
||||
mysql? ( dev-db/mysql-connector-c:0= )
|
||||
mysql? ( dev-db/mysql-connector-c:= )
|
||||
postgres? ( dev-db/postgresql:* )
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
ssl? ( dev-libs/openssl:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-text/docbook-sgml-utils
|
||||
app-alternatives/yacc
|
||||
app-alternatives/lex
|
||||
sys-devel/bison
|
||||
"
|
||||
|
||||
DOCS=( ChangeLog.old README README.fork SECURITY TODO TODO.old )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.68.5.1-run.patch
|
||||
"${FILESDIR}"/${PN}-0.68.5.1-openssl11.patch
|
||||
"${FILESDIR}"/${PN}-0.68.5.1-fno-common.patch
|
||||
"${FILESDIR}"/${PN}-0.68.6-mysql.patch
|
||||
"${FILESDIR}"/${PN}-0.68.6-c99-c23.patch
|
||||
"${FILESDIR}"/${PN}-0.68.6-lto.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -i -e 's|docbook-to-man|docbook2man|g' docs/Makefile.am || die
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_enable static-libs static) \
|
||||
$(usex mysql --with-mysql '') \
|
||||
$(usex postgres --with-postgresql=yes --with-postgresql=no) \
|
||||
$(usex ssl --with-openssl '') \
|
||||
--sysconfdir=/etc/flow-tools
|
||||
# Needs bison specifically for LTO patch (for setting a prefix)
|
||||
unset YACC
|
||||
|
||||
local myeconfargs=(
|
||||
$(use_enable static-libs static)
|
||||
|
||||
# configure logic is buggy
|
||||
$(usev mysql --with-mysql)
|
||||
--with-postgresql=$(usex postgres yes no)
|
||||
$(usev ssl --with-openssl)
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
@@ -74,3 +84,12 @@ src_install() {
|
||||
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ver_replacing -lt 0.68.6-r2 ; then
|
||||
ewarn "Config files have been moved bak to ${EPREFIX}/etc/flow-tools"
|
||||
ewarn "after temporarily being in the wrong location of"
|
||||
ewarn " ${EPREFIX}/etc/flow-tools/flow-tools"
|
||||
ewarn "See bug #785040."
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user