Opened 4 months ago
Last modified 4 months ago
#70226 closed defect
curl port variant +http3 fails when using the write out option — at Version 1
Reported by: | ehjmx | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | Cc: | ||
Port: | curl |
Description (last modified by ehjmx)
affected port: curl @8.80 +http3 +gnutls macOS 14.5 Apple M3 Pro Chip macports: 2.9.3
Description: For a current project I wanted to test my curl scripts against http3. As the curl shipping with macOS 14.5. doesn't support http3 I installed curl @8.80 with the +http3 variant which changed the secure socket layer from ssl to gnutls.
Basic commands like
curl --http3 https://blog.cloudflare.com -I
work.
Using the -w or --write-out option like
curl -Is -w '%header{location}' -o /dev/null https://github.com/SAP/macOS-icon-generator/releases/latest
I get an empty output and an exit code 43.
Using the build in macos curl @8.60 and default macports curl @8.80 +ssl variant the above command
curl -Is -w '%header{location}' -o /dev/null https://github.com/SAP/macOS-icon-generator/releases/latest
gives me the expected output of
https://github.com/SAP/macOS-icon-generator/releases/tag/2.0.0
On github there is this static curl https://github.com/stunnel/static-curl for macOS which uses openssl, supports http3 and works as expected.
During the build phase for the curl +http3 variant I noticed this warning:
Warning: Configuration logfiles contain indications of -Wimplicit-function-declaration; check that features were not accidentally disabled:
getpass_r: found in curl-8.8.0/config.log
_fseeki64: found in curl-8.8.0/config.log
IoctlSocket: found in curl-8.8.0/config.log
ioctlsocket: found in curl-8.8.0/config.log
memrchr: found in curl-8.8.0/config.log
CloseSocket: found in curl-8.8.0/config.log
closesocket: found in curl-8.8.0/config.log
I found this blog entry https://daniel.haxx.se/blog/2024/06/10/http-3-in-curl-mid-2024/ which explains to me that using openssl for http3 isn't easy and the best choice for http3. Therefore I understand using gnutls for http3 what I don't understand is that curl commands using the -w option break with gnutls and http3.