curl and libcurl 8.12.1 Public curl releases: 265 Command line options: 267 curl_easy_setopt() options: 306 Public functions in libcurl: 96 Contributors: 3342 This release includes the following changes: This release includes the following bugfixes: o asyn-thread: fix build with `CURL_DISABLE_SOCKETPAIR` [47] o asyn-thread: fix HTTPS RR crash [10] o asyn-thread: fix the returned bitmask from Curl_resolver_getsock [18] o asyn-thread: survive a c-ares channel set to NULL [52] o build: add tool_hugehelp.c into IBMi build [40] o cmake/Find: set `_FOUND` for compatibility when found via `pkg-config` [22] o cmake: add integration tests, run them in CI [21] o cmake: always reference OpenSSL and ZLIB via imported targets [24] o cmake: avoid unnecessary `-L` for implicit link dirs [11] o cmake: drop `LDAP_DEPRECATED=1` macro, to sync with autotools [23] o cmake: initialize variables where missing [27] o cmake: lib order fixes for picky linkers (e.g. binutils `ld`) [26] o cmake: normalize before matching paths with syspaths [30] o cmake: respect `GNUTLS_CFLAGS` when detected via `pkg-config` [38] o cmake: respect `GNUTLS_LIBRARY_DIRS` in `libcurl.pc` and `curl-config` [39] o cmake: save a line with `CMAKE_C_IMPLICIT_LINK_DIRECTORIES` exclusion [32] o cmake: tidy up string append and list prepend syntax [28] o configure/cmake: check for realpath [19] o configure/cmake: set asyn-rr a feature only if httpsrr is enabled [42] o content_encoding: #error on too old zlib [2] o curl_global_sslset.md: Add SSL backend names [50] o CURLOPT_SSH_KNOWNHOSTS.md: strongly recommend using this [41] o CURLSHOPT_SHARE.md: adjust for the new SSL session cache [6] o docs: better explain multi-part byte range behavior [4] o docs: use valid example domain names [54] o generate.bat: remove curl_get_line.c from the curlx file list [20] o header.md: mention `Authorization:` and `Cookie:` special treatment [43] o imap: TLS upgrade fix [14] o INTERNALS: fix c-ares, as we actually support 1.6.0 or later [37] o ldap: drop support for legacy Novell LDAP SDK [25] o lib: include necessary headers for `inet_ntop`/`inet_pton` [8] o lib: silence LibreSSL collision warning on non-MSVC Windows [51] o libssh2: comparison is always true because rc <= -1 [56] o libssh2: raise lowest supported version to 1.2.8 [3] o libssh: drop support for libssh older than 0.9.0 [33] o libssh: silence `-Wconversion` with a cast (Windows 32-bit) [7] o netrc: return code cleanup, fix missing file error [45] o openssl-quic: ignore ciphers for h3 [1] o openssl: fix out of scope variables in goto [12] o pop3: TLS upgrade fix [15] o runtests: fix the disabling of the memory tracking [29] o runtests: quote commands to support paths with spaces [35] o scache: add magic checks [31] o smb: silence `-Warray-bounds` with gcc 13+ [9] o smtp: TLS upgrade fix [16] o SPONSORS.md: clarify that we don't promise goods or services [5] o test1516: avoid failure due to spaces in path [36] o test2080: simplify, avoid the null byte o tidy-up: make per-file `ARRAYSIZE` macros global as `CURL_ARRAYSIZE` [48] o tool_cfgable: sort struct fields by size, use bitfields for booleans [17] o tool_getparam: add "TLS required" flag for each such option [44] o tool_ssls: switch to tool-specific get_line function [34] o vtls: fix multissl-init [60] o vtsl: eliminate 'data->state.ssl_scache' [59] o wakeup_write: make sure the eventfd write sends eight bytes [46] o wolfssl: silence compiler warning (MSVC 2019), simplify existing [13] This release includes the following known bugs: See docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html) For all changes ever done in curl: See https://curl.se/changes.html Planned upcoming removals include: o Support for the msh3 HTTP/3 backend o The winbuild build system o TLS libraries not supporting TLS 1.3 See https://curl.se/dev/deprecate.html for details This release would not have looked like this without help, code, reports and advice from friends like these: Andrew Kirillov, arlt on github, Christian Schmitz, CueXXIII on Github, Dan Fandrich, Daniel Stenberg, deliciouslytyped on github, Fay Stegerman, Jan Engelhardt, Kai Pastor, Marcel Raad, Michael Kaufmann, mschroeder-fzj on github, nono303 on github, Philip Heiduck, qhill, Ralf A. Timmermann, Ray Satiro, renovate[bot], Stefan Eissing, Terence Eden, thisisgk on github, Viktor Szakats, zzq1015 on github (24 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/bug/?i=16232 [2] = https://curl.se/bug/?i=16202 [3] = https://curl.se/bug/?i=16199 [4] = https://curl.se/bug/?i=16139 [5] = https://curl.se/bug/?i=16196 [6] = https://curl.se/bug/?i=16245 [7] = https://curl.se/bug/?i=16194 [8] = https://curl.se/bug/?i=16184 [9] = https://curl.se/bug/?i=16187 [10] = https://curl.se/bug/?i=16169 [11] = https://curl.se/bug/?i=16233 [12] = https://curl.se/bug/?i=16246 [13] = https://curl.se/bug/?i=16230 [14] = https://curl.se/bug/?i=16213 [15] = https://curl.se/bug/?i=16208 [16] = https://curl.se/bug/?i=16189 [17] = https://curl.se/bug/?i=16211 [18] = https://curl.se/bug/?i=16227 [19] = https://curl.se/bug/?i=16209 [20] = https://curl.se/bug/?i=16248 [21] = https://curl.se/bug/?i=16126 [22] = https://curl.se/bug/?i=16153 [23] = https://curl.se/bug/?i=16146 [24] = https://curl.se/bug/?i=16207 [25] = https://curl.se/bug/?i=16176 [26] = https://curl.se/bug/?i=16182 [27] = https://curl.se/bug/?i=16198 [28] = https://curl.se/bug/?i=16144 [29] = https://curl.se/bug/?i=16226 [30] = https://curl.se/bug/?i=16191 [31] = https://curl.se/bug/?i=16240 [32] = https://curl.se/bug/?i=16243 [33] = https://curl.se/bug/?i=16200 [34] = https://curl.se/bug/?i=16201 [35] = https://curl.se/bug/?i=16220 [36] = https://curl.se/bug/?i=16223 [37] = https://curl.se/bug/?i=16221 [38] = https://curl.se/bug/?i=16242 [39] = https://curl.se/bug/?i=16190 [40] = https://curl.se/bug/?i=16214 [41] = https://curl.se/bug/?i=16204 [42] = https://curl.se/bug/?i=16183 [43] = https://curl.se/bug/?i=16160 [44] = https://curl.se/bug/?i=16159 [45] = https://curl.se/bug/?i=16163 [46] = https://curl.se/bug/?i=16237 [47] = https://curl.se/bug/?i=16179 [48] = https://curl.se/bug/?i=16111 [50] = https://curl.se/bug/?i=16256 [51] = https://curl.se/bug/?i=16273 [52] = https://curl.se/bug/?i=16216 [54] = https://curl.se/bug/?i=16269 [56] = https://curl.se/bug/?i=16268 [59] = https://curl.se/bug/?i=16261 [60] = https://curl.se/bug/?i=16253