Opened 3 months ago

Last modified 3 months ago

#70226 closed defect

curl port variant +http3 fails when using the write out option — at Initial Version

Reported by: ehjmx Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.9.3
Keywords: Cc:
Port: curl

Description

affected port: curl @8.80 +http3 +gnutls

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.

Change History (0)

Note: See TracTickets for help on using tickets.