curl/RELEASE-NOTES
2025-06-20 13:08:55 +02:00

204 lines
8.5 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: 3437
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: 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_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 easy: fix comment-documentation [36]
o http2: do not delay RST send on aborted transfer [57]
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 mk-bundle exceptions [25]
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 url: fix connection lifetime checks [14]
o urlapi: simplify and split into sub functions [16]
o vauth: move auth structs to conn meta data [30]
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]
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, Bernhard M. Wiedemann, Brad Harder, Brian Harris, Calvin Ruocco,
Carlos Henrique Lima Melara, Christian Weisgerber, Dan Fandrich,
Daniel McCarney, Daniel Stenberg, Edwin Török, fjaell on github,
hiimmat on github, John Haugabook, Michael Kaufmann, Orgad Shaneh,
Ray Satiro, renovate[bot], Rod Widdowson, Stefan Eissing, Theodore A. Roth,
Tristan Perrault, Viktor Szakats, Yedaya Katsman
(24 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
[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
[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
[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
[66] = https://curl.se/bug/?i=17632
[69] = https://curl.se/bug/?i=17581
[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
[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
[84] = https://curl.se/bug/?i=17602
[86] = https://curl.se/bug/?i=17595
[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
[94] = https://curl.se/bug/?i=17471
[95] = https://curl.se/bug/?i=17585
[96] = https://curl.se/bug/?i=17575