Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 912029 - net-misc/curl: USE=nghttp3,openssl,gnutls fails to build
Summary: net-misc/curl: USE=nghttp3,openssl,gnutls fails to build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Matt Jolly
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2023-08-10 13:57 UTC by Matt Jolly
Modified: 2024-07-08 02:40 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (file_912029.txt,208.37 KB, text/plain)
2023-08-10 13:59 UTC, Matt Jolly
Details
emerge --info (file_912029.txt,7.84 KB, text/plain)
2023-08-10 14:02 UTC, Matt Jolly
Details
#curl IRC log (file_912029.txt,3.69 KB, text/plain)
2023-08-10 14:23 UTC, Matt Jolly
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Jolly gentoo-dev 2023-08-10 13:57:05 UTC
net-misc/curl fails to build with:

USE="-openssl -curl_ssl_openssl gnutls curl_ssl_gnutls nghttp3" emerge -av net-misc/curl

but builds with 

USE="-openssl -curl_ssl_openssl gnutls curl_ssl_gnutls nghttp3" emerge -av net-misc/curl

Failure:

work/curl-8.2.1/lib/vquic/curl_ngtcp2.c:36:10: fatal error: ngtcp2/ngtcp2_crypto_quictls.h: No such file or directory

Reproducible: Always
Comment 1 Matt Jolly gentoo-dev 2023-08-10 13:58:25 UTC
Uh, it builds with:

USE="-openssl -curl_ssl_openssl gnutls curl_ssl_gnutls nghttp3" emerge -av net-misc/curl

and fails with 


USE="openssl -curl_ssl_openssl gnutls curl_ssl_gnutls nghttp3" emerge -av net-misc/curl
Comment 2 Agostino Sarubbo gentoo-dev 2023-08-10 13:58:56 UTC
Please attach your build log and emerge --info
Comment 3 Matt Jolly gentoo-dev 2023-08-10 13:59:06 UTC
Created attachment 867571 [details]
build.log
Comment 4 Matt Jolly gentoo-dev 2023-08-10 14:02:14 UTC
Created attachment 867572 [details]
emerge --info
Comment 5 Matt Jolly gentoo-dev 2023-08-10 14:23:42 UTC
Created attachment 867573 [details]
#curl IRC log

bagder believes that it's an ngtcp2 problem not a curl problem
Comment 6 Mike Gilbert gentoo-dev 2023-08-11 19:56:01 UTC
Does it work with openssl enabled and gnutls disabled?
Comment 7 Matt Jolly gentoo-dev 2023-08-11 21:16:56 UTC
(In reply to Mike Gilbert from comment #6)
> Does it work with openssl enabled and gnutls disabled?

That's an impossible situation right now; nghttp3 requires quic / TCP/2 which is not currently available via openssl (some support coming for 3.2.0 but we're not expecting it to be available to things that link against it, only internally).

While cURL can be built to support (and upstream supports building with) multiple TLS impls at the same time, the ebuild needs to select the default impl (USE=`curl_ssl_x`) and any additional impls (USE=`openssl gnutls rustls`).

This bug is for a situation where with USE=nghttp3 we can't build with both the gnutls and openssl impls enabled.

Very little troubleshooting performed at this stage (not even validated building from source);  it'll be a month or so before my hands are recovered enough to dig into it properly if someone wants to take a proper look.
Comment 8 Larry the Git Cow gentoo-dev 2023-08-15 05:18:24 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=566352d9426fc62acb54fa0000f3ff66e310ed86

commit 566352d9426fc62acb54fa0000f3ff66e310ed86
Author:     Matt Jolly <Matt.Jolly@footclan.ninja>
AuthorDate: 2023-08-10 13:24:47 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-08-15 05:16:47 +0000

    net-misc/curl: make openssl and nghttp3 mutually exclusive
    
    Bug: https://bugs.gentoo.org/912029
    
    Signed-off-by: Matt Jolly <Matt.Jolly@footclan.ninja>
    Signed-off-by: Sam James <sam@gentoo.org>

 net-misc/curl/curl-8.2.1.ebuild | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Comment 9 Matt Jolly gentoo-dev 2023-09-03 08:18:43 UTC
can repro using current HEAD of curl/curl outside of portage; not a "gentoo" issue.
Comment 10 Larry the Git Cow gentoo-dev 2023-09-18 09:01:51 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6ec58af73546948642a4239300bfe22b4953113

commit b6ec58af73546948642a4239300bfe22b4953113
Author:     Matt Jolly <Matt.Jolly@footclan.ninja>
AuthorDate: 2023-09-18 08:54:25 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-09-18 09:01:05 +0000

    net-misc/curl: make openssl and nghttp3 mutually exclusive (again)
    
    This was applied for 8.2.1 but the live ebuild template was missed
    so we get to play the game again for 8.3.0!
    
    Bug: https://bugs.gentoo.org/912029
    Closes: https://bugs.gentoo.org/914277
    Signed-off-by: Matt Jolly <Matt.Jolly@footclan.ninja>
    Closes: https://github.com/gentoo/gentoo/pull/32894
    Signed-off-by: Sam James <sam@gentoo.org>

 net-misc/curl/curl-8.3.0.ebuild | 2 ++
 net-misc/curl/curl-9999.ebuild  | 2 ++
 2 files changed, 4 insertions(+)