aboutsummaryrefslogtreecommitdiffstats
path: root/dns
diff options
context:
space:
mode:
authormarino <marino@FreeBSD.org>2014-02-17 19:27:10 +0800
committermarino <marino@FreeBSD.org>2014-02-17 19:27:10 +0800
commit668eda23b5df94bdc883e89999b63909f6bd79ae (patch)
treebf4fd896c2b0fa6fb386bbc6706c7da9f68a5401 /dns
parent43f39e3f57c6babd95f9870400cf6ebb3458a20f (diff)
downloadfreebsd-ports-gnome-668eda23b5df94bdc883e89999b63909f6bd79ae.tar.gz
freebsd-ports-gnome-668eda23b5df94bdc883e89999b63909f6bd79ae.tar.zst
freebsd-ports-gnome-668eda23b5df94bdc883e89999b63909f6bd79ae.zip
Add new Ada-based DNS server port: dns/ironsides
IRONSIDES is an authoritative DNS server that is provably invulnerable to many of the problems that plague other servers. It achieves this property through the use of formal methods in its design, in particular the language Ada and the SPARK formal methods tool set. Code validated in this way is provably exception-free, contains no data flow errors, and terminates only in the ways that its programmers explicitly say that it can. These are very desirable properties from a computer security perspective. IRONSIDES is not a complete implementation of DNS. In particular, it does not support zone transfers or recursive queries. It does, however, support a sufficient number of DNS records to be useful as an authoritative DNS server for an enterprise.
Diffstat (limited to 'dns')
-rw-r--r--dns/Makefile1
-rw-r--r--dns/ironsides/Makefile29
-rw-r--r--dns/ironsides/distinfo2
-rw-r--r--dns/ironsides/files/Makefile11
-rw-r--r--dns/ironsides/files/ironsides.gpr13
-rw-r--r--dns/ironsides/pkg-descr14
-rw-r--r--dns/ironsides/pkg-plist3
7 files changed, 73 insertions, 0 deletions
diff --git a/dns/Makefile b/dns/Makefile
index c777e81b7752..354c1470bcf2 100644
--- a/dns/Makefile
+++ b/dns/Makefile
@@ -61,6 +61,7 @@
SUBDIR += inadyn
SUBDIR += inadyn-mt
SUBDIR += ipcheck
+ SUBDIR += ironsides
SUBDIR += knot
SUBDIR += ldapdns
SUBDIR += ldns
diff --git a/dns/ironsides/Makefile b/dns/ironsides/Makefile
new file mode 100644
index 000000000000..5f0aceab53cd
--- /dev/null
+++ b/dns/ironsides/Makefile
@@ -0,0 +1,29 @@
+# Created by: John Marino <marino@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ironsides
+PORTVERSION= 20130315
+CATEGORIES= dns
+MASTER_SITES= http://ironsides.martincarlisle.com/
+DISTFILES= trunk${PORTVERSION}.zip
+
+MAINTAINER= marino@FreeBSD.org
+COMMENT= Authoritative DNS server formally verified by SPARK/Ada
+
+LICENSE= Ironsides
+LICENSE_NAME= IRONSIDES - Free software, unlimited redistribution
+LICENSE_FILE= ${WRKSRC}/COPYRIGHT.txt
+LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+BUILD_DEPENDS= ${LOCALBASE}/include/spark2012/spark.ads:${PORTSDIR}/devel/libspark2012
+
+USES= ada dos2unix
+DOS2UNIX_FILES= dfcs.usafa.edu.zonefile
+
+post-extract:
+ @${MV} ${WRKDIR}/trunk ${WRKSRC}
+ @(cd ${WRKSRC}; ${RM} *.bak *.bk.[0-9])
+ @(cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} gnatclean -q spark_dns_main)
+ @${CP} ${FILESDIR}/ironsides.gpr ${FILESDIR}/Makefile ${WRKSRC}/
+
+.include <bsd.port.mk>
diff --git a/dns/ironsides/distinfo b/dns/ironsides/distinfo
new file mode 100644
index 000000000000..c8e142085219
--- /dev/null
+++ b/dns/ironsides/distinfo
@@ -0,0 +1,2 @@
+SHA256 (trunk20130315.zip) = 40c1c84022da3a0995c866f83186a45d104b6149f3732bbc1ad13426cd89b5f1
+SIZE (trunk20130315.zip) = 7853757
diff --git a/dns/ironsides/files/Makefile b/dns/ironsides/files/Makefile
new file mode 100644
index 000000000000..9487eca28fe4
--- /dev/null
+++ b/dns/ironsides/files/Makefile
@@ -0,0 +1,11 @@
+all: build
+
+build:
+ gnatmake -p -P ironsides
+
+install:
+ mkdir -p ${DESTDIR}${PREFIX}/share/examples/ironsides
+ ${BSD_INSTALL_PROGRAM} final/spark_dns_main \
+ ${DESTDIR}${PREFIX}/sbin/ironsides
+ ${BSD_INSTALL_DATA} dfcs.usafa.edu.zonefile \
+ ${DESTDIR}${PREFIX}/share/examples/ironsides/
diff --git a/dns/ironsides/files/ironsides.gpr b/dns/ironsides/files/ironsides.gpr
new file mode 100644
index 000000000000..1182641fd29d
--- /dev/null
+++ b/dns/ironsides/files/ironsides.gpr
@@ -0,0 +1,13 @@
+with "spark2012.gpr";
+
+project Ironsides is
+ for Source_Dirs use (".");
+ for Object_Dir use "build";
+ for Exec_Dir use "final";
+ for Main use ("spark_dns_main.adb");
+
+ package Compiler is
+ for Default_Switches ("Ada") use ("-gnat05", "-gnatp", "-O3");
+ end Compiler;
+
+end Ironsides;
diff --git a/dns/ironsides/pkg-descr b/dns/ironsides/pkg-descr
new file mode 100644
index 000000000000..b13b3adcacaa
--- /dev/null
+++ b/dns/ironsides/pkg-descr
@@ -0,0 +1,14 @@
+IRONSIDES is an authoritative DNS server that is provably invulnerable to
+many of the problems that plague other servers. It achieves this property
+through the use of formal methods in its design, in particular the language
+Ada and the SPARK formal methods tool set. Code validated in this way is
+provably exception-free, contains no data flow errors, and terminates only
+in the ways that its programmers explicitly say that it can. These are very
+desirable properties from a computer security perspective.
+
+IRONSIDES is not a complete implementation of DNS. In particular, it does
+not support zone transfers or recursive queries. It does, however, support
+a sufficient number of DNS records to be useful as an authoritative DNS
+server for an enterprise.
+
+WWW: http://ironsides.martincarlisle.com
diff --git a/dns/ironsides/pkg-plist b/dns/ironsides/pkg-plist
new file mode 100644
index 000000000000..84b21c0f7ab8
--- /dev/null
+++ b/dns/ironsides/pkg-plist
@@ -0,0 +1,3 @@
+sbin/ironsides
+%%EXAMPLESDIR%%/dfcs.usafa.edu.zonefile
+@dirrm %%EXAMPLESDIR%%