RELEASE-NOTES 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. curl and libcurl 7.86.0
  2. Public curl releases: 211
  3. Command line options: 248
  4. curl_easy_setopt() options: 300
  5. Public functions in libcurl: 91
  6. Contributors: 2711
  7. This release includes the following changes:
  8. o NPN: remove support for and use of [16]
  9. o Websockets: initial support [23]
  10. This release includes the following bugfixes:
  11. o altsvc: reject bad port numbers [86]
  12. o altsvc: use 'h3' for h3 [46]
  13. o autotools: allow --enable-symbol-hiding with windows [65]
  14. o autotools: reduce brute-force when detecting recv/send arg list [66]
  15. o bearssl: make it proper C89 compliant
  16. o CI/GHA: cancel outdated CI runs on new PR changes [20]
  17. o cirrus-ci: add macOS build with m1 [81]
  18. o cli tool: do not use disabled protocols
  19. o cmake: define BUILDING_LIBCURL in lib/CMakeLists, not config.h [5]
  20. o cmake: fix original MinGW builds [177]
  21. o configure: correct the wording when checking grep -E [13]
  22. o configure: deprecate builds with small curl_off_t [89]
  23. o configure: fail if '--without-ssl' + explicit parameter for an ssl lib [164]
  24. o connect: change verbose IPv6 address:port to [address]:port [83]
  25. o connect: fix the wrong error message on connect failures [55]
  26. o content_encoding: use writer struct subclasses for different encodings [8]
  27. o ctype: remove all use of <ctype.h>, use our own versions [12]
  28. o curl-compilers.m4: for gcc + want warnings, set gnu89 standard [72]
  29. o curl-compilers.m4: use -O2 as default optimize for clang [6]
  30. o curl.h: fix mention of wrong error code in comment
  31. o curl: warn for --ssl use, considered insecure [49]
  32. o curl_ctype: convert to macros-only [10]
  33. o curl_easy_pause.3: unpausing is as fast as possible [14]
  34. o curl_escape.3: fix typo [50]
  35. o curl_setup: disable use of FLOSS for 64-bit NonStop builds [69]
  36. o curl_setup: include curl.h after platform setup headers [37]
  37. o curl_setup: include only system.h instead of curl.h [34]
  38. o curl_strequal.3: fix argument typo [60]
  39. o curl_url_set.3: document CURLU_APPENDQUERY proper [96]
  40. o CURLOPT_ACCEPT_ENCODING.3: remove "four" as they are five [85]
  41. o CURLOPT_COOKIELIST.3: fix formatting mistake [80]
  42. o CURLOPT_DNS_INTERFACE.3: mention it works for almost all protocols [15]
  43. o CURLOPT_PROXY_SSLCERT_BLOB.3: this is for HTTPS proxies [9]
  44. o CURLOPT_WILDCARDMATCH.3: Fix backslash escaping under single quotes [172]
  45. o CURLSHOPT_UNLOCKFUNC.3: the callback has no 'access' argument [84]
  46. o DEPRECATE.md: Support for systems without 64 bit data types [19]
  47. o docs/libcurl/symbols-in-versions: add several missing symbols
  48. o docs: 100+ spellfixes
  49. o docs: correct missing uppercase in Markdown files [38]
  50. o docs: document more server names for test files
  51. o docs: remove mentions of deprecated '--without-openssl' parameter [170]
  52. o docs: tag curl options better in man pages
  53. o docs: tell about disabled protocols in CURLOPT_*PROTOCOLS_STR.
  54. o docs: update sourceforge project links [95]
  55. o easy: fix the #include order [53]
  56. o easy: fix the altsvc init for curl_easy_duphandle [77]
  57. o examples/chkspeed: improve portability [48]
  58. o formdata: fix warning: 'CURLformoption' is promoted to 'int' [24]
  59. o ftp: ignore a 550 response to MDTM [1]
  60. o functypes: provide the recv and send arg and return types [87]
  61. o getparameter: return PARAM_MANUAL_REQUESTED for -M even when disabled [17]
  62. o GHA: build tests in a separate step from the running of them [78]
  63. o GHA: run proselint on markdown files [22]
  64. o github: initial CODEOWNERS setup for CI configuration [52]
  65. o header: define public API functions as extern c [26]
  66. o headers: reset the requests counter at transfer start [25]
  67. o hostip: lazily wait to figure out if IPv6 works until needed [36]
  68. o http, vauth: always provide Curl_allow_auth_to_host() functionality [90]
  69. o http2: make nghttp2 less picky about field whitespace [27]
  70. o HTTP3.md: update Caddy example [76]
  71. o httpput-postfields.c: shorten string for C89 compliance [57]
  72. o ldap: delete stray CURL_HAS_MOZILLA_LDAP reference [79]
  73. o lib1560: extended to verify detect/reject of unknown schemes
  74. o lib517: fix C89 constant signedness [73]
  75. o lib: add missing limits.h includes [35]
  76. o lib: add required Win32 setup definitions in setup-win32.h [4]
  77. o lib: prepare the incoming of additional protocols [71]
  78. o lib: sanitize conditional exclusion around MIME [82]
  79. o lib: the number four in a sequence is the "fourth" [28]
  80. o Makefile.m32: major rework [92]
  81. o manpage-syntax.pl: all libcurl option symbols should be \fI-tagged [75]
  82. o manpages: Fix spelling of "allows to" -> "allows one to" [171]
  83. o misc: ISSPACE() => ISBLANK() [11]
  84. o misc: use the term "null-terminate" consistently [41]
  85. o mprintf: use snprintf if available [74]
  86. o msh3: change the static_assert to make the code C89
  87. o ngtcp2: fix C89 compliance nit
  88. o openssl: make certinfo available for QUIC [91]
  89. o README.md: add GHA status badges for Linux and macOS builds [40]
  90. o RELEASE-PROCEDURE.md: mention patch releases [21]
  91. o resolve: make forced IPv4 resolve only use A queries [61]
  92. o schannel: ban server ALPN change during recv renegotiation [63]
  93. o scripts: use `grep -E` instead of `egrep` [30]
  94. o setopt: use the handler table for protocol name to number conversions [45]
  95. o setopt: when POST is set, reset the 'upload' field [51]
  96. o setup-win32: no longer define UNICODE/_UNICODE implicitly [3]
  97. o strerror: improve two URL API error messages
  98. o symbol-scan.pl: also check for LIBCURL* symbols [43]
  99. o symbol-scan.pl: scan and verify .3 man pages [42]
  100. o symbols-in-versions: add missing LIBCURL* symbols
  101. o symbols-in-versions: CURLOPT_ENCODING is deprecated since 7.21.6
  102. o test1119: scan all public headers [44]
  103. o test972: verify the output without using external tool [32]
  104. o tests/certs/scripts: insert standard curl source headers [169]
  105. o tests: fix tag syntax errors in test files
  106. o tests: skip mime/form tests when mime is not built-in [54]
  107. o TODO: Provide the error body from a CONNECT response [67]
  108. o tool: remove dead code [70]
  109. o tool_hugehelp: make hugehelp a blank macro when disabled [7]
  110. o tool_operate: avoid a few #ifdefs for disabled-libcurl builds [29]
  111. o tool_operate: prevent over-queuing in parallel mode [176]
  112. o tool_operate: reduce errorbuffer allocs [173]
  113. o tool_progress: remove 'Qd' from the parallel progress bar [175]
  114. o tool_setopt: use better English in --libcurl source comments [39]
  115. o unit test 1655: make it C89-compliant [59]
  116. o url: a zero-length userinfo part in the URL is still a (blank) user [64]
  117. o url: rename function due to name-clash in Watt-32 [62]
  118. o urlapi: detect scheme better when not guessing [56]
  119. o urlapi: leaner with fewer allocs [2]
  120. o urlapi: reject more bad characters from the host name field [88]
  121. o winbuild/MakefileBuild.vc: handle spaces in libssh(2) include paths [18]
  122. o winbuild: Use NMake batch-rules for compilation [47]
  123. o windows: add .rc support to autotools builds [33]
  124. o windows: adjust name of two internal public functions [58]
  125. o windows: autotools .rc warnings fixup [68]
  126. o wolfSSL: fix session management bug. [31]
  127. This release includes the following known bugs:
  128. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  129. This release would not have looked like this without help, code, reports and
  130. advice from friends like these:
  131. a1346054 on github, ajak in #curl, Andrew Lambert, Benjamin Loison,
  132. Dan Fandrich, Daniel Stenberg, David Hu, Dmitry Karpov, Edoardo Lolletti,
  133. Eloy Degen, Emanuele Torre, Gisle Vanem, Hayden Roche, James Fuller,
  134. John Bampton, justchen1369 on github, Keitagit-kun on github, Marcel Raad,
  135. Marc Hörsken, Mark Itzcovitz, Matt Holt, Max Dymond, Michael Drake,
  136. Michael Heimpold, n0name321 on github, Orgad Shaneh, Patrick Monnerat,
  137. Philip H, Philip Heiduck, ProceduralMan on github, Randall S. Becker,
  138. Ray Satiro, RobBotic1 on github, Robby Simpson, Samuel Henrique,
  139. Sergey Bronnikov, ssdbest on github, Thiago Suchorski, Tobias Schaefer,
  140. Viktor Szakats, Yuriy Chernyshov, zhanghu on xiaomi
  141. (42 contributors)
  142. References to bug reports and discussions on issues:
  143. [1] = https://curl.se/bug/?i=9357
  144. [2] = https://curl.se/bug/?i=9408
  145. [3] = https://curl.se/bug/?i=9375
  146. [4] = https://curl.se/bug/?i=9375
  147. [5] = https://curl.se/bug/?i=9498
  148. [6] = https://curl.se/bug/?i=9444
  149. [7] = https://curl.se/bug/?i=9485
  150. [8] = https://curl.se/bug/?i=9455
  151. [9] = https://curl.se/bug/?i=9434
  152. [10] = https://curl.se/bug/?i=9429
  153. [11] = https://curl.se/bug/?i=9432
  154. [12] = https://curl.se/bug/?i=9433
  155. [13] = https://curl.se/bug/?i=9471
  156. [14] = https://curl.se/bug/?i=9410
  157. [15] = https://curl.se/bug/?i=9427
  158. [16] = https://curl.se/bug/?i=9307
  159. [17] = https://curl.se/bug/?i=9485
  160. [18] = https://curl.se/mail/lib-2022-09/0038.html
  161. [19] = https://curl.se/bug/?i=9604
  162. [20] = https://curl.se/bug/?i=9533
  163. [21] = https://curl.se/bug/?i=9495
  164. [22] = https://curl.se/bug/?i=9520
  165. [23] = https://curl.se/bug/?i=8995
  166. [24] = https://curl.se/bug/?i=9484
  167. [25] = https://curl.se/bug/?i=9424
  168. [26] = https://curl.se/bug/?i=9424
  169. [27] = https://curl.se/bug/?i=9448
  170. [28] = https://curl.se/bug/?i=9535
  171. [29] = https://curl.se/bug/?i=9486
  172. [30] = https://curl.se/bug/?i=9491
  173. [31] = https://curl.se/bug/?i=9492
  174. [32] = https://curl.se/bug/?i=9563
  175. [33] = https://curl.se/bug/?i=9521
  176. [34] = https://curl.se/bug/?i=9453
  177. [35] = https://curl.se/bug/?i=9453
  178. [36] = https://curl.se/bug/?i=9553
  179. [37] = https://curl.se/bug/?i=9453
  180. [38] = https://curl.se/bug/?i=9474
  181. [39] = https://curl.se/bug/?i=9475
  182. [40] = https://curl.se/bug/?i=9530
  183. [41] = https://curl.se/bug/?i=9527
  184. [42] = https://curl.se/bug/?i=9544
  185. [43] = https://curl.se/bug/?i=9544
  186. [44] = https://curl.se/bug/?i=9544
  187. [45] = https://curl.se/bug/?i=9472
  188. [46] = https://curl.se/bug/?i=9515
  189. [47] = https://curl.se/bug/?i=9512
  190. [48] = https://curl.se/bug/?i=9562
  191. [49] = https://curl.se/bug/?i=9519
  192. [50] = https://curl.se/bug/?i=9517
  193. [51] = https://curl.se/bug/?i=9507
  194. [52] = https://curl.se/bug/?i=9505
  195. [53] = https://curl.se/bug/?i=9560
  196. [54] = https://curl.se/bug/?i=9596
  197. [55] = https://curl.se/bug/?i=9549
  198. [56] = https://curl.se/bug/?i=9503
  199. [57] = https://curl.se/bug/?i=9555
  200. [58] = https://curl.se/bug/?i=9598
  201. [59] = https://curl.se/bug/?i=9551
  202. [60] = https://curl.se/bug/?i=9548
  203. [61] = https://curl.se/bug/?i=9540
  204. [62] = https://curl.se/bug/?i=9585
  205. [63] = https://curl.se/bug/?i=9463
  206. [64] = https://curl.se/bug/?i=9088
  207. [65] = https://curl.se/bug/?i=9586
  208. [66] = https://curl.se/bug/?i=9591
  209. [67] = https://curl.se/bug/?i=9513
  210. [68] = https://curl.se/bug/?i=9582
  211. [69] = https://curl.se/bug/?i=9575
  212. [70] = https://curl.se/bug/?i=9576
  213. [71] = https://curl.se/bug/?i=9534
  214. [72] = https://curl.se/bug/?i=9542
  215. [73] = https://curl.se/bug/?i=9572
  216. [74] = https://curl.se/bug/?i=9569
  217. [75] = https://curl.se/bug/?i=9574
  218. [76] = https://curl.se/bug/?i=9623
  219. [77] = https://curl.se/bug/?i=9624
  220. [78] = https://curl.se/bug/?i=9619
  221. [79] = https://curl.se/bug/?i=9625
  222. [80] = https://curl.se/bug/?i=9639
  223. [81] = https://curl.se/bug/?i=9565
  224. [82] = https://curl.se/bug/?i=9610
  225. [83] = https://curl.se/mail/archive-2022-02/0041.html
  226. [84] = https://curl.se/bug/?i=9612
  227. [85] = https://curl.se/bug/?i=9614
  228. [86] = https://curl.se/bug/?i=9607
  229. [87] = https://curl.se/bug/?i=9592
  230. [88] = https://curl.se/bug/?i=9608
  231. [89] = https://curl.se/bug/?i=9605
  232. [90] = https://curl.se/bug/?i=9600
  233. [91] = https://curl.se/bug/?i=9584
  234. [92] = https://curl.se/bug/?i=9632
  235. [95] = https://curl.se/bug/?i=9630
  236. [96] = https://curl.se/bug/?i=9628
  237. [164] = https://curl.se/bug/?i=9414
  238. [169] = https://curl.se/bug/?i=9417
  239. [170] = https://curl.se/bug/?i=9415
  240. [171] = https://curl.se/bug/?i=9419
  241. [172] = https://curl.se/bug/?i=9418
  242. [173] = https://curl.se/bug/?i=9394
  243. [175] = https://curl.se/bug/?i=9389
  244. [176] = https://curl.se/bug/?i=8933
  245. [177] = https://curl.se/bug/?i=9214