mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 07:28:39 +01:00
pdns: add package
Maintainer: me Compile tested: armv7l, OpenWRT SDK Run tested: armv7l Linksys WRT1900ACS, OpenWrt SNAPSHOT, r9987-655fff1571 - confirmed PowerDNS server links correctly against libraries. I'm unable to test all the backend modules as I don't have suitable backing stores set up for each. Description: PowerDNS is a versatile nameserver which supports a large number of different backends ranging from simple zonefiles to relational databases and load balancing/failover algorithms. PowerDNS tries to emphasize speed and security. This commit includes the authoritative nameserver, backends and additional tools https://www.powerdns.com/auth.html Signed-off-by: James Taylor <james@jtaylor.id.au>
This commit is contained in:
@@ -0,0 +1,215 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=pdns
|
||||
PKG_VERSION:=4.1.8
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=https://downloads.powerdns.com/releases/
|
||||
PKG_HASH:=94561132f46c08f646399511b680ce8cda150fd2b8e3d38c0b90b4187163e617
|
||||
|
||||
PKG_MAINTAINER:=James Taylor <james@jtaylor.id.au>
|
||||
PKG_LICENCE:=GPL-2.0-only
|
||||
PKG_LICENCE_FILES:=COPYING
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
|
||||
PKG_INSTALL:=1
|
||||
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
PKG_BUILD_DEPENDS:=unixodbc/host
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/pdns/Default
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=IP Addresses and Names
|
||||
TITLE:=PowerDNS Authoritative Server
|
||||
DEPENDS:=+libatomic
|
||||
URL:=https://www.powerdns.com/auth.html
|
||||
endef
|
||||
|
||||
define Package/pdns/description
|
||||
PowerDNS is a versatile nameserver which supports a large number
|
||||
of different backends ranging from simple zonefiles to relational
|
||||
databases and load balancing/failover algorithms.
|
||||
PowerDNS tries to emphasize speed and security.
|
||||
|
||||
This is the authoritative nameserver that answers questions about
|
||||
domains that it knows about. You also need at least one backend installed to
|
||||
serve data.
|
||||
endef
|
||||
|
||||
PDNS_BACKENDS =
|
||||
|
||||
define Package/pdns-backends
|
||||
$(call Package/pdns/Default)
|
||||
TITLE+= (all backends)
|
||||
DEPENDS+= $(PDNS_DEPENDS)
|
||||
HIDDEN:=1
|
||||
endef
|
||||
|
||||
define Package/pdns-backends/description
|
||||
This meta package contains only dependencies for PowerDNS backends.
|
||||
endef
|
||||
|
||||
# Create a meta-package of dependent backends (for ALL)
|
||||
define Package/pdns-backends/install
|
||||
true
|
||||
endef
|
||||
|
||||
define Package/pdns-tools
|
||||
$(call Package/pdns/Default)
|
||||
TITLE:=Tools for DNS debugging by PowerDNS
|
||||
DEPENDS+=+boost +boost-program_options +libopenssl +p11-kit +protobuf
|
||||
endef
|
||||
|
||||
define Package/pdns-tools/description
|
||||
PowerDNS is a versatile nameserver which supports a large number
|
||||
of different backends ranging from simple zonefiles to relational
|
||||
databases and load balancing/failover algorithms.
|
||||
PowerDNS tries to emphasize speed and security.
|
||||
|
||||
This package contains several tools to debug DNS issues. These tools do not
|
||||
require any part of the PowerDNS server components to work.
|
||||
|
||||
* dnsbulktest: A resolver stress-tester
|
||||
* dnsgram: Show per 5-second statistics to study intermittent resolver issues
|
||||
* dnsreplay: Replay a pcap with DNS queries
|
||||
* dnsscan: Prints the query-type amounts in a pcap
|
||||
* dnsscope: Calculates statistics without replaying traffic
|
||||
* dnstcpbench: Perform TCP benchmarking of DNS servers
|
||||
* dnswasher: Clean a pcap of identifying IP information
|
||||
* ixplore: Explore diffs from IXFRs
|
||||
* nsec3dig: Calculate the correctness of NSEC3 proofs
|
||||
* saxfr: AXFR zones and show extra information
|
||||
endef
|
||||
|
||||
define Package/pdns
|
||||
$(call Package/pdns/Default)
|
||||
DEPENDS+=+boost +boost-program_options +liblua +libopenssl +libsodium +libsqlite3 +p11-kit
|
||||
endef
|
||||
|
||||
define Package/pdns/config
|
||||
menu "Select PowerDNS backends"
|
||||
depends on PACKAGE_pdns
|
||||
comment "PowerDNS backends"
|
||||
|
||||
$(foreach backend,$(PDNS_BACKENDS), \
|
||||
config PACKAGE_pdns-backend-$(backend)
|
||||
prompt "$(PDNS_BACKEND_$(backend)_DESC) backend"
|
||||
default m if ALL
|
||||
)
|
||||
endmenu
|
||||
endef
|
||||
|
||||
|
||||
# 1: short name
|
||||
# 2: dependencies on other PowerDNS libraries (short name)
|
||||
# 3: dependencies on other packages
|
||||
# 4: conditional/inward dependencies
|
||||
define DefinePdnsBackend
|
||||
PDNS_DEPENDS+= +pdns-backend-$(1)
|
||||
PKG_CONFIG_DEPENDS+= CONFIG_PACKAGE_pdns-backend$(1)
|
||||
|
||||
PDNS_BACKENDS+= $(1)
|
||||
|
||||
PDNS_BACKEND_$(1)_DESC=$(if $(5),$(5),$(1))
|
||||
PDNS_BACKEND_$(1)_LIB=$(if $(4),$(4),$(1))
|
||||
|
||||
define Package/pdns-backend-$(1)
|
||||
$(call Package/pdns/Default)
|
||||
TITLE+= ($(1))
|
||||
DEPENDS+= pdns $$(foreach backend,$(2),+pdns-backend-$$(backend)) $(3)
|
||||
HIDDEN:=1
|
||||
endef
|
||||
|
||||
define Package/pdns-backend-$(1)/description
|
||||
PowerDNS is a versatile nameserver which supports a large number
|
||||
of different backends ranging from simple zonefiles to relational
|
||||
databases and load balancing/failover algorithms.
|
||||
PowerDNS tries to emphasize speed and security.
|
||||
|
||||
This package contains the $(if $(5),$(5),$(1)) backend for the PowerDNS nameserver.
|
||||
endef
|
||||
endef
|
||||
|
||||
$(eval $(call DefinePdnsBackend,mysql,,libmysqlclient,gmysql,MySQL))
|
||||
$(eval $(call DefinePdnsBackend,odbc,,unixodbc,godbc,ODBC))
|
||||
$(eval $(call DefinePdnsBackend,pgsql,,libpq,gpgsql,PostgreSQL))
|
||||
$(eval $(call DefinePdnsBackend,sqlite3,,libsqlite3,gsqlite3,SQLite 3))
|
||||
$(eval $(call DefinePdnsBackend,ldap,,libopenldap krb5-libs,,OpenLDAP))
|
||||
$(eval $(call DefinePdnsBackend,lua,,lua liblua,,Lua))
|
||||
$(eval $(call DefinePdnsBackend,mydns,,libmysqlclient,,MyDNS))
|
||||
$(eval $(call DefinePdnsBackend,pipe,,,,Pipe))
|
||||
$(eval $(call DefinePdnsBackend,remote,,,,Remote))
|
||||
|
||||
define Package/pdns/conffiles
|
||||
/etc/powerdns/pdns.conf
|
||||
/etc/init.d/pdns
|
||||
endef
|
||||
|
||||
CONFIGURE_ARGS+= \
|
||||
--sysconfdir=/etc/powerdns \
|
||||
--libdir=/usr/lib/powerdns \
|
||||
--with-dynmodules="$(foreach backend,$(PDNS_BACKENDS),$(if $(CONFIG_PACKAGE_pdns-backend-$(backend)),$(PDNS_BACKEND_$(backend)_LIB),))" \
|
||||
--with-modules="bind random" \
|
||||
--with-mysql-lib=$(STAGING_DIR)/usr \
|
||||
--with-mysql-includes=$(STAGING_DIR)/usr \
|
||||
$(if $(CONFIG_PACKAGE_pdns-tools),--enable-tools,) \
|
||||
--with-protobuf \
|
||||
--enable-libsodium \
|
||||
--enable-experimental-pkcs11
|
||||
|
||||
define Package/pdns/install
|
||||
$(INSTALL_DIR) $(1)/etc/powerdns
|
||||
$(INSTALL_CONF) ./files/pdns.conf-dist $(1)/etc/powerdns/pdns.conf-dist
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/pdns.init $(1)/etc/init.d/pdns
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/pdns_control $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/pdnsutil $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/zone2sql $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/zone2json $(1)/usr/bin/
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/pdns_server $(1)/usr/sbin/
|
||||
endef
|
||||
|
||||
define Package/pdns/Default/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/powerdns/pdns
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/powerdns/pdns/lib$(PDNS_BACKEND_$(2)_LIB)backend.so $(1)/usr/lib/powerdns/pdns/
|
||||
endef
|
||||
|
||||
define Package/pdns-tools/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/calidns $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnsbulktest $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnsgram $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnspcap2protobuf $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnsreplay $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnsscan $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnsscope $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnstcpbench $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dnswasher $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/dumresp $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ixplore $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/nproxy $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/nsec3dig $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/pdns_notify $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/saxfr $(1)/usr/bin/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/sdig $(1)/usr/bin/
|
||||
endef
|
||||
|
||||
define BuildPdnsBackend
|
||||
define Package/pdns-backend-$(1)/install
|
||||
$(call Package/pdns/Default/install,$$(1),$(1))
|
||||
endef
|
||||
|
||||
$$(eval $$(call BuildPackage,pdns-backend-$(1)))
|
||||
endef
|
||||
|
||||
$(foreach backend,$(PDNS_BACKENDS),$(eval $(call BuildPdnsBackend,$(backend))))
|
||||
$(eval $(call BuildPackage,pdns))
|
||||
$(eval $(call BuildPackage,pdns-tools))
|
||||
Reference in New Issue
Block a user