[Buildroot] [PATCH] nsd: new package

Eric Le Bihan eric.le.bihan.dev at free.fr
Mon Sep 15 20:46:21 UTC 2014


This package provides NSD, an authoritative only, high performance,
simple and open source name server.

Signed-off-by: Eric Le Bihan <eric.le.bihan.dev at free.fr>
---
 package/Config.in       |  1 +
 package/nsd/Config.in   | 15 ++++++++++++++
 package/nsd/S80nsd      | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
 package/nsd/nsd.mk      | 50 +++++++++++++++++++++++++++++++++++++++++++++
 package/nsd/nsd.service | 13 ++++++++++++
 5 files changed, 133 insertions(+)
 create mode 100644 package/nsd/Config.in
 create mode 100644 package/nsd/S80nsd
 create mode 100644 package/nsd/nsd.mk
 create mode 100644 package/nsd/nsd.service

diff --git a/package/Config.in b/package/Config.in
index 73ba86a..c655ee0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1030,6 +1030,7 @@ endif
 	source "package/ngrep/Config.in"
 	source "package/nmap/Config.in"
 	source "package/noip/Config.in"
+	source "package/nsd/Config.in"
 	source "package/ntp/Config.in"
 	source "package/nuttcp/Config.in"
 	source "package/odhcploc/Config.in"
diff --git a/package/nsd/Config.in b/package/nsd/Config.in
new file mode 100644
index 0000000..de9d213
--- /dev/null
+++ b/package/nsd/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_NSD
+	bool "nsd"
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_LIBEVENT
+	select BR2_PACKAGE_OPENSSL
+	help
+	  NSD is an authoritative only, high performance, simple and open
+	  source name server.
+
+	  http://www.nlnetlabs.nl/projects/nsd/
+
+comment "nsd needs a toolchain w/ threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/nsd/S80nsd b/package/nsd/S80nsd
new file mode 100644
index 0000000..22c320d
--- /dev/null
+++ b/package/nsd/S80nsd
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# Starts nsd Name Server Daemon
+#
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+NAME=nsd
+DESC="Name Server Daemon"
+DAEMON=/usr/sbin/nsd
+DAEMONCTL=/usr/sbin/nsdc
+DAEMON_ARGS="-c /etc/nsd/nsd.conf"
+PIDFILE=/var/run/$NAME.pid
+
+test -r /etc/default/$NAME && . /etc/default/$NAME
+
+DAEMON_ARGS="$DAEMON_ARGS $OPTIONS"
+
+do_start() {
+    start-stop-daemon -S -q -p $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
+}
+
+do_stop() {
+    start-stop-daemon -K -q -p $PIDFILE
+}
+
+do_reload() {
+    $DAEMONCTL reload >/dev/null
+}
+
+case "$1" in
+    start)
+        echo -n "Starting $DESC: "
+        do_start
+        [ $? == 0 ] && echo "OK" || echo "FAIL"
+        ;;
+    stop)
+        echo -n "Stopping $DESC: "
+        do_stop
+        [ $? == 0 ] && echo "OK" || echo "FAIL"
+        ;;
+    reload)
+        do_reload
+        ;;
+    restart)
+        do_stop
+        sleep 1
+        do_start
+        ;;
+     *)
+        echo "Usage: $0 {start|stop|restart|reload}"
+        exit 1
+esac
+
+exit $?
diff --git a/package/nsd/nsd.mk b/package/nsd/nsd.mk
new file mode 100644
index 0000000..0b008c2
--- /dev/null
+++ b/package/nsd/nsd.mk
@@ -0,0 +1,50 @@
+################################################################################
+#
+# nsd
+#
+################################################################################
+
+NSD_VERSION = 4.0.3
+NSD_SITE = http://www.nlnetlabs.nl/downloads/nsd/
+NSD_LICENSE = BSD-3c
+NSD_LICENSE_FILES = LICENSE
+
+NSD_DEPENDENCIES = libevent openssl
+
+NSD_CONF_OPT = \
+	--prefix=/ \
+	--datarootdir=/usr/share
+
+ifeq ($(BR2_PACKAGE_SYSTEMD),y)
+NSD_CONF_OPT += --with-pidfile=/run/nsd/nsd.pid
+endif
+
+define NSD_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 755 package/nsd/S80nsd \
+		$(TARGET_DIR)/etc/init.d/S80nsd
+endef
+
+define NSD_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 644 package/nsd/nsd.service \
+		$(TARGET_DIR)/lib/systemd/system/nsd.service
+
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+
+	ln -sf ../../../../lib/systemd/system/nsd.service \
+		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/nsd.service
+
+	$(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/tmpfiles.d
+	echo "d /run/nsd 0755 nsd nsd -" > $(TARGET_DIR)/usr/lib/tmpfiles.d/nsd.conf
+endef
+
+define NSD_USERS
+	nsd -1 nsd -1 * /var/db/nsd - - Domain Name Server
+endef
+
+define NSD_REMOVE_SAMPLE_CONF
+	$(RM) $(TARGET_DIR)/etc/nsd/nsd.conf.sample
+endef
+
+NSD_POST_INSTALL_TARGET_HOOKS += NSD_REMOVE_SAMPLE_CONF
+
+$(eval $(autotools-package))
diff --git a/package/nsd/nsd.service b/package/nsd/nsd.service
new file mode 100644
index 0000000..5089e85
--- /dev/null
+++ b/package/nsd/nsd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=NSD Name Server Daemon
+After=network.target
+
+[Service]
+PIDFile=/run/nsd/nsd.pid
+ExecStart=/usr/sbin/nsd -d -c /etc/nsd/nsd.conf
+ExecReload=/bin/kill -HUP $MAINPID
+ExecStop=/bin/kill -TERM $MAINPID
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
-- 
1.9.3



More information about the buildroot mailing list