Index | Thread | Search

From:
Otto Moerbeek <otto@drijf.net>
Subject:
Re: Update to dnsdist 1.9.0, with new flavor
To:
Renaud Allard <renaud@allard.it>, ports@openbsd.org
Date:
Fri, 16 Feb 2024 12:14:07 +0100

Download raw body.

Thread
On Fri, Feb 16, 2024 at 10:20:49AM +0000, Stuart Henderson wrote:

> Generally the diff looks good to me. I'd have a slight preference to
> move SYSCONFDIR/COMPILER/MODULES/NODLUA_VERSION up so that the
> flavour-independent variables are grouped together above the .if.
> 
> On 2024/02/16 10:29, Renaud Allard wrote:
> > Then maybe the flavor should be named -http3 because DoQ is http3 over non
> > 443 port.
> 
> I would prefer this (or just -h3) than -quiche. Also please mention
> it in DESCR e.g. something like
> 
> Flavours:
> 	h3: build with libquiche/boringssl, providing HTTP/3 and QUIC support
> 

Updated diff, taking the -h3 and other suggesions.

	-Otto

Index: Makefile
===================================================================
RCS file: /home/cvs/ports/net/dnsdist/Makefile,v
diff -u -p -r1.36 Makefile
--- Makefile	15 Dec 2023 13:11:55 -0000	1.36
+++ Makefile	16 Feb 2024 11:12:02 -0000
@@ -1,6 +1,6 @@
 COMMENT=		highly DNS-, DoS- and abuse-aware loadbalancer
 
-DISTNAME=		dnsdist-1.8.3
+DISTNAME=		dnsdist-1.9.0
 EXTRACT_SUFX=		.tar.bz2
 
 CATEGORIES=		net
@@ -10,18 +10,28 @@ HOMEPAGE=		https://dnsdist.org/
 MAINTAINER=		Otto Moerbeek <otto@drijf.net>
 
 # GPLv2 only
-PERMIT_PACKAGE=	Yes
+PERMIT_PACKAGE=		Yes
 
-WANTLIB +=		${MODLUA_WANTLIB} c curses edit m \
-			fstrm h2o-evloop>=1 nghttp2 pthread \
-			z crypto ssl sodium ${COMPILER_LIBCXX}
+FLAVORS=		h3
+FLAVOR?=
+
+WANTLIB +=		${MODLUA_WANTLIB} ${COMPILER_LIBCXX} curses crypto edit m \
+			fstrm nghttp2 pthread sodium 
 
 SITES=			https://downloads.powerdns.com/releases/
 
 CONFIGURE_STYLE=	autoconf
-AUTOCONF_VERSION=	2.69
+AUTOCONF_VERSION=	2.71
 USE_GMAKE=		Yes
 
+SYSCONFDIR=		${BASESYSCONFDIR}/dnsdist
+
+COMPILER =		base-clang ports-gcc
+
+MODULES+=		lang/lua
+MODLUA_VERSION=		5.3
+
+
 CONFIGURE_ARGS+=	--without-gnutls \
 			--disable-hardening \
 			--with-lua=lua${MODLUA_VERSION:S/.//} \
@@ -34,27 +44,43 @@ CONFIGURE_ARGS+=	--without-gnutls \
 			--enable-dnscrypt \
 			--enable-dnstap \
 			--enable-dns-over-https
-#
-# On at least amd64 using clang13 dnsdist-lua-bindings.cc gets
-# miscompiled with -O2, resulting in a segfault on startup
-#
+
 CONFIGURE_ENV+=		CPPFLAGS="-I${LOCALBASE}/include" \
 			LDFLAGS="-L${LOCALBASE}/lib" \
-			LIBEDIT_LIBS='-ledit -lcurses' \
-			LIBEDIT_CFLAGS=' '
-SYSCONFDIR=		${BASESYSCONFDIR}/dnsdist
-
-COMPILER =		base-clang ports-gcc
-
-MODULES+=		lang/lua
-MODLUA_VERSION=		5.3
+			LIBEDIT_LIBS="-ledit -lcurses" \
+			LIBEDIT_CFLAGS=" "
 
 BUILD_DEPENDS=		devel/boost
 LIB_DEPENDS+=		${MODLUA_LIB_DEPENDS} \
 			security/libsodium \
 			net/libfstrm \
-			www/h2o \
 			www/nghttp2
+
+
+.if ${FLAVOR:L:Mh3}
+
+# Lua module overrides FULLPKGNAME
+FULLPKGNAME=		${PKGNAME}-${FLAVOR}
+CONFIGURE_ARGS+=	--with-libcrypto=${LOCALBASE}/eboringssl \
+			--with-quiche \
+			--enable-dns-over-quic \
+			--enable-dns-over-http3 \
+
+# OpenBSD libtool seems to leave out boringssl libs, because they have the same
+# name as system libs, so explicitly refer to the .a files.
+CONFIGURE_ENV+=		LIBSSL_CFLAGS="-I${LOCALBASE}/eboringssl/include \
+				-DDISABLE_OCSP_STAPLING" \
+			LIBSSL_LIBS="${LOCALBASE}/eboringssl/lib/libssl.a \
+				${LOCALBASE}/eboringssl/lib/libcrypto.a" \
+			QUICHE_CFLAGS=" " \
+			QUICHE_LIBS='-lquiche'
+BUILD_DEPENDS+=		net/quiche \
+			security/boringssl/head
+.else
+
+WANTLIB+=		ssl
+
+.endif
 
 post-install:
 	${INSTALL_DATA_DIR} ${PREFIX}/share/{doc,examples}/dnsdist
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/net/dnsdist/distinfo,v
diff -u -p -r1.19 distinfo
--- distinfo	15 Dec 2023 13:11:55 -0000	1.19
+++ distinfo	16 Feb 2024 11:12:02 -0000
@@ -1,2 +1,2 @@
-SHA256 (dnsdist-1.8.3.tar.bz2) = hYMj8u1RgUiLt1WPv0+E7HGYYAsHCyxTddFdQGlXJ/Q=
-SIZE (dnsdist-1.8.3.tar.bz2) = 1484359
+SHA256 (dnsdist-1.9.0.tar.bz2) = FrqxXK2SRVcYBjmKjkpdwyqStrtg5hfBL+lYyUWInHw=
+SIZE (dnsdist-1.9.0.tar.bz2) = 1620891
Index: patches/patch-configure_ac
===================================================================
RCS file: /home/cvs/ports/net/dnsdist/patches/patch-configure_ac,v
diff -u -p -r1.8 patch-configure_ac
--- patches/patch-configure_ac	31 Mar 2023 05:38:03 -0000	1.8
+++ patches/patch-configure_ac	16 Feb 2024 11:12:02 -0000
@@ -11,4 +11,4 @@ Index: configure.ac
 +CXXFLAGS="-g -Wall -Wextra -Wshadow -Wno-unused-parameter -Wmissing-declarations -Wredundant-decls -fvisibility=hidden $CXXFLAGS"
  
  PDNS_WITH_LIBSODIUM
- PDNS_CHECK_DNSTAP([auto])
+ PDNS_WITH_QUICHE
Index: pkg/DESCR
===================================================================
RCS file: /home/cvs/ports/net/dnsdist/pkg/DESCR,v
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR	15 Jan 2017 17:13:33 -0000	1.1.1.1
+++ pkg/DESCR	16 Feb 2024 11:12:02 -0000
@@ -1,3 +1,7 @@
 dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in
 life is to route traffic to the best server, delivering top performance
 to legitimate users while shunting or blocking abusive traffic.
+
+Flavours:
+        h3: build with libquiche/boringssl, providing incoming HTTP/3 and QUIC support                         
+