summaryrefslogtreecommitdiff
path: root/net-dns/maradns
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-dns/maradns
reinit the tree, so we can have metadata
Diffstat (limited to 'net-dns/maradns')
-rw-r--r--net-dns/maradns/Manifest12
-rw-r--r--net-dns/maradns/files/deadwood21
-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.service.in9
-rw-r--r--net-dns/maradns/files/maradns222
-rw-r--r--net-dns/maradns/files/zoneserver221
-rw-r--r--net-dns/maradns/maradns-2.0.09-r2.ebuild101
-rw-r--r--net-dns/maradns/metadata.xml8
10 files changed, 597 insertions, 0 deletions
diff --git a/net-dns/maradns/Manifest b/net-dns/maradns/Manifest
new file mode 100644
index 000000000000..e008a60c49c8
--- /dev/null
+++ b/net-dns/maradns/Manifest
@@ -0,0 +1,12 @@
+AUX deadwood 475 SHA256 e96d1955a0b3193a6f34aeca4009e772c56ea511abe6b1d5dcb5d4e7512b781e SHA512 ea01c5cd9494a9dd5c8146f0de84c6bd4df3ba2221b52b87886892cbc13aad21f273ea1d056c3dd88ae5e15c1f6f820f9fe4b1dd4c9ae7082d7f7f78b3f8813e WHIRLPOOL e3ed1752c228a26a662c0c011f3f4de0657e15da70ba71e458414e4f3451740b070b11c9c3d0e4409e28f23b26656941b7e5952f514a4e2cda35d796afe8c625
+AUX maradns-2.0.06-askmara-tcp.patch 7330 SHA256 b5b8f8acb732d2d85667557861c500bcb50d75dcc2213686ebd7a382299f57b6 SHA512 0a36bbe9fbf8d48e6e1e20cc6045656f3517f650bc055b1abecdac4e2eb2e0f4c0f41ed960913ec38590f76a16762a518ca3f20799b8ee64223530da5b2d0dee WHIRLPOOL a88b27c61e3a36348ccaff66488638a04921303c5911283ec19970d6facd86cd4d07d8e9cd66f41d8c0bdd766b90871e85cf7ea4b2c62ab1eb4f51d680858284
+AUX maradns-2.0.06-duende-man.patch 3393 SHA256 ae68fb3f32c7d02267d8dbf187d9d358051b547499aa0fa3b97ae031ce4ec569 SHA512 ff4996e9b377fe01d90f36bf306085e981e1b00bb6264e69e04f9bc53271d98201ec84ea773630453840b357fdf2d3aa46c48fb3af3812cb97627a66fa77bc58 WHIRLPOOL 97b8029491a5abc434a99e6e4f030339c302e1a3c1ddbc6548a5c2c6f883de1986eff82acde310168937ecda2b7ddb9ded04b2b5200cd3e3f710eaf5902c6792
+AUX maradns-2.0.09-build.patch 1549 SHA256 f424bec17d95383b2044ae09b5425aff9b872ed7ef98444d85bf5e780a7fe074 SHA512 6d06102cb8d6c5333521f9ffc75d775382c9113372fa1b80516677ef11513718d41a740a79d9f970420dc0fcede3c7bc2c9a41a08fb8c138e4063fbcbfb5c5f3 WHIRLPOOL be26700327c7f74bb24c6747118da29c9007c44be444e6157ddcce705054d3e421b9bb9ea6df66249ebe025fc18e28ffe04694e7eb58de91224d80d25aa17781
+AUX maradns.service.in 159 SHA256 7ef5236c1f764f45dd8218fdc5ff50ae1d9ab606a1759b0f346352e3289a2008 SHA512 0de3b9141b8266cb6443b8a7fcb6243782059d2ea45b89421158ded607413eb491542c279f2a9b4455e9396e6ba20e46aed8f46eba3b04e5bd428f335c4b9582 WHIRLPOOL f2fa69f08e6c69a872a32dcb9fdf82abab8f70119631fcd01845b05709c477fdc61dfd31ec2fefc16d6ac3bec0a7c4bb796a74097f5d5ac82e052c080db27d5b
+AUX maradns2 481 SHA256 f3968217d381e5ff5f8f4cbac23f9a25af8cbf174b3a4d8c970ffd91840cd32a SHA512 e893020a934c5927b772189c034469055cd0d8a8ab3e066fe063e30999be6a6679e7b95c2761dec1326cec37fe5261541fbb27e9be796681764c75252b10e90b WHIRLPOOL cd9761e7fd97b62c0cfc5d84e8f491b5e32ae2d2c5f72c02275b502f3f18864d6755b2f6c7d5a6301b9882e186345620c6d9c8b3908d138793853025a9a53662
+AUX zoneserver2 483 SHA256 11acc1b92e0503d01988ef18f48542ee0e6331b12ffe9d8e07cbbda3cc4d143b SHA512 dc5dd43b043417002fce4c3d6c2e5417bc68fae7a0ac4db03f7cb382d348ed6b2c7042c38ffc2db3a4c36abf734e9d34124042a4077090bd7947241aab955ab7 WHIRLPOOL 90fec044513a38f005ac4bb5dc1b870974039efc3717e6910776810c642002c3cb5f4be2fecaa57d7e416143497809e129d99a366150a8b0408f1a6ed3998192
+DIST maradns-2.0.09.tar.bz2 1139409 SHA256 e1ee80836f0fbc47b9b94ec839e112ea19c40bed0b70d672d231849a4dea1083 SHA512 42bfcafaf4e465d8d566b4d9ea8383b5d0f553486b86dd807b35a07358987227e5dc8187de0e8192fba5b53098d61f91091cec112ef7cc80c5d5e73d8acff3bf WHIRLPOOL 6f3e55d8c6633a465c0e9de576921d833c67332cf0cbc8c01e7bc7d70c46102c32566d0ee867cdbf11c8b2b1d5cdc40d18ee4791bd0a4e045ad0e0bc590e61d6
+EBUILD maradns-2.0.09-r2.ebuild 2691 SHA256 0289d3d002c28ad90009837378ac97e0ab5ec6c3104fb84bd3d7b32a3b860bb7 SHA512 481512b5a855aa8751ae8d3699c2b3218cf05e5ec2808df30502ed2e20756e1d50ce8714e8acd09eba09f6b3faa8442345bc9187ca5eae53a0bd178421a92f12 WHIRLPOOL 6853ccf4507686b1dc53ad48d7c3b4714c0681ce297220370abbe7b3eb5558c1f470c96d5e346b2009415b49848c8b4e756bc9609846fa27afa3f93cf4752b40
+MISC ChangeLog 4306 SHA256 37e040ff93816a78715f89c49fc0b431d79d538715b09ad25a363b68b0033163 SHA512 08d9466cef50e9b24489eee4e21d13de6e135c73f5a723e8a02efe9c61b5d98ab5111e21aec29906af055a7f91fd6aa2956afa51fb5e1400a7e8fb9237e1efdf WHIRLPOOL 723097ad9a75cb87f22b27f53ef00d4afe8f08b89257f0b8795980e079b72ab7fa600c3d588416667d0c4846b2319d81441556e8edc8f04b28ca34db8c0d4110
+MISC ChangeLog-2015 9747 SHA256 8585c9e4d407d7e6d87c24fcc2b78afc5e8a040f59b27bbe1cd8bd25bb820225 SHA512 eb00016355d88ad33eaf3ebce051f143c47c3fc0b281c0500efb9d455780a00f57a8304f6ead5c613f750288f9c50718e66643af023fabf20f9259b5252e8f34 WHIRLPOOL a5fbb13e17aa16bcc9eb720aaeaa341801ca1fa532d5bc21c8470cd179b81c3b795c18f0a88d318f6cb0eb58b1d3fc2d993614d5bc0f4be7ef93aa4f8032b058
+MISC metadata.xml 260 SHA256 4e1168b6b7d45964d30bf67e09fc1e0d8deaa998786beea02a87e8d417765d8b SHA512 cdaae37fa04f21f3befee89862ddccc792762def511336f1aae564701ed87acddd2d5a4a4723b9bf12d7b1a51a0861c22e76c1cb8cfc6d426c59dcff4405cbd6 WHIRLPOOL d85cc923086fa34ab6094d09c1981c272895bd96fea8eb4ff851f3603398bc508eef5f2310f08da91af0aed9f66a056b837497403f69fdb7a88d931cfc8db595
diff --git a/net-dns/maradns/files/deadwood b/net-dns/maradns/files/deadwood
new file mode 100644
index 000000000000..f0531d133c28
--- /dev/null
+++ b/net-dns/maradns/files/deadwood
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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.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..c97ff3bfbb13
--- /dev/null
+++ b/net-dns/maradns/files/maradns2
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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/zoneserver2 b/net-dns/maradns/files/zoneserver2
new file mode 100644
index 000000000000..18b4cfe64936
--- /dev/null
+++ b/net-dns/maradns/files/zoneserver2
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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-r2.ebuild b/net-dns/maradns/maradns-2.0.09-r2.ebuild
new file mode 100644
index 000000000000..2124be1f395b
--- /dev/null
+++ b/net-dns/maradns/maradns-2.0.09-r2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit 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"
+
+# The GPL-2 covers the init script, bug 426018.
+LICENSE="BSD-2 GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~mips ppc x86"
+IUSE="authonly examples ipv6"
+
+DEPEND=""
+RDEPEND=""
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.0.06-askmara-tcp.patch"
+ "${FILESDIR}/${PN}-2.0.06-duende-man.patch"
+ "${FILESDIR}/${P}-build.patch"
+)
+
+pkg_setup() {
+ ebegin "Creating group and users"
+ enewgroup maradns 99
+ enewuser duende 66 -1 -1 maradns
+ enewuser maradns 99 -1 -1 maradns
+ eend ${?}
+}
+
+src_configure() {
+ # Use duende-ng.c.
+ cp "${S}/tools/duende-ng.c" "${S}/tools/duende.c" \
+ || die "failed to rename duende-ng.c"
+
+ 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
+ dodoc doc/en/*.html
+ dodoc -r doc/en/webpage
+ dodoc -r doc/en/tutorial
+ if use examples ; then
+ docinto examples
+ dodoc doc/en/examples/example_*
+ fi
+
+ # 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
+ dodoc 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 \
+ || die "failed to create the maradns.service file (sed)"
+
+ 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..e6602b751197
--- /dev/null
+++ b/net-dns/maradns/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+<use>
+ <flag name="authonly">Allows one to build only authoritative DNS server</flag>
+</use>
+</pkgmetadata>