RELEASE-NOTES 14 KB

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