-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathRELEASE-NOTES
354 lines (338 loc) · 16 KB
/
RELEASE-NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
curl and libcurl 8.11.0
Public curl releases: 262
Command line options: 266
curl_easy_setopt() options: 306
Public functions in libcurl: 94
Contributors: 3255
This release includes the following changes:
o curl: --create-dirs works for --dump-header as well [4]
o gtls: Add P12 format support [9]
o ipfs: add options to disable [8]
o TLS: TLSv1.3 earlydata support for curl [140]
o WebSockets: make support official (non-experimental) [106]
This release includes the following bugfixes:
o alt-svc: honor data->state.httpwant [19]
o altsvc: avoid using local buffer and memcpy [124]
o asyn-ares: remove typecast, fix expire [113]
o autotools: add support for 'unity' builds, enable in CI [15]
o bearssl: avoid strpcy() when generating TLS version log message [120]
o bufq: unwrite fix [121]
o build: add `ldap` to `libcurl.pc` `Requires:` [139]
o build: add pytest targets [71]
o build: clarify CA embed is for curl tool, mark default, improve summary [72]
o build: detect and use `_setmode()` with Cygwin/MSYS, also use on Windows [136]
o build: fix cross-compile check for poll with bionic [70]
o build: fix possible `-Wformat-overflow` in lib557 [85]
o build: limit arc4random detection to no-SSL configs [43]
o build: show if CA bundle to embed was found [83]
o build: tidy up and improve versioned-symbols options [5]
o build: tidy up deprecation suppression, enable warnings for clang [12]
o checksrc: Added checks for colon operator in ternary expressions [77]
o checksrc: check for spaces around '?', '>' and '<' [46]
o cmake, Makefile.mk: use -isystem for headers, silence BearSSL issues [37]
o cmake/FindNGTCP2: use library path as hint for finding crypto module [40]
o cmake: add missed variable to comment
o cmake: add native `pkg-config` detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL [149]
o cmake: allow building tests in unity mode [31]
o cmake: allow manual configuration for LDAP [144]
o cmake: delete unused NEED_LBER_H, HAVE_LDAP_H [38]
o cmake: detect `HAVE_NETINET_IN6_H`, `HAVE_CLOSESOCKET_CAMEL`, `HAVE_PROTO_BSDSOCKET_H` [132]
o cmake: detect GNU GSS [127]
o cmake: disable default OpenSSL if BearSSL, GnuTLS or Rustls is enabled [44]
o cmake: do not propagate unused `HAVE_GSSAPI_GSSAPI_KRB5_H` to C [131]
o cmake: drop redundant assignments [49]
o cmake: drop redundant zlib var, rename function (internals) [50]
o cmake: expand CURL_USE_PKGCONFIG to non-cross MINGW [13]
o cmake: fix broken dependency chain for cmdline-opts, tidy-ups [11]
o cmake: make `test-ci` target skip building dependencies [88]
o cmake: readd `generate-curl.1` dependency for `src` just in case [86]
o cmake: replace `check_include_file_concat()` for LDAP and GSS detection [143]
o cmake: require quictls (or fork) when using msh3 on non-Windows [14]
o cmake: separate target for examples, optimize CI, fix fallouts [16]
o cmake: stop adding dependency headers to global `CMAKE_REQUIRED_INCLUDES` [146]
o cmake: sync torture test parallelism with autotools [35]
o cmake: use OpenSSL for LDAP detection only if available [102]
o configure: add GSS to `libcurl.pc` `Depends:` [126]
o configure: catch Apple in more target triplets [6]
o configure: drop duplicate feature checks for `poll()`, `if_nametoindex()` [135]
o configure: drop unused bare `socket.h` detection [133]
o configure: improve help string for some options [78]
o conncache: find bundle again in case it is removed [129]
o cookie: overhaul and cleanup [142]
o curl: add build options for safe/no CA bundle search (Windows) [26]
o curl_trc: fix build with verbose messages disabled [79]
o curl_url_set.md: document HOST handling when URL is parsed [2]
o CURLMOPT_PIPELINING.md: clarify that CURLPIPE_NOTHING is not default [54]
o CURLOPT_APPEND.md: goes for SFTP as well [128]
o CURLOPT_HEADERFUNCTION.md: do not modify the passed in buffer [107]
o docs/cmdline-opts: GnuTLS supports PKCS#11 URI in --cert option [101]
o ech: spelling, whitespace, say `--ech` default config [137]
o ftp: fix 0-length last write on upload from stdin [76]
o hsts: avoid the local buffer and memcpy on lookup [125]
o hsts: improve subdomain handling [158]
o http_aws_sigv4: avoid local buffer and strcpy [92]
o INSTALL-CMAKE.md: mention focus on shared libraries [73]
o INSTALL.md: fix a typo that slipped in to RISC OS
o json.md: cli-option `--json` is an alias of `--data-binary` [89]
o lib, src, tests: added space around ternary expressions [56]
o lib/cw-out: initialize 'flush_all' directly [62]
o lib/src: white space edits to comply better with code style [47]
o lib: avoid assigning 'result' temporarily [97]
o lib: fix disabled-verbose-strings + enable-debug build warnings
o lib: fix unity builds with BearSSL, MSH3, Quiche, OmniOS [32]
o lib: use bool/TRUE/FALSE properly [48]
o libssh.c: handle EGAINS during proto-connect correctly [23]
o libssh2: use the Curl_* memory functions to avoid memdebug [22]
o multi.c: make stronger check for paused transfer before asserting [24]
o multi.c: warn/assert on stall only without timer [80]
o multi: avoid reading whole struct pointer from pointer [10]
o multi: convert Curl_follow to static multi_follow [141]
o multi: make curl_multi_cleanup invalidate magic latter [159]
o multi: make multi_handle_timeout use the connect timeout [98]
o negotiate: conditional check around GSS & SSL specific code [1]
o netrc: cache the netrc file in memory [138]
o openssl quic: populate x509 store before handshake [117]
o openssl: convert a memcpy to dynbuf use [57]
o openssl: remove two strcpy() calls [64]
o packages/OS400/curlmain: remove the strncpy calls [155]
o processhelp.pm: improve taskkill calls (Windows) [52]
o pytest: improve pytest_07_42a reliability [118]
o quic: use send/recvmmsg when available [93]
o request: on shutdown send, proceed normally on timeout [18]
o runtests.md: suggest a value for -j for torture tests
o runtests: drop unused code for old/classic-mingw support [87]
o select: use poll() if existing, avoid poll() with no sockets [75]
o sendf: add condition to max-filesize check [3]
o setopt: avoid superfluous length checks before strcmp() [105]
o singleuse: make `git grep` faster, add Apple `nm` support [109]
o smb: replace use of strcpy() with snprintf() [122]
o socks_gssapi: switch to dynbuf from buffer with strcpy [42]
o sws: fix unused static function with `TCP_NODELAY` undefined [134]
o telnet: avoid two strcpy() by pointing to the strings instead [99]
o test1035: convert host name back to utf8 as should be [63]
o test1515: add tracing and more debug info [119]
o test1540: add debug logging [58]
o test190: replace %FTPTIME2 with a fixed value [34]
o test1915: add tracing and connect timeout [114]
o test1915: remove wrong comment
o test2502: add libtest debug tracing [60]
o test504: fix handling on pending connect [59]
o testrun: explicitly set proper IP address for stunnel listen/connect [61]
o tests/server/util.c: remove use of strncpy [156]
o tests/valgrind.pm: fix warnings with no valgrind report to show [25]
o tests/valgrind.supp: remove a travis suppression, add a Debian [116]
o tests: add and use `%PERL` variable to refer to the Perl binary [82]
o tests: add codeset-utf8 as a feature [66]
o tests: add file: tests with existing files [45]
o tests: change Python code style to pass ruff checks
o tests: check http/2 and http/3 server responsiveness [28]
o tests: delete duplicate macro check [53]
o tests: enable additional ruff Python lint options
o tests: fix `%POSIX_PWD` on native Windows Perl [111]
o tests: fix keyword for test1411
o tests: fix shell quoting on native Windows Perl [110]
o tests: fix some Python typing issues
o tests: fixup `checkcmd` `PATH` on non-unixy platforms [108]
o tests: improve mqtt server handling [27]
o tests: introduce %CLIENT6IP-NB [67]
o tests: let openssl generate random cert serials [91]
o tests: libtests and unit tests need explicit #include memdebug [7]
o tests: make precheck for HTTP on 127.0.0.1 into a feature [68]
o tests: Only log warnings or worse by default in smbserver [33]
o tests: postcheck is now in verify [69]
o tests: remove all valgrind disable instructions [21]
o tests: remove debug requirement on 38 tests [100]
o tests: remove the %FTPTIME3 variable [41]
o tests: replace `%PWD` with `%FILE_PWD` for `file://` [84]
o tests: replace `%PWD` with `%SSH_PWD` in SCP/SFTP tests [112]
o tests: replace hard-coded `/dev/null` with variable [81]
o tests: simplify `pathhelp.pm`, avoid using external tools [95]
o tests: speed up builds with single-binary test bundles [29]
o tests: testrunner fairness [39]
o tests: testrunner reliability improvements [55]
o tests: use '-4' where needed [17]
o tftp: avoid two memcpy/strcpy [94]
o tidy-up: rename CURL_WINDOWS_APP to CURL_WINDOWS_UWP [36]
o tool: support --show-headers AND --remote-header-name [103]
o tool_doswin: simplify; remove unused options and strncpy calls [65]
o tool_getparam: replace two uses of strncpy(), ban strncpy [157]
o unit1660: fix unreachable code warning in no-SSL builds [30]
o url: connection reuse on h3 connections [20]
o urlapi: drop unused header [51]
o urlapi: normalize the IPv6 address [115]
o vtls: convert Curl_pin_peer_pubkey to use dynbuf [74]
o vtls: convert pubkey_pem_to_der to use dynbuf [90]
o warnless: remove curlx_sktosi and curlx_sitosk [104]
o wolfssl: convert malloc + memcpys to dynbuf for cipher string [96]
o wolfssl: use old version API without openssl extra [160]
This release includes the following known bugs:
See docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
For all changes ever done in curl:
See https://curl.se/changes.html
Planned upcoming removals include:
o Hyper support
o TLS libraries not supporting TLS 1.3
See https://curl.se/dev/deprecate.html for details
This release would not have looked like this without help, code, reports and
advice from friends like these:
ad-chaos on github, Aki Sakurai, Baruch Siach, Chris Stubbs, Colton Willey,
Dan Fandrich, Daniel Stenberg, Denis Goleshchikhin, Deniz Sökmen,
dependabot[bot], Emanuel Komínek, Gabriel Marin, Ian Spence, Jon Rumsey,
Kai Pastor, lomberd2 on github, MacKenzie, Montg0mery on github,
Moritz Knüsel, Nemos2024 on github, Nicolas George, Pavel Kropachev,
Pierre-Etienne Meunier, ralfjunker on github, Rasmus Melchior Jacobsen,
Ray Satiro, renovate[bot], Sebastian Walz, Stefan Eissing, Tal Regev,
Tatsuhiro Tsujikawa, Testclutch, Venkat Krishna R, Viktor Szakats,
Vollstrecker on github, vvb2060 on github
(36 contributors)
References to bug reports and discussions on issues:
[1] = https://curl.se/bug/?i=14938
[2] = https://curl.se/bug/?i=14942
[3] = https://curl.se/bug/?i=14958
[4] = https://curl.se/bug/?i=14941
[5] = https://curl.se/bug/?i=14818
[6] = https://curl.se/bug/?i=14728
[7] = https://curl.se/bug/?i=15007
[8] = https://curl.se/bug/?i=14824
[9] = https://curl.se/bug/?i=14991
[10] = https://curl.se/bug/?i=15063
[11] = https://curl.se/bug/?i=14883
[12] = https://curl.se/bug/?i=14789
[13] = https://curl.se/bug/?i=14658
[14] = https://curl.se/bug/?i=15003
[15] = https://curl.se/bug/?i=14815
[16] = https://curl.se/bug/?i=14906
[17] = https://curl.se/bug/?i=15060
[18] = https://curl.se/bug/?i=14843
[19] = https://curl.se/bug/?i=14966
[20] = https://curl.se/bug/?i=14890
[21] = https://curl.se/bug/?i=14983
[22] = https://curl.se/bug/?i=14984
[23] = https://curl.se/bug/?i=14982
[24] = https://curl.se/bug/?i=14981
[25] = https://curl.se/bug/?i=14977
[26] = https://curl.se/bug/?i=14582
[27] = https://curl.se/bug/?i=15059
[28] = https://curl.se/bug/?i=15058
[29] = https://curl.se/bug/?i=14772
[30] = https://curl.se/bug/?i=14971
[31] = https://curl.se/bug/?i=14765
[32] = https://curl.se/bug/?i=14932
[33] = https://curl.se/bug/?i=14950
[34] = https://curl.se/bug/?i=15056
[35] = https://curl.se/bug/?i=14969
[36] = https://curl.se/bug/?i=14881
[37] = https://curl.se/bug/?i=14763
[38] = https://curl.se/bug/?i=14690
[39] = https://curl.se/bug/?i=14967
[40] = https://github.com/curl/curl-for-win/blob/8b8909e1206de1dcca356a8dd33eb1e4ffeea7fd/curl.sh#L289
[41] = https://curl.se/bug/?i=15064
[42] = https://curl.se/bug/?i=15057
[43] = https://curl.se/bug/?i=14909
[44] = https://curl.se/bug/?i=14828
[45] = https://curl.se/bug/?i=15045
[46] = https://curl.se/bug/?i=14921
[47] = https://curl.se/bug/?i=14921
[48] = https://curl.se/bug/?i=15123
[49] = https://curl.se/bug/?i=14924
[50] = https://curl.se/bug/?i=14918
[51] = https://curl.se/bug/?i=14867
[52] = https://curl.se/bug/?i=14959
[53] = https://curl.se/bug/?i=14963
[54] = https://curl.se/bug/?i=14961
[55] = https://curl.se/bug/?i=14960
[56] = https://curl.se/bug/?i=14912
[57] = https://curl.se/bug/?i=15049
[58] = https://curl.se/bug/?i=15055
[59] = https://curl.se/bug/?i=15054
[60] = https://curl.se/bug/?i=15053
[61] = https://curl.se/bug/?i=15051
[62] = https://curl.se/bug/?i=15044
[63] = https://curl.se/bug/?i=15050
[64] = https://curl.se/bug/?i=15052
[65] = https://curl.se/bug/?i=15047
[66] = https://curl.se/bug/?i=15039
[67] = https://curl.se/bug/?i=15039
[68] = https://curl.se/bug/?i=15039
[69] = https://curl.se/bug/?i=15046
[70] = https://curl.se/bug/?i=15013
[71] = https://curl.se/bug/?i=15034
[72] = https://curl.se/bug/?i=15035
[73] = https://curl.se/bug/?i=14845
[74] = https://curl.se/bug/?i=15126
[75] = https://curl.se/bug/?i=15096
[76] = https://curl.se/bug/?i=15101
[77] = https://curl.se/bug/?i=14990
[78] = https://curl.se/bug/?i=15033
[79] = https://curl.se/bug/?i=15026
[80] = https://curl.se/bug/?i=15028
[81] = https://curl.se/bug/?i=15098
[82] = https://curl.se/bug/?i=15097
[83] = https://curl.se/bug/?i=15027
[84] = https://curl.se/bug/?i=15090
[85] = https://curl.se/bug/?i=15012
[86] = https://curl.se/bug/?i=15088
[87] = https://curl.se/bug/?i=15087
[88] = https://curl.se/bug/?i=15001
[89] = https://curl.se/bug/?i=15197
[90] = https://curl.se/bug/?i=15126
[91] = https://curl.se/bug/?i=15129
[92] = https://curl.se/bug/?i=15200
[93] = https://curl.se/bug/?i=14880
[94] = https://curl.se/bug/?i=15199
[95] = https://curl.se/bug/?i=15111
[96] = https://curl.se/bug/?i=15124
[97] = https://curl.se/bug/?i=15122
[98] = https://curl.se/bug/?i=15100
[99] = https://curl.se/bug/?i=15198
[100] = https://curl.se/bug/?i=15114
[101] = https://curl.se/bug/?i=15075
[102] = https://curl.se/bug/?i=15077
[103] = https://curl.se/bug/?i=15110
[104] = https://curl.se/bug/?i=15153
[105] = https://curl.se/bug/?i=15192
[106] = https://curl.se/bug/?i=14936
[107] = https://curl.se/bug/?i=15148
[108] = https://curl.se/bug/?i=15106
[109] = https://curl.se/bug/?i=15070
[110] = https://curl.se/bug/?i=15105
[111] = https://curl.se/bug/?i=15104
[112] = https://curl.se/bug/?i=15103
[113] = https://curl.se/bug/?i=15145
[114] = https://curl.se/bug/?i=15107
[115] = https://curl.se/bug/?i=15143
[116] = https://curl.se/bug/?i=15142
[117] = https://curl.se/bug/?i=15137
[118] = https://curl.se/bug/?i=15138
[119] = https://curl.se/bug/?i=15140
[120] = https://curl.se/bug/?i=15194
[121] = https://curl.se/bug/?i=15136
[122] = https://curl.se/bug/?i=15196
[124] = https://curl.se/bug/?i=15191
[125] = https://curl.se/bug/?i=15190
[126] = https://curl.se/bug/?i=15177
[127] = https://curl.se/bug/?i=15176
[128] = https://curl.se/bug/?i=15181
[129] = https://curl.se/bug/?i=15185
[131] = https://curl.se/bug/?i=15174
[132] = https://curl.se/bug/?i=15172
[133] = https://curl.se/bug/?i=15173
[134] = https://curl.se/bug/?i=15171
[135] = https://curl.se/bug/?i=15170
[136] = https://curl.se/bug/?i=15169
[137] = https://curl.se/bug/?i=15167
[138] = https://curl.se/bug/?i=15248
[139] = https://curl.se/bug/?i=15163
[140] = https://curl.se/bug/?i=15211
[141] = https://curl.se/bug/?i=15260
[142] = https://curl.se/bug/?i=15247
[143] = https://curl.se/bug/?i=15157
[144] = https://curl.se/bug/?i=15255
[146] = https://curl.se/bug/?i=15252
[149] = https://curl.se/bug/?i=15193
[155] = https://curl.se/bug/?i=15214
[156] = https://curl.se/bug/?i=15213
[157] = https://curl.se/bug/?i=15212
[158] = https://curl.se/bug/?i=15210
[159] = https://curl.se/bug/?i=15201
[160] = https://curl.se/bug/?i=15205