Compile cURL dengan Dukungan HTTP/3 di Ubuntu dan Debian

Compile cURL dengan Dukungan HTTP/3 di Ubuntu dan Debian. Oke di tutorial ini saya akan sharing sedikit mengenai bagaimana cara install curl versi terbaru dengan dukungan HTTP/3. Sayangnya repository Ubuntu maupun Debian belum menyediakan curl dengan dukungan HTTP/3. Wajar, karena fitur ini sebenarnya masih tahap eksperimental. Namun jika kalian ingin mencobanya, kalian bisa compile curl dari source.

Install Dependensi
Pertama, kita install beberapa dependensi yang bisa kita dapatkan dari repository Ubuntu.
sudo apt-get update
sudo apt install git zlib1g-dev libcunit1 libcunit1-dev libev-dev libc-ares-dev libxml2-dev libjansson-dev libjemalloc-dev libsystemd-dev libevent-dev libunwind-dev cython python3-dev python-setuptools -y
Nah, selanjutnya adalah instalasi modul modul yang tidak tersedia di repository, atau yang tersedia di repository namun terlalu jadul sehingga kita compile saja dari source.

Patched OpenSSL
Kita akan compile openssl versi patched. Tidak diinstall ke sistem, hanya sebagai modul pendukung curl.
cd /tmp
git clone --depth 1 -b OpenSSL_1_1_1d-quic-draft-24 https://github.com/tatsuhiro-t/openssl
cd openssl
./config enable-tls1_3 --prefix=$PWD/build
make -j$(nproc)
make install_sw
Nghttp3
Modul ini juga dibutuhkan untuk dukungan HTTP/3 di curl.
cd /tmp
git clone https://github.com/ngtcp2/nghttp3
cd nghttp3
autoreconf -i
./configure --prefix=$PWD/build --enable-lib-only
make -j$(nproc) check
make install
Ngtcp2
cd /tmp
git clone https://github.com/ngtcp2/ngtcp2
cd ngtcp2
autoreconf -i 
./configure PKG_CONFIG_PATH=$PWD/../openssl/build/lib/pkgconfig:$PWD/../nghttp3/build/lib/pkgconfig LDFLAGS="-Wl,-rpath,$PWD/../openssl/build/lib" 
make -j$(nproc) check
sudo make install
Nghttp2
Ini adalah dukungan HTTP/2 untuk curl.
cd /tmp
git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make -j$(nproc) check
sudo make install
Install cURL
Terakhir adalah install curl. Masih di direktori /tmp, download source code curl dari link berikut https://curl.haxx.se/download.html. Saat artikel ini ditulis, versi terbarunya adalah curl 7.67.0.
cd /tmp
https://curl.haxx.se/download/curl-7.67.0.tar.gz
tar -xzvf curl-7.67.0.tar.gz
cd curl-7.67.0
./configure PKG_CONFIG_PATH=/usr/lib/pkgconfig --libdir=/tmp/curl-7.67.0/lib/  --with-ssl=/tmp/openssl/build --with-nghttp3=/tmp/nghttp3/build --with-ngtcp2 --with-nghttp2 --enable-ares --enable-threaded-resolver --disable-static
make -j$(nproc) check
sudo make install
Selesai.
 Oke mungkin sekian tutorial kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.