[MacPorts] #70226: curl @8.8.0+http3: fails when using the write out option (was: curl port variant +http3 fails when using the write out option)

MacPorts noreply at macports.org
Sun Jun 16 07:59:41 UTC 2024


#70226: curl @8.8.0+http3: fails when using the write out option
---------------------+------------------------
  Reporter:  ehjmx   |      Owner:  ryandesign
      Type:  defect  |     Status:  accepted
  Priority:  Normal  |  Milestone:
 Component:  ports   |    Version:  2.9.3
Resolution:          |   Keywords:
      Port:  curl    |
---------------------+------------------------
Changes (by ryandesign):

 * status:  assigned => accepted


Old description:

> 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.

New description:

 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.

--

Comment:

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

-- 
Ticket URL: <https://trac.macports.org/ticket/70226#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list