curl/RELEASE-NOTES
2025-06-21 11:10:05 +02:00

235 lines
9.9 KiB
Text

curl and libcurl 8.15.0
Public curl releases: 269
Command line options: 269
curl_easy_setopt() options: 308
Public functions in libcurl: 96
Contributors: 3442
This release includes the following changes:
o TLS: remove support for Secure Transport and BearSSL [19]
This release includes the following bugfixes:
o asyn-thrdd: free the previous name before strdup'ing the new [84]
o autotools: drop `$top_builddir/src` from src header path [23]
o autotools: drop no longer necessary `--srcdir` unity options [66]
o autotools: simplify configuration in tests, examples [47]
o build: assume `sys/socket.h`, `sys/time.h` on non-Windows (as in `curl/curl.h`) [21]
o build: drop `HAVE_SYS_SOCKET_H` and `HAVE_SYS_TIME_H` macros [69]
o build: drop unused variables in tests
o build: sync build scripts between client/libtest [49]
o build: tidy up header paths, use srcdir where possible [42]
o cmake: build `stubgss` library for libtests to match autotools [34]
o cmake: document OpenSSL and ngtcp2 crypto lib custom variables [29]
o cmake: drop never propagated C macros [22]
o cmake: drop passing redundant `CURL_STATICLIB` in examples and clients [52]
o cmake: drop redundant macro from test clients [51]
o cmake: make docs depend on support files [80]
o cmake: move `OUTPUT` argument in the `add_custom_command()` line [50]
o cmake: omit clang-tidy on internal libs curlu and curltool [64]
o cmake: replace `cmakelint` with `cmake-lint` from `cmakelang`, fix issues [20]
o cmake: simplify handling generated `lib1521.c` in libtests [24]
o cmake: sync `target_link_libraries()` order in tests more [44]
o cmake: sync tests scripts by using the variable `BUNDLE` [46]
o cmake: use `target_link_options()` when available [43]
o connection: eliminate member `remote_addr` [10]
o curl.h: make CURLSSLOPT_* symbols defined as longs [3]
o curl.h: remove the "RESERVED" error codes [2]
o curl: implement non-blocking STDIN read on Windows [28]
o curl_path: make SFTP handle a path like /~ properly. [11]
o digest: fix build with disabled digest auth [72]
o docs/examples: add ftp-delete.c [5]
o docs: fix broken link in CODE_REVIEW.md [67]
o docs: fix broken link in INSTALL.md [68]
o docs: fix docs for CURLOPT_PREQUOTE after #17616 [70]
o docs: fix documentation of connect_only 2 [78]
o easy: fix comment-documentation [36]
o ftp: fix prequotes for a directory in URL [83]
o ftplistparser: split parse_unix into sub functions [77]
o http2: do not delay RST send on aborted transfer [57]
o http: explicitly ignore parsing errors for Retry-After [98]
o http_ntlm: protect against null deref [95]
o http_ntlm: remove unreachable code [88]
o INSTALL.md: cygwin details and add source code link [4]
o lib: avoid reusing unclean connection [73]
o lib: make `CURLX_SET_BINMODE()` and use it [39]
o lib: make `curlx_wait_ms()` and use it [40]
o lib: unify recv/send function signatures [92]
o libssh: de-complex myssh_statemach_act() [18]
o libtests: make test 1503,1504,1505 use the 1502 binary [90]
o libtests: stop building the sames source multiple times [89]
o memdebug: include in unity batch [63]
o multi: do no expire a blocked transfer [56]
o multi: fix polling with pending input [60]
o openssl: enable readahead [91]
o openssl: error on SSL_ERROR_SYSCALL [94]
o openssl: fix handling of buffered data [82]
o openssl: fix openssl engine use [74]
o pingpong: on disconnect, check for unflushed pingpong state [12]
o pytest test_07_70, weaken early data check [96]
o pytest: adapt for runs with openssl-1.1.1
o pytest: disable test_07_37 and test_07_36 with openssl's quic [1]
o RELEASE-PROCEDURE.md: update docs/VERSIONS [7]
o schannel: allow partial chains for manual peer verification [79]
o schannel: drop Windows 2000 compatibility logic [26]
o SCP/SFTP: avoid busy loop after EAGAIN [8]
o system.h: remove some macros [6]
o test1117: reduce write delays [9]
o test1596: let test pass after year 2036 [35]
o tests/client: drop autotools logic no longer necessary [45]
o tests/client: use `curl_mfprintf()` [48]
o tests/http/clients: drop hack and use `curl_setup.h` again [58]
o tests/http/clients: move to tests/client [53]
o tests/server: make all global vars/funcs static [41]
o tests/servers.pm: add more ways to figure out current user [17]
o tests: always make bundles, adapt build and tests [81]
o tests: bundle http clients, de-dupe, enable for MSVC [61]
o tests: drop `BUNDLE_SRC` variable [59]
o tests: drop mk-bundle exceptions [25]
o tests: drop useless "nodist_SOURCES" assignments [93]
o tests: fail torture if !valgrind&threaded resolver [31]
o tests: make sshserver less verbose [55]
o tests: torture: don't duplicate valgrind command [32]
o tftpd: use `CURLMIN()` macro [38]
o tls: remove Curl_ssl false_start [86]
o tool_getparam: fix --ftp-pasv [15]
o tool_operate: fix return code when --retry is used but not triggered [13]
o top-complexity: lower max allowed complexity threshold to 90 [33]
o url: fix connection lifetime checks [14]
o url: fix NULL deref with bad password when no user is provided [87]
o urlapi: simplify and split into sub functions [16]
o vauth: move auth structs to conn meta data [30]
o vtls: change send/recv signatures of tls backends [65]
o warnless: drop parts of the `read`/`write` preprocessor hack (Windows) [37]
o warnless: replace `read()`/`write()` wrapper functions with macros (Windows) [75]
o windows: fixup `fopen()` in `CURLDEBUG` builds [62]
o windows: reduce/stop loading DLLs at runtime [27]
o xfer: manage pause bits [97]
This release includes the following known bugs:
See 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 Supporting curl builds using VS2008
o The winbuild build system
o Windows CE support
See https://curl.se/dev/deprecate.html
This release would not have looked like this without help, code, reports and
advice from friends like these:
4lan.m, Bartosz Ruszczak, Bernhard M. Wiedemann, Brad Harder, Brian Harris,
Calvin Ruocco, Carlos Henrique Lima Melara, Christian Weisgerber,
Dan Fandrich, Daniel McCarney, Daniel Stenberg, DoI, Edwin Török,
Ethan Alker, Fabrício Canedo, fjaell on github, hiimmat on github,
Joel Depooter, John Haugabook, Kirill Obukhov, Michael Kaufmann,
Orgad Shaneh, Ray Satiro, renovate[bot], Rod Widdowson, Stefan Eissing,
Theodore A. Roth, Tristan Perrault, Viktor Szakats, Yedaya Katsman, z2_
(31 contributors)
References to bug reports and discussions on issues:
[1] = https://curl.se/bug/?i=17539
[2] = https://curl.se/bug/?i=17563
[3] = https://curl.se/bug/?i=17535
[4] = https://curl.se/bug/?i=17485
[5] = https://curl.se/bug/?i=17540
[6] = https://curl.se/bug/?i=17498
[7] = https://curl.se/bug/?i=17584
[8] = https://curl.se/bug/?i=17533
[9] = https://curl.se/bug/?i=17530
[10] = https://curl.se/bug/?i=17385
[11] = https://curl.se/bug/?i=17534
[12] = https://curl.se/bug/?i=17555
[13] = https://curl.se/bug/?i=17554
[14] = https://curl.se/bug/?i=17571
[15] = https://curl.se/bug/?i=17545
[16] = https://curl.se/bug/?i=17565
[17] = https://curl.se/bug/?i=17544
[18] = https://curl.se/bug/?i=17573
[19] = https://curl.se/bug/?i=16677
[20] = https://curl.se/bug/?i=17576
[21] = https://curl.se/bug/?i=17522
[22] = https://curl.se/bug/?i=17580
[23] = https://curl.se/bug/?i=17679
[24] = https://curl.se/bug/?i=17676
[25] = https://curl.se/bug/?i=17468
[26] = https://curl.se/bug/?i=17447
[27] = https://curl.se/bug/?i=17413
[28] = https://curl.se/bug/?i=17451
[29] = https://curl.se/bug/?i=17574
[30] = https://curl.se/bug/?i=17557
[31] = https://curl.se/bug/?i=17501
[32] = https://curl.se/bug/?i=17501
[33] = https://curl.se/bug/?i=17689
[34] = https://curl.se/bug/?i=17653
[35] = https://curl.se/bug/?i=17665
[36] = https://curl.se/bug/?i=17664
[37] = https://curl.se/bug/?i=17673
[38] = https://curl.se/bug/?i=17674
[39] = https://curl.se/bug/?i=17672
[40] = https://curl.se/bug/?i=17641
[41] = https://curl.se/bug/?i=17671
[42] = https://curl.se/bug/?i=17630
[43] = https://curl.se/bug/?i=17670
[44] = https://curl.se/bug/?i=17669
[45] = https://curl.se/bug/?i=17668
[46] = https://curl.se/bug/?i=17667
[47] = https://curl.se/bug/?i=17661
[48] = https://curl.se/bug/?i=17651
[49] = https://curl.se/bug/?i=17660
[50] = https://curl.se/bug/?i=17658
[51] = https://curl.se/bug/?i=17657
[52] = https://curl.se/bug/?i=17655
[53] = https://curl.se/bug/?i=17637
[55] = https://curl.se/bug/?i=17647
[56] = https://curl.se/bug/?i=17639
[57] = https://curl.se/bug/?i=17611
[58] = https://curl.se/bug/?i=17642
[59] = https://curl.se/bug/?i=17692
[60] = https://curl.se/bug/?i=17636
[61] = https://curl.se/bug/?i=17627
[62] = https://curl.se/bug/?i=16747
[63] = https://curl.se/bug/?i=16746
[64] = https://curl.se/bug/?i=17693
[65] = https://curl.se/bug/?i=17593
[66] = https://curl.se/bug/?i=17632
[67] = https://curl.se/bug/?i=17656
[68] = https://github.com/curl/curl-www/issues/427
[69] = https://curl.se/bug/?i=17581
[70] = https://curl.se/bug/?i=17690
[72] = https://curl.se/bug/?i=17612
[73] = https://curl.se/bug/?i=17578
[74] = https://curl.se/bug/?i=17617
[75] = https://curl.se/bug/?i=17619
[77] = https://curl.se/bug/?i=17608
[78] = https://curl.se/bug/?i=17621
[79] = https://curl.se/bug/?i=17418
[80] = https://curl.se/bug/?i=17620
[81] = https://curl.se/bug/?i=17590
[82] = https://curl.se/bug/?i=17601
[83] = https://curl.se/bug/?i=8602
[84] = https://curl.se/bug/?i=17602
[86] = https://curl.se/bug/?i=17595
[87] = https://curl.se/bug/?i=17659
[88] = https://curl.se/bug/?i=17587
[89] = https://curl.se/bug/?i=17598
[90] = https://curl.se/bug/?i=17591
[91] = https://curl.se/bug/?i=17548
[92] = https://curl.se/bug/?i=17546
[93] = https://curl.se/bug/?i=17688
[94] = https://curl.se/bug/?i=17471
[95] = https://curl.se/bug/?i=17585
[96] = https://curl.se/bug/?i=17575
[97] = https://curl.se/bug/?i=17650
[98] = https://curl.se/bug/?i=17682