]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
HTTP3: document the ngtcp2/nghttp3 versions to use for building curl
authorStefan Eissing <stefan@eissing.org>
Tue, 25 Apr 2023 10:05:54 +0000 (12:05 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 25 Apr 2023 15:38:59 +0000 (17:38 +0200)
- refs #11011 to clarify this for people building curl themselves

Closes #11019

docs/HTTP3.md

index dc1befee461dd712afacc126f3341e14762b6a1e..5c58fd974e11935de7aad947808513814ec6f1d4 100644 (file)
@@ -35,6 +35,13 @@ To fix before we remove the experimental label:
 
 # ngtcp2 version
 
+Building curl with ngtcp2 involves 3 components: `ngtcp2` itself, `nghttp3` and a QUIC supporting TLS library. The supported TLS libraries are covered below.
+
+For now, `ngtcp2` and `nghttp3` are still *experimental* which means their evolution bring breaking changes. Therefore, the proper version of both libraries need to be used when building curl. These are
+
+ * `ngtcp2`: v0.13.1
+ * `nghttp3`: v0.10.0
+
 ## Build with OpenSSL
 
 Build (patched) OpenSSL
@@ -48,7 +55,7 @@ Build (patched) OpenSSL
 Build nghttp3
 
      % cd ..
-     % git clone https://github.com/ngtcp2/nghttp3
+     % git clone -b v0.10.0 https://github.com/ngtcp2/nghttp3
      % cd nghttp3
      % autoreconf -fi
      % ./configure --prefix=<somewhere2> --enable-lib-only
@@ -58,7 +65,7 @@ Build nghttp3
 Build ngtcp2
 
      % cd ..
-     % git clone https://github.com/ngtcp2/ngtcp2
+     % git clone -b v0.13.1 https://github.com/ngtcp2/ngtcp2
      % cd ngtcp2
      % autoreconf -fi
      % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only
@@ -91,7 +98,7 @@ Build GnuTLS
 Build nghttp3
 
      % cd ..
-     % git clone https://github.com/ngtcp2/nghttp3
+     % git clone -b v0.10.0 https://github.com/ngtcp2/nghttp3
      % cd nghttp3
      % autoreconf -fi
      % ./configure --prefix=<somewhere2> --enable-lib-only
@@ -101,7 +108,7 @@ Build nghttp3
 Build ngtcp2
 
      % cd ..
-     % git clone https://github.com/ngtcp2/ngtcp2
+     % git clone -b v0.13.1 https://github.com/ngtcp2/ngtcp2
      % cd ngtcp2
      % autoreconf -fi
      % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only --with-gnutls
@@ -132,7 +139,7 @@ Build wolfSSL
 Build nghttp3
 
      % cd ..
-     % git clone https://github.com/ngtcp2/nghttp3
+     % git clone -b v0.10.0 https://github.com/ngtcp2/nghttp3
      % cd nghttp3
      % autoreconf -fi
      % ./configure --prefix=<somewhere2> --enable-lib-only
@@ -142,7 +149,7 @@ Build nghttp3
 Build ngtcp2
 
      % cd ..
-     % git clone https://github.com/ngtcp2/ngtcp2
+     % git clone -b v0.13.1 https://github.com/ngtcp2/ngtcp2
      % cd ngtcp2
      % autoreconf -fi
      % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/lib" --prefix=<somewhere3> --enable-lib-only --with-wolfssl
@@ -161,6 +168,8 @@ Build curl
 
 # quiche version
 
+Since the quiche build manages its dependencies, curl can be built against the latest version. You are *probably* able to build against their main branch, but in case of problems, we recommend their latest release tag.
+
 ## build
 
 Build quiche and BoringSSL: