Path to this page:
./
www/curl,
Client that groks URLs
Branch: CURRENT,
Version: 8.21.0,
Package name: curl-8.21.0,
Maintainer: leotCurl is a command line tool for transferring files with URL syntax, supporting
FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. Curl supports
HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload,
proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate,
kerberos...), file transfer resume, proxy tunneling and a busload of other
useful tricks.
Required to run:[
security/heimdal] [
security/openssl] [
www/nghttp2] [
devel/libidn2]
Required to build:[
pkgtools/cwrappers]
Package options: http2, idn, inet6, openssl
Master sites:
Filesize: 2814.781 KB
Version history: (Expand)
- (2026-06-25) Updated to version: curl-8.21.0
- (2026-05-15) Updated to version: curl-8.20.0nb2
- (2026-05-14) Updated to version: curl-8.20.0nb1
- (2026-04-29) Updated to version: curl-8.20.0
- (2026-03-11) Updated to version: curl-8.19.0
- (2026-02-06) Updated to version: curl-8.18.0nb2
CVS history: (Expand)
| 2026-07-25 22:59:06 by Thomas Klausner | Files touched by this commit (1) |
Log message:
curl: remove rtmp option in bl3.mk as well
|
| 2026-07-25 22:58:53 by Thomas Klausner | Files touched by this commit (1) |
Log message:
curl: remove rtmp option
rtmp support was removed in 8.20.0
https://daniel.haxx.se/blog/2026/03/21/bye-bye-rtmp/
|
| 2026-07-25 22:55:05 by Roland Illig | Files touched by this commit (1) |
Log message:
www/curl: remove unknown configure option
|
2026-06-25 10:25:51 by Thomas Klausner | Files touched by this commit (9) |  |
Log message:
curl: update to 8.21.0.
Lots of security fixes.
Changes:
curl: named globs in output filename for upload glob references
HTTP/3: add proxy CONNECT and MASQUE CONNECT-UDP support (ngtcp2 QUIC)
http2: remove stream dependency tracking
lib: drop support for CURLAUTH_DIGEST_IE
libssh: add support for SHA256 host public keys
tool_urlglob: add named globs
Bugfixes:
_ENVIRONMENT.md. Windows does case insensitive env variables
_URL.md: remove the zone-id mention
AmigaOS: curl_setup.h avoid explicit_bzero with clib2
AmigaOS: fix build fallouts, re-add to CI
asyn-thrdd: add IPv6 guards
asyn-thrdd: fix result processing without wakeup socketpair
autotools: mbedtls detection fixes
BINDINGS: Update Hollywood link
BUFQ.md: re-sync with source code
build: enable `-Wlogical-op` picky warning for GCC 4.4+
build: omit zlib pkg-config reference for Android
cf-h2-prox: fix peer leak
cf-h2-proxy: drop interim responses
cf-https-connect: do not engage on proxy origin
cf-ip-happy.c: minor comment typo
cf-ip-happy: update documentation
cf-socket: make Curl_addr2string static
cf-socket: set scope_id for IPv6 link-local addresses
cf-socket: store errno from do_connect in ctx->error
cfilters: fix busy loop on blocked transfers
chunked: reject invalid bytes in trailer
CIPHERS.md: fix the example that uses only TLS 1.3
cmake/FindGSS: drop "MIT Unknown" version value, related tidy ups
cmake/FindGSS: drop CMake <3.16 compatibility logic
cmake/FindGSS: fix comment, adjust custom flavor property name
cmake/FindGSS: prioritize MIT over GNU in pkg-config detection
cmake: auto-select static nghttp2/nghttp3/ngtcp2 Config
cmake: export/forward `NGTCP2_CRYPTO_BACKEND`
cmake: fix three issues generating lib options in config files
cmake: fix zstd CMake config name
cmake: opt in `MSVC_VERSION` 1951 to picky warnings
cmake: quote `COMPONENTS` string in `curl-config.in.cmake`
cmake: simplify `LINK_ONLY` imported target extraction
config2setopts: use default protocol properly
connect: remove deref of freed pointer in trace call
content_encoding: fix limit failure message
content_encoding: fix non-last chunked rejection
content_encoding: timeout during slow decoding
cookie: check __Secure- and __Host- case sensitively when read from file
cookie: compare path case sensitively
cookie: reject control octets in file-loaded cookies
cookie: simplify strstore(), remove outdated comment
cookie: tailmatch the domains for secure override
cookie: trim trailing dots when checking PSL
creds: add sasl service name
creds: create with empty user+pass
creds: mask OAuth bearer token in trace logs
creds: remove two unused functions
curl_easy_pause.md: rephrase the stream cache when pause clause
curl_easy_setopt.md: change options when no transfer runs
curl_formdata: fix to pass long where missing, document `CURLFORM_NAMELENGTH`
curl_multi_assign.md: clarify lifetime
curl_ntlm_core: fix nettle 4+ builds in certain MultiSSL combos
curl_ntlm_core: propagate DES `CryptEncrypt()` error
curl_sha512_256: fix result code on error
CURLINFO_CONTENT_LENGTH_UPLOAD_T.md: expand
CURLMOPT_SOCKETFUNCTION.md: this sends *all* file descriptors
CURLOPT_CHUNK_BGN_FUNCTION: target is there for symlinks only
CURLOPT_DISALLOW_USERNAME_IN_URL: is for CURLOPT_URL only
CURLOPT_DOH_URL.md: does not inherit proxy options
CURLOPT_ECH.md: simplify the description language
CURLOPT_HAPROXYPROTOCOL.md: only sent for newly setup connections
CURLOPT_MAXFILESIZE: clarify this also works for on-going transfers
CURLOPT_PINNEDPUBLICKEY.md: does not apply for other origins
CURLOPT_PORT.md: use stronger language
CURLOPT_SHARE: warn about early remove
CURLOPT_SSH_HOSTKEYFUNCTION.md: for new connections only
CURLOPT_WRITEFUNCTION.md: mention redirects
CURLOPT_WRITEFUNCTION.md: remove stray reference to HSTS
delta: harden external command invocations
digest: escape control codes too
digest: flush proxy state on proxy or credential change
digest: flush state on origin or credential change
dns-httpsrr-lookup: use origin, not peer
dnscache: remove Curl_dns_entry_link
docs/libcurl: fix the version for curl_multi_socket_action
docs: end "...can be used several times..." sentences with period
docs: fix --follow doc typo
docs: fix a couple of typos
docs: fix grammar and wording in FAQ
docs: fix odd wording in CONTRIBUTE.md
docs: note CURLOPT_PINNEDPUBLICKEY has no effect on legacy LDAP backend
docs: returned header size reflects HTTP/1-style format
doh: cap the maximum TTL to 24 hours
doh: stricter HTTPS RNAME parsing
ECH: cleanups
event: fix wakeup consumption
ftp: avoid accessing EPSV response one byte past the NULL
ftp: remove 2 Curl_resolv_blocking() calls
ftp: remove bits.ftp_use_control_ssl
ftplistparser: clear strings.target if not symlink
gnutls: allow building with nettle 4.0
gnutls: fix more nettle 4+ compatibility issues
gnutls: require 3.7.2 for earlydata
gsasl: fix potential double free
gtls: fix ignored return and uninitialized status in OCSP check
gtls: fix some typos
gtls: minor fixes and improvements
gtls: use the correct return code in trace output
gtls: verify OCSP response signature in gtls_verify_ocsp_status
h3-proxy: fix callback return values, and a typo in tests
hostip: remove unused MAX_HOSTCACHE_LEN and MAX_DNS_CACHE_SIZE
hsts.md: mention multiple curl invokes effect
hsts: duplicate live HSTS data in curl_easy_duphandle
http-proxy: verify CONNECT response headers
HTTP3.md: update quiche build
http: don't pass on set cookies to new origins
http: prefer chunked encoding over Content-Length: 0
http: reject spurious CR bytes in headers
http_digest: return better error
idn: replace header guards with forward declaration
INSTALL-CMAKE.md: document CMake environment variables
INTERNALS.md: document minimum nghttp3 and ngtcp2 versions
KNOWN_BUGS.md: remove fixed GnuTLS <-> OpenSSL incompat bug
KNOWN_BUGS: remove stale Threads::Threads entry
krb5_sspi: fix error message on `DecryptMessage()` fail
ldap: base64 encode binary LDIF values with WinLDAP
ldap: fix minor leak on write callback error
ldap: fix to not leak `attribute` on OOM (WinLDAP)
ldap: switch off chasing referrals
lib678: fix to not be perma-skipped
lib: make `__STDC_VERSION__` literals `L` (where missing)
lib: transfer origin and proxy handling
lib: two minor typos
libcurl-easy.md: minor clarifications
libssh2: do not use deprecated macros when unavailable
libssh2: drop stray double-negative from `strncmp()` result
libssh2: fix to return error code on missing parameter
libssh2: replace macro names with non-misspelled alternatives
libssh2: save non-standard port to `known_hosts`
libssh2: sync version check with INTERNALS.md
libssh2: use non-deprecated `libssh2_knownhost_addc()`
libssh: map SSH_KNOWN_HOSTS_OTHER to CURLKHMATCH_MISMATCH
m4: drop redundant conditions in TLS library detections
Makefile.am: drop test1190 listed twice
managen: apply minor fixes and improvements
mbedtls: null-terminate the private key blob
mk-unity.pl: `#include`, and not concatenate input headers
mqtt: return error on truncated Remaining Length
mqtt: validate PINGRESP and DISCONNECT have remaining_length == 0
multi: handle pause in multi socket callback
multi: remove a stale comment
multi: silence gcc 16 `-Wnull-dereference`, bump CI job to test
multi: xfers_really_alive
netrc: remember and check filename loaded
netrc: scanner refactor
ngtcp2: fail handshake directly
openssl: do not mix OpenSSL int result with `CURLcode` variable
os400sys: fix theoretical length overflows
peer.h: fix typo in comment
pingpong: reject nul byte in server response line
progress: fix CURLINFO time reporting
psl: require libpsl 0.16.0 (2016-12-10) or greater
pytest: pass `--disable` to curl
pytest: re-enable test test_05_01 and test_05_02 for quiche 0.29.0+
pythonlint.sh: make it fail on error, fix ruff warnings in pytest
quic: count zero length packets against max
ratelimits: use minimal burst rate
RELEASE-PROCEDURE.md: update coming release dates
resolve: mention in error that IP address is expected
rtsp: bump buf after rtsp_filter_rtp()
runner.pm: apply minor correctness fix
runner.pm: set `CURL_TESTNUM` for `precheck` commands
runtests: fix tests for curl builds with embedded CA bundle
rustls: error on CURLOPT_CRLFILE with native CA store
schannel: check `schannel_sha256sum()` success, and more
schannel: enforce Extended Key Usage for custom CA roots
schannel: error on TLS 1.3-only with cipher list
schannel: fix https proxy for client cert and certinfo
schannel: fix revoke_best_effort setting for proxy
schannel: use fopen instead CreateFile
schannel_verify: avoid out of blob access
schannel_verify: simplify CryptQueryObject use
scripts: catch Credits-to contributors
SECURITY-ADVISORY.md: expand
setopt: changing the proxy port is also a proxy change
setopt: clear proxy auth properly on NULL
setopt: clear the "custom" CA booleans when set to NULL
setopt: CURLOPT_MAXCONNECTS set to 0 restores default value
setopt: defref the old referer when setting a new
setopt: fix to honor `CURLOPT_PROXY_CAINFO_BLOB` over Native CA
setopt: gate a few proxy TLS options by checking backend support
setopt: more careful cleanup of the HSTS cache
setopt: return error if received `curl_blob->data` is NULL
show-headers.md: mention bold headers and --no-styled-output
sigv4: URL encode the username in the header
smb: constify `strchr()` result variable
smb: integer overflow proof a size check
smbserver: update internal id generation for Python 3
socket: introduce `SOCK_EAGAIN()` and use it
socket: use name `sockerr` for socket error variables
socks_sspi: invalid response length is a fatal error
socks_sspi: store socks5_gssapi_enctype
spnego_sspi: honor CURLOPT_GSSAPI_DELEGATION for Windows SSPI
spnego_sspi: preserve distinction btw policy-only and uncond delegation
src: fix comment typos
src: sync nghttp2 versions checks with current requirements
ssl native_ca_store: always reinit
SSLCERTS: document 8.19.0 default Native CA builds (Windows)
sspi: clear SSPI credentials on AcquireCredentialsHandle failure
sspi: free libcurl allocated memory with curlx_free
telnet: drop an `int` cast no longer necessary
telnet: drop redundant interim variables
telnet: fix error message typos
telnet: fix old copy-paste typo in variable name
telnet: honor CURLOPT_TIMEOUT in send_telnet_data()
test1588: use %TESTNUMBER, not hard-coded number
test1981: explicitly set the locale
tests: add `cookies` feature to some tests
tests: add an assert to avoid IPC blocking
tests: add the "--resolve" keyword to tests that lack it
tests: fix unit1636 with --disable-progress-meter
tftp: avoid the timeout calc if the timeout is crazy
tftp: stricter option name checks
tidy-up: add space around operators, where missing
tidy-up: apply clang-format fixes
tidy-up: drop stray casts for allocated pointers
tidy-up: miscellaneous
tls: fix incomplete mTLS config in conn reuse and session cache
tls: wolfssl: fixes for PQC key shares
tool: warn when --ssl and --ftp-ssl-control override each other
tool_formparse.c: fix two minor comment typos
tool_formparse: polish error message + make two functions static
tool_formparse: tool2curlparts is no longer recursive
tool_help: rectify a bad assert
tool_operhlp: avoid NULL to %s
tool_urlglob: avoid overflow at end of range
tool_urlglob: better 'Duplicate glob name' position
tool_urlglob: make globbing error reported for correct position
tool_writeout: fix %time{} output for %s
transfer: clear referer when set to NULL
unit1675: fix potential memory leak on dynbuf fail path
unix-sockets: ignore proxy settings
URL-SYNTAX: document more URL parsing details
url: compare full origin when setting credentials
url: connection credentials origin
url: connection reuse fixes for starttls
url: detect proxy changes read from environment
url: don't log bits.close state
url: fix connection reuse for starttls protocols
url: keep the question mark for empty queries
url: remove superfluous check
url: url_match_destination fix
urlapi: accept 0X prefix in IPv4 address as well
urlapi: change more lowercase percent-encoded to uppercase
urlapi: compare zone-id in Curl_url_same_origin()
urlapi: consume trailing dots after IPv4 numerical addresses
urlapi: deny hostnames with more than one trailing dot
urlapi: drop base fragment on empty redirect
urlapi: fix an issue parsing file URLs
urlapi: fix memleaks on error in `parse_hostname_login()`
urlapi: fix redirect handling if CURLU_NO_GUESS_SCHEME is set
urlapi: forbid '|' in host
urlapi: handle redirect without set scheme with default-scheme
urlapi: URL decode hostname before IP address normalization
user-agent.md: mention double quotes too
var: use a dedicated pointer for the alloc
verify-release: verify more thoroughly with git
vquic: drop stray casts for `iovec.iov_len`
vtls: more large buffer support and error checks for SHA-256
vtls: use Curl_safecmp for CRLfile and pinned_key comparison
vtls_scache: include signature_algorithms in the SSL peer cache key
vtls_spack: drop redundant macro fallbacks
VULN-DISCLOSURE-POLICY.md: emphasize comm as a human
VULN-DISCLOSURE-POLICY.md: emphasize the no email thank you part
VULN-DISCLOSURE-POLICY.md: test code is not secure
VULN-DISCLOSURE-POLICY: non-released code
websockets: auto-tunnel through http proxy
websockets: buffer upgrade data at connection level
windows: update MS SDK versions in comments
winldap: avoid NULL pointer deref on `ldap_get_dn()` fail
ws: make pong sending lazy
x509asn1: fix DH public key parameter extraction
x509asn1: fix operator order in do_pubkey
|
| 2026-06-07 20:03:46 by Adam Ciarcinski | Files touched by this commit (7) |
Log message:
curl/libcurl-gnutls: fix build with nettle 4.0; support Darwin
|
| 2026-06-01 12:10:12 by Leonardo Taccari | Files touched by this commit (1) |
Log message:
curl: document the circular dependency
We have it in the CVS history, but let's document it as an "XXX" \
comment too so
possible future hands are less tempted to just uncomment them!
Thanks <ryoon> and Marc Baudoin!
|
| 2026-06-01 05:36:08 by Ryo ONODERA | Files touched by this commit (1) |
Log message:
www/curl: Remove http3 option
nghttp3, cmake and curl cause circular dependency.
Reported by Marc Baudoin. Thank you.
|
| 2026-05-30 21:01:34 by Ryo ONODERA | Files touched by this commit (1) |
Log message:
www/curl: Add http3 option
|