RELEASE-NOTES 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. curl and libcurl 7.87.0
  2. Public curl releases: 212
  3. Command line options: 249
  4. curl_easy_setopt() options: 302
  5. Public functions in libcurl: 91
  6. Contributors: 2766
  7. This release includes the following changes:
  8. o curl: add --url-query [52]
  9. o CURLOPT_QUICK_EXIT: don't wait for DNS thread on exit [75]
  10. o openssl: reduce CA certificate bundle reparsing by caching [11]
  11. o version: add a feature names array to curl_version_info_data [67]
  12. This release includes the following bugfixes:
  13. o aws_sigv4: consult x-%s-content-sha256 for payload hash [102]
  14. o aws_sigv4: fix typos in aws_sigv4.c [101]
  15. o ci: Remove zuul fuzzing job as it's superseded by CIFuzz
  16. o cmake: check for cross-compile, not for toolchain [54]
  17. o CMake: fix build with `CURL_USE_GSSAPI` [78]
  18. o cmake: really enable warnings with clang [25]
  19. o cmdline-opts/gen.pl: fix the linkifier [64]
  20. o cmdline-opts/page-footer: remove long option nroff formatting
  21. o config-win32: fix SIZEOF_OFF_T for MSVC and old MinGW [41]
  22. o configure: require fork for NTLM-WB [36]
  23. o cookie: compare cookie prefixes case insensitively [14]
  24. o cookie: expire cookies at once when max-age is negative [45]
  25. o cookie: open cookie jar as a binary file [89]
  26. o curl-openssl.m4: do not add $prefix/include/openssl to CPPFLAGS [90]
  27. o curl-rustls.m4: on macOS, rustls also needs the Security framework [44]
  28. o curl.h: include <sys/select.h> on SerenityOS [104]
  29. o curl: override the numeric locale and set "C" by force [60]
  30. o curl: timeout in the read callback [15]
  31. o curl_endian: remove Curl_write64_le from header [81]
  32. o curl_get_line: allow last line without newline char [88]
  33. o curl_path: do not add '/' if homedir ends with one [4]
  34. o CURLMOPT_SOCKETFUNCTION.3: clarify CURL_POLL_REMOVE [1]
  35. o CURLOPT_DEBUGFUNCTION.3: do not assume nul-termination in example [31]
  36. o CURLOPT_POST.3: Explain setting to 0 changes request type [61]
  37. o docs/EARLY-RELEASE.md: how to determine an early release [37]
  38. o docs/INSTALL.md: expand on static builds [62]
  39. o docs/WEBSOCKET.md: explain the URL use [71]
  40. o docs: add missing parameters for --retry flag [2]
  41. o docs: add more "SEE ALSO" links to CA related pages [82]
  42. o docs: explain the noproxy CIDR notation support [17]
  43. o docs: remove performance note in CURLOPT_SSL_VERIFYPEER [13]
  44. o examples/10-at-a-time: fix possible skipped final transfers [85]
  45. o examples: update descriptions [83]
  46. o ftp: support growing files with CURLOPT_IGNORE_CONTENT_LENGTH [96]
  47. o gen.pl: do not generate CURLHELP bitmask lines > 79 characters [10]
  48. o GHA: clarify workflows permissions, set least possible privilege [79]
  49. o GHA: NSS use clang instead of clang-9 [103]
  50. o gnutls: use common gnutls init and verify code for ngtcp2 [98]
  51. o headers: add endif comments [51]
  52. o HTTP-COOKIES.md: mention that http://localhost is a secure context [76]
  53. o HTTP-COOKIES.md: update the 6265bis link to draft-11 [70]
  54. o http: do not send PROXY more than once [46]
  55. o http: set 'this_is_a_follow' in the Location: logic [40]
  56. o hyper: classify headers as CONNECT and 1XX [56]
  57. o hyper: fix handling of hyper_task's when reusing the same address [33]
  58. o INSTALL: update operating systems and CPU archs [91]
  59. o KNOWN_BUGS: remove eight entries [50]
  60. o lib: add CURL_WRITEFUNC_ERROR to signal write callback error [47]
  61. o lib: connection filters (cfilter) addition to curl: [43]
  62. o lib: feature deprecation warnings in gcc >= 4.3 [58]
  63. o lib: fix some type mismatches and remove unneeded typecasts [12]
  64. o lib: parse numbers with fixed known base 10 [77]
  65. o lib: remove bad set.opt_no_body assignments [42]
  66. o lib: rewind BEFORE request instead of AFTER previous [65]
  67. o lib: sync guard for Curl_getaddrinfo_ex() definition and use [6]
  68. o libcurl-errors.3: remove duplicate word [3]
  69. o log2changes.pl: wrap long lines at 80 columns [59]
  70. o Makefile.mk: address minor issues [87]
  71. o Makefile.mk: portable Makefile.m32 [86]
  72. o maketgz: set the right version in lib/libcurl.plist [53]
  73. o mime: relax easy/mime structures binding [94]
  74. o misc: remove duplicated include files [28]
  75. o misc: typo and grammar fixes [23]
  76. o negtelnetserver.py: have it call its close() method [68]
  77. o netrc.d: provide mutext info [63]
  78. o netware: remove leftover traces [80]
  79. o noproxy: also match with adjacent comma [19]
  80. o noproxy: tailmatch like in 7.85.0 and earlier [35]
  81. o nroff-scan.pl: detect double highlights
  82. o ntlm: improve comment for encrypt_des [55]
  83. o ntlm: silence ubsan warning about copying from null target_info pointer. [69]
  84. o openssl/mbedtls: use %d for outputing port with failf (int) [72]
  85. o openssl: prefix errors with '[lib]/[version]: ' [105]
  86. o os400: use platform socklen_t in Curl_getnameinfo_a [18]
  87. o proxy: refactor haproxy protocol handling as connection filter [57]
  88. o README.md: remove badges and xmas-tree garnish [9]
  89. o rtsp: fix RTSP auth [49]
  90. o runtests: --no-debuginfod now disables DEBUGINFOD_URLS [100]
  91. o runtests: do CRLF replacements per section only [97]
  92. o scripts/checksrc.pl: detect duplicated include files [29]
  93. o sendf: change Curl_read_plain to wrap Curl_recv_plain [48]
  94. o sendf: remove unnecessary if condition [26]
  95. o spellcheck.words: remove 'github' as an accepted word [22]
  96. o strcase: use curl_str(n)equal for case insensitive matches [8]
  97. o system.h: support 64-bit curl_off_t for NonStop 32-bit [21]
  98. o test3026: reduce runtime in legacy mingw builds [73]
  99. o tests/sshserver.pl: re-enable ssh-rsa while using openssh 8.8+
  100. o tests: add authorityInfoAccess to generated certs [99]
  101. o tests: add HTTP/3 test case, custom location for proper nghttpx [106]
  102. o tls: backends use connection filters for IO, enabling HTTPS-proxy [92]
  103. o tool_getparam: make --no-get work as the opposite of --get [39]
  104. o tool_operate: provide better errmsg for -G with bad URL [16]
  105. o tool_operate: when aborting, make sure there is a non-NULL error buffer [20]
  106. o url: move back the IDN conversion of proxy names [74]
  107. o urldata: change port num storage to int and unsigned short [66]
  108. o vtls: fix build without proxy support [38]
  109. o vtls: localization of state data in filters [84]
  110. o WEBSOCKET.md: fix broken link [30]
  111. o Websocket: fixes for partial frames and buffer updates. [7]
  112. o websockets: fix handling of partial frames [32]
  113. o windows: fail early with a missing windres in autotools [5]
  114. o windows: fix linking .rc to shared curl with autotools [24]
  115. o winidn: drop WANT_IDN_PROTOTYPES [27]
  116. o ws: return CURLE_NOT_BUILT_IN when websockets not built in [34]
  117. This release includes the following known bugs:
  118. o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
  119. Planned upcoming removals include:
  120. o NSS
  121. o Support for systems without 64 bit data types
  122. See https://curl.se/dev/deprecate.html for details
  123. This release would not have looked like this without help, code, reports and
  124. advice from friends like these:
  125. Adam Averay, Alexandre Ferrieux, Alex Xu, Ali Utku Selen, Andrei Rybak,
  126. Andy Stamp, Anthony Hu, AtariDreams on github, Ayesh Karunaratne,
  127. Baitinq on github, Casey Bodley, Christopher Sauer, Christoph Reiter,
  128. Dan Fandrich, Daniel Faust, Daniel Gustafsson, Daniel Stenberg,
  129. Diogo Teles Sant'Anna, Egor Pugin, Emanuele Torre, Emil Österlund,
  130. Eric Vigeant, Erik Janssen, Fata Nugraha, Felipe Gasper, Gisle Vanem,
  131. godmar on github, Henning Schild, Hirotaka Tagawa, Ikko Ashimine,
  132. Jakub Zakrzewski, Joel Depooter, John Sherrill, Jon Rumsey,
  133. jvreelanda on github, Karthikdasari0423 on github, Kenneth Myhra,
  134. Lorenzo Miniero, Luca Niccoli, Marc Hörsken, Mark Gaiser, Max Dymond,
  135. Michael Drake, Michael Kaufmann, Mikhail Kuznetsov,
  136. MonkeybreadSoftware on github, Nathan Moinvaziri, Oskar Sigvardsson,
  137. Patrick Monnerat, Patrick Schlangen, Peter Piekarski, Philip Chan,
  138. Philip Heiduck, Philip Sanetra, Randall S. Becker, Ray Satiro, Rob de Wit,
  139. Robin Marx, Ryan Schmidt, Sean McArthur, Stefan Eissing, Stephan Guilloux,
  140. Stuart Henderson, Thomas Glanzmann, Trail of Bits, Viktor Szakats,
  141. xianghongai on github, Zespre Schmidt
  142. (68 contributors)
  143. References to bug reports and discussions on issues:
  144. [1] = https://curl.se/bug/?i=9799
  145. [2] = https://curl.se/bug/?i=9848
  146. [3] = https://curl.se/bug/?i=9846
  147. [4] = https://curl.se/bug/?i=9844
  148. [5] = https://curl.se/bug/?i=9781
  149. [6] = https://curl.se/bug/?i=9734
  150. [7] = https://curl.se/bug/?i=9890
  151. [8] = https://curl.se/bug/?i=9837
  152. [9] = https://curl.se/bug/?i=9833
  153. [10] = https://curl.se/bug/?i=9834
  154. [11] = https://curl.se/bug/?i=9620
  155. [12] = https://curl.se/bug/?i=9835
  156. [13] = https://curl.se/bug/?i=9832
  157. [14] = https://curl.se/bug/?i=9863
  158. [15] = https://sourceforge.net/p/curl/bugs/846/
  159. [16] = https://curl.se/bug/?i=9889
  160. [17] = https://curl.se/bug/?i=9818
  161. [18] = https://curl.se/bug/?i=9811
  162. [19] = https://curl.se/bug/?i=9813
  163. [20] = https://curl.se/bug/?i=9865
  164. [21] = https://curl.se/bug/?i=9817
  165. [22] = https://curl.se/bug/?i=9810
  166. [23] = https://curl.se/bug/?i=9802
  167. [24] = https://curl.se/bug/?i=9803
  168. [25] = https://curl.se/bug/?i=9783
  169. [26] = https://curl.se/bug/?i=9801
  170. [27] = https://curl.se/bug/?i=9793
  171. [28] = https://curl.se/bug/?i=9796
  172. [29] = https://curl.se/bug/?i=9796
  173. [30] = https://curl.se/mail/lib-2022-10/0097.html
  174. [31] = https://curl.se/mail/lib-2022-11/0016.html
  175. [32] = https://curl.se/bug/?i=9861
  176. [33] = https://curl.se/bug/?i=9840
  177. [34] = https://curl.se/bug/?i=9851
  178. [35] = https://curl.se/bug/?i=9842
  179. [36] = https://curl.se/bug/?i=9847
  180. [37] = https://curl.se/bug/?i=9820
  181. [38] = https://curl.se/bug/?i=9895
  182. [39] = https://curl.se/bug/?i=9891
  183. [40] = https://curl.se/bug/?i=9885
  184. [41] = https://curl.se/bug/?i=9712
  185. [42] = https://curl.se/bug/?i=9888
  186. [43] = https://curl.se/bug/?i=9855
  187. [44] = https://curl.se/bug/?i=9883
  188. [45] = https://curl.se/bug/?i=9930
  189. [46] = https://curl.se/bug/?i=9442
  190. [47] = https://curl.se/bug/?i=9874
  191. [48] = https://curl.se/bug/?i=9431
  192. [49] = https://curl.se/bug/?i=4750
  193. [50] = https://curl.se/bug/?i=9871
  194. [51] = https://curl.se/bug/?i=9853
  195. [52] = https://curl.se/bug/?i=9691
  196. [53] = https://curl.se/bug/?i=9866
  197. [54] = https://curl.se/bug/?i=9921
  198. [55] = https://curl.se/bug/?i=9903
  199. [56] = https://curl.se/bug/?i=9947
  200. [57] = https://curl.se/bug/?i=9893
  201. [58] = https://curl.se/bug/?i=9667
  202. [59] = https://curl.se/bug/?i=9896
  203. [60] = https://curl.se/bug/?i=9969
  204. [61] = https://curl.se/bug/?i=9849
  205. [62] = https://curl.se/bug/?i=9944
  206. [63] = https://curl.se/bug/?i=9899
  207. [64] = https://curl.se/bug/?i=9899
  208. [65] = https://curl.se/bug/?i=9735
  209. [66] = https://curl.se/bug/?i=9946
  210. [67] = https://curl.se/bug/?i=9583
  211. [68] = https://curl.se/bug/?i=9894
  212. [69] = https://curl.se/bug/?i=9898
  213. [70] = https://curl.se/bug/?i=9940
  214. [71] = https://curl.se/bug/?i=9936
  215. [72] = https://curl.se/bug/?i=10001
  216. [73] = https://curl.se/bug/?i=9412
  217. [74] = https://curl.se/bug/?i=9937
  218. [75] = https://curl.se/bug/?i=2975
  219. [76] = https://curl.se/bug/?i=9938
  220. [77] = https://curl.se/bug/?i=9933
  221. [78] = https://curl.se/bug/?i=9017
  222. [79] = https://curl.se/bug/?i=9928
  223. [80] = https://curl.se/bug/?i=9966
  224. [81] = https://curl.se/bug/?i=9968
  225. [82] = https://curl.se/bug/?i=9959
  226. [83] = https://curl.se/bug/?i=9960
  227. [84] = https://curl.se/bug/?i=9919
  228. [85] = https://curl.se/bug/?i=9953
  229. [86] = https://curl.se/bug/?i=9764
  230. [87] = https://curl.se/bug/?i=10000
  231. [88] = https://curl.se/bug/?i=9973
  232. [89] = https://curl.se/bug/?i=10017
  233. [90] = https://curl.se/bug/?i=9989
  234. [91] = https://curl.se/bug/?i=9994
  235. [92] = https://curl.se/bug/?i=9962
  236. [94] = https://curl.se/bug/?i=9927
  237. [96] = https://curl.se/bug/?i=9772
  238. [97] = https://curl.se/bug/?i=10009
  239. [98] = https://curl.se/bug/?i=10007
  240. [99] = https://curl.se/bug/?i=9980
  241. [100] = https://curl.se/bug/?i=9950
  242. [101] = https://curl.se/bug/?i=10008
  243. [102] = https://curl.se/bug/?i=9804
  244. [103] = https://curl.se/bug/?i=9978
  245. [104] = https://curl.se/bug/?i=10006
  246. [105] = https://curl.se/bug/?i=10004
  247. [106] = https://curl.se/bug/?i=9031