aboutsummaryrefslogtreecommitdiffstats
path: root/dns/gdnsd
diff options
context:
space:
mode:
authormiwi <miwi@FreeBSD.org>2012-06-09 23:47:57 +0800
committermiwi <miwi@FreeBSD.org>2012-06-09 23:47:57 +0800
commitf14b21721d89aa27cbe257bf9de894e38c5fced5 (patch)
tree5958e98e9c64bb8c10daf287be538eefa4e87d1e /dns/gdnsd
parent50e6fbdcaf560f741f17898138212098e9b47d04 (diff)
downloadfreebsd-ports-gnome-f14b21721d89aa27cbe257bf9de894e38c5fced5.tar.gz
freebsd-ports-gnome-f14b21721d89aa27cbe257bf9de894e38c5fced5.tar.zst
freebsd-ports-gnome-f14b21721d89aa27cbe257bf9de894e38c5fced5.zip
gdnsd is an Authoritative-only DNS server.
The initial g stands for Geographic, as gdnsd offers a plugin system for geographic (or other sorts of) balancing, redirection, and service-state-conscious failover. If you don't care about that feature, it's still quite good at being a very fast, lean, and resilient authoritative-only server for static DNS data. gdnsd is written in C using libev and pthreads with a focus on highi performance, low latency service. It does not offer any form of caching or recursive service, and does not support DNSSEC. WWW: http://code.google.com/p/gdnsd/ PR: ports/167946 Submitted by: Stefan Caunter <stef@scaleengine.com>
Diffstat (limited to 'dns/gdnsd')
-rw-r--r--dns/gdnsd/Makefile50
-rw-r--r--dns/gdnsd/distinfo2
-rw-r--r--dns/gdnsd/files/gdnsd.in49
-rw-r--r--dns/gdnsd/files/patch-docs-config.example19
-rw-r--r--dns/gdnsd/pkg-descr12
-rw-r--r--dns/gdnsd/pkg-plist77
6 files changed, 209 insertions, 0 deletions
diff --git a/dns/gdnsd/Makefile b/dns/gdnsd/Makefile
new file mode 100644
index 000000000000..49e364b0cdf5
--- /dev/null
+++ b/dns/gdnsd/Makefile
@@ -0,0 +1,50 @@
+# New ports collection makefile for: gdnsd
+# Date created: Tue May 15, 2012
+# Whom: Stefan Caunter <stef@scaleengine.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= gdnsd
+PORTVERSION= 1.6.7
+CATEGORIES= dns
+MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE}
+MASTER_SITES+= http://gdnsd.scaleengine.net/gdnsd/
+
+MAINTAINER= ports@scaleengine.com
+COMMENT= Authoritative-only GeoIP-aware DNS server
+
+LICENSE= GPLv3
+
+OPTIONS_DEFINE= GEOIP
+
+HAS_CONFIGURE= yes
+MAKE_JOBS_SAFE= yes
+USE_LDCONFIG= yes
+
+MAN1= gdnsd_geoip_test.1
+MAN3= gdnsd-plugin-api.3
+MAN5= gdnsd.config.5 gdnsd.zonefile.5
+MAN8= gdnsd.8 gdnsd-plugin-simplefo.8 gdnsd-plugin-multifo.8 \
+ gdnsd-plugin-metafo.8 gdnsd-plugin-geoip.8 \
+ gdnsd-plugin-weighted.8
+MANCOMPRESSED= no
+
+USE_RC_SUBR= gdnsd
+
+CONFIGURE_ARGS+= --mandir=${PREFIX}/man
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MWITH_GEOIP}
+RUN_DEPENDS+= ${LOCALBASE}/share/GeoIP/GeoIP.dat:${PORTSDIR}/net/GeoIP
+.endif
+
+post-install:
+ ${CP} ${WRKDIR}/${DISTNAME}/docs/config.example ${ETCDIR}/config-dist
+ @if [ ! -f ${ETCDIR}/config ]; then \
+ ${CP} -p ${WRKDIR}/${DISTNAME}/docs/config.example ${ETCDIR}/config ; \
+ fi
+ ${CP} ${WRKDIR}/${DISTNAME}/docs/example.com ${ETCDIR}/example.com
+
+.include <bsd.port.mk>
diff --git a/dns/gdnsd/distinfo b/dns/gdnsd/distinfo
new file mode 100644
index 000000000000..9673e135587d
--- /dev/null
+++ b/dns/gdnsd/distinfo
@@ -0,0 +1,2 @@
+SHA256 (gdnsd-1.6.7.tar.gz) = 39bf9849a586564f60319e4012edc037633077780060a4f925c418871d6d8672
+SIZE (gdnsd-1.6.7.tar.gz) = 942433
diff --git a/dns/gdnsd/files/gdnsd.in b/dns/gdnsd/files/gdnsd.in
new file mode 100644
index 000000000000..95062d168abc
--- /dev/null
+++ b/dns/gdnsd/files/gdnsd.in
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: gdnsd
+# REQUIRE: DAEMON
+# REQUIRE: LOGIN
+# KEYWORD: FreeBSD shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# gdnsd_enable (bool): Set to NO by default.
+# Set it to YES to enable gdnsd.
+# gdnsd_config (path): Set to %%PREFIX%%/etc/gdnsd/config
+# by default.
+
+. /etc/rc.subr
+
+name="gdnsd"
+rcvar=`set_rcvar`
+command="%%PREFIX%%/sbin/gdnsd"
+
+# set defaults
+load_rc_config $name
+: ${gdnsd_enable:="NO"}
+: ${gdnsd_config="%%PREFIX%%/etc/gdnsd/config"}
+: ${gdnsd_pidfile="%%PREFIX%%/var/run/gdnsd.pid"}
+
+required_files=${gdnsd_config}
+command_args="-c ${gdnsd_config} start"
+procname=${command}
+extra_commands="checkconf"
+checkconf_cmd="gdnsd_checkconf"
+
+stop_postcmd=stop_postcmd
+
+stop_postcmd()
+{
+ rm -f ${gdnsd_pidfile}
+}
+
+gdnsd_checkconf()
+{
+ ${command} -c ${gdnsd_config} checkconf
+}
+
+run_rc_command "$1"
+
diff --git a/dns/gdnsd/files/patch-docs-config.example b/dns/gdnsd/files/patch-docs-config.example
new file mode 100644
index 000000000000..0c9761e36167
--- /dev/null
+++ b/dns/gdnsd/files/patch-docs-config.example
@@ -0,0 +1,19 @@
+--- config.example.orig 2012-05-06 20:26:34.000000000 +0000
++++ docs/config.example 2012-05-25 20:13:28.000000000 +0000
+@@ -1,4 +1,14 @@
+-
+ # For more information on configuration, see "man gdnsd.config"
+-options => { zones_default_ttl = 43200 }
++
++options => {
++ username = gdnsd
++ zones_default_ttl = 3600
++ http_port = 13506
++ tcp_clients_per_socket = 256
++ tcp_timeout = 8
++ max_http_clients = 32
++ priority = 0
++ listen = 127.0.0.1
++ http_listen = 127.0.0.1
++}
+ zones => { example.com => { default_ttl = 86400 } }
diff --git a/dns/gdnsd/pkg-descr b/dns/gdnsd/pkg-descr
new file mode 100644
index 000000000000..7f1c888e5693
--- /dev/null
+++ b/dns/gdnsd/pkg-descr
@@ -0,0 +1,12 @@
+gdnsd is an Authoritative-only DNS server.
+
+The initial g stands for Geographic, as gdnsd offers a plugin system for
+geographic (or other sorts of) balancing, redirection, and service-state-conscious
+failover. If you don't care about that feature, it's still quite good at being
+a very fast, lean, and resilient authoritative-only server for static DNS data.
+
+gdnsd is written in C using libev and pthreads with a focus on highi performance,
+low latency service. It does not offer any form of caching or recursive service,
+and does not support DNSSEC.
+
+WWW: http://code.google.com/p/gdnsd/
diff --git a/dns/gdnsd/pkg-plist b/dns/gdnsd/pkg-plist
new file mode 100644
index 000000000000..908df42cf36c
--- /dev/null
+++ b/dns/gdnsd/pkg-plist
@@ -0,0 +1,77 @@
+bin/gdnsd_geoip_test
+@unexec if cmp -s %D/%%ETCDIR%%/config-dist %D/%%ETCDIR%%/config; then rm -f %D/%%ETCDIR%%/config; fi
+%%ETCDIR%%/config-dist
+@exec if [ ! -f %D/%%ETCDIR%%/config ] ; then cp -p %D/%F %B/config; fi
+%%ETCDIR%%/example.com
+@dirrmtry %%ETCDIR%%
+include/gdnsd-compiler.h
+include/gdnsd-dmn.h
+include/gdnsd-dname.h
+include/gdnsd-ev.h
+include/gdnsd-log.h
+include/gdnsd-misc.h
+include/gdnsd-monio.h
+include/gdnsd-net.h
+include/gdnsd-plugapi.h
+include/gdnsd-plugin.h
+include/gdnsd-satom.h
+include/gdnsd-vscf.h
+%%DOCSDIR%%/gdnsd-plugin-multifo.pod
+%%DOCSDIR%%/gdnsd-plugin-geoip.pod
+%%DOCSDIR%%/gdnsd-plugin-metafo.txt
+%%DOCSDIR%%/gdnsd_geoip_test.pod
+%%DOCSDIR%%/gdnsd-plugin-simplefo.txt
+%%DOCSDIR%%/gdnsd.zonefile.pod
+%%DOCSDIR%%/COPYING
+%%DOCSDIR%%/gdnsd.config.pod
+%%DOCSDIR%%/gdnsd_manual.pod
+%%DOCSDIR%%/gdnsd.txt
+%%DOCSDIR%%/gdnsd-plugin-api.pod
+%%DOCSDIR%%/gdnsd-plugin-weighted.txt
+%%DOCSDIR%%/AUTHORS
+%%DOCSDIR%%/gdnsd-plugin-simplefo.pod
+%%DOCSDIR%%/README
+%%DOCSDIR%%/gdnsd_geoip_test.txt
+%%DOCSDIR%%/gdnsd-plugin-metafo.pod
+%%DOCSDIR%%/gdnsd-plugin-geoip.txt
+%%DOCSDIR%%/gdnsd-plugin-multifo.txt
+%%DOCSDIR%%/config.example
+%%DOCSDIR%%/gdnsd.zonefile.txt
+%%DOCSDIR%%/gdnsd_manual.txt
+%%DOCSDIR%%/gdnsd.config.txt
+%%DOCSDIR%%/example.com
+%%DOCSDIR%%/gdnsd-plugin-api.txt
+%%DOCSDIR%%/ChangeLog
+%%DOCSDIR%%/gdnsd-plugin-weighted.pod
+%%DOCSDIR%%/gdnsd.pod
+%%DOCSDIR%%/INSTALL
+lib/gdnsd/libgdnsd.la
+lib/gdnsd/libgdnsd.so
+lib/gdnsd/plugin_geoip.la
+lib/gdnsd/plugin_geoip.so
+lib/gdnsd/plugin_http_status.la
+lib/gdnsd/plugin_http_status.so
+lib/gdnsd/plugin_metafo.la
+lib/gdnsd/plugin_metafo.so
+lib/gdnsd/plugin_multifo.la
+lib/gdnsd/plugin_multifo.so
+lib/gdnsd/plugin_null.la
+lib/gdnsd/plugin_null.so
+lib/gdnsd/plugin_reflect.la
+lib/gdnsd/plugin_reflect.so
+lib/gdnsd/plugin_simplefo.la
+lib/gdnsd/plugin_simplefo.so
+lib/gdnsd/plugin_static.la
+lib/gdnsd/plugin_static.so
+lib/gdnsd/plugin_tcp_connect.la
+lib/gdnsd/plugin_tcp_connect.so
+lib/gdnsd/plugin_weighted.la
+lib/gdnsd/plugin_weighted.so
+@dirrm %%DOCSDIR%%/
+@dirrm lib/gdnsd
+sbin/gdnsd
+@exec mkdir -p %D/var/gdnsd
+@dirrm var/gdnsd
+@exec mkdir -p %D/etc/gdnsd
+@dirrmtry etc/gdnsd
+@stopdaemon gdnsd