Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#63262 closed defect (fixed)

clamav @0.103.3_0 does not support IPv6 on macOS Big Sur, Version 11.4

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: bigsur catalina haspatch Cc: dluke@…, LenoreHorner
Port: clamav

Description

On PPC Leopard, Mac OS X 10.5.8 I get:

checking for IPv6 support... yes

while on macOS Big Sur, Version 11.4, I get:

checking for IPv6 support... no

configure.log shows:

6379 configure:24977: checking for IPv6 support
6380 configure:25011: /usr/bin/clang -o conftest -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64  -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -I/opt/local/include -I/opt/local/include -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-syslib     root,/Library/Developer/CommandLineTools/SDKs/MacOSX11.0.sdk -arch x86_64 -L/opt/local/lib conftest.c  >&5
6381 conftest.c:139:4: error: implicitly declaring library function 'memset' with type 'void *(void *, int, unsigned long)' [-Werror,-Wimplicit-function-declaration]
6382                         memset(&hints, 0, sizeof(hints));
6383                         ^
6384 conftest.c:139:4: note: include the header <string.h> or explicitly provide a declaration for 'memset'
6385 1 error generated.
6386 configure:25011: $? = 1
6387 configure: program exited with status 1
6388 configure: failed program was:
6389 | /* confdefs.h */
6390 | #define PACKAGE_NAME "ClamAV"
6391 | #define PACKAGE_TARNAME "clamav"
6392 | #define PACKAGE_VERSION "0.103.3"
6393 | #define PACKAGE_STRING "ClamAV 0.103.3"
6394 | #define PACKAGE_BUGREPORT "https://bugzilla.clamav.net/"
6395 | #define PACKAGE_URL "https://www.clamav.net/"
6396 | #define STDC_HEADERS 1
6397 | #define HAVE_SYS_TYPES_H 1
6398 | #define HAVE_SYS_STAT_H 1
6399 | #define HAVE_STDLIB_H 1
6400 | #define HAVE_STRING_H 1
6401 | #define HAVE_MEMORY_H 1
6402 | #define HAVE_STRINGS_H 1
6403 | #define HAVE_INTTYPES_H 1
6404 | #define HAVE_STDINT_H 1
6405 | #define HAVE_UNISTD_H 1
6406 | #define __EXTENSIONS__ 1
6407 | #define _ALL_SOURCE 1
6408 | #define _GNU_SOURCE 1
6409 | #define _POSIX_PTHREAD_SEMANTICS 1
6410 | #define _TANDEM_SOURCE 1
6411 | #define PACKAGE PACKAGE_NAME
6412 | #define LIBCLAMAV_FULLVER "9.0.5"
6413 | #define LIBCLAMAV_MAJORVER 9
6414 | #define LIBFRESHCLAM_FULLVER "2.0.1"
6415 | #define LIBFRESHCLAM_MAJORVER 2
6416 | #define VERSION "0.103.3"
6417 | #define VERSION_SUFFIX ""
6418 | #define HAVE_DLFCN_H 1
6419 | #define LT_OBJDIR ".libs/"
6420 | #define LT_MODULE_EXT ".so"
6421 | #define LT_SHARED_EXT ".dylib"
6422 | #define LT_MODULE_PATH_VAR "DYLD_LIBRARY_PATH"
6423 | #define LT_DLSEARCH_PATH "/usr/local/lib:/lib:/usr/lib"
6424 | #define HAVE_LIBDL 1
6425 | #define HAVE_DLERROR 1
6426 | #define HAVE_LIBDLLOADER 1
6427 | #define error_t int
6428 | #define __error_t_defined 1
6429 | #define HAVE_PRELOADED_SYMBOLS 1
6430 | #define HAVE_LTDL 1
6431 | #define HAVE_UNISTD_H 1
6432 | #define HAVE_MACH_O_DYLD_H 1
6433 | #define HAVE_DIRENT_H 1
6434 | #define HAVE_CLOSEDIR 1
6435 | #define HAVE_OPENDIR 1
6436 | #define HAVE_READDIR 1
6437 | #define HAVE_STRLCAT 1
6438 | #define HAVE_STRLCPY 1
6439 | #define LT_LIBEXT "a"
6440 | #define LT_LIBPREFIX "lib"
6441 | #define YYTEXT_POINTER 1
6442 | #define HAVE_STDINT_H 1
6443 | #define HAVE_UNISTD_H 1
6444 | #define HAVE_DLFCN_H 1
6445 | #define HAVE_INTTYPES_H 1
6446 | #define HAVE_SYS_TIMES_H 1
6447 | #define HAVE_MEMORY_H 1
6448 | #define HAVE_STDLIB_H 1
6449 | #define HAVE_STRINGS_H 1
6450 | #define HAVE_STRING_H 1
6451 | #define HAVE_SYS_MMAN_H 1
6452 | #define HAVE_SYS_PARAM_H 1
6453 | #define HAVE_SYS_STAT_H 1
6454 | #define HAVE_SYS_TYPES_H 1
6455 | #define HAVE_POLL_H 1
6456 | #define HAVE_LIMITS_H 1
6457 | #define HAVE_SYS_FILIO_H 1
6458 | #define HAVE_SYS_UIO_H 1
6459 | #define HAVE_TERMIOS_H 1
6460 | #define HAVE_STDBOOL_H 1
6461 | #define HAVE_PWD_H 1
6462 | #define HAVE_GRP_H 1
6463 | #define HAVE_SYS_QUEUE_H 1
6464 | #define HAVE_SYS_CDEFS_H 1
6465 | #define USE_SYSLOG 1
6466 | #define HAVE_PTHREAD_H 1
6467 | #define SCANBUFF 131072
6468 | #define FILEBUFF 8192
6469 | #define restrict __restrict
6470 | #define SIZEOF_SHORT 2
6471 | #define SIZEOF_INT 4
6472 | #define SIZEOF_LONG 8
6473 | #define SIZEOF_LONG_LONG 8
6474 | #define SIZEOF_VOID_P 8
6475 | #define HAVE_UNAME_SYSCALL 1
6476 | #define HAVE_POLL 1
6477 | #define HAVE_SETSID 1
6478 | #define HAVE_MEMCPY 1
6479 | #define HAVE_SNPRINTF 1
6480 | #define HAVE_VSNPRINTF 1
6481 | #define HAVE_STRERROR_R 1
6482 | #define HAVE_STRLCPY 1
6483 | #define HAVE_STRLCAT 1
6484 | #define HAVE_STRCASESTR 1
6485 | #define HAVE_INET_NTOP 1
6486 | #define HAVE_SETGROUPS 1
6487 | #define HAVE_INITGROUPS 1
6488 | #define HAVE_CTIME_R 1
6489 | #define HAVE_MKSTEMP 1
6490 | #define HAVE_MADVISE 1
6491 | #define HAVE_GETNAMEINFO 1
6492 | #define HAVE_STRNDUP 1
6493 | #define HAVE_STRNLEN 1
6494 | #define HAVE_STRNSTR 1
6495 | #define HAVE_FSEEKO 1
6496 | #define HAVE_MMAP 1
6497 | #define HAVE_SYSCONF_SC_PAGESIZE 1
6498 | #define HAVE_GETPAGESIZE 1
6499 | #define ANONYMOUS_MAP MAP_ANONYMOUS
6500 | #define HAVE_TIMEGM 1
6501 | #define HAVE_SYSCTLBYNAME 1
6502 | #define USE_MPOOL 1
6503 | #define HAVE_LIBXML2 1
6504 | #define HAVE_LIBSSL 1
6505 | #define HAVE_JSON 1
6506 | #define HAVE_PCRE 1
6507 | #define USING_PCRE2 1
6508 | #define HAVE_ZLIB_H 1
6509 | #define HAVE_LIBZ 1
6510 | #define HAVE_BZLIB_H 1
6511 | #define HAVE_GETADDRINFO 1
6512 | /* end confdefs.h.  */
6513 |
6514 |                   #include <sys/types.h>
6515 |                   #include <sys/socket.h>
6516 |                   #include <netdb.h>
6517 |                   #include <unistd.h>
6518 |                   int main(int argc, char **argv)
6519 |                   {
6520 |                           struct addrinfo *res, hints;
6521 |                           int sd;
6522 |
6523 |                       if((sd = socket(AF_INET6, SOCK_STREAM, 0)) < 0)
6524 |                           return 1;
6525 |                       close(sd);
6526 |                       /* also check if getaddrinfo() handles AF_UNSPEC -- bb#1196 */
6527 |                       memset(&hints, 0, sizeof(hints));
6528 |                       hints.ai_family = AF_UNSPEC;
6529 |                       if(getaddrinfo("127.0.0.1", NULL, &hints, &res) < 0)
6530 |                           return 1;
6531 |                       freeaddrinfo(res);
6532 |                       return 0;
6533 |                   }
6534 |
6535 configure:25023: result: no

which leads to the report:

configure: Summary of detected features follows
              OS          : darwin20.5.0
              pthreads    : yes ()
configure: Summary of miscellaneous features
              check       : -L/opt/local/lib -lcheck (auto)
              fanotify    : no (disabled)
              fdpassing   : 1
              IPv6        : no
              openssl     : /opt/local
              libcurl     : /opt/local

The man page on macOS Big Surr, Version 11.4, says:

SYNOPSIS
     #include <string.h>

     void *
     memset(void *b, int c, size_t len);

– so obviously a C header file is missing for this test, isn't it?

After patching configure accordingly I get from configure run:

checking for systemd system unit installation directory... no
checking for IPv6 support... yes
checking for resolv.h... yes

and

configure: Summary of miscellaneous features
              check       : -L/opt/local/lib -lcheck (auto)
              fanotify    : no (disabled)
              fdpassing   : 1
              IPv6        : yes
              openssl     : /opt/local
              libcurl     : /opt/local

And freshclam -v from the build directory seems to work… (although it's only contacting IPv4 addresses)

Attachments (1)

patch-configure.diff (792 bytes) - added by ballapete (Peter "Pete" Dyballa) 3 years ago.
For IPv6 support updated version of the original patch-configure.diff file

Download all attachments as: .zip

Change History (5)

Changed 3 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: patch-configure.diff added

For IPv6 support updated version of the original patch-configure.diff file

comment:1 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: LenoreHorner added
Keywords: catalina haspatch added
Owner: set to ryandesign
Status: newaccepted

Thanks. This had been filed previously as #63065; since you have a patch here I'll close that one as a duplicate of this one. Since Daniel had not responded to that ticket in weeks, I will consider the 72-hour maintainer timeout period to have expired and I will commit your patch along with a revbump.

comment:2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: acceptedclosed

In ea3ddf7a9e294890a15f42e21b1b09a4ba284162/macports-ports (master):

clamav: Fix implicit declaration of function

Include the right header when doing the IPv6 test so that IPv6 support
is enabled even when compiling with Xcode 12 or later. Revbump so that
anyone who built it before will get IPv6 support.

Closes: #63262

comment:3 Changed 3 years ago by danielluke (Daniel J. Luke)

Thanks for updating the port, I guess the previous ticket got lost in my inbox. Please also push this patch upstream so it gets fixed there. Thanks.

comment:4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Upstream has completely removed the autoconf-based build system:

https://github.com/Cisco-Talos/clamav/commit/a746d344dff2449b3a70f6e2c6c5225327e1a3c8

so there's nothing for them to do, unless they have replicated this bug in their new CMake-based build system.

Note: See TracTickets for help on using tickets.