curl and libcurl 8.10.0 Public curl releases: 260 Command line options: 265 curl_easy_setopt() options: 306 Public functions in libcurl: 94 Contributors: 3218 This release includes the following changes: o curl: --help [option] displays documentation for given cmdline option [19] o curl: add --skip-existing [54] o curl: for -O, use "default" as filename when the URL has none [34] o curl: make --rate accept "number of units" [4] o curl: make --show-headers the same as --include [6] o curl: support --dump-header % to direct to stderr [31] o curl: support embedding a CA bundle and --dump-ca-embed [20] o curl: support repeated use of the verbose option; -vv etc [35] o curl: use libuv for parallel transfers with --test-event [82] o mbedtls: add CURLOPT_TLS13_CIPHERS support [78] o vtls: stop offering alpn http/1.1 for http2-prior-knowledge [53] o wolfssl: add CURLOPT_TLS13_CIPHERS support [76] o wolfssl: add support for ssl cert blob / ssl key blob options [50] This release includes the following bugfixes: o autotools: fix typo in tests/data target [30] o aws_sigv4: fix canon order for headers with same prefix [74] o bearssl: improve shutdown handling [45] o cfilters: send flush [13] o CHANGES: rename to CHANGES.md, no longer generated [40] o CI: enable parallel testing in CI builds [18] o ci: Update actions/upload-artifact digest to 89ef406 [24] o cmake: add Linux CI job, fix pytest with cmake [71] o cmake: add math library when using wolfssl and ngtcp2 [66] o cmake: add support for versioned symbols option [51] o cmake: cleanup header paths [59] o cmake: detect `nghttp2` via `pkg-config`, enable by default [21] o cmake: distcheck for files in CMake subdir [9] o cmake: drop custom `CMakeOutput.log`/`CMakeError.log` logs [27] o cmake: drop no-op `tests/data/CMakeLists.txt` [26] o cmake: drop reference to undefined variable [25] o cmake: drop unused `HAVE_IDNA_STRERROR` [62] o cmake: drop unused internal variable [22] o cmake: fix `GSS_VERSION` for Heimdal found via pkg-config [77] o cmake: show CMake platform/compiler flags [63] o cmake: use numeric comparison for `HAVE_WIN32_WINNT` [69] o configure: detect AppleIDN [70] o configure: fail if PSL is not disabled but not found [46] o curl: allow 500MB data URL encode strings [38] o Curl_rand_bytes to control env override [17] o dist: add missing `docs/examples/CMakeLists.txt` [58] o dist: add missing `FindNettle.cmake` [11] o dist: drop buildconf [65] o dist: fix reproducible build from release tarball [36] o dmaketgz: only run 'make distclean' if Makefile exists o docs: mention "@-" in more places [67] o doh-url.md: point out DOH server IP pinning [37] o easy: fix curl_easy_upkeep for shared connection caches [52] o escape: allow curl_easy_escape to generate 3*input length output [39] o GHA/windows: enable MulitSSL in an MSVC job [2] o GHA: scan git repository and detect unvetted binary files [3] o http2: improve rate limiting of downloads [33] o http2: improved upload eos handling [41] o INSTALL.md: MultiSSL and QUIC are mutually exclusive [7] o KNOWN_BUGS: "special characers" in URL works with aws-sigv4 [81] o lib: add eos flag to send methods [14] o lib: convert some debugf()s into traces [8] o libcurl.pc: add `Cflags.private` [10] o Makefile.mk: fixup enabling libidn2 [61] o Makefile: remove 'scripts' duplicate from DIST_SUBDIRS o maketgz: accept option to include latest commit hash [5] o ngtcp2: use NGHTTP3 prefix instead of NGTCP2 for errors in h3 callbacks [79] o openssl: improve shutdown handling [44] o progress: ratelimit/progress tweaks [32] o pytests: add tests for HEAD requests in all HTTP versions [42] o runtests: if DISABLED cannot be read, error out [56] o rustls: make all tests pass [1] o sigpipe: init the struct so that first apply ignores [49] o tests/runner: only allow [!A-Za-z0-9_-] in %if feature names [55] o tests: provide docs as curldown, not nroff [12] o tidy-up: OS names [57] o tool_operhlp: fix "potentially uninitialized local variable 'pc' used" [48] o url: dns_entry related improvements [16] o verify-release: shell script that verifies a release tarball [29] o vtls: fix MSVC 'cast truncates constant value' warning [23] o vtls: init ssl peer only once [15] o wolfssl: improve shutdown handling [43] o x509asn1: raise size limit for x509 certification information [28] 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 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: Alex Snast, Antoine du Hamel, Austin Moore, Christoph Reiter, Dan Fandrich, Daniel Stenberg, David Sardari, dependabot[bot], Jan Venekamp, Joe Birr-Pixton, kit-ty-kate on github, Matt Jolly, Moritz Buhl, Rasmus Thomsen, Ray Satiro, renovate[bot], Ryan Carsten Schmidt, Sergio Durigan Junior, Slaven Rezić, Stefan Eissing, Tal Regev, Viktor Szakats, Yedaya Katsman (23 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/bug/?i=14317 [2] = https://curl.se/bug/?i=14276 [3] = https://curl.se/bug/?i=14333 [4] = https://curl.se/bug/?i=14245 [5] = https://curl.se/bug/?i=14363 [6] = https://curl.se/bug/?i=13987 [7] = https://curl.se/bug/?i=14308 [8] = https://curl.se/bug/?i=14322 [9] = https://curl.se/bug/?i=14323 [10] = https://curl.se/bug/?i=14321 [11] = https://curl.se/bug/?i=14285 [12] = https://curl.se/bug/?i=14324 [13] = https://curl.se/bug/?i=14271 [14] = https://curl.se/bug/?i=14220 [15] = https://curl.se/bug/?i=14152 [16] = https://curl.se/bug/?i=14195 [17] = https://curl.se/bug/?i=14264 [18] = https://curl.se/bug/?i=11510 [19] = https://curl.se/bug/?i=13997 [20] = https://curl.se/bug/?i=14059 [21] = https://curl.se/bug/?i=14136 [22] = https://curl.se/bug/?i=14361 [23] = https://curl.se/bug/?i=14341 [24] = https://curl.se/bug/?i=14359 [25] = https://curl.se/bug/?i=14358 [26] = https://curl.se/bug/?i=14357 [27] = https://curl.se/bug/?i=14356 [28] = https://curl.se/bug/?i=14352 [29] = https://curl.se/bug/?i=14350 [30] = https://curl.se/bug/?i=14355 [31] = https://curl.se/bug/?i=13992 [32] = https://curl.se/bug/?i=14335 [33] = https://curl.se/bug/?i=14326 [34] = https://curl.se/bug/?i=13988 [35] = https://curl.se/bug/?i=13977 [36] = https://curl.se/bug/?i=14336 [37] = https://curl.se/bug/?i=14377 [38] = https://curl.se/bug/?i=14337 [39] = https://curl.se/bug/?i=14339 [40] = https://curl.se/bug/?i=14331 [41] = https://curl.se/bug/?i=14253 [42] = https://curl.se/bug/?i=14367 [43] = https://curl.se/bug/?i=14376 [44] = https://curl.se/bug/?i=14375 [45] = https://curl.se/bug/?i=14374 [46] = https://curl.se/bug/?i=14373 [48] = https://curl.se/bug/?i=14389 [49] = https://curl.se/bug/?i=14344 [50] = https://curl.se/bug/?i=14018 [51] = https://curl.se/bug/?i=14349 [52] = https://curl.se/bug/?i=12677 [53] = https://curl.se/bug/?i=9963 [54] = https://curl.se/bug/?i=13993 [55] = https://curl.se/bug/?i=14403 [56] = https://curl.se/bug/?i=14411 [57] = https://curl.se/bug/?i=14360 [58] = https://curl.se/bug/?i=14380 [59] = https://curl.se/bug/?i=14416 [61] = https://curl.se/bug/?i=14421 [62] = https://curl.se/bug/?i=14420 [63] = https://curl.se/bug/?i=14417 [65] = https://curl.se/bug/?i=14412 [66] = https://curl.se/bug/?i=14343 [67] = https://curl.se/bug/?i=14402 [69] = https://curl.se/bug/?i=14409 [70] = https://curl.se/bug/?i=14401 [71] = https://curl.se/bug/?i=14382 [74] = https://curl.se/bug/?i=14370 [76] = https://curl.se/bug/?i=14385 [77] = https://curl.se/bug/?i=14393 [78] = https://curl.se/bug/?i=14384 [79] = https://curl.se/bug/?i=14394 [81] = https://curl.se/bug/?i=13754 [82] = https://curl.se/bug/?i=14298