summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-dns/maradns
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-dns/maradns')
-rw-r--r--net-dns/maradns/Manifest1
-rw-r--r--net-dns/maradns/files/deadwood22
-rw-r--r--net-dns/maradns/files/maradns-2.0.06-askmara-tcp.patch251
-rw-r--r--net-dns/maradns/files/maradns-2.0.06-duende-man.patch109
-rw-r--r--net-dns/maradns/files/maradns-2.0.09-build.patch43
-rw-r--r--net-dns/maradns/files/maradns.rc623
-rw-r--r--net-dns/maradns/files/maradns.service.in9
-rw-r--r--net-dns/maradns/files/maradns223
-rw-r--r--net-dns/maradns/files/zoneserver.rc621
-rw-r--r--net-dns/maradns/files/zoneserver222
-rw-r--r--net-dns/maradns/maradns-2.0.09.ebuild98
-rw-r--r--net-dns/maradns/metadata.xml10
12 files changed, 632 insertions, 0 deletions
diff --git a/net-dns/maradns/Manifest b/net-dns/maradns/Manifest
new file mode 100644
index 000000000000..fa432eb341b7
--- /dev/null
+++ b/net-dns/maradns/Manifest
@@ -0,0 +1 @@
+DIST maradns-2.0.09.tar.bz2 1139409 SHA256 e1ee80836f0fbc47b9b94ec839e112ea19c40bed0b70d672d231849a4dea1083 SHA512 42bfcafaf4e465d8d566b4d9ea8383b5d0f553486b86dd807b35a07358987227e5dc8187de0e8192fba5b53098d61f91091cec112ef7cc80c5d5e73d8acff3bf WHIRLPOOL 6f3e55d8c6633a465c0e9de576921d833c67332cf0cbc8c01e7bc7d70c46102c32566d0ee867cdbf11c8b2b1d5cdc40d18ee4791bd0a4e045ad0e0bc590e61d6
diff --git a/net-dns/maradns/files/deadwood b/net-dns/maradns/files/deadwood
new file mode 100644
index 000000000000..d9e8175ad5eb
--- /dev/null
+++ b/net-dns/maradns/files/deadwood
@@ -0,0 +1,22 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting deadwood"
+ start-stop-daemon --start --quiet --name deadwood --wait 1000 \
+ --exec /usr/bin/duende /usr/sbin/Deadwood -- -f /etc/maradns/dwood3rc
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping deadwood"
+ start-stop-daemon --stop --quiet --name deadwood --wait 1000 \
+ --exec /usr/bin/duende
+ eend $?
+}
diff --git a/net-dns/maradns/files/maradns-2.0.06-askmara-tcp.patch b/net-dns/maradns/files/maradns-2.0.06-askmara-tcp.patch
new file mode 100644
index 000000000000..107097159c83
--- /dev/null
+++ b/net-dns/maradns/files/maradns-2.0.06-askmara-tcp.patch
@@ -0,0 +1,251 @@
+Author: Nicholas Bamber <nicholas@periapt.co.uk>
+Subject: askmara-tcp lazily copies askmara usage and man page
+Last-Updated: 2011-09-21
+Forwarded: no
+--- a/tools/askmara_labels_en.h
++++ b/tools/askmara_labels_en.h
+@@ -1,11 +1,12 @@
+ /* Placed in the public domain 2001 by Sam Trenholme */
+
+-/* All of the labels for replies used in askmara */
++/* All of the labels for replies used in askmara(-tcp) */
+
+ #define L_NEWLINE "\n"
+ #define L_HARD_ERROR "Hard Error: "
+ #define L_QUERYING "Querying the server with the IP "
+ #define L_USAGE "Usage: askmara [-n] [-v | -t timeout] Query [server]\n#Example: askmara Ayahoo.com."
++#define L_USAGE_TCP "Usage: askmara-tcp [-n] [-v | -t timeout] Query [server]\n#Example: askmara-tcp Ayahoo.com."
+ #define L_JS_CREATE_INDATA "js_create with indata"
+ #define L_JS_CREATE_UINDATA "js_create with uindata"
+ #define L_JS_CREATE_OUTDATA "js_create with outdata"
+--- a/tools/askmara-tcp.c
++++ b/tools/askmara-tcp.c
+@@ -190,7 +190,7 @@
+ nrd = 1;
+ else if(argv[0][0] == '-' && argv[0][1] == 'p') {
+ if(argc < 2) {
+- harderror(L_USAGE);
++ harderror(L_USAGE_TCP);
+ }
+ argc--;
+ argv++;
+@@ -201,7 +201,7 @@
+ }
+ else if(argv[0][0] == '-' && argv[0][1] == 't') {
+ if(argc < 2) {
+- harderror(L_USAGE);
++ harderror(L_USAGE_TCP);
+ }
+ argc--;
+ argv++;
+@@ -213,14 +213,14 @@
+ else if (argv[0][0] != '-')
+ break;
+ else
+- harderror(L_USAGE);
++ harderror(L_USAGE_TCP);
+ argc--;
+ argv++;
+ }
+
+ /* we expect now the query string and possibly the server */
+ if(argc<1)
+- harderror(L_USAGE);
++ harderror(L_USAGE_TCP);
+
+ /* Determine what IP address to connect to */
+ if(argc>1)
+--- /dev/null
++++ b/doc/en/man/askmara-tcp.1
+@@ -0,0 +1,191 @@
++.\" Do *not* edit this file; it was automatically generated by ej2man
++.\" Look for a name.ej file with the same name as this filename
++.\"
++.\" Process this file with the following
++.\" nroff -man -Tutf8 maradns.8 | tr '\020' ' '
++.\"
++.\" Last updated Mon Sep 27 15:36:06 2010
++.\"
++.TH ASKMARA-TCP 1 "askmara-tcp" "January 2002" "askmara-tcp"
++.\" We don't want hyphenation (it's too ugly)
++.\" We also disable justification when using nroff
++.\" Due to the way the -mandoc macro works, this needs to be placed
++.\" after the .TH heading
++.hy 0
++.if n .na
++.\"
++.\" We need the following stuff so that we can have single quotes
++.\" In both groff and other UNIX *roff processors
++.if \n(.g .mso www.tmac
++.ds aq \(aq
++.if !\n(.g .if '\(aq'' .ds aq \'
++
++.SH "NAME"
++.PP
++askmara-tcp \- do simple dns queries over TCP
++.SH "DESCRIPTION"
++.PP
++.B "askmara-tcp"
++queries the user-specified dns server for records, and
++outputs the reply in a csv2-compatible format (csv2 is the format of
++zone
++files that
++.B "maradns"
++uses). However unlike
++.B "askmara"
++it uses TCP rather than UDP.
++.SH "USAGE"
++.PP
++.B "askmara-tcp"
++.RB [ -n ]
++.RB [ -v | -t
++.IR timeout ]
++.I query
++.RI [ server ]
++.SH "OPTIONS"
++.PP
++.TP 4
++.BI -t
++If this is present, the following argument is the askmara-tcp
++.IR timeout ,
++in seconds. Note that
++.B "askmara-tcp"
++can not both have a user-defined
++timeout and verbose output.
++.TP 4
++.BI -v
++If this is set,
++.B "askmara-tcp"
++will verbosely output the complete reply that the server sent. Note
++that this verbose output is not csv2-compatible.
++.TP 4
++.BI -n
++If this is set,
++.BR "askmara-tcp" ","
++when sending out a query, will not
++request DNS recursion; in other words, askmara-tcp will request that the
++remote DNS server not contact other DNS servers to answer the query in
++question.
++.TP 4
++.I query
++dns record to be queried. The query has two sections:
++The type of record we desire, and the hostname we want this record for.
++.PP
++The type of query can have two forms: A one-letter mnemonic, or a
++numeric rtype followed by a colon. This is immediately concatenated by
++the full name of the host name we wish to look up.
++.PP
++For example, to ask for the IP of \(aqexample.com.\(aq, we can use the
++one-letter
++mnemonic, in the form \(aqAexample.com.\(aq, or we can use the numeric
++RR followed
++by a colon, giving the query \(aq1:example.com.\(aq (since A has the
++record type
++of one). Note that the query name needs the trailing dot at the end.
++.PP
++Askmara supports a handful one-letter mnemonics, as follows:
++.PP
++.B "A"
++signifies a request for an A (ipv4 address) RR
++.PP
++.B "N"
++signifies a NS RR
++.PP
++.B "C"
++signifies that we are asking for a CNAME RR
++.PP
++.B "S"
++signifies that we want a SOA RR
++.PP
++.B "P"
++signifies that we want a PTR RR
++.PP
++.B "@"
++signifies that we mant a MX RR
++.PP
++.B "T"
++signifies that we want a TXT RR
++.PP
++.B "Z"
++signifies that we want to ask for all RRs.
++.TP 4
++.I server
++IP address of the dns server to be queried. If no server is given,
++askmara-tcp will query 127.0.0.1.
++.PP
++.SH "EXAMPLES"
++.PP
++Asking the server with the ip 127.0.0.1 for the IP address of
++example.com:
++
++.nf
++askmara-tcp Aexample.com.
++.fi
++
++Asking the server with the ip 198.41.0.4 for the IP address of
++example.com:
++
++.nf
++askmara-tcp Aexample.com. 198.41.0.4
++.fi
++
++Asking the server with the ip address 127.0.0.1 for the IP address of
++example.com, using the rr_number:query format:
++
++.nf
++askmara-tcp 1:example.com.
++.fi
++
++Asking the server with the ip address 127.0.0.1 for a SRV record. In
++particular, we ask for the "http over tcp" service for example.net.
++Since askmara-tcp doesn\(aqt have a mnemonic for SRV record types, we
++use the numeric code (33 for SRV):
++
++.nf
++askmara-tcp 33:_http._tcp.example.net.
++.fi
++
++Asking the server with the ip address 127.0.0.1 for the AAAA (ipv6 ip)
++record for example.net:
++
++.nf
++askmara-tcp 28:example.net.
++.fi
++
++Note that the output will be a raw DNS packet in both the SRV
++and AAAA examples.
++.SH "BUGS"
++.PP
++When askmara-tcp is asked for an SOA record, the output of
++.B "askmara-tcp"
++closely resembles the format of a csv2 file, but can not be parsed as a
++csv2 file without modification.
++.PP
++askmara-tcp outputs multi-chunk ("character-string") TXT
++records incorrectly (it only outputs the first chunk).
++.SH "SEE ALSO"
++.PP
++.B maradns(8),
++.B askmara(1)
++
++.br
++http://www.maradns.org
++.SH "LEGAL DISCLAIMER"
++.PP
++THIS SOFTWARE IS PROVIDED BY THE AUTHORS \(aq\(aqAS IS\(aq\(aq AND ANY
++EXPRESS
++OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
++LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
++BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
++OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
++EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++.SH "AUTHOR"
++.PP
++MaraDNS is written by Sam Trenholme. Jaakko Niemi used 5 minutes
++to roll this manpage together, which Sam has subsequently revised.
++
diff --git a/net-dns/maradns/files/maradns-2.0.06-duende-man.patch b/net-dns/maradns/files/maradns-2.0.06-duende-man.patch
new file mode 100644
index 000000000000..8e9283bc0802
--- /dev/null
+++ b/net-dns/maradns/files/maradns-2.0.06-duende-man.patch
@@ -0,0 +1,109 @@
+Author: Nicholas Bamber <nicholas@periapt.co.uk>
+Subject: Duende man page
+ We have made various changes to the duende executable and these need to
+ be reflected in the Debian man page.
+Forwarded: yes
+Last-Update: 2011-07-18
+--- a/doc/en/man/duende.8
++++ b/doc/en/man/duende.8
+@@ -29,11 +29,12 @@
+ makes a given child process a daemon. The standard output
+ and standard error
+ of the child process is logged via syslog() with a priority of
+-LOG_INFO.
++LOG_ALERT.
+ .SH "USAGE"
+ .PP
+ .B "duende"
+-child_process [ all subsequent arguments passed on to child ]
++.RB [ options ]
++child_process [ arguments passed onto child ]
+ .SH "DETAILS"
+ .PP
+ When
+@@ -76,48 +77,52 @@
+ duende uses a setuid() call to change the user ID of the logging
+ process
+ to the user with ID 66.
++.SH "OPTIONS"
++.PP
++Most of the above behaviour can be configured by command line arguments.
++.TP 4
++.BI -c | --chroot " directory"
++The log helper process will change its directory and root to this location.
++This defaults to
++.B /etc/maradns/logger "."
++.TP 4
++.BI -i | --ident " string"
++The log helper process will use this string to identify the process when
++sending messages to syslog.
++This defaults to
++.B log-help "."
++.TP 4
++.BI -p | --pid " filename"
++If this argument is present, the duende parent process will store its pid in
++this file.
++.TP 4
++.BI -u | --uid " integer"
++The log helper process will drop its user id to this. This value defaults to
++66.
++.TP 4
++.BI -g | --gid " integer"
++The log helper process will drop its group id to this. This value defaults to
++66.
++.TP 4
++.BI -r | --restart_on " integer"
++The log helper process will restart the child process if it exists with this
++status code. This defaults to 8.
+ .SH "LOGGING"
+ .PP
+ .B "duende"
+ uses the syslog() facility to log the standard output of the
+ program that it invokes. The name of the program (in other words, the
+-"ident" given to openlog()) is the full path of the first argument
+-given
+-to
+-.BR "duende" "."
++"ident" given to openlog()) defaults to
++.BR "log-helper"
++but can be overridden with the
++.RB "--ident"
++argument.
+ All messages created by the child process are sent
+-to syslog() with a priority of LOG_INFO and a "facility"
+-of LOG_DAEMON (daemon.info in /etc/syslog.conf); since daemon.info
+-messages are not logged by default in FreeBSD, on FreeBSD systems
+-messages generated by the child process are logged with a priority of
+-LOG_ALERT and a "facility" of LOG_DAEMON (daemon.alert in
+-/etc/syslog.conf).
++to syslog() with a priority of LOG_ALERT and a "facility"
++of LOG_DAEMON (daemon.info in /etc/syslog.conf).
+ Should duende itself encounter an error, it will send
+ messages to syslog() with a priority of LOG_ALERT.
+ .PP
+-For example, suppose one invokes duende thusly:
+-
+-.nf
+- duende /usr/local/sbin/maradns
+-.fi
+-
+-If invoked thusly, duende will log all messages with the "ident"
+-(program
+-name) of "/usr/local/sbin/maradns". If this is not desired, invoke
+-duende
+-with something like:
+-
+-.nf
+- export PATH=$PATH:/usr/local/sbin
+- duende maradns
+-.fi
+-
+-This will log messages with a (more sensible) "ident" of maradns.
+-.PP
+-Note: If a non-POSIX Bourne shell (such as csh, es, rc, or fish) is
+-used to
+-invoke MaraDNS, the above syntax needs to be changed.
+-.PP
+ Also, the directory /etc/maradns/logger, while used by duende, is not
+ used
+ to store any log messages. That is unless, for some reason, one
diff --git a/net-dns/maradns/files/maradns-2.0.09-build.patch b/net-dns/maradns/files/maradns-2.0.09-build.patch
new file mode 100644
index 000000000000..33622b9bc876
--- /dev/null
+++ b/net-dns/maradns/files/maradns-2.0.09-build.patch
@@ -0,0 +1,43 @@
+Index: maradns-2.0.09/build/Makefile.linux
+===================================================================
+--- maradns-2.0.09.orig/build/Makefile.linux
++++ maradns-2.0.09/build/Makefile.linux
+@@ -10,7 +10,7 @@ POBJECTS=parse/ParseMaraRc.o parse/Parse
+ DOBJECTS=dns/Queries.o dns/Compress.o dns/bobbit.o
+ # Secure random number generator objects
+ ROBJECTS=rng/rng-api-fst.o rng/rng-alg-fst.o
+-OBJECTS=$(JOBJS) $(MHOBJS) $(SOBJECTS) $(DOBJECTS) $(POBJECTS) $(DOBJECTS) $(ROBJECTS)
++OBJECTS=$(JOBJS) $(MHOBJS) $(SOBJECTS) $(DOBJECTS) $(POBJECTS) $(DOBJECTS) $(ROBJECTS) -lrt
+ EXECS=server/maradns
+
+ # Uncomment the following three lines to get this to compile on Solaris
+@@ -28,19 +28,21 @@ Q="DEFINES=-DSELECT_PROBLEM"
+
+ # Debug
+
+-FLAGS = -O2 -Wall -DSELECT_PROBLEM
++FLAGS=$(CFLAGS) $(LDFLAGS) -Wall -DSELECT_PROBLEM
+ M="CC=$(CC) $(FLAGS)"
+ D="CC=$(CC) $(FLAGS) -DDEBUG -DTHREADS"
+ #FLAGS = -g
+
+ all:
+- cd libs ; make $(M) ; cd ../dns ; make $(M) ; \
+- cd ../rng ; make $(M) ; cd ../parse ; make $(M) ; \
+- cd ../qual ; make $(M) ; cd ../server ; \
+- make $(M) $(V) COMPILED=\"$(COMPILED)\" ; \
+- cd ../tools ; make $(M) ; \
+- cd ../deadwood-*/src/ ; make FLAGS=-O2 ; \
+- cd ../../tcp ; make $(M) $(V) ; cat ../00README.FIRST
++ $(MAKE) -C libs $(M)
++ $(MAKE) -C dns $(M)
++ $(MAKE) -C rng $(M)
++ $(MAKE) -C parse $(M)
++ $(MAKE_ -C qual $(M)
++ $(MAKE) -C server $(M) $(V) COMPILED=\"$(COMPILED)\"
++ $(MAKE) -C tools $(M)
++ $(MAKE) -C deadwood-*/src $(M)
++ $(MAKE) -C tcp $(M) $(V)
+
+ debug:
+ cd libs ; make $(D) DEBUG="-DDEBUG -DTHREADS" ; \
diff --git a/net-dns/maradns/files/maradns.rc6 b/net-dns/maradns/files/maradns.rc6
new file mode 100644
index 000000000000..32db2e419273
--- /dev/null
+++ b/net-dns/maradns/files/maradns.rc6
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+ provide dns
+}
+
+start() {
+ ebegin "Starting maradns"
+ start-stop-daemon --start --quiet --name maradns \
+ --exec /usr/bin/duende /usr/sbin/maradns
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping maradns"
+ start-stop-daemon --stop --quiet --name maradns \
+ --exec /usr/sbin/duende
+ eend $?
+}
diff --git a/net-dns/maradns/files/maradns.service.in b/net-dns/maradns/files/maradns.service.in
new file mode 100644
index 000000000000..f27d94653400
--- /dev/null
+++ b/net-dns/maradns/files/maradns.service.in
@@ -0,0 +1,9 @@
+[Unit]
+Description=maradns DNS server
+After=network.target
+
+[Service]
+ExecStart=@bindir@/maradns -cf @sysconfdir@/mararc
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-dns/maradns/files/maradns2 b/net-dns/maradns/files/maradns2
new file mode 100644
index 000000000000..cc6915f5b8e2
--- /dev/null
+++ b/net-dns/maradns/files/maradns2
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+ provide dns
+}
+
+start() {
+ ebegin "Starting maradns"
+ start-stop-daemon --start --quiet --name maradns --wait 1000 \
+ --exec /usr/bin/duende /usr/sbin/maradns -- -f /etc/maradns/mararc
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping maradns"
+ start-stop-daemon --stop --quiet --name maradns --wait 1000 \
+ --exec /usr/bin/duende
+ eend $?
+}
diff --git a/net-dns/maradns/files/zoneserver.rc6 b/net-dns/maradns/files/zoneserver.rc6
new file mode 100644
index 000000000000..9d175a6320a3
--- /dev/null
+++ b/net-dns/maradns/files/zoneserver.rc6
@@ -0,0 +1,21 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting zoneserver"
+ start-stop-daemon --start --quiet --name zoneserver \
+ --exec /usr/bin/duende /usr/sbin/zoneserver
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping zoneserver"
+ start-stop-daemon --stop --quiet --name zoneserver
+ eend $?
+}
diff --git a/net-dns/maradns/files/zoneserver2 b/net-dns/maradns/files/zoneserver2
new file mode 100644
index 000000000000..6c6486d5e9ba
--- /dev/null
+++ b/net-dns/maradns/files/zoneserver2
@@ -0,0 +1,22 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting zoneserver"
+ start-stop-daemon --start --quiet --name zoneserver --wait 1000 \
+ --exec /usr/bin/duende /usr/sbin/zoneserver -- -f /etc/maradns/mararc
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping zoneserver"
+ start-stop-daemon --stop --quiet --name zoneserver --wait 1000 \
+ --exec /usr/bin/duende
+ eend $?
+}
diff --git a/net-dns/maradns/maradns-2.0.09.ebuild b/net-dns/maradns/maradns-2.0.09.ebuild
new file mode 100644
index 000000000000..189839f84464
--- /dev/null
+++ b/net-dns/maradns/maradns-2.0.09.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+inherit eutils systemd toolchain-funcs user
+
+DEADWOOD_VER="3.2.05"
+
+DESCRIPTION="A security-aware DNS server"
+HOMEPAGE="http://www.maradns.org/"
+SRC_URI="http://www.maradns.org/download/${PV%.*}/${PV}/${P}.tar.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~mips ppc x86"
+IUSE="authonly ipv6"
+
+DEPEND=""
+RDEPEND=""
+
+pkg_setup() {
+ ebegin "Creating group and users"
+ enewgroup maradns 99
+ enewuser duende 66 -1 -1 maradns
+ enewuser maradns 99 -1 -1 maradns
+ eend ${?}
+}
+
+src_prepare() {
+ # Apply some minor patches from Debian. Last one - from Gentoo
+ epatch "${FILESDIR}/${PN}-2.0.06-askmara-tcp.patch" \
+ "${FILESDIR}/${PN}-2.0.06-duende-man.patch" \
+ "${FILESDIR}/${P}-build.patch"
+ epatch_user
+}
+
+src_configure() {
+ # Use duende-ng.c.
+ cp "${S}/tools/duende-ng.c" "${S}/tools/duende.c" || die
+
+ tc-export CC
+ ./configure $(use ipv6 && echo "--ipv6") || die "Failed to configure ${PN}"
+}
+
+src_install() {
+ # Install the MaraDNS binaries.
+ dosbin server/maradns
+ dosbin tcp/zoneserver
+ dobin tcp/getzone tcp/fetchzone
+ dobin tools/askmara tools/askmara-tcp tools/duende
+ dobin tools/bind2csv2.py tools/csv1tocsv2.pl
+
+ # MaraDNS docs, manpages, misc.
+ dodoc doc/en/{QuickStart,README,*.txt}
+ dodoc doc/en/text/*.txt
+ doman doc/en/man/*.[1-9]
+ dodoc maradns.gpg.key
+ dohtml doc/en/*.html
+ dohtml -r doc/en/webpage
+ dohtml -r doc/en/tutorial
+ docinto examples
+ dodoc doc/en/examples/example_*
+
+ # Deadwood binary, docs, manpages, etc.
+ if ! use authonly; then
+ dosbin deadwood-${DEADWOOD_VER}/src/Deadwood
+ doman deadwood-${DEADWOOD_VER}/doc/{Deadwood,Duende}.1
+ docinto deadwood
+ dodoc deadwood-${DEADWOOD_VER}/doc/{Deadwood,Duende,FAQ}.txt
+ dohtml deadwood-${DEADWOOD_VER}/doc/{Deadwood,FAQ}.html
+ docinto deadwood/internals
+ dodoc deadwood-${DEADWOOD_VER}/doc/internals/*
+ insinto /etc/maradns
+ newins deadwood-${DEADWOOD_VER}/doc/dwood3rc-all dwood3rc_all.dist
+ fi
+
+ # Example configurations.
+ insinto /etc/maradns
+ newins doc/en/examples/example_full_mararc mararc_full.dist
+ newins doc/en/examples/example_csv2 example_csv2.dist
+ keepdir /etc/maradns/logger
+
+ # Init scripts.
+ newinitd "${FILESDIR}"/maradns2 maradns
+ newinitd "${FILESDIR}"/zoneserver2 zoneserver
+ if ! use authonly; then
+ newinitd "${FILESDIR}"/deadwood deadwood
+ fi
+
+ # systemd unit
+ # please keep paths in sync!
+ sed -e "s^@bindir@^${EPREFIX}/usr/sbin^" \
+ -e "s^@sysconfdir@^${EPREFIX}/etc/maradns^" \
+ "${FILESDIR}"/maradns.service.in > "${T}"/maradns.service
+ systemd_dounit "${T}"/maradns.service
+}
diff --git a/net-dns/maradns/metadata.xml b/net-dns/maradns/metadata.xml
new file mode 100644
index 000000000000..0057a2e30e34
--- /dev/null
+++ b/net-dns/maradns/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer>
+<email>maintainer-needed@gentoo.org</email>
+</maintainer>
+<use>
+ <flag name='authonly'>Allows one to build only authoritative DNS server</flag>
+</use>
+</pkgmetadata>