include $(TOPDIR)/rules.mk PKG_NAME:=dnsdist PKG_VERSION:=1.7.2 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/ PKG_HASH:=524bd2bb05aa2e05982a971ae8510f2812303ab4486a3861b62212d06b1127cd PKG_MAINTAINER:=Peter van Dijk PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=COPYING PKG_CPE_ID:=cpe:/a:powerdns:dnsdist PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 PKG_ASLR_PIE:=0 PKG_BUILD_DEPENDS:=boost PKG_CONFIG_DEPENDS:= \ CONFIG_DNSDIST_GNUTLS \ CONFIG_DNSDIST_OPENSSL include $(INCLUDE_DIR)/package.mk define Package/dnsdist/config menu "Configuration" depends on PACKAGE_dnsdist comment "SSL Support" choice prompt "Selected SSL library" default DNSDIST_OPENSSL config DNSDIST_OPENSSL bool "OpenSSL" config DNSDIST_GNUTLS bool "GnuTLS" config DNSDIST_NOSSL bool "No SSL support" endchoice comment "DNS over HTTPS/TLS Support" depends on !DNSDIST_NOSSL config DNSDIST_DNS_OVER_HTTPS depends on DNSDIST_OPENSSL depends on !DNSDIST_NOSSL bool "DNS over HTTPS Support" help "Enables DNS over HTTPS Support for dnsdist" default y config DNSDIST_DNS_OVER_HTTPS_OUTGOING depends on !DNSDIST_NOSSL bool "Outgoing DNS over HTTPS Support" help "Enables Outgoing DNS over HTTPS Support for dnsdist" default y config DNSDIST_DNS_OVER_TLS depends on !DNSDIST_NOSSL bool "DNS over TLS Support" help "Enabled DNS over TLS Support for dnsdist" default y config DNSDIST_NET_SNMP bool "Net-SNMP support" help "Enable Net-SNMP support for dnsdist" default y config DNSDIST_RE2 bool "RE2 support" help "Enable RE2 support for dnsdist" default y config DNSDIST_DNSTAP bool "DNSTAP support" help "Enable DNSTAP support for dnsdist" default y config DNSDIST_SODIUM bool "Build with libsodium" help "Build with libsodium - for encrypted console connections, and DNSCrypt" default y endmenu endef define Package/dnsdist SECTION:=net CATEGORY:=Network SUBMENU:=IP Addresses and Names TITLE:=dnsdist DNS-, DOS- and abuse-aware loadbalancer DEPENDS:= \ +DNSDIST_DNS_OVER_HTTPS:libh2o-evloop \ +DNSDIST_DNS_OVER_HTTPS_OUTGOING:libnghttp2 \ +DNSDIST_GNUTLS:libgnutls \ +DNSDIST_OPENSSL:libopenssl \ +DNSDIST_NET_SNMP:libnetsnmp \ +DNSDIST_RE2:re2 \ +DNSDIST_DNSTAP:libfstrm \ +DNSDIST_SODIUM:libsodium \ +libatomic \ +libcap \ +libedit \ +libstdcpp \ +lmdb \ +luajit \ +tinycdb URL:=https://dnsdist.org/ endef define Package/dnsdist/description 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. endef define Package/dnsdist/conffiles /etc/dnsdist.conf /etc/config/dnsdist /etc/init.d/dnsdist endef # not everything groks --disable-nls DISABLE_NLS:= # OpenWRT's setting of CXX destroys dnsdist's -std=c++17 # --with-re2 compensates for that because it compensates for a bug in re2.pc that also destroys it # so this addition is for the --without-re2 case # # none of this is pretty TARGET_CXX+=-std=c++17 CONFIGURE_ARGS+= \ --with-pic \ --with-lua=luajit \ $(if $(CONFIG_DNSDIST_SODIUM),--enable-dnscrypt --with-libsodium,--disable-dnscrypt --without-libsodium) \ $(if $(CONFIG_DNSDIST_DNSTAP),--enable-dnstap=yes,--enable-dnstap=no) \ $(if $(CONFIG_DNSDIST_RE2),--with,--without)-re2 \ $(if $(CONFIG_DNSDIST_NET_SNMP),--with,--without)-net-snmp \ $(if $(CONFIG_DNSDIST_GNUTLS),--with,--without)-gnutls \ $(if $(CONFIG_DNSDIST_OPENSSL),--with,--without)-libssl \ $(if $(CONFIG_DNSDIST_DNS_OVER_TLS),--enable-dns-over-tls,) \ $(if $(CONFIG_DNSDIST_DNS_OVER_HTTPS),--enable-dns-over-https,) \ $(if $(CONFIG_DNSDIST_DNS_OVER_HTTPS_OUTGOING),--with,--without)-nghttp2 define Package/dnsdist/install $(INSTALL_DIR) $(1)/etc $(INSTALL_CONF) ./files/dnsdist.conf $(1)/etc/dnsdist.conf $(INSTALL_DIR) $(1)/etc/config $(INSTALL_CONF) ./files/dnsdist.config $(1)/etc/config/dnsdist $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/dnsdist.init $(1)/etc/init.d/dnsdist $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/dnsdist $(1)/usr/bin/ endef $(eval $(call BuildPackage,dnsdist))