RELEASE-NOTES 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. curl and libcurl 8.8.1
  2. Public curl releases: 258
  3. Command line options: 263
  4. curl_easy_setopt() options: 306
  5. Public functions in libcurl: 94
  6. Contributors: 3199
  7. This release includes the following changes:
  8. o curl: add --ip-tos (IP Type of Service / Traffic Class) [42]
  9. o curl: add --mptcp [29]
  10. o curl: add --vlan-priority [107]
  11. o curl: add -w '%{num_retries} [65]
  12. o gnutls: support CA caching [90]
  13. o mbedtls: support CURLOPT_CERTINFO [116]
  14. o noproxy: patterns need to be comma separated [75]
  15. o socket: support binding to interface *AND* IP [80]
  16. o tcpkeepalive: add CURLOPT_TCP_KEEPCNT and --keepalive-cnt [103]
  17. o urlapi: add CURLU_NO_GUESS_SCHEME [72]
  18. o wolfssl: support CA caching [73]
  19. This release includes the following bugfixes:
  20. o (lib)curl.rc: set debug flag also for `CURLDEBUG` and `UNITTESTS` [2]
  21. o asyn-thread: avoid using GetAddrInfoExW with impersonation [7]
  22. o autoconf: remove 'deeper' checks for `AC_CHECK_FUNCS` [23]
  23. o autotools: fix pkg-config names (zstd, ngtcp2*) [170]
  24. o aws-sigv4: url encode the canonical path [55]
  25. o BINDINGS: update java link to one that exists [115]
  26. o build: add more supported attributes to the IAR compiler [46]
  27. o build: untangle `CURLDEBUG` and `DEBUGBUILD` macros [9]
  28. o cd2nroff: convert two warnings to errors [135]
  29. o cd2nroff: use an empty "##" to signal end of .IP sequence [56]
  30. o cf-socket: improve SO_SNDBUF update for Winsock [27]
  31. o cf-socket: optimize curlx_nonblock() and check its return error [151]
  32. o cfilters: make Curl_conn_connect always assign 'done' [60]
  33. o cmake: add CURL_USE_GSASL option with detection + CI test [133]
  34. o cmake: allow `ENABLE_CURLDEBUG=OFF` with `ENABLE_DEBUG=ON` [26]
  35. o cmake: allow SOVERSION override with `CURL_LIBCURL_SOVERSION` [120]
  36. o cmake: always build unit tests with the `testdeps` target [20]
  37. o cmake: bring `curl-config.cmake` closer to `FindCURL` [130]
  38. o cmake: enable SOVERSION for Cygwin and `CMAKE_DLL_NAME_WITH_SOVERSION` [119]
  39. o cmake: fix `-Wredundant-decls` in unity/mingw-w64 builds [15]
  40. o cmake: fix brotli lib order [3]
  41. o cmake: fix building in unity mode [4]
  42. o cmake: fix building with both md4 and md5 in unity mode [13]
  43. o cmake: fix quotes when appending multiple options (SecureTransport) [139]
  44. o cmake: fix test 1013 with websockets enabled and no TLS [47]
  45. o cmake: stop setting SOVERSION for the static lib target [127]
  46. o cmake: use `APPLE` instead of `CMAKE_SYSTEM_NAME` string [24]
  47. o cmake: whitespace, formatting/tidy-up in comments [25]
  48. o cmdline-docs: "added in" cleanups [171]
  49. o cmdline-opts/_PROTOCOLS.md: mention WS(S) [94]
  50. o cmdline-opts/ech.md: shorten the help text [93]
  51. o cmdline-opts/fail.md: expand and clarify [95]
  52. o cmdline-opts/interface.md: expand the documentation [66]
  53. o cmdline-opts: expand the parallel explanations [98]
  54. o cmdline: expand proxy option explanations [97]
  55. o configure: fix pkg-config library name 'libnghttp3' [138]
  56. o configure: require a QUIC library if nghttp3 is used [142]
  57. o configure: use `$EGREP` in place of `grep -E` [41]
  58. o configure: use AC_MSG_WARN for TLS/experimental warning texts [122]
  59. o connect-to.md: expand with examples [147]
  60. o connection: shutdown TLS (for FTP) better [104]
  61. o cookie-jar.md: see also --junk-session-cookies [144]
  62. o curl-config: revert to backticks to support old target envs [88]
  63. o curl: make warnings and other messages aware of terminal width [58]
  64. o curl_multi_poll.md: expand the example with an custom file descriptor [21]
  65. o curl_url_set.md: libcurl only parses :// URLs [48]
  66. o CURLOPT_CONNECTTIMEOUT*: clarify, document the milliseond version [105]
  67. o CURLOPT_ECH.md: remove repeated 'if' [109]
  68. o CURLOPT_NETRC.md: clarify what it does on Windows [140]
  69. o CURLOPT_RESOLVE.md: mention hostname can be wildcard ('*') [150]
  70. o DISTROS: add a link to the list archive [22]
  71. o DISTROS: add MSYS2 (native) links [100]
  72. o Dockerfile: update debian:bookworm-slim to 84d83b2 [121]
  73. o docs/cmdline-opts: fix mail-auth example TLD typo [35]
  74. o docs/cmdline-opts: remove two superfluous "Added in" mentions [143]
  75. o docs/Makefile.am: make curl-config.1 install [14]
  76. o docs: reference non deprecated libcurl options [113]
  77. o doh-insecure.md: expand [96]
  78. o dump-header.md: mention minus for stdout [149]
  79. o examples/threaded-ssl: remove locking callback code [83]
  80. o examples: add missing binaries to .gitignore [106]
  81. o examples: delete unused includes [10]
  82. o examples: fix compiling with MSVC [34]
  83. o file: separate fake headers and body with a stand-alone CRLF [137]
  84. o get.d: clarify the explanation [32]
  85. o GHA: detect and warn for more English contractions [123]
  86. o GHA: disable MQTT and WebSocket tests in Windows jobs [63]
  87. o GHA: disable TFTP tests in Windows jobs
  88. o GHA: enable tests 1139, 1177, 1477 on Windows [59]
  89. o GHA: unify http3 workflows into one [77]
  90. o gnutls: improve TLS shutdown [62]
  91. o gnutls: pass in SNI name, not hostname when checking cert [114]
  92. o http/3: add shutdown support [154]
  93. o http: remove "struct HTTP" [134]
  94. o http: write last header line late [44]
  95. o lib/v*: tidy up types and casts [64]
  96. o lib: fix gcc warning in certain debug builds [19]
  97. o lib: fix thread entry point to return `DWORD` on WinCE [85]
  98. o lib: graceful connection shutdown [162]
  99. o lib: prefer `var = time(NULL)` over `time(&var)` [52]
  100. o lib: tidy up types and casts [92]
  101. o lib: xfer_setup and non-blocking shutdown [111]
  102. o libcurl.pc: add `Requires.private`, `Requires` for static linking [129]
  103. o libssh: remove CURLOPT_SSL_VERIFYHOST check [36]
  104. o managen: "added in" fixes [131]
  105. o managen: cleanups to generate nicer-looking output [141]
  106. o managen: error on trailing blank lines in input files [165]
  107. o managen: only output .RE for manpage output [156]
  108. o managen: output tabs for each 8 leading spaces [164]
  109. o managen: warn on excessively long help texts [87]
  110. o mbedtls: check version for cipher id [12]
  111. o mbedtls: send close-notify on close [11]
  112. o mbedtls: v3.6.0 workarounds [89]
  113. o misc: fix typos [108]
  114. o multi: add multi->proto_hash, a key-value store for protocol data [37]
  115. o multi: fix multi_wait() timeout handling [51]
  116. o multi: multi_getsock(), check correct socket [167]
  117. o noproxy: test bad ipv6 net size first [82]
  118. o openssl/gnutls: rectify the TLS version checks for QUIC [61]
  119. o openssl: fix %-specifier in infof() call [57]
  120. o openSSL: fix hostname handling when using ECH [78]
  121. o openssl: stop duplicate ssl key logging for legacy OpenSSL [49]
  122. o os400: make it compilable again [128]
  123. o pytest: add ftp upload tests [16]
  124. o pytest: include testenv/vsftpd.py in dist tarball [99]
  125. o quic: enable UDP GRO [157]
  126. o quic: openssl quic, cmake and doc version update to 3.3.0 [148]
  127. o quic: require at least OpenSSL 3.3 for QUIC [158]
  128. o request.md: language fix [70]
  129. o request: change the struct field bodywrites to a bool, only for hyper [132]
  130. o runtests: sort test IDs in summary lines [33]
  131. o runtests: support %DATE for YYYY-MM-DD of right now
  132. o runtests: support %VERNUM
  133. o runtests: support crlf="yes" for the <stderr> section
  134. o sectransp: remove large cipher table [76]
  135. o sectransp: use common code for cipher suite lookup [54]
  136. o socket: change TCP keepalive from ms to seconds on DragonFly BSD [74]
  137. o socket: use SOCK_NONBLOCK to eliminate extra system call [86]
  138. o socketpair: add `eventfd` and use `SOCK_NONBLOCK` for `socketpair()` [81]
  139. o system_win32: add missing curl.h include [160]
  140. o tcpkeepalive: support TCP keep-alive parameters on Solaris <11.4 [91]
  141. o test1486: verify that write-out.md and tool_writeout.c are in sync [112]
  142. o test: add test1484, for HEAD with content [18]
  143. o test: add test1546, chunked not last transfer encoding [17]
  144. o tests: add pytest for --ciphers and --tls13-ciphers options [38]
  145. o tests: delete redundant `!MSDOS` guard [84]
  146. o tests: extend user/password parsing test1620 [40]
  147. o tests: log "Throwing away" messages before throwing away
  148. o tests: run with "--trace-config all" to provide even more info [6]
  149. o tests: test_17_ssl_use.py clarify mbedtls TLSv1.3 support [43]
  150. o tests: use exec when spawning nghttpx [45]
  151. o tidy-up: use consistent casing for Windows directories [28]
  152. o TODO: remove some old, clarify, add something [31]
  153. o tool_cb_hdr: allow etag and content-disposition for 3xx reply [117]
  154. o tool_cb_hdr: return error for failed header writes [30]
  155. o tool_operate: avoid explicitly setting verifypeer to 1 [39]
  156. o tool_writeout: bsearch the variable name [102]
  157. o tool_writeout: get certinfo only when needing it [101]
  158. o trace-ascii.md: mention "%" for stderr [146]
  159. o transfer: conn close on paused upload [8]
  160. o transfer: do not use EXPIRE_NOW while blocked [124]
  161. o transfer: remove curl_upload_refill_watermark, no longer used [50]
  162. o transfer: set CSELECT_IN if there is data pending [118]
  163. o unit2604: use 'unitfail' instead of 'error' variable [153]
  164. o url: allow DoH transfers to override max connection limit [68]
  165. o vms: fixed language in comment [110]
  166. o vtls: deprioritize Secure Transport [71]
  167. o winbuild: fix PE version info debug flag [1]
  168. o winbuild: remove outdated WIN32 defines [5]
  169. o windows: fix UWP builds, add GHA job [79]
  170. o winsock: move SO_SNDBUF update into cf-socket [53]
  171. o wolfssl: assume key_file equal to clientcert if no key_file [169]
  172. o x509asn1: add some common ECDSA OIDs [67]
  173. o x509asn1: ASN1tostr() should fail when 'constructed' is set [125]
  174. o x509asn1: fallback to dotted OID representation [69]
  175. o x509asn1: make Curl_extract_certinfo store error message [136]
  176. o x509asn1: prevent NULL dereference [152]
  177. o x509asn1: remove two static variables [126]
  178. This release includes the following known bugs:
  179. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  180. Planned upcoming removals include:
  181. o support for space-separated NOPROXY patterns
  182. See https://curl.se/dev/deprecate.html for details
  183. This release would not have looked like this without help, code, reports and
  184. advice from friends like these:
  185. Alejandro R. Sedeño, alervd on github, Alexander Shtuchkin, Alex Snast,
  186. Andy Pan, Aurélien Pierre, Ayesh Karunaratne, Bo Anderson, brian m. carlson,
  187. Christian Heusel, Christian Schmitz, Dan Fandrich, Daniel Gustafsson,
  188. Daniel Stenberg, dependabot[bot], Dexter Gerig, dogma, Dorian Craps,
  189. edmcln on github, Eli Schwartz, Elliott Balsley, fds242 on github,
  190. Guilherme Puida, Harry Sintonen, James Abbatiello, Jan Venekamp,
  191. Jay Guerette, Jiang Wenjian, Jonathan Matthews, Joseph Chen, Kai Pastor,
  192. kartatz, Keerthi Timmaraju, Lee Li, Luke Hamburg, Marcel Raad,
  193. Matthias Gatto, Matthieu Baerts, Matt Jolly, Morgan Willcock,
  194. Olivier Bonaventure, Orgad Shaneh, Patrick Monnerat, Pavel Pavlov,
  195. pszlazak on github, RainRat, Ray Satiro, renovate[bot], Ryan Carsten Schmidt,
  196. Samuel Chiang, saurabhsingh-dev on github, Sebastian Andersson,
  197. Sergey Bronnikov, Sergey Markelov, Stefan Eissing, Stephen Farrell,
  198. Tal Regev, Tatsuhiro Tsujikawa, Viktor Szakats, vvb2060, Yedaya Katsman, z2_,
  199. 李四
  200. (63 contributors)
  201. References to bug reports and discussions on issues:
  202. [1] = https://curl.se/bug/?i=13739
  203. [2] = https://curl.se/bug/?i=13730
  204. [3] = https://curl.se/bug/?i=13761
  205. [4] = https://curl.se/bug/?i=13751
  206. [5] = https://curl.se/bug/?i=13739
  207. [6] = https://curl.se/bug/?i=13791
  208. [7] = https://curl.se/bug/?i=13612
  209. [8] = https://curl.se/bug/?i=13740
  210. [9] = https://curl.se/bug/?i=13718
  211. [10] = https://curl.se/bug/?i=13785
  212. [11] = https://curl.se/bug/?i=13745
  213. [12] = https://curl.se/bug/?i=13749
  214. [13] = https://curl.se/bug/?i=13737
  215. [14] = https://curl.se/bug/?i=13741
  216. [15] = https://curl.se/bug/?i=13705
  217. [16] = https://curl.se/bug/?i=13734
  218. [17] = https://curl.se/bug/?i=13736
  219. [18] = https://curl.se/bug/?i=13735
  220. [19] = https://curl.se/bug/?i=13800
  221. [20] = https://curl.se/bug/?i=13698
  222. [21] = https://curl.se/bug/?i=13842
  223. [22] = https://curl.se/bug/?i=13843
  224. [23] = https://bugs.gentoo.org/932827
  225. [24] = https://curl.se/bug/?i=13713
  226. [25] = https://curl.se/bug/?i=13711
  227. [26] = https://curl.se/bug/?i=13792
  228. [27] = https://curl.se/bug/?i=13827
  229. [28] = https://curl.se/bug/?i=13832
  230. [29] = https://curl.se/bug/?i=13278
  231. [30] = https://curl.se/bug/?i=13836
  232. [31] = https://curl.se/bug/?i=13788
  233. [32] = https://curl.se/bug/?i=13706
  234. [33] = https://curl.se/bug/?i=13774
  235. [34] = https://curl.se/bug/?i=13771
  236. [35] = https://curl.se/bug/?i=13784
  237. [36] = https://curl.se/bug/?i=13767
  238. [37] = https://curl.se/bug/?i=13345
  239. [38] = https://curl.se/bug/?i=13530
  240. [39] = https://curl.se/bug/?i=13704
  241. [40] = https://curl.se/bug/?i=13756
  242. [41] = https://curl.se/bug/?i=13780
  243. [42] = https://curl.se/bug/?i=13606
  244. [43] = https://curl.se/bug/?i=13779
  245. [44] = https://curl.se/bug/?i=13752
  246. [45] = https://curl.se/bug/?i=13772
  247. [46] = https://curl.se/bug/?i=13744
  248. [47] = https://curl.se/bug/?i=13769
  249. [48] = https://curl.se/bug/?i=13821
  250. [49] = https://curl.se/bug/?i=13683
  251. [50] = https://curl.se/bug/?i=13764
  252. [51] = https://curl.se/bug/?i=13782
  253. [52] = https://curl.se/bug/?i=13815
  254. [53] = https://curl.se/bug/?i=13763
  255. [54] = https://curl.se/bug/?i=13521
  256. [55] = https://curl.se/bug/?i=13754
  257. [56] = https://curl.se/bug/?i=13803
  258. [57] = https://curl.se/bug/?i=13816
  259. [58] = https://curl.se/bug/?i=13804
  260. [59] = https://curl.se/bug/?i=13817
  261. [60] = https://curl.se/bug/?i=13884
  262. [61] = https://curl.se/bug/?i=13799
  263. [62] = https://curl.se/bug/?i=13790
  264. [63] = https://curl.se/bug/?i=13860
  265. [64] = https://curl.se/bug/?i=13622
  266. [65] = https://curl.se/bug/?i=13910
  267. [66] = https://curl.se/bug/?i=13882
  268. [67] = https://curl.se/bug/?i=13857
  269. [68] = https://curl.se/mail/lib-2024-06/0001.html
  270. [69] = https://curl.se/bug/?i=13845
  271. [70] = https://curl.se/bug/?i=13854
  272. [71] = https://curl.se/bug/?i=13547
  273. [72] = https://curl.se/bug/?i=13616
  274. [73] = https://curl.se/bug/?i=13786
  275. [74] = https://curl.se/bug/?i=13847
  276. [75] = https://curl.se/bug/?i=13789
  277. [76] = https://curl.se/bug/?i=13823
  278. [77] = https://curl.se/bug/?i=13841
  279. [78] = https://curl.se/bug/?i=13818
  280. [79] = https://curl.se/bug/?i=13870
  281. [80] = https://curl.se/bug/?i=13719
  282. [81] = https://curl.se/bug/?i=13874
  283. [82] = https://curl.se/bug/?i=13902
  284. [83] = https://curl.se/bug/?i=13851
  285. [84] = https://curl.se/bug/?i=13878
  286. [85] = https://curl.se/bug/?i=13877
  287. [86] = https://curl.se/bug/?i=13855
  288. [87] = https://curl.se/bug/?i=13895
  289. [88] = https://curl.se/bug/?i=13871
  290. [89] = https://curl.se/bug/?i=13653
  291. [90] = https://curl.se/bug/?i=13795
  292. [91] = https://curl.se/bug/?i=13864
  293. [92] = https://curl.se/bug/?i=13862
  294. [93] = https://curl.se/bug/?i=13894
  295. [94] = https://curl.se/bug/?i=13891
  296. [95] = https://curl.se/bug/?i=13890
  297. [96] = https://curl.se/bug/?i=13889
  298. [97] = https://curl.se/bug/?i=13887
  299. [98] = https://curl.se/bug/?i=13886
  300. [99] = https://curl.se/bug/?i=13918
  301. [100] = https://curl.se/bug/?i=13915
  302. [101] = https://curl.se/bug/?i=13914
  303. [102] = https://curl.se/bug/?i=13914
  304. [103] = https://curl.se/bug/?i=13885
  305. [104] = https://curl.se/bug/?i=13904
  306. [105] = https://curl.se/bug/?i=13905
  307. [106] = https://curl.se/bug/?i=13952
  308. [107] = https://curl.se/bug/?i=13907
  309. [108] = https://curl.se/bug/?i=13923
  310. [109] = https://curl.se/bug/?i=13922
  311. [110] = https://curl.se/bug/?i=13921
  312. [111] = https://curl.se/bug/?i=13913
  313. [112] = https://curl.se/bug/?i=13920
  314. [113] = https://curl.se/bug/?i=13951
  315. [114] = https://curl.se/bug/?i=13428
  316. [115] = https://github.com/curl/everything-curl/issues/456
  317. [116] = https://curl.se/bug/?i=13113
  318. [117] = https://curl.se/bug/?i=13302
  319. [118] = https://curl.se/bug/?i=13695
  320. [119] = https://curl.se/bug/?i=13898
  321. [120] = https://curl.se/bug/?i=13944
  322. [121] = https://curl.se/bug/?i=13934
  323. [122] = https://curl.se/bug/?i=13941
  324. [123] = https://curl.se/bug/?i=13940
  325. [124] = https://curl.se/bug/?i=13908
  326. [125] = https://curl.se/bug/?i=13972
  327. [126] = https://curl.se/bug/?i=13971
  328. [127] = https://curl.se/bug/?i=13936
  329. [128] = https://curl.se/bug/?i=13930
  330. [129] = https://curl.se/bug/?i=864
  331. [130] = https://curl.se/bug/?i=13897
  332. [131] = https://curl.se/bug/?i=14002
  333. [132] = https://curl.se/bug/?i=13928
  334. [133] = https://curl.se/bug/?i=13948
  335. [134] = https://curl.se/bug/?i=13927
  336. [135] = https://curl.se/bug/?i=13929
  337. [136] = https://curl.se/bug/?i=13959
  338. [137] = https://curl.se/mail/lib-2024-06/0033.html
  339. [138] = https://curl.se/bug/?i=13994
  340. [139] = https://curl.se/bug/?i=13953
  341. [140] = https://curl.se/bug/?i=13956
  342. [141] = https://curl.se/bug/?i=14001
  343. [142] = https://curl.se/bug/?i=13995
  344. [143] = https://curl.se/bug/?i=14000
  345. [144] = https://curl.se/bug/?i=13996
  346. [146] = https://curl.se/bug/?i=13991
  347. [147] = https://curl.se/bug/?i=13989
  348. [148] = https://curl.se/bug/?i=14028
  349. [149] = https://curl.se/bug/?i=13985
  350. [150] = https://curl.se/bug/?i=13983
  351. [151] = https://curl.se/bug/?i=13942
  352. [152] = https://curl.se/bug/?i=13978
  353. [153] = https://curl.se/bug/?i=13967
  354. [154] = https://curl.se/bug/?i=14022
  355. [156] = https://curl.se/bug/?i=14025
  356. [157] = https://curl.se/bug/?i=14012
  357. [158] = https://curl.se/bug/?i=14026
  358. [160] = https://curl.se/bug/?i=14019
  359. [162] = https://curl.se/bug/?i=13976
  360. [164] = https://curl.se/bug/?i=14016
  361. [165] = https://curl.se/bug/?i=14015
  362. [167] = https://curl.se/bug/?i=13998
  363. [169] = https://curl.se/bug/?i=14007
  364. [170] = https://curl.se/bug/?i=14005
  365. [171] = https://curl.se/bug/?i=14003