RELEASE-NOTES 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. curl and libcurl 8.8.0
  2. Public curl releases: 257
  3. Command line options: 258
  4. curl_easy_setopt() options: 305
  5. Public functions in libcurl: 94
  6. Contributors: 3151
  7. This release includes the following changes:
  8. o curl_version_info: provide librtmp version [73]
  9. o file: add support for directory listings [63]
  10. o idn: add native AppleIDN (icucore) support for macOS/iOS [95]
  11. o lib: add curl_multi_waitfds [34]
  12. o NTLM_WB: drop support [67]
  13. o TLS: add support for ECH (Encrypted Client Hello) [109]
  14. This release includes the following bugfixes:
  15. o bearssl: fix compiler warnings [43]
  16. o build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) [85]
  17. o build: remove MacOSX-Framework script [60]
  18. o cd2nroff/manage: use UTC when SOURCE_DATE_EPOCH is set [36]
  19. o cf-socket: remove references to l_ip, l_port [9]
  20. o ci: add curl-for-win builds: Linux MUSL, macOS, Windows [68]
  21. o cmake: add librtmp/rtmpdump option and detection [108]
  22. o CMake: check fseeko after detecting HAVE_FILE_OFFSET_BITS [64]
  23. o cmake: enable `-pedantic-errors` for clang when `CURL_WERROR=ON` [47]
  24. o cmake: fix `CURL_WERROR=ON` for old CMake and use it in GHA/linux-old [48]
  25. o cmake: fixup `DEPENDS` filename [51]
  26. o cmake: forward `USE_LIBRTMP` option to C [59]
  27. o cmake: generate misc manpages and install `mk-ca-bundle.pl` [24]
  28. o cmake: speed up libcurl doc building again [15]
  29. o cmake: tidy-up to use `WORKING_DIRECTORY` [23]
  30. o cmake: use namespaced custom target names [80]
  31. o cmdline-docs: fix make install with configure --disable-docs [1]
  32. o configure: make --disable-docs imply --disable-manual [2]
  33. o content_encoding: brotli and others, pass through 0-length writes [5]
  34. o contrithanks: honor `CURLWWW` variable [69]
  35. o curl-confopts.m4: define CARES_NO_DEPRECATED when c-ares is used [17]
  36. o curl: make --help adapt to the terminal width [11]
  37. o curl: use curl_getenv instead of the curlx_ version [20]
  38. o curl_global_trace.md: shorten the description [29]
  39. o curl_sha512_256: fix detection of OpenSSL 1.1.1 or later [8]
  40. o curl_sha512_256: do not use workaround for NetBSD when not needed [21]
  41. o CURLINFO_REQUEST_SIZE: fixed, add tests for transfer infos reported [52]
  42. o cw-out: improved error handling [104]
  43. o dist: `set -eu`, fix shellcheck, make reproducible and smaller tarballs [38]
  44. o dist: add files missing from release tarball [53]
  45. o dist: add reproducible dir entries to tarballs [56]
  46. o dist: do not require Perl in `maketgz` [71]
  47. o dist: remove the curl-config.1 from the tarball [28]
  48. o dist: verify tarball reproducibility in CI [40]
  49. o DISTROS: Cygwin updates [44]
  50. o doc: pytest `--repeat` -> `--count` [58]
  51. o docs/cmdline-opts: invoke managen using a relative path [30]
  52. o docs/MAIL-ETIQUETTE: convert to markdown [12]
  53. o docs: add CURLOPT_NOPROGRESS to CURLOPT_XFERINFOFUNCTION example [61]
  54. o docs: clarify CURLOPT_MAXFILESIZE and CURLOPT_MAXFILESIZE_LARGE [74]
  55. o GHA: add shellcheck job and fix warnings, shell tidy-ups [70]
  56. o GHA: add valgrind to a wolfSSL build [37]
  57. o GHA: on macOS remove $HOME/.curlrc [50]
  58. o gnutls: lazy init the trust settings [75]
  59. o http/2, http/3: decouple stream state from easy handle [92]
  60. o http2: emit RST when client write fails [65]
  61. o http: with chunked POST forced, disable length check on read callback [31]
  62. o idn: make Curl_idnconvert_hostname() use Curl_idn_decode() [16]
  63. o INSTALL-CMAKE.md: explain `cmake -G <generator-name>` [32]
  64. o lib: add trace support for client reads and writes [45]
  65. o lib: merge `ENABLE_QUIC` C macro into `USE_HTTP3` [84]
  66. o lib: silence warnings on comma misuse [91]
  67. o lib: use `#error` instead of invalid syntax in `curl_setup_once.h` [49]
  68. o lib: use multi instead of multi_easy for the active multi [41]
  69. o libcurl-opts: mention pipelining less [33]
  70. o libssh2: set length to 0 if strdup failed [6]
  71. o m4: fix rustls pkg-config codepath [22]
  72. o makefile: remove the sorting from the vc-ide action [42]
  73. o maketgz: put docs/RELEASE-TOOL.md into the tarball [35]
  74. o mbedtls: call mbedtls_ssl_setup() after RNG callback is set [66]
  75. o mbedtls: cut off trailing newlines from debug logs [87]
  76. o mbedtls: fix building with v3 in CMake Unity mode [107]
  77. o misc: fix typos [62]
  78. o mprintf: check fputc error rather than matching returned character [82]
  79. o multi: introduce SETUP state for better timeouts [26]
  80. o multi: timeout handles even without connection [81]
  81. o openldap: create ldap URLs correctly for IPv6 addresses [19]
  82. o openssl: do not set SSL_MODE_RELEASE_BUFFERS [10]
  83. o OS400: fix shellcheck warnings in scripts [72]
  84. o projects: drop MSVC project files for recent versions [79]
  85. o quic: fixup duplicate static function name (for cmake unity) [77]
  86. o RELEASE-PROCEDURE: mention an initial working build [7]
  87. o request: paused upload on completed download, assess connection [54]
  88. o reuse: add copyright + license info to individual docs/*.md files [13]
  89. o ROADMAP: remove completed entries, mention websocket
  90. o sendf: fix two typos in comments [90]
  91. o smtp: result of Curl_bufq_cread was not used [78]
  92. o tests/http: fix compiler warning [39]
  93. o tests: add -q as first option when invoking curl for tests [97]
  94. o tls: use shared init code for TCP+QUIC [57]
  95. o tool_getparam: output warning for leading unicode quote character [14]
  96. o tool_xattr: "guess" URL scheme if none is provided [3]
  97. o tool_xattr: in debug builds, act normally if CURL_FAKE_XATTR is not set [4]
  98. o url: do not URL decode proxy crendentials [55]
  99. o url: fix use of an uninitialized variable [86]
  100. o urlapi: fix relative redirects to fragment-only [83]
  101. o urldata: remove fields not used depending on used features [46]
  102. o vquic: use CURL_FORMAT_CURL_OFF_T for 64 bit printf output [18]
  103. o winbuild: add ENABLE_WEBSOCKETS option [93]
  104. o winbuild: use $(RC) correctly [27]
  105. o wolfssl: plug memory leak in wolfssl_connect_step2() [25]
  106. This release includes the following known bugs:
  107. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  108. Planned upcoming removals include:
  109. o support for space-separated NOPROXY patterns
  110. See https://curl.se/dev/deprecate.html for details
  111. This release would not have looked like this without help, code, reports and
  112. advice from friends like these:
  113. blankie, Brian Inglis, Carlos Henrique Lima Melara, Christian Schmitz,
  114. Chris Webb, Colin Leroy-Mira, Dagfinn Ilmari Mannsåker, Dan Fandrich,
  115. Daniel J. H., Daniel McCarney, Daniel Stenberg, Dmitry Karpov,
  116. Emanuele Torre, Evgeny Grin (Karlson2k), Fabian Keil, Gisle Vanem,
  117. hammlee96 on github, Harry Sintonen, Hongfei Li, Jan Macku, Jeff King,
  118. Jérôme Leclercq, Jiwoo Park, Jonatan Vela, Kailun Qin, kalvdans on github,
  119. Keitagit-kun on github, Konstantin Kuzov, kpcyrd on github, Marcel Raad,
  120. Matt Jolly, Michael Kaufmann, Michał Antoniak, Patrick Monnerat,
  121. Paul Howarth, Pavel Kropachev, Rahul Krishna M, RainRat, Ray Satiro,
  122. riastradh on github, Robert Moreton, Sanjay Pujare, Sergey Bronnikov,
  123. Sergey Ogryzkov, Sergio Durigan Junior, Stefan Eissing, Stephen Farrell,
  124. Tal Regev, Tobias Stoeckmann, Toon Claes, Viktor Szakats
  125. (51 contributors)
  126. References to bug reports and discussions on issues:
  127. [1] = https://curl.se/bug/?i=13198
  128. [2] = https://curl.se/bug/?i=13191
  129. [3] = https://curl.se/bug/?i=13205
  130. [4] = https://curl.se/bug/?i=13220
  131. [5] = https://curl.se/bug/?i=13209
  132. [6] = https://curl.se/bug/?i=13213
  133. [7] = https://curl.se/bug/?i=13216
  134. [8] = https://curl.se/bug/?i=13208
  135. [9] = https://curl.se/bug/?i=13210
  136. [10] = https://curl.se/bug/?i=13203
  137. [11] = https://curl.se/bug/?i=13171
  138. [12] = https://curl.se/bug/?i=13247
  139. [13] = https://curl.se/bug/?i=13245
  140. [14] = https://curl.se/bug/?i=13214
  141. [15] = https://curl.se/bug/?i=13207
  142. [16] = https://curl.se/bug/?i=13236
  143. [17] = https://curl.se/bug/?i=13240
  144. [18] = https://curl.se/bug/?i=13224
  145. [19] = https://curl.se/bug/?i=13228
  146. [20] = https://curl.se/bug/?i=13230
  147. [21] = https://curl.se/bug/?i=13225
  148. [22] = https://curl.se/bug/?i=13200
  149. [23] = https://curl.se/bug/?i=13206
  150. [24] = https://curl.se/bug/?i=13197
  151. [25] = https://curl.se/bug/?i=13272
  152. [26] = https://curl.se/bug/?i=13371
  153. [27] = https://curl.se/bug/?i=13267
  154. [28] = https://curl.se/bug/?i=13268
  155. [29] = https://curl.se/bug/?i=13263
  156. [30] = https://curl.se/bug/?i=13281
  157. [31] = https://curl.se/bug/?i=13229
  158. [32] = https://curl.se/bug/?i=13244
  159. [33] = https://curl.se/bug/?i=13254
  160. [34] = https://curl.se/bug/?i=13135
  161. [35] = https://curl.se/bug/?i=13239
  162. [36] = https://curl.se/bug/?i=13242
  163. [37] = https://curl.se/bug/?i=13274
  164. [38] = https://curl.se/bug/?i=13299
  165. [39] = https://curl.se/bug/?i=13301
  166. [40] = https://curl.se/bug/?i=13327
  167. [41] = https://curl.se/bug/?i=12665
  168. [42] = https://curl.se/bug/?i=13294
  169. [43] = https://curl.se/bug/?i=13290
  170. [44] = https://curl.se/bug/?i=13258
  171. [45] = https://curl.se/bug/?i=13223
  172. [46] = https://curl.se/bug/?i=13188
  173. [47] = https://curl.se/bug/?i=13286
  174. [48] = https://curl.se/bug/?i=13282
  175. [49] = https://curl.se/bug/?i=13287
  176. [50] = https://curl.se/bug/?i=13284
  177. [51] = https://curl.se/bug/?i=13283
  178. [52] = https://curl.se/bug/?i=13269
  179. [53] = https://curl.se/bug/?i=13346
  180. [54] = https://curl.se/bug/?i=13260
  181. [55] = https://curl.se/bug/?i=13265
  182. [56] = https://curl.se/bug/?i=13322
  183. [57] = https://curl.se/bug/?i=13172
  184. [58] = https://curl.se/bug/?i=13218
  185. [59] = https://curl.se/bug/?i=13364
  186. [60] = https://curl.se/bug/?i=13313
  187. [61] = https://curl.se/bug/?i=13348
  188. [62] = https://curl.se/bug/?i=13344
  189. [63] = https://curl.se/bug/?i=13137
  190. [64] = https://curl.se/bug/?i=13264
  191. [65] = https://curl.se/bug/?i=13292
  192. [66] = https://curl.se/bug/?i=13314
  193. [67] = https://curl.se/bug/?i=13249
  194. [68] = https://curl.se/bug/?i=13335
  195. [69] = https://curl.se/bug/?i=13315
  196. [70] = https://curl.se/bug/?i=13307
  197. [71] = https://curl.se/bug/?i=13310
  198. [72] = https://curl.se/bug/?i=13309
  199. [73] = https://curl.se/bug/?i=13368
  200. [74] = https://curl.se/bug/?i=13372
  201. [75] = https://curl.se/bug/?i=13339
  202. [77] = https://curl.se/bug/?i=13332
  203. [78] = https://curl.se/bug/?i=13398
  204. [79] = https://curl.se/bug/?i=13311
  205. [80] = https://curl.se/bug/?i=13324
  206. [81] = https://curl.se/bug/?i=13276
  207. [82] = https://curl.se/bug/?i=13367
  208. [83] = https://curl.se/bug/?i=13394
  209. [84] = https://curl.se/bug/?i=13352
  210. [85] = https://curl.se/bug/?i=13349
  211. [86] = https://curl.se/bug/?i=13399
  212. [87] = https://curl.se/bug/?i=13321
  213. [90] = https://curl.se/bug/?i=13393
  214. [91] = https://curl.se/bug/?i=13392
  215. [92] = https://curl.se/bug/?i=13204
  216. [93] = https://curl.se/bug/?i=13232
  217. [95] = https://curl.se/bug/?i=13246
  218. [97] = https://curl.se/bug/?i=13387
  219. [104] = https://curl.se/bug/?i=13337
  220. [107] = https://curl.se/bug/?i=13377
  221. [108] = https://curl.se/bug/?i=13373
  222. [109] = https://curl.se/bug/?i=11922