ndns: new port
diff --git a/ndns/debian/ndns.preinst b/ndns/debian/ndns.preinst
new file mode 100644
index 0000000..edceb2a
--- /dev/null
+++ b/ndns/debian/ndns.preinst
@@ -0,0 +1,61 @@
+#!/bin/sh
+# preinst script for nfd
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <new-preinst> `install'
+#        * <new-preinst> `install' <old-version>
+#        * <new-preinst> `upgrade' <old-version>
+#        * <old-preinst> `abort-upgrade' <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    install|upgrade)
+        # Now we have to ensure the following state:
+        # /etc/passwd: ndns:x:YYY:ZZZ:NDNS User:/nonexistent:/bin/false
+        # /etc/group:  ndns:x:ZZZ:
+        #
+        # Sadly there could any state be present on the system so we have to
+        # modify everything carefully i.e. not doing a chown before creating
+        # the user etc...
+
+        # creating ndns group if he isn't already there
+        if ! getent group ndns >/dev/null; then
+                # Adding system group: ndns.
+                addgroup --system ndns >/dev/null
+        fi
+
+        # creating ndns user if he isn't already there
+        if ! getent passwd ndns >/dev/null; then
+                # Adding system user: ndns.
+                adduser \
+                  --system \
+                  --disabled-login \
+                  --ingroup ndns \
+                  --home /var/lib/ndns \
+                  --gecos "NDNS User" \
+                  --shell /bin/bash \
+                  ndns  >/dev/null
+        fi
+    ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "preinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0