Skip to content

Instantly share code, notes, and snippets.

@masakielastic
Last active March 3, 2026 05:21
Show Gist options
  • Select an option

  • Save masakielastic/3f0f0ece1ad8bddcde4ae35cfa9533d4 to your computer and use it in GitHub Desktop.

Select an option

Save masakielastic/3f0f0ece1ad8bddcde4ae35cfa9533d4 to your computer and use it in GitHub Desktop.
HTTP/3 関連のローカルビルドのための設定ファイル・改訂版

HTTP/3 関連のローカルビルドのための設定ファイル・改訂版

OpenSSL のビルドオプションを修正して $HOME/.local/lib にインストールされるようにする。

./Configure \
  --prefix=$HOME/.local \
  --openssldir=$HOME/.local/ssl \
  --libdir=lib \
  linux-x86_64 shared zlib

サブシェルで一時環境を使う」方式

h3 curl -V
h3 h2load --version
h3 nghttpx --version
h3 openssl version

バージョン番号を表示させる

h3-ver

openssl                3.6.2-dev
libssl                 3.6.2-dev
libcrypto              3.6.2-dev
libnghttp2             1.68.0
libnghttp3             1.16.0-DEV
libngtcp2              1.22.0-DEV
libngtcp2_crypto_ossl  1.22.0-DEV

ビルド用の環境変数を使う

use-h3
h3() {
(
export PREFIX="$HOME/.local"
export PATH="$PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="$PREFIX/lib"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export SSL_CERT_DIR=/etc/ssl/certs
exec "$@"
)
}
use-h3() {
export _OLD_PATH="$PATH"
export _OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
export _OLD_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
export PREFIX="$HOME/.local"
export PATH="$PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="$PREFIX/lib"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
export SSL_CERT_DIR=/etc/ssl/certs
hash -r
}
h3-ver() {
local PREFIX="$HOME/.local"
local PKG_PATH="$PREFIX/lib/pkgconfig"
local pkg ver
for pkg in openssl libssl libcrypto \
libnghttp2 libnghttp3 \
libngtcp2 libngtcp2_crypto_ossl; do
ver="$(PKG_CONFIG_PATH="$PKG_PATH" pkg-config --modversion "$pkg" 2>/dev/null)" || continue
printf "%-22s %s\n" "$pkg" "$ver"
done
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment