💬

quictls と HTTP/3 対応の h2load と nghttpx(nghttp2)、cURL をビルドする

2024/04/26に公開

HTTP/3 対応の h2load と nghttpx(nghttp2)をビルドした。HTTP/3 対応の cURL も考慮して TLS ライブラリは quictls にした。

ホームディレクトリを $HOME/http3/quictls とする。まず quictls をビルドする

cd http3/quictls
git clone --depth 1 -b openssl-3.1.4+quic https://github.com/quictls/openssl
cd openssl
./config --prefix=$HOME/http3/quictls --libdir=$HOME/quictls/lib
make
make install
cd ../

http3/quicltslibinclude のディレクトリが生成されていることを確認する。

次に ngtcp2 をビルドする

git clone -b v1.4.0 https://github.com/ngtcp2/ngtcp2
cd ngtcp2
autoreconf -fi
PKG_CONFIG_PATH=$HOME/http3/quictls/lib/pkgconfig \
./configure --prefix=$HOME/http3/quictls
make
make install
cd ../

次に nghttp3 をビルドする

git clone -b v1.2.0 https://github.com/ngtcp2/nghttp3
cd nghttp3
git submodule update --init
autoreconf -fi
./configure --prefix=$HOME/http3/quictls --enable-lib-only
make
make install
cd ../

次に nghttp2 をビルドする

git clone -b v1.61.0 https://github.com/nghttp2/nghttp2
cd nghttp2
autoreconf -fi
PKG_CONFIG_PATH=$HOME/http3/quictls/lib/pkgconfig   \
./configure --prefix=$HOME/http3/quictls --enable-http3

HTTP/3 が有効になっていることを確認する

make してインストールする

make
make install
cd ../

最後に cURL をビルドする

git clone https://github.com/curl/curl
cd curl
autoreconf -fi
PKG_CONFIG_PATH=$HOME/http3/quictls/lib/pkgconfig \
./configure \
--prefix=$HOME/http3/quictls \
--with-openssl --with-ngtcp2 --with-nghttp3

Discussion