Attached are two ports, net/ngtcp2 and www/nghttp2 which in combination with a couple of configure flags add QUIC support to curl. This is all work by jsing, somewhat cleaned up by me.
The cunit handling in the two new ports is taken from nghttp2, which may or may not be needed anymore. It is hopefully acceptable to add two small dependencies to curl, but I assume we need to do some testing first to make sure we don't accidentally cripple an arch by breaking curl. I have tested this on amd64 and arm64. Index: Makefile =================================================================== RCS file: /cvs/ports/net/curl/Makefile,v retrieving revision 1.175 diff -u -p -r1.175 Makefile --- Makefile 7 Nov 2022 14:37:00 -0000 1.175 +++ Makefile 8 Nov 2022 16:06:14 -0000 @@ -1,7 +1,7 @@ COMMENT= transfer files with FTP, HTTP, HTTPS, etc. DISTNAME= curl-7.86.0 -REVISION= 0 +REVISION= 1 SHARED_LIBS= curl 26.17 # 12.0 CATEGORIES= net HOMEPAGE= https://curl.se/ @@ -14,14 +14,16 @@ PERMIT_PACKAGE= Yes MASTER_SITES= https://curl.se/download/ EXTRACT_SUFX= .tar.xz -LIB_DEPENDS= www/nghttp2 -WANTLIB= c crypto pthread nghttp2 ssl z +LIB_DEPENDS= www/nghttp2 www/nghttp3 net/ngtcp2 +WANTLIB= c crypto pthread nghttp2 nghttp3 ngtcp2 ssl z AUTOCONF_VERSION=2.71 CONFIGURE_STYLE=autoconf # Beware of circular dependency curl -> brotli -> cmake -> curl CONFIGURE_ARGS= --with-openssl \ --with-ca-bundle=/etc/ssl/cert.pem \ + --with-nghttp3 \ + --with-ngtcp2 \ --without-brotli \ --without-hyper \ --without-libgsasl \
