-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE-NOTES
387 lines (373 loc) · 17.3 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
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
curl and libcurl 8.8.0
Public curl releases: 257
Command line options: 259
curl_easy_setopt() options: 305
Public functions in libcurl: 94
Contributors: 3165
This release includes the following changes:
o curl_version_info: provide librtmp version [73]
o file: add support for directory listings [63]
o idn: add native AppleIDN (icucore) support for macOS/iOS [95]
o lib: add curl_multi_waitfds [34]
o mbedTLS: implement CURLOPT_SSL_CIPHER_LIST option [103]
o NTLM_WB: drop support [67]
o TLS: add support for ECH (Encrypted Client Hello) [109]
o urlapi: add CURLU_GET_EMPTY for empty queries and fragments [111]
This release includes the following bugfixes:
o appveyor: make gcc 6 mingw64 job build-only [152]
o asyn-thread: fix curl_global_cleanup crash in Windows [161]
o asyn-thread: fix Curl_thread_create result check [162]
o bearssl: fix compiler warnings [43]
o bearssl: use common code for cipher suite lookup [126]
o bufq: remove duplicate word in comment [154]
o build: prefer `USE_IPV6` macro internally (was: `ENABLE_IPV6`) [85]
o build: remove MacOSX-Framework script [60]
o cd2nroff/manage: use UTC when SOURCE_DATE_EPOCH is set [36]
o cf-https-connect: use timeouts as unsigned ints [143]
o cf-socket: remove references to l_ip, l_port [9]
o ci: add curl-for-win builds: Linux MUSL, macOS, Windows [68]
o cmake: add `BUILD_EXAMPLES` option to build examples [128]
o cmake: add librtmp/rtmpdump option and detection [108]
o cmake: check fseeko after detecting HAVE_FILE_OFFSET_BITS [64]
o cmake: enable `-pedantic-errors` for clang when `CURL_WERROR=ON` [47]
o cmake: FindNGHTTP2 add static lib name to find_library call [141]
o cmake: fix `CURL_WERROR=ON` for old CMake and use it in GHA/linux-old [48]
o cmake: fixup `DEPENDS` filename [51]
o cmake: forward `USE_LIBRTMP` option to C [59]
o cmake: generate misc manpages and install `mk-ca-bundle.pl` [24]
o cmake: speed up libcurl doc building again [15]
o cmake: tidy-up to use `WORKING_DIRECTORY` [23]
o cmake: use namespaced custom target names [80]
o cmdline-docs: fix make install with configure --disable-docs [1]
o configure: error on missing perl if docs or manual is enabled [135]
o configure: make --disable-docs imply --disable-manual [2]
o content_encoding: brotli and others, pass through 0-length writes [5]
o content_encoding: ignore duplicate chunked encoding [137]
o contrithanks: honor `CURLWWW` variable [69]
o curl-confopts.m4: define CARES_NO_DEPRECATED when c-ares is used [17]
o curl.h: change CURL_SSLVERSION_* from enum to defines [132]
o curl: make --help adapt to the terminal width [11]
o curl: use curl_getenv instead of the curlx_ version [20]
o Curl_creader_read: init two variables to avoid using them uninited [99]
o curl_getdate.md: document two-digit year handling [127]
o curl_global_trace.md: shorten the description [29]
o curl_multibyte: remove access() function wrapper for Windows [163]
o curl_path: make Curl_get_pathname use dynbuf [158]
o curl_setup.h: detect 'inline' support [133]
o curl_sha512_256: do not use workaround for NetBSD when not needed [21]
o curl_sha512_256: fix detection of OpenSSL 1.1.1 or later [8]
o curl_url_get.md: clarify queries and fragments and CURLU_GET_EMPTY [105]
o CURLINFO_REQUEST_SIZE: fixed, add tests for transfer infos reported [52]
o cw-out: improved error handling [104]
o dist: `set -eu`, fix shellcheck, make reproducible and smaller tarballs [38]
o dist: add files missing from release tarball [53]
o dist: add reproducible dir entries to tarballs [56]
o dist: do not require Perl in `maketgz` [71]
o dist: remove the curl-config.1 from the tarball [28]
o dist: verify tarball reproducibility in CI [40]
o DISTROS: add patch and issues link for curl-for-win [110]
o DISTROS: Cygwin updates [44]
o dllmain: Call OpenSSL thread cleanup for Windows and Cygwin [114]
o doc: pytest `--repeat` -> `--count` [58]
o docs/cmdline-opts: invoke managen using a relative path [30]
o docs/MAIL-ETIQUETTE: convert to markdown [12]
o docs: add CURLOPT_NOPROGRESS to CURLOPT_XFERINFOFUNCTION example [61]
o docs: clarify CURLOPT_MAXFILESIZE and CURLOPT_MAXFILESIZE_LARGE [74]
o docs: fix some CURLINFO examples [147]
o doh: fix typo in comment [173]
o doh: remove unused function prototype [169]
o dynbuf: fix returncode on memory error [174]
o EXPERIMENTAL: add graduation requirements for each feature [166]
o file: remove useless assignment [89]
o ftp: fix socket leak on rare error [102]
o GHA: add shellcheck job and fix warnings, shell tidy-ups [70]
o GHA: add valgrind to a wolfSSL build [37]
o GHA: on macOS remove $HOME/.curlrc [50]
o gnutls: lazy init the trust settings [75]
o h3/ngtcp2: improve error handling [140]
o hash: change 'slots' to size_t from int [144]
o http2 + ngtcp2: pass CURLcode errors from callbacks [94]
o http2, http3: decouple stream state from easy handle [92]
o http2: emit RST when client write fails [65]
o http3: quiche+ngtcp2 improvements [129]
o http: acknowledge a returned error code [123]
o http: reject HTTP major version switch mid connection [100]
o http: with chunked POST forced, disable length check on read callback [31]
o http_aws_sigv4: remove useless assignment [88]
o idn: make Curl_idnconvert_hostname() use Curl_idn_decode() [16]
o if2ip: make the buf_size arg a size_t [142]
o INSTALL-CMAKE.md: explain `cmake -G <generator-name>` [32]
o krb5: use dynbuf [149]
o lib/cf-h1-proxy: silence compiler warnings (gcc 14) [155]
o lib: add trace support for client reads and writes [45]
o lib: make protocol handlers store scheme name lowercase [159]
o lib: merge `ENABLE_QUIC` C macro into `USE_HTTP3` [84]
o lib: remove two instances of "only only" messages [160]
o lib: silence `-Wsign-conversion` in base64, strcase, mprintf [139]
o lib: silence warnings on comma misuse [91]
o lib: use `#error` instead of invalid syntax in `curl_setup_once.h` [49]
o lib: use multi instead of multi_easy for the active multi [41]
o libcurl-opts: mention pipelining less [33]
o libssh2: delete redundant feature guard [171]
o libssh2: replace `access()` with `stat()` [145]
o libssh2: set length to 0 if strdup failed [6]
o m4: fix rustls pkg-config codepath [22]
o makefile: remove the sorting from the vc-ide action [42]
o maketgz: put docs/RELEASE-TOOL.md into the tarball [35]
o managen: fix the option sort order [150]
o mbedtls: call mbedtls_ssl_setup() after RNG callback is set [66]
o mbedtls: cut off trailing newlines from debug logs [87]
o mbedtls: fix building with v3 in CMake Unity mode [107]
o mbedtls: support TLS 1.3 [156]
o mime: avoid using access() [125]
o misc: fix typos [62]
o misc: fix typos, quoting and spelling [167]
o mprintf: check fputc error rather than matching returned character [82]
o mqtt: when Curl_xfer_recv returns error, don't use nread [101]
o multi: avoid memory-leak risk [134]
o multi: introduce SETUP state for better timeouts [26]
o multi: multi_wait improvements [131]
o multi: remove the unused Curl_preconnect function [98]
o multi: remove useless assignment [146]
o multi: timeout handles even without connection [81]
o openldap: create ldap URLs correctly for IPv6 addresses [19]
o openssl: do not set SSL_MODE_RELEASE_BUFFERS [10]
o OS400: fix shellcheck warnings in scripts [72]
o projects: drop MSVC project files for recent versions [79]
o quic: fixup duplicate static function name (for cmake unity) [77]
o quiche: expire all active transfers on connection close [116]
o RELEASE-PROCEDURE: mention an initial working build [7]
o request: make Curl_req_init return void [96]
o request: paused upload on completed download, assess connection [54]
o reuse: add copyright + license info to individual docs/*.md files [13]
o ROADMAP: remove completed entries, mention websocket
o rustls: remove incorrect SSLSUPP_TLS13_CIPHERSUITES flag [115]
o sendf: fix two typos in comments [90]
o sendf: useless assignment in cr_lc_read() [120]
o smtp: result of Curl_bufq_cread was not used [78]
o telnet: check return code from fileno() [112]
o tests/http: fix compiler warning [39]
o tests: add -q as first option when invoking curl for tests [97]
o tests: check caddy server version to match test expectations [106]
o tests: enable test 1117 for hyper [119]
o tests: fix feature case in test1481 [117]
o tests: Mark tftpd timer function as noreturn [168]
o tls: fix SecureTransport + BearSSL cmake unity builds [113]
o tls: remove EXAMPLEs from deprecated options [164]
o tls: use shared init code for TCP+QUIC [57]
o tool: move tool_ftruncate64 to tool_util.c [138]
o tool_cb_rea: limit rate unpause for -T . uploads [136]
o tool_cfgable: free {proxy_}cipher13_list on exit [172]
o tool_getparam: output warning for leading unicode quote character [14]
o tool_operate: don't truncate the etag save file by default [118]
o tool_operate: init vars unconditionally in post_per_transfer [124]
o tool_paramhlp: remove duplicate assign [121]
o tool_xattr: "guess" URL scheme if none is provided [3]
o tool_xattr: in debug builds, act normally if CURL_FAKE_XATTR is not set [4]
o transfer: remove useless assignment [122]
o url: do not URL decode proxy crendentials [55]
o url: fix use of an uninitialized variable [86]
o urlapi: allow setting port number zero [76]
o urlapi: fix relative redirects to fragment-only [83]
o urldata: remove fields not used depending on used features [46]
o version: use msnprintf instead of strncpy [157]
o vquic: use CURL_FORMAT_CURL_OFF_T for 64 bit printf output [18]
o vtls: TLS session storage overhaul [130]
o winbuild: add ENABLE_WEBSOCKETS option [93]
o winbuild: use $(RC) correctly [27]
o wolfssl: plug memory leak in wolfssl_connect_step2() [25]
This release includes the following known bugs:
o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
Planned upcoming removals include:
o support for space-separated NOPROXY patterns
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:
Abdullah Alyan, blankie, Brian Inglis, Carlos Henrique Lima Melara,
Ch40zz on github, Christian Schmitz, Chris Webb, Colin Leroy-Mira,
Dagfinn Ilmari Mannsåker, Dan Fandrich, Daniel Gustafsson, Daniel J. H.,
Daniel McCarney, Daniel Stenberg, Dmitry Karpov, Emanuele Torre,
Evgeny Grin (Karlson2k), Fabian Keil, farazrbx on github, fuzzard,
Gisle Vanem, Gusted, hammlee96 on github, Harmen Stoppels, Harry Sintonen,
Hongfei Li, Ivan, Jan Macku, Jan Venekamp, Jeff King, Jérôme Leclercq,
Jiwoo Park, Johann Sebastian Schicho, Jonatan Vela, Kailun Qin,
kalvdans on github, Keitagit-kun on github, Konstantin Kuzov,
kpcyrd on github, Laramie Leavitt, Lucas Nussbaum, magisterquis on hackerone,
Marcel Raad, Matt Jolly, Mel Zuser, Michael Kaufmann, Michał Antoniak,
Patrick Monnerat, Paul Gilmartin, Paul Howarth, Pavel Kropachev,
Pavel Pavlov, Philip Heiduck, Rahul Krishna M, RainRat, Ray Satiro,
riastradh on github, Robert Moreton, Sanjay Pujare, Sergey Bronnikov,
Sergey Ogryzkov, Sergio Durigan Junior, southernedge on github,
Stefan Eissing, Stephen Farrell, Tal Regev, Tobias Stoeckmann, Toon Claes,
Viktor Szakats, zmcx16 on github
(70 contributors)
References to bug reports and discussions on issues:
[1] = https://curl.se/bug/?i=13198
[2] = https://curl.se/bug/?i=13191
[3] = https://curl.se/bug/?i=13205
[4] = https://curl.se/bug/?i=13220
[5] = https://curl.se/bug/?i=13209
[6] = https://curl.se/bug/?i=13213
[7] = https://curl.se/bug/?i=13216
[8] = https://curl.se/bug/?i=13208
[9] = https://curl.se/bug/?i=13210
[10] = https://curl.se/bug/?i=13203
[11] = https://curl.se/bug/?i=13171
[12] = https://curl.se/bug/?i=13247
[13] = https://curl.se/bug/?i=13245
[14] = https://curl.se/bug/?i=13214
[15] = https://curl.se/bug/?i=13207
[16] = https://curl.se/bug/?i=13236
[17] = https://curl.se/bug/?i=13240
[18] = https://curl.se/bug/?i=13224
[19] = https://curl.se/bug/?i=13228
[20] = https://curl.se/bug/?i=13230
[21] = https://curl.se/bug/?i=13225
[22] = https://curl.se/bug/?i=13200
[23] = https://curl.se/bug/?i=13206
[24] = https://curl.se/bug/?i=13197
[25] = https://curl.se/bug/?i=13272
[26] = https://curl.se/bug/?i=13371
[27] = https://curl.se/bug/?i=13267
[28] = https://curl.se/bug/?i=13268
[29] = https://curl.se/bug/?i=13263
[30] = https://curl.se/bug/?i=13281
[31] = https://curl.se/bug/?i=13229
[32] = https://curl.se/bug/?i=13244
[33] = https://curl.se/bug/?i=13254
[34] = https://curl.se/bug/?i=13135
[35] = https://curl.se/bug/?i=13239
[36] = https://curl.se/bug/?i=13242
[37] = https://curl.se/bug/?i=13274
[38] = https://curl.se/bug/?i=13299
[39] = https://curl.se/bug/?i=13301
[40] = https://curl.se/bug/?i=13327
[41] = https://curl.se/bug/?i=12665
[42] = https://curl.se/bug/?i=13294
[43] = https://curl.se/bug/?i=13290
[44] = https://curl.se/bug/?i=13258
[45] = https://curl.se/bug/?i=13223
[46] = https://curl.se/bug/?i=13188
[47] = https://curl.se/bug/?i=13286
[48] = https://curl.se/bug/?i=13282
[49] = https://curl.se/bug/?i=13287
[50] = https://curl.se/bug/?i=13284
[51] = https://curl.se/bug/?i=13283
[52] = https://curl.se/bug/?i=13269
[53] = https://curl.se/bug/?i=13346
[54] = https://curl.se/bug/?i=13260
[55] = https://curl.se/bug/?i=13265
[56] = https://curl.se/bug/?i=13322
[57] = https://curl.se/bug/?i=13172
[58] = https://curl.se/bug/?i=13218
[59] = https://curl.se/bug/?i=13364
[60] = https://curl.se/bug/?i=13313
[61] = https://curl.se/bug/?i=13348
[62] = https://curl.se/bug/?i=13344
[63] = https://curl.se/bug/?i=13137
[64] = https://curl.se/bug/?i=13264
[65] = https://curl.se/bug/?i=13292
[66] = https://curl.se/bug/?i=13314
[67] = https://curl.se/bug/?i=13249
[68] = https://curl.se/bug/?i=13335
[69] = https://curl.se/bug/?i=13315
[70] = https://curl.se/bug/?i=13307
[71] = https://curl.se/bug/?i=13310
[72] = https://curl.se/bug/?i=13309
[73] = https://curl.se/bug/?i=13368
[74] = https://curl.se/bug/?i=13372
[75] = https://curl.se/bug/?i=13339
[76] = https://curl.se/bug/?i=13427
[77] = https://curl.se/bug/?i=13332
[78] = https://curl.se/bug/?i=13398
[79] = https://curl.se/bug/?i=13311
[80] = https://curl.se/bug/?i=13324
[81] = https://curl.se/bug/?i=13276
[82] = https://curl.se/bug/?i=13367
[83] = https://curl.se/bug/?i=13394
[84] = https://curl.se/bug/?i=13352
[85] = https://curl.se/bug/?i=13349
[86] = https://curl.se/bug/?i=13399
[87] = https://curl.se/bug/?i=13321
[88] = https://curl.se/bug/?i=13426
[89] = https://curl.se/bug/?i=13425
[90] = https://curl.se/bug/?i=13393
[91] = https://curl.se/bug/?i=13392
[92] = https://curl.se/bug/?i=13204
[93] = https://curl.se/bug/?i=13232
[94] = https://curl.se/bug/?i=13411
[95] = https://curl.se/bug/?i=13246
[96] = https://curl.se/bug/?i=13423
[97] = https://curl.se/bug/?i=13387
[98] = https://curl.se/bug/?i=13422
[99] = https://curl.se/bug/?i=13419
[100] = https://curl.se/bug/?i=13421
[101] = https://curl.se/bug/?i=13418
[102] = https://curl.se/bug/?i=13417
[103] = https://curl.se/bug/?i=13442
[104] = https://curl.se/bug/?i=13337
[105] = https://curl.se/bug/?i=13407
[106] = https://curl.se/bug/?i=13405
[107] = https://curl.se/bug/?i=13377
[108] = https://curl.se/bug/?i=13373
[109] = https://curl.se/bug/?i=11922
[110] = https://curl.se/bug/?i=13499
[111] = https://curl.se/bug/?i=13396
[112] = https://curl.se/bug/?i=13457
[113] = https://curl.se/bug/?i=13450
[114] = https://curl.se/bug/?i=12327
[115] = https://curl.se/bug/?i=13452
[116] = https://curl.se/bug/?i=13439
[117] = https://curl.se/bug/?i=13445
[118] = https://curl.se/bug/?i=13432
[119] = https://curl.se/bug/?i=13436
[120] = https://curl.se/bug/?i=13437
[121] = https://curl.se/bug/?i=13433
[122] = https://curl.se/bug/?i=13435
[123] = https://curl.se/bug/?i=13434
[124] = https://curl.se/bug/?i=13430
[125] = https://curl.se/bug/?i=13497
[126] = https://curl.se/bug/?i=13464
[127] = https://curl.se/bug/?i=13494
[128] = https://curl.se/bug/?i=13491
[129] = https://curl.se/bug/?i=13475
[130] = https://curl.se/bug/?i=13386
[131] = https://curl.se/bug/?i=13150
[132] = https://curl.se/bug/?i=13510
[133] = https://curl.se/bug/?i=13355
[134] = https://curl.se/bug/?i=13471
[135] = https://curl.se/bug/?i=13508
[136] = https://curl.se/bug/?i=13174
[137] = https://curl.se/bug/?i=13451
[138] = https://curl.se/bug/?i=13458
[139] = https://curl.se/bug/?i=13467
[140] = https://curl.se/bug/?i=13562
[141] = https://curl.se/bug/?i=13495
[142] = https://curl.se/bug/?i=13505
[143] = https://curl.se/bug/?i=13503
[144] = https://curl.se/bug/?i=13502
[145] = https://curl.se/bug/?i=13498
[146] = https://curl.se/bug/?i=13500
[147] = https://curl.se/bug/?i=13557
[149] = https://curl.se/bug/?i=13568
[150] = https://curl.se/bug/?i=13567
[152] = https://curl.se/bug/?i=13566
[154] = https://curl.se/bug/?i=13554
[155] = https://curl.se/bug/?i=13237
[156] = https://curl.se/bug/?i=13539
[157] = https://curl.se/bug/?i=13549
[158] = https://curl.se/bug/?i=13550
[159] = https://curl.se/bug/?i=13553
[160] = https://curl.se/bug/?i=13551
[161] = https://curl.se/bug/?i=13509
[162] = https://curl.se/bug/?i=13542
[163] = https://curl.se/bug/?i=13529
[164] = https://curl.se/bug/?i=13540
[166] = https://curl.se/bug/?i=13541
[167] = https://curl.se/bug/?i=13538
[168] = https://curl.se/bug/?i=13534
[169] = https://curl.se/bug/?i=13536
[171] = https://curl.se/bug/?i=13537
[172] = https://curl.se/bug/?i=13531
[173] = https://curl.se/bug/?i=13504
[174] = https://curl.se/bug/?i=13533