From: Stefan Eissing Date: Thu, 13 Feb 2025 13:33:26 +0000 (+0100) Subject: HTTP3.md: only speak about minimal versions X-Git-Tag: curl-8_13_0~484 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=915f3981c93cba568806b16a5719ff444b62e365;p=thirdparty%2Fcurl.git HTTP3.md: only speak about minimal versions Closes #16320 --- diff --git a/docs/HTTP3.md b/docs/HTTP3.md index f0f5c445c6..b7050039b4 100644 --- a/docs/HTTP3.md +++ b/docs/HTTP3.md @@ -43,15 +43,19 @@ To fix before we remove the experimental label: Building curl with ngtcp2 involves 3 components: `ngtcp2` itself, `nghttp3` and a QUIC supporting TLS library. The supported TLS libraries are covered below. - * `ngtcp2`: v1.2.0 - * `nghttp3`: v1.1.0 +While any version of `ngtcp2` and `nghttp3` from v1.0.0 on are expected to +work, using the latest versions often brings functional and performance +improvements. + +The build examples use `$NGHTTP3_VERION` and `$NGTCP2_VERION` as placeholders +for the version you build. ## Build with quictls OpenSSL does not offer the required APIs for building a QUIC client. You need to use a TLS library that has such APIs and that works with *ngtcp2*. -Build quictls: +Build quictls (any `+quic` tagged version works): % git clone --depth 1 -b openssl-3.1.4+quic https://github.com/quictls/openssl % cd openssl @@ -62,7 +66,7 @@ Build quictls: Build nghttp3: % cd .. - % git clone -b v1.1.0 https://github.com/ngtcp2/nghttp3 + % git clone -b $NGHTTP3_VERION https://github.com/ngtcp2/nghttp3 % cd nghttp3 % git submodule update --init % autoreconf -fi @@ -73,7 +77,7 @@ Build nghttp3: Build ngtcp2: % cd .. - % git clone -b v1.2.0 https://github.com/ngtcp2/ngtcp2 + % git clone -b $NGTCP2_VERION https://github.com/ngtcp2/ngtcp2 % cd ngtcp2 % autoreconf -fi % ./configure PKG_CONFIG_PATH=/lib/pkgconfig:/lib/pkgconfig LDFLAGS="-Wl,-rpath,/lib" --prefix= --enable-lib-only @@ -106,7 +110,7 @@ Build GnuTLS: Build nghttp3: % cd .. - % git clone -b v1.1.0 https://github.com/ngtcp2/nghttp3 + % git clone -b $NGHTTP3_VERION https://github.com/ngtcp2/nghttp3 % cd nghttp3 % git submodule update --init % autoreconf -fi @@ -117,7 +121,7 @@ Build nghttp3: Build ngtcp2: % cd .. - % git clone -b v1.2.0 https://github.com/ngtcp2/ngtcp2 + % git clone -b $NGTCP2_VERION https://github.com/ngtcp2/ngtcp2 % cd ngtcp2 % autoreconf -fi % ./configure PKG_CONFIG_PATH=/lib/pkgconfig:/lib/pkgconfig LDFLAGS="-Wl,-rpath,/lib" --prefix= --enable-lib-only --with-gnutls @@ -148,7 +152,7 @@ Build wolfSSL: Build nghttp3: % cd .. - % git clone -b v1.1.0 https://github.com/ngtcp2/nghttp3 + % git clone -b $NGHTTP3_VERION https://github.com/ngtcp2/nghttp3 % cd nghttp3 % git submodule update --init % autoreconf -fi @@ -159,7 +163,7 @@ Build nghttp3: Build ngtcp2: % cd .. - % git clone -b v1.2.0 https://github.com/ngtcp2/ngtcp2 + % git clone -b $NGTCP2_VERION https://github.com/ngtcp2/ngtcp2 % cd ngtcp2 % autoreconf -fi % ./configure PKG_CONFIG_PATH=/lib/pkgconfig:/lib/pkgconfig LDFLAGS="-Wl,-rpath,/lib" --prefix= --enable-lib-only --with-wolfssl @@ -210,10 +214,12 @@ Build curl: QUIC support is **EXPERIMENTAL** -Build OpenSSL 3.3.1: +Use OpenSSL 3.3.1 or newer (QUIC support was added in 3.3.0, with +shortcomings on some platforms like macOS). 3.4.1 or newer is recommended. +Build via: % cd .. - % git clone -b openssl-3.3.1 https://github.com/openssl/openssl + % git clone -b $OPENSSL_VERSION https://github.com/openssl/openssl % cd openssl % ./config enable-tls1_3 --prefix= --libdir=lib % make @@ -222,7 +228,7 @@ Build OpenSSL 3.3.1: Build nghttp3: % cd .. - % git clone -b v1.1.0 https://github.com/ngtcp2/nghttp3 + % git clone -b $NGHTTP3_VERION https://github.com/ngtcp2/nghttp3 % cd nghttp3 % git submodule update --init % autoreconf -fi