Opened 3 months ago

Closed 3 months ago

#70226 closed defect (fixed)

curl @8.8.0+http3: fails when using the write out option

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 ryandesign (Ryan Carsten Schmidt))

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.

Change History (3)

comment:1 Changed 3 months ago by ehjmx

Description: modified (diff)

comment:2 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Status: assignedaccepted
Summary: curl port variant +http3 fails when using the write out optioncurl @8.8.0+http3: fails when using the write out option

I can confirm the issue on my system and I have reported the issue to the developer: https://github.com/curl/curl/issues/13958

comment:3 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: acceptedclosed

In 07b37aa873bc435229050228f57ab77da6d70189/macports-ports (master):

curl: Fix issue with --write-out and http3

Closes: #70226

Note: See TracTickets for help on using tickets.