Subject: CVS commit: pkgsrc/net/libcares
From: Thomas Klausner
Date: 2024-01-07 17:05:32
Message id: 20240107160532.F051EFA42@cvs.NetBSD.org

Log Message:
libcares: update to 1.25.0.

Version 1.25.0 (2 Jan 2024)

GitHub (2 Jan 2024)
- [Brad House brought this change]

  1.25.0 release prep (#676)

Brad House (31 Dec 2023)
- tests: replace google DNS with CloudFlare for reverse lookups as google's \ 
servers stopped responding properly

- OSSFuzz: it assumes autotools builds a static library by default, which means \ 
the old autotools must have done that even though there were comments saying it \ 
wasn't.  Disable static by default on Windows however since it can't build both \ 
simultaneously.

- autotools: update logic for building tests to provide more feedback

- set winver consistently across build systems

GitHub (28 Dec 2023)
- [Brad House brought this change]

  Autotools: rework to simplify and fix recent issues (#674)

  Completely rework the autotools build system, issues have cropped up due to \ 
the complexity and could cause issues on even semi-modern Linux systems (Ubuntu \ 
20.04 for example).

  Changes include:

  Remove all curl/xc/cares m4 helper files, they go overboard on detections of \ 
functions and datatypes. Go back to more plain autoconf macros as they've come a \ 
long way over the years.
  Use known systems and heuristics to determine datatypes for functions like \ 
send() and recv(), rather than the error prone detection which required \ 
thousands of permutations and might still get it wrong.
  Remove unneeded configure arguments like --enable-debug or --enable-optimize, \ 
its more common for people to simply pass their own CFLAGS on the command line.
  Only require CARES_STATICLIB definition on Windows static builds, its not \ 
necessary ever for other systems, even when hiding non-public symbols.
  Remove some function and definition detections that were never used in c-ares
  The test framework is now embedded into the toplevel configure system, there \ 
was no need to chain build the test system as it is never built externally to \ 
c-ares.
  As a side-effect of the changes, a configure run completes in about 25% of the \ 
original time.

  This has been tested on various Linux distributions (of varying age), FreeBSD, \ 
MacOS, Windows (via MSYS2 with Mingw), and Solaris10/11 (by @dfandrich), AIX 7.3 \ 
(by @dfandrich). It is not unlikely that this may have broken more esoteric or \ 
legacy systems, and we'll likely need to be ready to accept bug reports and \ 
patches, but it has removed over 10k lines of build system code. It is very \ 
likely any issues that crop up will add far fewer lines of code to fix such \ 
systems.

  Fixes Bug: #670
  Fix By: Brad House (@bradh352)

Brad House (22 Dec 2023)
- docs: host -> ip

  fix mismatched documentation stating host instead of ip

  Fix By: Brad House (@bradh352)

GitHub (21 Dec 2023)
- [Brad House brought this change]

  Old MacOS SDKs require you include sys/socket.h before net/if.h (#673)

  Old MacOS SDKs (like 10.8) require you include `sys/socket.h` before you \ 
include `net/if.h` as reported by MacPorts.  Using a new SDK but with setting \ 
the macos target version does not have the same issue.

  Fixes Issue: #672
  Fix By: Brad House (@bradh352)

- [Brad House brought this change]

  Autotools warning fixes (#671)

  * get rid of clashes with curl namespace
  * remove warnings due to deprecated functionality
  * reorder some macro calls to get rid of warnings due to being called in the \ 
wrong order

  Fix By: Brad House (@bradh352)

Brad House (19 Dec 2023)
- clang-format

- ares_strsplit() rewrite as wrapper around ares__buf_split()

  We want to limit as much as possible any hand written parsers.
  ares__buf_split() uses the new memory-safe parsing routines.  This
  adds a couple of additional flags to remove duplicates which the
  existing split code did.

  Fix By: Brad House (@bradh352)

- clang-format

- sonarcloud: const

- Connection failure should increment server failure count first

  In order to be sure a different server is chosen on the next query,
  a read error should result in the failure count being updated
  first before requeing the request to a different server.

  Fix By: Brad House (@bradh352)

GitHub (18 Dec 2023)
- [Brad House brought this change]

  ahost should use ares_getaddrinfo() these days (#669)

  ahost wasn't printing both ipv4 and ipv6 addresses. This day and age, it \ 
really should.

  This PR also adds the ability to specify the servers to use.

  Fix By: Brad House (@bradh352)

Brad House (17 Dec 2023)
- Fix bad stub for ares__iface_ips_enumerate()

  If the ability to enumerate interface ip addresses does not exist
  on a system, the stub function contained the wrong prototype.

  Fixes Bug: #668
  Fix By: Brad House (@bradh352)

GitHub (17 Dec 2023)
- [Gregor Jasny brought this change]

  Fix minor warnings and documentation typos (#666)

  Build warnings could be seen \ 
[here](https://buildd.debian.org/status/fetch.php?pkg=c-ares&arch=arm64&ver=1.24.0-1&stamp=1702826366&raw=0) \ 
[origin](https://buildd.debian.org/status/package.php?p=c-ares)

  Fix By: Gregor Jasny (@gjasny)

- [Brad House brought this change]

  CI: Add Alpine Linux and old Ubuntu (#667)

  Alpine linux doesn't use glibc but instead musl c, so provides a good \ 
alternative test bed. We are also adding the oldest non-EOL ubuntu version so we \ 
can test against older linux variants to prevent surprises.

  This patch also migrates more tests to use cmake and ninja in order to reduce \ 
overall build times as we seem to run out of credits on Cirrus-CI pretty \ 
quickly.

  Fix By: Brad House (@bradh352)

Brad House (17 Dec 2023)
- fix support with older google test versions

- getrandom() may require sys/random.h on some systems

  There is a reported build issue where getrandom() is detected
  but compile fails due to a missing prototype. This commit attempts
  to resolve that issue.

  Fixes Bug: #665
  Fix By: Brad House (@bradh352)

GitHub (17 Dec 2023)
- [Martin Chang brought this change]

  Use SOCK_DNS extension on socket on OpenBSD (#659)

  This patch added the `SOCK_DNS` flag when running on OpenBSD. Allowing a \ 
reduced set of `pledge(2)` promises. Before this patch. The "stdio rpath \ 
inet" promises must be used in order to resolve any records. After the \ 
patch inet can be replaced with dns which only allows communication on \ 
destination port 53, instead of on all ports.

  Side note: I checked the OpenBSD kernel source code. Even though the socket \ 
document says the DNS port (typically 53)., The OpenBSD 7.4 kernel only allows \ 
53.

  Fix By: Martin Chang (@marty1885)

Brad House (17 Dec 2023)
- ci: disable static for symbol hiding tests

- ci: add test case for building with hidden symbol visibility

- fix test building with symbol hiding

  New test cases depend on internal symbols for calculating timeouts.
  Disable those test features if symbol hiding is enabled.

  Fixes Bug: #664
  Fix By: Brad House (@bradh352)

Files:
RevisionActionfile
1.41modifypkgsrc/net/libcares/Makefile
1.25modifypkgsrc/net/libcares/PLIST
1.35modifypkgsrc/net/libcares/distinfo