Summary: | net-analyzer/pmacct-1.7.1 USE=ndpi with =net-libs/nDPI-2.2 - configure: error: ERROR: missing nDPI static library | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Toralf Förster <toralf> |
Component: | Current packages | Assignee: | Gentoo Netmon project <netmon> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
emerge-info.txt
emerge-history.txt environment etc.portage.tbz2 logs.tbz2 net-analyzer:pmacct-1.7.1:20180820-153156.log temp.tbz2 |
Description
Toralf Förster
2018-08-20 17:27:01 UTC
Created attachment 544162 [details]
emerge-info.txt
Created attachment 544164 [details]
emerge-history.txt
Created attachment 544166 [details]
environment
Created attachment 544168 [details]
etc.portage.tbz2
Created attachment 544170 [details]
logs.tbz2
Created attachment 544172 [details]
net-analyzer:pmacct-1.7.1:20180820-153156.log
Created attachment 544174 [details]
temp.tbz2
Even more problems after hacking around the weird static lib check. ndpi.c: In function ‘pm_ndpi_get_flow_info6’: ndpi.c:284:24: error: ‘const struct ndpi_ipv6hdr’ has no member named ‘ip6_hdr’; did you mean ‘ip6_src’? iph.protocol = iph6->ip6_hdr.ip6_un1_nxt; ^~~~~~~ ip6_src In file included from ../pmacct.h:55, from ndpi.c:30: ndpi.c:294:20: error: ‘const struct ndpi_ipv6hdr’ has no member named ‘ip6_hdr’; did you mean ‘ip6_src’? ntohs(iph6->ip6_hdr.ip6_un1_plen), ^~~~~~~ When I experimentally update nDPI to version 2.8, we get more problems: In file included from /usr/include/ndpi/ndpi_typedefs.h:876, from /usr/include/ndpi/ndpi_main.h:30, from ../pmacct.h:96, from ndpi.c:30: /usr/include/ndpi/ndpi_config.h:80: warning: "PACKAGE" redefined #define PACKAGE "libndpi" <command-line>: note: this is the location of the previous definition In file included from /usr/include/ndpi/ndpi_typedefs.h:876, from /usr/include/ndpi/ndpi_main.h:30, from ../pmacct.h:96, from ndpi.c:30: /usr/include/ndpi/ndpi_config.h:83: warning: "PACKAGE_BUGREPORT" redefined #define PACKAGE_BUGREPORT "" <command-line>: note: this is the location of the previous definition In file included from /usr/include/ndpi/ndpi_typedefs.h:876, from /usr/include/ndpi/ndpi_main.h:30, from ../pmacct.h:96, from ndpi.c:30: /usr/include/ndpi/ndpi_config.h:86: warning: "PACKAGE_NAME" redefined #define PACKAGE_NAME "libndpi" <command-line>: note: this is the location of the previous definition In file included from /usr/include/ndpi/ndpi_typedefs.h:876, from /usr/include/ndpi/ndpi_main.h:30, from ../pmacct.h:96, from ndpi.c:30: /usr/include/ndpi/ndpi_config.h:89: warning: "PACKAGE_STRING" redefined #define PACKAGE_STRING "libndpi 2.8" That's a warning of things to come. Why does nDPI 2.8 include that in a public header? And this is after creating a 2kB patch for nDPI 2.8's build system. ndpi.c: In function ‘pm_ndpi_packet_processing’: ndpi.c:376:33: error: too few arguments to function ‘ndpi_detection_giveup’ flow->detected_protocol = ndpi_detection_giveup(workflow->ndpi_struct, flow->ndpi_flow); ^~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/ndpi/ndpi_main.h:31, from ../pmacct.h:96, from ndpi.c:30: /usr/include/ndpi/ndpi_api.h:220:17: note: declared here ndpi_protocol ndpi_detection_giveup(struct ndpi_detection_module_struct *ndpi_struct, ^~~~~~~~~~~~~~~~~~~~~ ndpi.c: In function ‘pm_ndpi_node_guess_undetected_protocol’: ndpi.c:443:64: warning: passing argument 2 of ‘ndpi_guess_undetected_protocol’ makes pointer from integer without a cast [-Wint-conversion] flow->protocol, ~~~~^~~~~~~~~~ In file included from /usr/include/ndpi/ndpi_main.h:31, from ../pmacct.h:96, from ndpi.c:30: /usr/include/ndpi/ndpi_api.h:341:38: note: expected ‘struct ndpi_flow_struct *’ but argument is of type ‘u_int8_t’ {aka ‘unsigned char’} struct ndpi_flow_struct *flow, ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ndpi.c:442:29: error: too few arguments to function ‘ndpi_guess_undetected_protocol’ flow->detected_protocol = ndpi_guess_undetected_protocol(workflow->ndpi_struct, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ So they changed the API (and ABI) but pmacct has not caught up yet, even when it already uses pkg-config to detect nDPI >= 2.2. :-\ commit 01f8d5c1ec0f78289f397703f6e480217d243b6b Author: Jeroen Roovers <jer@gentoo.org> Date: Tue Jan 28 11:30:58 2020 +0100 net-analyzer/pmacct: Depend on >=net-libs/nDPI-3.0:= Package-Manager: Portage-2.3.85, Repoman-2.3.20 Signed-off-by: Jeroen Roovers <jer@gentoo.org> |