RELEASE-NOTES 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. curl and libcurl 8.4.0
  2. Public curl releases: 252
  3. Command line options: 258
  4. curl_easy_setopt() options: 303
  5. Public functions in libcurl: 93
  6. Contributors: 2993
  7. This release includes the following changes:
  8. o curl: add support for the IPFS protocols via HTTP gateway [46]
  9. o curl_multi_get_handles: get easy handles from a multi handle [20]
  10. o mingw: delete support for legacy mingw.org toolchain [45]
  11. This release includes the following bugfixes:
  12. o acinclude.m4: Document proper system truststore on FreeBSD [83]
  13. o appveyor: fix yamlint issues, indent [67]
  14. o appveyor: rewrite batch in PowerShell + CI improvements [109]
  15. o autotools: adjust `CURL_CA_PATH` value to CMake [53]
  16. o autotools: restore `HAVE_IOCTL_*` detections [111]
  17. o base64: also build for curl [78]
  18. o bufq: remove Curl_bufq_skip_and_shift (unused) [47]
  19. o build: delete checks for C89 standard headers [65]
  20. o cmake, configure: also link with CoreServices [32]
  21. o cmake: add check for suseconds_t [91]
  22. o cmake: add feature checks for `memrchr` and `getifaddrs` [57]
  23. o cmake: add missing checks [86]
  24. o cmake: delete old `HAVE_LDAP_URL_PARSE` logic [105]
  25. o cmake: detect `HAVE_CLOCK_GETTIME_MONOTONIC_RAW` [75]
  26. o cmake: detect `HAVE_GETADDRINFO_THREADSAFE` [76]
  27. o cmake: detect `sys/wait.h` and `netinet/udp.h` [61]
  28. o cmake: detect TLS-SRP in OpenSSL/wolfSSL/GnuTLS [93]
  29. o cmake: disable unity mode with Windows Unicode + TrackMemory [108]
  30. o cmake: fix `HAVE_LDAP_SSL`, `HAVE_LDAP_URL_PARSE` on non-Windows [110]
  31. o cmake: fix `HAVE_WRITABLE_ARGV` detection [77]
  32. o cmake: fix duplicate symbols when linking tests [73]
  33. o cmake: fix missing `zlib.h` when compiling `libcurltool` [72]
  34. o cmake: fix stderr initialization in unity builds [71]
  35. o cmake: fix the help text to the static build option in CMakeLists.txt [10]
  36. o cmake: fix unity builds for more build combinations [96]
  37. o cmake: fix unity symbol collisions in h2 builds [48]
  38. o cmake: fix unity with Windows Unicode + TrackMemory [107]
  39. o cmake: improve OpenLDAP builds [92]
  40. o cmake: lib `CURL_STATICLIB` fixes (Windows) [74]
  41. o cmake: move global headers to specific checks [58]
  42. o cmake: pre-cache `HAVE_BASENAME` for mingw-w64 and MSVC [85]
  43. o cmake: pre-cache `HAVE_POLL_FINE` on Windows [36]
  44. o cmake: tidy-up `NOT_NEED_LBER_H` detection
  45. o cmake: validate `CURL_DEFAULT_SSL_BACKEND` config value [50]
  46. o configure: check for the capath by default [63]
  47. o configure: remove unused checks [87]
  48. o configure: replace adhoc domain with `localhost` in tests [79]
  49. o configure: sort AC_CHECK_FUNCS
  50. o connect: expire the timeout when trying next [54]
  51. o connect: only start the happy eyeballs timer when needed [95]
  52. o cookie: do not store the expire or max-age strings [16]
  53. o cookie: remove unnecessary struct fields [17]
  54. o cookie: set ->running in cookie_init even if data is NULL [5]
  55. o create-dirs.d: clarify it also uses --output-dirs [66]
  56. o curl.h: mark CURLSSLBACKEND_NSS as deprecated since 8.3.0 [18]
  57. o docs: adapt SEE ALSO sections to new requirements [52]
  58. o docs: explain how PINNEDPUBLICKEY is independent of VERIFYPEER [68]
  59. o docs: replace made up domains with example.com [82]
  60. o docs: update curl man page references [89]
  61. o docs: use CURLSSLBACKEND_NONE [19]
  62. o doh: inherit DEBUGFUNCTION/DATA [12]
  63. o escape: replace Curl_isunreserved with ISUNRESERVED [2]
  64. o FAQ: How do I upgrade curl.exe in Windows? [84]
  65. o GHA/linux: run singleuse to detect single-use global functions [35]
  66. o GHA: add workflow to compare configure vs cmake outputs [102]
  67. o h2-proxy: remove left-over mistake in drain_tunnel() [7]
  68. o h2: testcase and fix for pausing h2 streams [49]
  69. o http: fix CURL_DISABLE_BEARER_AUTH breakage [28]
  70. o http: h1/h2 proxy unification [21]
  71. o http: remove wrong comment for http_should_fail [55]
  72. o http: use per-request counter to check too large headers [6]
  73. o http_aws_sigv4: fix sorting with empty parts [13]
  74. o idn: fix WinIDN null ptr deref on bad host [90]
  75. o idn: if idn2_check_version returns NULL, return error [27]
  76. o inet_ntop: add typecast to silence Coverity [51]
  77. o lib: disambiguate Curl_client_write flag semantics [24]
  78. o lib: enable hmac for digest as well [26]
  79. o lib: failf/infof compiler warnings [8]
  80. o lib: let the max filesize option stop too big transfers too [44]
  81. o lib: move handling of `data->req.writer_stack` into Curl_client_write() [97]
  82. o lib: provide and use Curl_hexencode [62]
  83. o lib: remove TIME_WITH_SYS_TIME [88]
  84. o lib: use wrapper for curl_mime_data fseek callback [30]
  85. o libssh2: fix error message on failed pubkey-from-file [22]
  86. o libssh: cap SFTP packet size sent [14]
  87. o Makefile.mk: always set `CURL_STATICLIB` for lib (Windows) [42]
  88. o MANUAL.md: change domain to example.com [11]
  89. o misc: better random strings [15]
  90. o multi: fix small timeouts [70]
  91. o multi: remove Curl_multi_dump [37]
  92. o multi: round the timeout up to prevent early wakeups [98]
  93. o openssl: improve ssl shutdown handling [69]
  94. o pytest: exclude test_03_goaway in CI runs due to timing dependency [23]
  95. o quic: set ciphers/curves the same way regular TLS does [43]
  96. o quiche: fix build error with --with-ca-fallback [1]
  97. o RELEASE-PROCEDURE.md: updated coming release dates
  98. o runtests: display the test status if tests appear hung [81]
  99. o runtests: eliminate a warning on old perl versions
  100. o src/mkhelp: make generated code pass `checksrc` [59]
  101. o test1056: disable on Windows
  102. o test1474: disable test on NetBSD, OpenBSD and Solaris 10 [31]
  103. o test1592: greatly increase the maximum test timeout
  104. o test2600: remove special case handling for USE_ALARM_TIMEOUT [3]
  105. o test650: fix an end tag typo
  106. o test661: return from test early in case of curl error
  107. o tests: close the shell used to start sshd [41]
  108. o tests: fix compiler warnings [38]
  109. o tests: Fix zombie processes left behind by FTP tests. [80]
  110. o tests: improve SLOWDOWN test reliability by reducing sent data
  111. o tests: increase lib571 timeout from 3s to 30s [106]
  112. o tests: log the test result code after each libtest
  113. o tests: propagate errors in libtests
  114. o tests: set --expect100-timeout to improve test reliability
  115. o tests: show which curl tool `runtests.pl` is using [60]
  116. o tests: stop overriding the lock timeout
  117. o tftpd: always use curl's own tftp.h [25]
  118. o tool: use our own stderr variable [94]
  119. o tool_cb_wrt: fix debug assertion [4]
  120. o tool_setopt: remove unused function tool_setopt_flags [56]
  121. o upload-file.d: describe the file name slash/backslash handling [9]
  122. o url: fix netrc info message [39]
  123. o warnless: remove unused functions [33]
  124. o wolfssh: do cleanup in Curl_ssh_cleanup [40]
  125. o wolfssl: allow capath with CURLOPT_CAINFO_BLOB [29]
  126. o wolfssl: if CURLOPT_CAINFO_BLOB is set, ignore the CA files [34]
  127. o wolfssl: ignore errors in CA path [64]
  128. This release includes the following known bugs:
  129. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  130. Planned upcoming removals include:
  131. o support for space-separated NOPROXY patterns
  132. See https://curl.se/dev/deprecate.html for details
  133. This release would not have looked like this without help, code, reports and
  134. advice from friends like these:
  135. Aleksander Mazur, calvin2021y on github, Christian Schmitz,
  136. Christian Weisgerber, claudiusaiz on github, consulion on github,
  137. Dan Fandrich, Daniel Stenberg, Douglas R. Reno, Eduard Strehlau,
  138. Elliot Killick, Gisle Vanem, Hakan Sunay Halil, Harry Sintonen, Jakub Jelen,
  139. John Haugabook, Joshix-1 on github, Juliusz Sosinowicz, Junho Choi,
  140. Karthikdasari0423 on github, Lars Francke, Loïc Yhuel, Marc Hörsken,
  141. Mark Gaiser, Mathias Fuchs, Michael Osipov, Natanael Copa, Patrick Monnerat,
  142. Peter Wang, Ray Satiro, Robert Simpson, Ryan Schmidt, s0urc3_ on hackerone,
  143. Samuel Henrique, Stefan Eissing, Ted Lyngmo, Viktor Szakats, vvb2060, 南宫雪珊
  144. (39 contributors)
  145. References to bug reports and discussions on issues:
  146. [1] = https://curl.se/bug/?i=11850
  147. [2] = https://curl.se/bug/?i=11846
  148. [3] = https://curl.se/bug/?i=11767
  149. [4] = https://github.com/curl/curl/commit/af3f4e41#r127212213
  150. [5] = https://curl.se/bug/?i=11875
  151. [6] = https://curl.se/bug/?i=11871
  152. [7] = https://curl.se/bug/?i=11877
  153. [8] = https://curl.se/bug/?i=11874
  154. [9] = https://curl.se/bug/?i=11911
  155. [10] = https://curl.se/bug/?i=11843
  156. [11] = https://curl.se/bug/?i=11866
  157. [12] = https://curl.se/bug/?i=11864
  158. [13] = https://curl.se/bug/?i=11855
  159. [14] = https://curl.se/bug/?i=11804
  160. [15] = https://curl.se/bug/?i=11838
  161. [16] = https://curl.se/bug/?i=11862
  162. [17] = https://curl.se/bug/?i=11862
  163. [18] = https://curl.se/bug/?i=11905
  164. [19] = https://curl.se/bug/?i=11909
  165. [20] = https://curl.se/bug/?i=11750
  166. [21] = https://curl.se/bug/?i=11808
  167. [22] = https://curl.se/bug/?i=11837
  168. [23] = https://curl.se/bug/?i=11860
  169. [24] = https://curl.se/bug/?i=11885
  170. [25] = https://curl.se/bug/?i=11897
  171. [26] = https://curl.se/bug/?i=11890
  172. [27] = https://curl.se/bug/?i=11898
  173. [28] = https://curl.se/bug/?i=11892
  174. [29] = https://curl.se/bug/?i=11886
  175. [30] = https://curl.se/bug/?i=11882
  176. [31] = https://curl.se/bug/?i=11888
  177. [32] = https://curl.se/bug/?i=11893
  178. [33] = https://curl.se/bug/?i=11932
  179. [34] = https://curl.se/bug/?i=11884
  180. [35] = https://curl.se/bug/?i=11932
  181. [36] = https://curl.se/bug/?i=12003
  182. [37] = https://curl.se/bug/?i=11931
  183. [38] = https://curl.se/bug/?i=11925
  184. [39] = https://curl.se/bug/?i=11904
  185. [40] = https://curl.se/bug/?i=11921
  186. [41] = https://curl.se/bug/?i=12032
  187. [42] = https://curl.se/bug/?i=11924
  188. [43] = https://curl.se/bug/?i=11796
  189. [44] = https://curl.se/bug/?i=11810
  190. [45] = https://curl.se/bug/?i=11625
  191. [46] = https://curl.se/bug/?i=8805
  192. [47] = https://curl.se/bug/?i=11915
  193. [48] = https://curl.se/bug/?i=11912
  194. [49] = https://curl.se/bug/?i=11982
  195. [50] = https://curl.se/bug/?i=11998
  196. [51] = https://curl.se/bug/?i=11960
  197. [52] = https://curl.se/bug/?i=11957
  198. [53] = https://curl.se/bug/?i=11997
  199. [54] = https://curl.se/bug/?i=11920
  200. [55] = https://curl.se/bug/?i=11941
  201. [56] = https://curl.se/bug/?i=11943
  202. [57] = https://curl.se/bug/?i=11954
  203. [58] = https://curl.se/bug/?i=11951
  204. [59] = https://curl.se/bug/?i=11955
  205. [60] = https://curl.se/bug/?i=11953
  206. [61] = https://curl.se/bug/?i=11996
  207. [62] = https://curl.se/bug/?i=11990
  208. [63] = https://curl.se/bug/?i=11987
  209. [64] = https://curl.se/bug/?i=11987
  210. [65] = https://curl.se/bug/?i=11940
  211. [66] = https://curl.se/bug/?i=11991
  212. [67] = https://curl.se/bug/?i=11994
  213. [68] = https://curl.se/bug/?i=2935
  214. [69] = https://curl.se/bug/?i=11858
  215. [70] = https://curl.se/bug/?i=11937
  216. [71] = https://curl.se/bug/?i=11929
  217. [72] = https://curl.se/bug/?i=11927
  218. [73] = https://curl.se/bug/?i=11926
  219. [74] = https://curl.se/bug/?i=11914
  220. [75] = https://curl.se/bug/?i=11981
  221. [76] = https://curl.se/bug/?i=11979
  222. [77] = https://curl.se/bug/?i=11978
  223. [78] = https://curl.se/bug/?i=12010
  224. [79] = https://curl.se/bug/?i=11988
  225. [80] = https://curl.se/bug/?i=12018
  226. [81] = https://curl.se/bug/?i=11980
  227. [82] = https://curl.se/bug/?i=11986
  228. [83] = https://curl.se/bug/?i=11985
  229. [84] = https://curl.se/bug/?i=11984
  230. [85] = https://curl.se/bug/?i=11974
  231. [86] = https://curl.se/bug/?i=11973
  232. [87] = https://curl.se/bug/?i=11973
  233. [88] = https://curl.se/bug/?i=11975
  234. [89] = https://curl.se/bug/?i=11963
  235. [90] = https://curl.se/bug/?i=11983
  236. [91] = https://curl.se/bug/?i=11977
  237. [92] = https://curl.se/bug/?i=12024
  238. [93] = https://curl.se/bug/?i=11967
  239. [94] = https://curl.se/bug/?i=11958
  240. [95] = https://curl.se/bug/?i=11939
  241. [96] = https://curl.se/bug/?i=12027
  242. [97] = https://curl.se/bug/?i=11908
  243. [98] = https://curl.se/bug/?i=11938
  244. [102] = https://curl.se/bug/?i=11964
  245. [105] = https://curl.se/bug/?i=12015
  246. [106] = https://curl.se/bug/?i=12013
  247. [107] = https://curl.se/bug/?i=11928
  248. [108] = https://curl.se/bug/?i=12005
  249. [109] = https://curl.se/bug/?i=11999
  250. [110] = https://curl.se/bug/?i=12006
  251. [111] = https://curl.se/bug/?i=12008