RELEASE-NOTES.txt 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. curl and libcurl 7.70.0
  2. Public curl releases: 191
  3. Command line options: 231
  4. curl_easy_setopt() options: 270
  5. Public functions in libcurl: 82
  6. Contributors: 2169
  7. This release includes the following changes:
  8. o curl: add --ssl-revoke-best-effort to allow a "best effort" revocation check [5]
  9. o mqtt: add new experimental protocol [57]
  10. o schannel: add "best effort" revocation check option: CURLSSLOPT_REVOKE_BEST_EFFORT [5]
  11. o writeout: support to generate JSON output with '%{json}' [8]
  12. This release includes the following bugfixes:
  13. o appveyor: add Unicode winbuild jobs [88]
  14. o appveyor: completely disable tests that fail to timeout early
  15. o appveyor: show failed tests in log even if test is ignored
  16. o appveyor: sort builds by type and add two new variants
  17. o appveyor: turn disabled tests into ignored result tests
  18. o appveyor: use random test server ports based upon APPVEYOR_API_URL [52]
  19. o build: fixed build for systems with select() in unistd.h [43]
  20. o buildconf: avoid using tempfile when removing files [90]
  21. o checksrc: warn on obvious conditional blocks on the same line as if() [44]
  22. o CI-fuzz: increase fuzz time to 40 minutes [59]
  23. o ci/tests: fix Azure Pipelines not running Windows containers [25]
  24. o CI: add build with ngtcp2 + gnutls on Travis CI
  25. o CI: bring GitHub Actions fuzzing job in line with macOS jobs
  26. o CI: migrate macOS jobs from Azure and Travis CI to GitHub Actions [36]
  27. o CI: remove default Ubuntu build from GitHub Actions
  28. o cirrus: no longer ignore test 504 which is working again
  29. o cirrus: re-enable the FreeBSD 13 CI builds [29]
  30. o cleanup: insert newline after if() conditions
  31. o cmake: add aliases so exported target names are available in tree [73]
  32. o cmake: add CMAKE_MSVC_RUNTIME_LIBRARY [45]
  33. o cmake: add support for building with wolfSSL [9]
  34. o cmake: Avoid MSVC C4273 warnings in send/recv checks [92]
  35. o cmdline: fix handling of OperationConfig linked list (--next) [24]
  36. o compressed.d: stress that the headers are not modified [80]
  37. o config: remove all defines of HAVE_DES_H [37]
  38. o configure: convert -I to -isystem as a last step [2]
  39. o configure: document 'compiler_num' for gcc [4]
  40. o configure: don't check for Security.framework when cross-compiling [47]
  41. o configure: fix -pedantic-errors for GCC 5 and later [3]
  42. o configure: remove use of -vec-report0 from CFLAGS with icc [71]
  43. o connect: happy eyeballs cleanup [15]
  44. o connect: store connection info for QUIC connections [68]
  45. o copyright: fix out-of-date copyright ranges and missing headers [38]
  46. o curl-functions.m4: remove inappropriate AC_REQUIRE [26]
  47. o curl.h: remnove CURL_VERSION_ESNI. Never supported nor documented [49]
  48. o curl.h: update comment typo [61]
  49. o curl: allow both --etag-compare and --etag-save with same file name [56]
  50. o curl_setup: define _WIN32_WINNT_[OS] symbols [27]
  51. o CURLINFO_CONDITION_UNMET: return true for 304 http status code [54]
  52. o CURLINFO_NUM_CONNECTS: improve accuracy [28]
  53. o CURLOPT_WRITEFUNCTION.3: add inline example and new see-also [70]
  54. o dist: add mail-rcpt-allowfails.d to the tarball [35]
  55. o docs/make: generate curl.1 from listed files only [33]
  56. o docs: add warnings about FILE: URLs on Windows [19]
  57. o easy: fix curl_easy_duphandle for builds missing IPv6 that use c-ares [18]
  58. o examples/sessioninfo.c: add include to fix compiler warning [42]
  59. o github actions: run when pushed to master or */ci + PRs [64]
  60. o gnutls: bump lowest supported version to 3.1.10 [89]
  61. o gnutls: Don't skip really long certificate fields [86]
  62. o gnutls: ensure TLS 1.3 when SRP isn't requested [79]
  63. o gopher: check remaining time left during write busy loop [78]
  64. o gskit: use our internal select wrapper for portability [12]
  65. o http2: Fix erroneous debug message that h2 connection closed [21]
  66. o http: don't consider upload done if the request isn't completely sent off [67]
  67. o http: free memory when Alt-Used header creation fails due to OOM [98]
  68. o lib/mk-ca-bundle: skip empty certs [112]
  69. o lib670: use the same Win32 API check as all other lib tests
  70. o lib: fix typos in comments and errormessages
  71. o lib: never define CURL_CA_BUNDLE with a getenv [51]
  72. o libcurl-multi.3: added missing full stop [110]
  73. o libssh: avoid options override by configuration files [104]
  74. o libssh: Use new ECDSA key types to check known hosts [87]
  75. o mailmap: fixup a few author names/fields
  76. o Makefile.m32: Improve windres parameter compatibility [17]
  77. o Makefile: run the cd commands in a subshell [1]
  78. o memdebug: don't log free(NULL)
  79. o mime: properly check Content-Type even if it has parameters [83]
  80. o multi-ssl: reset the SSL backend on `Curl_global_cleanup()` [100]
  81. o multi: improve parameter check for curl_multi_remove_handle [6]
  82. o nghttp2: 1.12.0 required [40]
  83. o ngtcp2: update to git master for the key installation API change [46]
  84. o nss: check for PK11_CreateDigestContext() returning NULL [96]
  85. o openssl: adapt to functions marked as deprecated since version 3 [34]
  86. o OS400: update strings for ccsid-ifier (fixes the build) [30]
  87. o output.d: quote the URL when globbing [48]
  88. o packages: add OS400/chkstrings.c to the dist [39]
  89. o RELEASE-PROCEDURE.md: run the copyright.pl script!
  90. o Revert "file: on Windows, refuse paths that start with \\" [50]
  91. o runtests: always put test number in servercmd file
  92. o runtests: provide nicer errormsg when protocol "dump" file is empty
  93. o schannel: Fix blocking timeout logic [76]
  94. o schannel: support .P12 or .PFX client certificates [65]
  95. o scripts/release-notes.pl: add helper script for RELEASE-NOTES maintenance
  96. o select: make Curl_socket_check take timediff_t timeout [109]
  97. o select: move duplicate select preparation code into Curl_select [14]
  98. o select: remove typecast from SOCKET_WRITABLE/READABLE macros [69]
  99. o server/getpart: make the "XML-parser" stricter [20]
  100. o server/resolve: remove AI_CANONNAME to make macos tell the truth [63]
  101. o smtp: set auth correctly [103]
  102. o sockfilt: add logmsg output to select_ws_wait_thread on Windows [32]
  103. o sockfilt: fix broken pipe on Windows to be ready in select_ws [95]
  104. o sockfilt: fix handling of ready closed sockets on Windows
  105. o sockfilt: fix race-condition of waiting threads and event handling [58]
  106. o socks: Fix blocking timeout logic [77]
  107. o src: Remove C99 constructs to ensure C89 compliance [82]
  108. o SSLCERTS.md: Fix example code for setting CA cert file [31]
  109. o test1148: tolerate progress updates better (again) [60]
  110. o test1154: set a proper name
  111. o test1177: verify that all the CURL_VERSION_ bits are documented
  112. o test1566: verify --etag-compare that gets a 304 back [53]
  113. o test1908: avoid using fixed port number in test data [75]
  114. o test2043: use revoked.badssl.com instead of revoked.grc.com [94]
  115. o test2100: fix static port instead of dynamic value being used
  116. o tests/data: fix some XML formatting issues in test cases
  117. o tests/FILEFORMAT: converted to markdown and extended [84]
  118. o tests/server/util.c: use curl_off_t instead of long for pid
  119. o tests: add %NOLISTENPORT and use it [93]
  120. o tests: add Windows compatible pidwait like pidkill and pidterm
  121. o tests: fix conflict between Cygwin/msys and Windows PIDs [81]
  122. o tests: introduce preprocessed test cases
  123. o tests: make Python-based servers compatible with Python 2 and 3 [22]
  124. o tests: make runtests check that disabled tests exists [108]
  125. o tests: move pingpong server to dynamic listening port
  126. o tests: remove python_dependencies for smbserver from our tree [16]
  127. o tests: run the RTSP test server on a dynamic port number [91]
  128. o tests: run the SOCKS test server on a dynamic port number [99]
  129. o tests: run the sws server on "any port" [85]
  130. o tests: run the TFTP test server on a dynamic port number [101]
  131. o tests: use Cygwin/msys PIDs for stunnel and sshd on Windows
  132. o tls: remove the BACKEND define kludge from most backends [23]
  133. o tool: do not declare functions with Curl_ prefix [66]
  134. o tool_operate: fix add_parallel_transfers when more are in queue [10]
  135. o transfer: cap retries of "dead connections" to 5 [13]
  136. o transfer: Switch PUT to GET/HEAD on 303 redirect [111]
  137. o travis: bump the wolfssl CI build to use 4.4.0 [97]
  138. o travis: update the ngtcp2 build to use the latest OpenSSL patch
  139. o url: allow non-HTTPS altsvc-matching for debug builds [62]
  140. o version: add 'cainfo' and 'capath' to version info struct [55]
  141. o version: increase buffer space for ssl version output [74]
  142. o version: skip idn2_check_version() check and add precaution [113]
  143. o vquic: add support for GnuTLS backend of ngtcp2 [41]
  144. o vtls: fix ssl_config memory-leak on out-of-memory [11]
  145. o warnless: remove code block for icc that didn't work [72]
  146. o windows: enable UnixSockets with all build toolchains
  147. o windows: suppress UI in all CryptAcquireContext() calls [7]
  148. This release includes the following known bugs:
  149. o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)
  150. This release would not have looked like this without help, code, reports and
  151. advice from friends like these:
  152. Alain Miniussi, Alexander V. Tikhonov, Alex Gaynor,
  153. Anderson Toshiyuki Sasaki, Andrew Kurushin, Ashwin Metpalli, Björn Stenberg,
  154. Brad King, Brian Bergeron, Calvin Buckley, Chris Roberts, Christoph Krey,
  155. Clément Notin, Daiki Ueno, Dan Fandrich, Daniel Gustafsson, Daniel Stenberg,
  156. davidedec on github, Dennis Felsing, Dima Tisnek, Dirkjan Bussink,
  157. Emil Engler, Eric Sauvageau, Eylem Ugurel, Frank Gevaerts,
  158. FuccDucc on github, Gavin Wong, Gilles Vollant, Gisle Vanem, Hao Wu,
  159. Harry Sintonen, hydra3333 on github, James Fuller, Johannes Schindelin,
  160. Jon Rumsey, JP Mens, Kamil Dudka, Karl Chen, Kwon-Young Choi, Leo Neat,
  161. Maksim Stsepanenka, Marcel Raad, Marc Hörsken, Markus Olsson, Mathias Gumz,
  162. Michael Kaufmann, Michael Osipov, Muhammad Herdiansyah, Nathaniel R. Lewis,
  163. Patrick Monnerat, Paul Vixie, Ray Satiro, Rici Lake, Rikard Falkeborn,
  164. Roger Orr, Ross Burton, Simon Chalifoux, Stepan Efremov, Steven Penny,
  165. thanhchungbtc on github, Timothe Litt, Tim Sedlmeyer, Tommy Petty,
  166. Viktor Szakats, Yuri Slobodyanyuk,
  167. (65 contributors)
  168. Thanks! (and sorry if I forgot to mention someone)
  169. References to bug reports and discussions on issues:
  170. [1] = https://curl.haxx.se/bug/?i=5073
  171. [2] = https://curl.haxx.se/bug/?i=5060
  172. [3] = https://curl.haxx.se/bug/?i=5067
  173. [4] = https://curl.haxx.se/bug/?i=5069
  174. [5] = https://curl.haxx.se/bug/?i=4981
  175. [6] = https://curl.haxx.se/bug/?i=5116
  176. [7] = https://curl.haxx.se/bug/?i=5088
  177. [8] = https://curl.haxx.se/bug/?i=4870
  178. [9] = https://curl.haxx.se/bug/?i=5095
  179. [10] = https://curl.haxx.se/bug/?i=4937
  180. [11] = https://curl.haxx.se/bug/?i=5108
  181. [12] = https://curl.haxx.se/bug/?i=5106
  182. [13] = https://curl.haxx.se/mail/lib-2020-03/0044.html
  183. [14] = https://curl.haxx.se/bug/?i=5078
  184. [15] = https://curl.haxx.se/bug/?i=4954
  185. [16] = https://curl.haxx.se/bug/?i=5094
  186. [17] = https://curl.haxx.se/bug/?i=5099
  187. [18] = https://curl.haxx.se/bug/?i=5097
  188. [19] = https://curl.haxx.se/bug/?i=5066
  189. [20] = https://curl.haxx.se/bug/?i=5071
  190. [21] = https://curl.haxx.se/bug/?i=5118
  191. [22] = https://curl.haxx.se/bug/?i=5104
  192. [23] = https://curl.haxx.se/bug/?i=5122
  193. [24] = https://curl.haxx.se/bug/?i=5120
  194. [25] = https://curl.haxx.se/bug/?i=5117
  195. [26] = https://curl.haxx.se/bug/?i=5126
  196. [27] = https://curl.haxx.se/bug/?i=4995
  197. [28] = https://curl.haxx.se/bug/?i=5135
  198. [29] = https://curl.haxx.se/bug/?i=5091
  199. [30] = https://curl.haxx.se/bug/?i=5132
  200. [31] = https://curl.haxx.se/mail/lib-2020-03/0121.html
  201. [32] = https://curl.haxx.se/bug/?i=5086
  202. [33] = https://curl.haxx.se/bug/?i=5149
  203. [34] = https://curl.haxx.se/bug/?i=5139
  204. [35] = https://curl.haxx.se/bug/?i=5146
  205. [36] = https://curl.haxx.se/bug/?i=5124
  206. [37] = https://curl.haxx.se/bug/?i=5144
  207. [38] = https://curl.haxx.se/bug/?i=5141
  208. [39] = https://curl.haxx.se/bug/?i=5142
  209. [40] = https://curl.haxx.se/bug/?i=5140
  210. [41] = https://curl.haxx.se/bug/?i=5148
  211. [42] = https://curl.haxx.se/bug/?i=5171
  212. [43] = https://curl.haxx.se/bug/?i=5169
  213. [44] = https://curl.haxx.se/bug/?i=5164
  214. [45] = https://curl.haxx.se/bug/?i=5165
  215. [46] = https://curl.haxx.se/bug/?i=5166
  216. [47] = https://curl.haxx.se/bug/?i=5189
  217. [48] = https://curl.haxx.se/bug/?i=5160
  218. [49] = https://curl.haxx.se/bug/?i=5157
  219. [50] = https://curl.haxx.se/mail/archive-2020-04/0013.html
  220. [51] = https://github.com/curl/curl/commit/6de756c#r38127030
  221. [52] = https://curl.haxx.se/bug/?i=5034
  222. [53] = https://curl.haxx.se/bug/?i=5186
  223. [54] = https://curl.haxx.se/bug/?i=5181
  224. [55] = https://curl.haxx.se/bug/?i=5150
  225. [56] = https://curl.haxx.se/bug/?i=5179
  226. [57] = https://curl.haxx.se/bug/?i=5173
  227. [58] = https://curl.haxx.se/bug/?i=5156
  228. [59] = https://curl.haxx.se/bug/?i=5174
  229. [60] = https://curl.haxx.se/bug/?i=5194
  230. [61] = https://curl.haxx.se/bug/?i=5279
  231. [62] = https://curl.haxx.se/bug/?i=5205
  232. [63] = https://curl.haxx.se/bug/?i=5202
  233. [64] = https://curl.haxx.se/bug/?i=5201
  234. [65] = https://curl.haxx.se/bug/?i=5193
  235. [66] = https://curl.haxx.se/bug/?i=5219
  236. [67] = https://curl.haxx.se/bug/?i=4919
  237. [68] = https://curl.haxx.se/bug/?i=5196
  238. [69] = https://curl.haxx.se/bug/?i=5190
  239. [70] = https://curl.haxx.se/bug/?i=5192
  240. [71] = https://curl.haxx.se/bug/?i=5096
  241. [72] = https://curl.haxx.se/bug/?i=5096
  242. [73] = https://curl.haxx.se/bug/?i=5206
  243. [74] = https://curl.haxx.se/bug/?i=5222
  244. [75] = https://curl.haxx.se/bug/?i=5225
  245. [76] = https://curl.haxx.se/bug/?i=5177
  246. [77] = https://curl.haxx.se/bug/?i=5220
  247. [78] = https://curl.haxx.se/bug/?i=5214
  248. [79] = https://curl.haxx.se/bug/?i=5223
  249. [80] = https://github.com/curl/curl/issues/5182#issuecomment-611638008
  250. [81] = https://curl.haxx.se/bug/?i=5188
  251. [82] = https://curl.haxx.se/bug/?i=5254
  252. [83] = https://curl.haxx.se/bug/?i=5256
  253. [84] = https://curl.haxx.se/bug/?i=5261
  254. [85] = https://curl.haxx.se/bug/?i=5247
  255. [86] = https://curl.haxx.se/bug/?i=5271
  256. [87] = https://curl.haxx.se/bug/?i=5252
  257. [88] = https://curl.haxx.se/bug/?i=5063
  258. [89] = https://curl.haxx.se/bug/?i=5276
  259. [90] = https://curl.haxx.se/bug/?i=5213
  260. [91] = https://curl.haxx.se/bug/?i=5272
  261. [92] = https://curl.haxx.se/bug/?i=4764
  262. [93] = https://curl.haxx.se/bug/?i=5270
  263. [94] = https://curl.haxx.se/bug/?i=5233
  264. [95] = https://curl.haxx.se/bug/?i=5228
  265. [96] = https://curl.haxx.se/bug/?i=5302
  266. [97] = https://curl.haxx.se/bug/?i=5301
  267. [98] = https://curl.haxx.se/bug/?i=5268
  268. [99] = https://curl.haxx.se/bug/?i=5266
  269. [100] = https://curl.haxx.se/bug/?i=5255
  270. [101] = https://curl.haxx.se/bug/?i=5265
  271. [103] = https://curl.haxx.se/bug/?i=5294
  272. [104] = https://curl.haxx.se/bug/?i=4972
  273. [108] = https://curl.haxx.se/bug/?i=5288
  274. [109] = https://curl.haxx.se/bug/?i=5240
  275. [110] = https://curl.haxx.se/bug/?i=5285
  276. [111] = https://curl.haxx.se/bug/?i=5237
  277. [112] = https://curl.haxx.se/bug/?i=5278
  278. [113] = https://curl.haxx.se/bug/?i=5281