Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 694308

Summary: >=net-misc/curl-7.66.0 - add support for HTTP/3
Product: Gentoo Linux Reporter: Craig Andrews <candrews>
Component: Current packagesAssignee: Anthony Basile <blueness>
Status: RESOLVED FIXED    
Severity: normal CC: alpha_one_x86, candrews, steffen.weber
Priority: Normal Keywords: PATCH, PullRequest
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://github.com/gentoo/gentoo/pull/12920
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 694302, 694304, 694306, 694320    
Bug Blocks:    
Attachments: Diff of suggested changes to curl-7.66.0.ebuild

Description Craig Andrews gentoo-dev 2019-09-13 18:31:06 UTC
curl 7.66.0 includes support for HTTP/3. Gentoo's packaging should enable it.

https://daniel.haxx.se/blog/2019/09/11/curl-7-66-0-the-parallel-http-3-future-is-here/

Requires one of:
* net-libs/nghttp3 (packaging request at bug 694304) and net-libs/ngtcp2 (packaging request at bug 694306)
* net-libs/quiche (packaging request at bug 694302)

Reproducible: Always
Comment 1 Craig Andrews gentoo-dev 2019-09-13 18:34:45 UTC
I see these challenges:

* net-libs/quiche uses rust limiting its keywords to ~arm64 ~ppc64 ~x86. So the "quiche" use flag of net-misc/curl is going to have to be masked for every other keyword.
* net-libs/nghttp3 requires a version of OpenSSL that doesn't yet exist; they're working on adding QUIC support to OpenSSL at https://github.com/openssl/openssl/pull/8797 Therefore, the "nghttp3" use flag of net-misc/curl is going to have to be globally masked until such a version of OpenSSL is released and in Gentoo.
Comment 2 Craig Andrews gentoo-dev 2019-09-13 18:36:56 UTC
Created attachment 589770 [details, diff]
Diff of suggested changes to curl-7.66.0.ebuild

Suggested changes to curl-7.66.0.ebuild.

The changes are all pretty simple.
Comment 3 Arfrever Frehtes Taifersar Arahesis 2019-09-29 08:27:05 UTC
*** Bug 695828 has been marked as a duplicate of this bug. ***
Comment 4 Anthony Basile gentoo-dev 2019-10-03 13:39:34 UTC
I really don't want to expand the dependencies that need to be stabilized for curl.  Its an important package which is usually rapid stabilized for security.  Your patch adds

- net-libs/quiche
- net-libs/ngtcp2
- net-libs/nghttp3

Those packages are currently only keyworded on amd64 and not stable on any other arches.  If you want me to add this patch, get those packages keyworded and stabilized on all arches on which curl is currently stabilized, or at least get those keywords masked on those arches.  This way they don't become blockers against a rapid stabilization.
Comment 5 Jeroen Roovers (RETIRED) gentoo-dev 2019-10-08 05:35:15 UTC
(In reply to Anthony Basile from comment #4)
> I really don't want to expand the dependencies that need to be stabilized
> for curl.  Its an important package which is usually rapid stabilized for
> security.  Your patch adds
> 
> - net-libs/quiche
> - net-libs/ngtcp2
> - net-libs/nghttp3
> 
> Those packages are currently only keyworded on amd64 and not stable on any
> other arches.  If you want me to add this patch, get those packages
> keyworded and stabilized on all arches on which curl is currently
> stabilized, or at least get those keywords masked on those arches.  This way
> they don't become blockers against a rapid stabilization.

Why not use profiles/ to mask the USE flag for stable ebuilds.
Or add an -r1 that includes the changes you do not want to have in the ebuild ready to go stable.
Comment 6 Anthony Basile gentoo-dev 2019-10-08 13:23:40 UTC
(In reply to Jeroen Roovers from comment #5)
> (In reply to Anthony Basile from comment #4)

> > stabilized, or at least get those keywords masked on those arches.  This way
> > they don't become blockers against a rapid stabilization.
> 
> Why not use profiles/ to mask the USE flag for stable ebuilds.
> Or add an -r1 that includes the changes you do not want to have in the
> ebuild ready to go stable.

@Jer I like to idea of masking for stable ebuilds only.  Do you want to go ahead and do that?
Comment 7 Anthony Basile gentoo-dev 2019-10-08 13:54:15 UTC
(In reply to Anthony Basile from comment #6)
> (In reply to Jeroen Roovers from comment #5)
> > (In reply to Anthony Basile from comment #4)
> 
> > > stabilized, or at least get those keywords masked on those arches.  This way
> > > they don't become blockers against a rapid stabilization.
> > 
> > Why not use profiles/ to mask the USE flag for stable ebuilds.
> > Or add an -r1 that includes the changes you do not want to have in the
> > ebuild ready to go stable.
> 
> @Jer I like to idea of masking for stable ebuilds only.  Do you want to go
> ahead and do that?

I wonder if we can just add those flags to `profiles/base/use.stable.mask` and cover all the arches in one shot.  Thoughts?
Comment 8 Craig Andrews gentoo-dev 2019-10-08 19:23:43 UTC
How does this PR look?
https://github.com/gentoo/gentoo/pull/12920

* curl_http3_quiche is masked for all arches except amd64
* curl_http3_nghttp3 is masked globally
Comment 9 Anthony Basile gentoo-dev 2019-10-15 13:05:27 UTC
(In reply to Craig Andrews from comment #8)
> How does this PR look?
> https://github.com/gentoo/gentoo/pull/12920
> 
> * curl_http3_quiche is masked for all arches except amd64
> * curl_http3_nghttp3 is masked globally

I commented on the PR.  I'm not sure using a use expand flag is warranted here though.
Comment 10 Craig Andrews gentoo-dev 2019-10-15 13:21:42 UTC
(In reply to Anthony Basile from comment #9)
> (In reply to Craig Andrews from comment #8)
> > How does this PR look?
> > https://github.com/gentoo/gentoo/pull/12920
> > 
> > * curl_http3_quiche is masked for all arches except amd64
> > * curl_http3_nghttp3 is masked globally
> 
> I commented on the PR.  I'm not sure using a use expand flag is warranted
> here though.

I have updated the PR to not use a use expand flag.
Comment 11 Larry the Git Cow gentoo-dev 2019-10-15 13:24:50 UTC
The bug has been closed via the following commit(s):

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

commit f220bfd203fa1fe7a14d39880c13dd5292afc94b
Author:     Craig Andrews <candrews@gentoo.org>
AuthorDate: 2019-10-11 16:19:35 +0000
Commit:     Craig Andrews <candrews@gentoo.org>
CommitDate: 2019-10-15 13:24:26 +0000

    net-misc/curl: HTTP/3 support
    
    Closes: https://bugs.gentoo.org/694308
    Closes: https://github.com/gentoo/gentoo/pull/12920
    Package-Manager: Portage-2.3.76, Repoman-2.3.17
    Signed-off-by: Craig Andrews <candrews@gentoo.org>

 net-misc/curl/curl-7.66.0.ebuild     | 20 +++++++++++++++++---
 net-misc/curl/metadata.xml           |  6 ++++--
 profiles/arch/amd64/package.use.mask |  4 ++++
 profiles/arch/base/package.use.mask  | 10 ++++++++++
 profiles/base/package.use.mask       |  1 +
 5 files changed, 36 insertions(+), 5 deletions(-)