curl and libcurl 8.11.0 Public curl releases: 262 Command line options: 265 curl_easy_setopt() options: 306 Public functions in libcurl: 94 Contributors: 3245 This release includes the following changes: o curl: --create-dirs works for --dump-header as well [4] o gtls: Add P12 format support [9] o ipfs: add options to disable [8] o WebSockets: make support official (non-experimental) [106] This release includes the following bugfixes: o alt-svc: honor data->state.httpwant [19] o autotools: add support for 'unity' builds, enable in CI [15] o build: add pytest targets [71] o build: clarify CA embed is for curl tool, mark default, improve summary [72] o build: fix cross-compile check for poll with bionic [70] o build: fix possible `-Wformat-overflow` in lib557 [85] o build: limit arc4random detection to no-SSL configs [43] o build: show if CA bundle to embed was found [83] o build: tidy up and improve versioned-symbols options [5] o build: tidy up deprecation suppression, enable warnings for clang [12] o checksrc: Added checks for colon operator in ternary expressions [77] o checksrc: check for spaces around '?', '>' and '<' [46] o cmake, Makefile.mk: use -isystem for headers, silence BearSSL issues [37] o cmake/FindNGTCP2: use library path as hint for finding crypto module [40] o cmake: allow building tests in unity mode [31] o cmake: delete unused NEED_LBER_H, HAVE_LDAP_H [38] o cmake: disable default OpenSSL if BearSSL, GnuTLS or Rustls is enabled [44] o cmake: drop redundant assignments [49] o cmake: drop redundant zlib var, rename function (internals) [50] o cmake: expand CURL_USE_PKGCONFIG to non-cross MINGW [13] o cmake: fix broken dependency chain for cmdline-opts, tidy-ups [11] o cmake: make `test-ci` target skip building dependencies [88] o cmake: readd `generate-curl.1` dependency for `src` just in case [86] o cmake: require quictls (or fork) when using msh3 on non-Windows [14] o cmake: separate target for examples, optimize CI, fix fallouts [16] o cmake: sync torture test parallelism with autotools [35] o configure: catch Apple in more target triplets [6] o configure: improve help string for some options [78] o curl: add build options for safe/no CA bundle search (Windows) [26] o curl_trc: fix build with verbose messages disabled [79] o curl_url_set.md: document HOST handling when URL is parsed [2] o CURLMOPT_PIPELINING.md: clarify that CURLPIPE_NOTHING is not default [54] o docs/cmdline-opts: GnuTLS supports PKCS#11 URI in --cert option [101] o ftp: fix 0-length last write on upload from stdin [76] o lib, src, tests: added space around ternary expressions [56] o lib/cw-out: initialize 'flush_all' directly [62] o lib/src: white space edits to comply better with code style [47] o lib: fix disabled-verbose-strings + enable-debug build warnings o lib: fix unity builds with BearSSL, MSH3, Quiche, OmniOS [32] o libssh.c: handle EGAINS during proto-connect correctly [23] o libssh2: use the Curl_* memory functions to avoid memdebug [22] o multi.c: make stronger check for paused transfer before asserting [24] o multi.c: warn/assert on stall only without timer [80] o multi: avoid reading whole struct pointer from pointer [10] o negotiate: conditional check around GSS & SSL specific code [1] o openssl: convert a memcpy to dynbuf use [57] o openssl: remove two strcpy() calls [64] o processhelp.pm: improve taskkill calls (Windows) [52] o quic: use send/recvmmsg when available [93] o request: on shutdown send, proceed normally on timeout [18] o runtests.md: suggest a value for -j for torture tests o runtests: drop unused code for old/classic-mingw support [87] o select: use poll() if existing, avoid poll() with no sockets [75] o sendf: add condition to max-filesize check [3] o singleuse: make `git grep` faster, add Apple `nm` support [109] o socks_gssapi: switch to dynbuf from buffer with strcpy [42] o test1035: convert host name back to utf8 as should be [63] o test1540: add debug logging [58] o test190: replace %FTPTIME2 with a fixed value [34] o test2502: add libtest debug tracing [60] o test504: fix handling on pending connect [59] o testrun: explicitly set proper IP address for stunnel listen/connect [61] o tests/valgrind.pm: fix warnings with no valgrind report to show [25] o tests: add and use `%PERL` variable to refer to the Perl binary [82] o tests: add codeset-utf8 as a feature [66] o tests: add file: tests with existing files [45] o tests: check http/2 and http/3 server responsiveness [28] o tests: delete duplicate macro check [53] o tests: fix keyword for test1411 o tests: improve mqtt server handling [27] o tests: introduce %CLIENT6IP-NB [67] o tests: libtests and unit tests need explicit #include memdebug [7] o tests: make precheck for HTTP on 127.0.0.1 into a feature [68] o tests: Only log warnings or worse by default in smbserver [33] o tests: postcheck is now in verify [69] o tests: remove all valgrind disable instructions [21] o tests: remove the %FTPTIME3 variable [41] o tests: replace `%PWD` with `%FILE_PWD` for `file://` [84] o tests: replace hard-coded `/dev/null` with variable [81] o tests: speed up builds with single-binary test bundles [29] o tests: testrunner fairness [39] o tests: testrunner reliability improvements [55] o tests: use '-4' where needed [17] o tidy-up: rename CURL_WINDOWS_APP to CURL_WINDOWS_UWP [36] o tool_doswin: simplify; remove unused options and strncpy calls [65] o unit1660: fix unreachable code warning in no-SSL builds [30] o url: connection reuse on h3 connections [20] o urlapi: drop unused header [51] 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 Hyper support after February 2025 [89] 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: Aki Sakurai, Baruch Siach, Dan Fandrich, Daniel Stenberg, Denis Goleshchikhin, dependabot[bot], Gabriel Marin, Ian Spence, Jon Rumsey, Kai Pastor, lomberd2 on github, MacKenzie, Montg0mery on github, Nicolas George, Pavel Kropachev, ralfjunker on github, Rasmus Melchior Jacobsen, Ray Satiro, renovate[bot], Stefan Eissing, Tal Regev, Tatsuhiro Tsujikawa, Testclutch, Venkat Krishna R, Viktor Szakats, vvb2060 on github (26 contributors) References to bug reports and discussions on issues: [1] = https://curl.se/bug/?i=14938 [2] = https://curl.se/bug/?i=14942 [3] = https://curl.se/bug/?i=14958 [4] = https://curl.se/bug/?i=14941 [5] = https://curl.se/bug/?i=14818 [6] = https://curl.se/bug/?i=14728 [7] = https://curl.se/bug/?i=15007 [8] = https://curl.se/bug/?i=14824 [9] = https://curl.se/bug/?i=14991 [10] = https://curl.se/bug/?i=15063 [11] = https://curl.se/bug/?i=14883 [12] = https://curl.se/bug/?i=14789 [13] = https://curl.se/bug/?i=14658 [14] = https://curl.se/bug/?i=15003 [15] = https://curl.se/bug/?i=14815 [16] = https://curl.se/bug/?i=14906 [17] = https://curl.se/bug/?i=15060 [18] = https://curl.se/bug/?i=14843 [19] = https://curl.se/bug/?i=14966 [20] = https://curl.se/bug/?i=14890 [21] = https://curl.se/bug/?i=14983 [22] = https://curl.se/bug/?i=14984 [23] = https://curl.se/bug/?i=14982 [24] = https://curl.se/bug/?i=14981 [25] = https://curl.se/bug/?i=14977 [26] = https://curl.se/bug/?i=14582 [27] = https://curl.se/bug/?i=15059 [28] = https://curl.se/bug/?i=15058 [29] = https://curl.se/bug/?i=14772 [30] = https://curl.se/bug/?i=14971 [31] = https://curl.se/bug/?i=14765 [32] = https://curl.se/bug/?i=14932 [33] = https://curl.se/bug/?i=14950 [34] = https://curl.se/bug/?i=15056 [35] = https://curl.se/bug/?i=14969 [36] = https://curl.se/bug/?i=14881 [37] = https://curl.se/bug/?i=14763 [38] = https://curl.se/bug/?i=14690 [39] = https://curl.se/bug/?i=14967 [40] = https://github.com/curl/curl-for-win/blob/8b8909e1206de1dcca356a8dd33eb1e4ffeea7fd/curl.sh#L289 [41] = https://curl.se/bug/?i=15064 [42] = https://curl.se/bug/?i=15057 [43] = https://curl.se/bug/?i=14909 [44] = https://curl.se/bug/?i=14828 [45] = https://curl.se/bug/?i=15045 [46] = https://curl.se/bug/?i=14921 [47] = https://curl.se/bug/?i=14921 [49] = https://curl.se/bug/?i=14924 [50] = https://curl.se/bug/?i=14918 [51] = https://curl.se/bug/?i=14867 [52] = https://curl.se/bug/?i=14959 [53] = https://curl.se/bug/?i=14963 [54] = https://curl.se/bug/?i=14961 [55] = https://curl.se/bug/?i=14960 [56] = https://curl.se/bug/?i=14912 [57] = https://curl.se/bug/?i=15049 [58] = https://curl.se/bug/?i=15055 [59] = https://curl.se/bug/?i=15054 [60] = https://curl.se/bug/?i=15053 [61] = https://curl.se/bug/?i=15051 [62] = https://curl.se/bug/?i=15044 [63] = https://curl.se/bug/?i=15050 [64] = https://curl.se/bug/?i=15052 [65] = https://curl.se/bug/?i=15047 [66] = https://curl.se/bug/?i=15039 [67] = https://curl.se/bug/?i=15039 [68] = https://curl.se/bug/?i=15039 [69] = https://curl.se/bug/?i=15046 [70] = https://curl.se/bug/?i=15013 [71] = https://curl.se/bug/?i=15034 [72] = https://curl.se/bug/?i=15035 [75] = https://curl.se/bug/?i=15096 [76] = https://curl.se/bug/?i=15101 [77] = https://curl.se/bug/?i=14990 [78] = https://curl.se/bug/?i=15033 [79] = https://curl.se/bug/?i=15026 [80] = https://curl.se/bug/?i=15028 [81] = https://curl.se/bug/?i=15098 [82] = https://curl.se/bug/?i=15097 [83] = https://curl.se/bug/?i=15027 [84] = https://curl.se/bug/?i=15090 [85] = https://curl.se/bug/?i=15012 [86] = https://curl.se/bug/?i=15088 [87] = https://curl.se/bug/?i=15087 [88] = https://curl.se/bug/?i=15001 [89] = https://curl.se/bug/?i=15010 [93] = https://curl.se/bug/?i=14880 [101] = https://curl.se/bug/?i=15075 [106] = https://curl.se/bug/?i=14936 [109] = https://curl.se/bug/?i=15070