Change versioning scheme to something more common.
[haeredes.git] / haeredes.cabal
1 name: haeredes
2 version: 0.2.0
3 cabal-version: >= 1.8
4 author: Michael Orlitzky
5 maintainer: Michael Orlitzky <michael@orlitzky.com>
6 license: GPL-3
7 license-file: doc/LICENSE
8 homepage: http://michael.orlitzky.com/code/haeredes.php
9 bug-reports: mailto:michael@orlitzky.com
10 category: DNS, Utils
11 build-type: Simple
12 extra-source-files:
13 doc/man1/haeredes.1
14 synopsis:
15 Confirm delegation of NS and MX records.
16 description:
17 Haeredes is primarily useful for ISP network administrators.
18 Customers will occasionally decide to switch hosts without alerting
19 the current host; this can cause two problems:
20 .
21 * With NS records, the previous host (at the very least) keeps
22 hosting a DNS zone that does nothing. If that host uses their
23 authoritative nameserver as a caching lookup server as well, it
24 may return incorrect results to queries about the domain in
25 question.
26 .
27 * For MX records, the situation is slightly worse. Most mail servers
28 will immediately accept mail for which the server thinks it is the
29 ultimate destination. If a mail server is configured as the
30 destination for a domain, but it is not the MX for that domain,
31 then mail submitted to that server may possibly be lost. It is
32 therefore important to remove domains from the old mail host as
33 soon as the MX record is changed.
34 .
35 Haeredes can alert administrators when NS/MX records are changed. More
36 detail can be found in the man page.
37 .
38 /Examples/:
39 .
40 Make sure example.com has the expected name servers,
41 [ab].iana-servers.net:
42 .
43 @
44 $ haeredes a.iana-servers.net b.iana-servers.net <<< \"example.com\"
45 @
46 .
47 If you use --no-append-root and your nameservers are rooted, you
48 must remember to supply the trailing dot yourself. Otherwise, you'll
49 get false positives.
50 .
51 @
52 $ haeredes --no-append-root \
53 &#x20; a.iana-servers.net b.iana-servers.net \
54 &#x20; <<< \"example.com\"
55 Domain \"example.com\" delegates somewhere else: \"b.iana-servers.net.\" \"a.iana-servers.net.\"
56 @
57 .
58 Check orlitzky.com against the expected name servers, using
59 d.gtld-servers.net:
60 .
61 @
62 $ haeredes --server 199.7.91.13 dns1.viabit.com dns2.viabit.com \
63 &#x20; <<< \"orlitzky.com\"
64 @
65 .
66 Check orlitzky.com against only one of the expected two nameservers:
67 .
68 @
69 $ haeredes dns1.viabit.com <<< \"orlitzky.com\"
70 Domain \"orlitzky.com.\" delegates somewhere else: \"dns2.viabit.com.\"
71 @
72 .
73 Check a nonexistent domain (we provide no delegates, since we
74 know .invalid will not be delegated):
75 .
76 @
77 $ haeredes <<< \"example.invalid\"
78 Domain \"example.invalid.\" not delegated.
79 @
80
81 executable haeredes
82 build-depends:
83 base == 4.*,
84 bytestring == 0.10.*,
85 cmdargs == 0.10.*,
86 dns >= 1,
87 iproute == 1.2.*,
88 MissingH == 1.2.*,
89 parallel-io == 0.3.*,
90 -- Test deps
91 HUnit == 1.2.*,
92 QuickCheck == 2.*,
93 test-framework == 0.8.*,
94 test-framework-hunit == 0.3.*,
95 test-framework-quickcheck2 == 0.3.*
96
97 main-is:
98 Main.hs
99
100 hs-source-dirs:
101 src/
102
103 other-modules:
104 CommandLine
105 DNS
106 ExitCodes
107 Timeout
108
109 ghc-options:
110 -Wall
111 -fwarn-hi-shadowing
112 -fwarn-missing-signatures
113 -fwarn-name-shadowing
114 -fwarn-orphans
115 -fwarn-type-defaults
116 -fwarn-tabs
117 -fwarn-incomplete-record-updates
118 -fwarn-monomorphism-restriction
119 -fwarn-unused-do-bind
120 -rtsopts
121 -threaded
122 -optc-O3
123 -optc-march=native
124
125 test-suite testsuite
126 type: exitcode-stdio-1.0
127 hs-source-dirs: src test
128 main-is: TestSuite.hs
129 build-depends:
130 base == 4.*,
131 bytestring == 0.10.*,
132 cmdargs == 0.10.*,
133 dns >= 1,
134 iproute == 1.2.*,
135 MissingH == 1.2.*,
136 parallel-io == 0.3.*,
137 -- Test deps
138 HUnit == 1.2.*,
139 QuickCheck == 2.*,
140 test-framework == 0.8.*,
141 test-framework-hunit == 0.3.*,
142 test-framework-quickcheck2 == 0.3.*
143
144 -- It's not entirely clear to me why I have to reproduce all of this.
145 ghc-options:
146 -Wall
147 -fwarn-hi-shadowing
148 -fwarn-missing-signatures
149 -fwarn-name-shadowing
150 -fwarn-orphans
151 -fwarn-type-defaults
152 -fwarn-tabs
153 -fwarn-incomplete-record-updates
154 -fwarn-monomorphism-restriction
155 -fwarn-unused-do-bind
156 -rtsopts
157 -threaded
158 -optc-O3
159 -optc-march=native
160
161 test-suite doctests
162 type: exitcode-stdio-1.0
163 hs-source-dirs: test
164 main-is: Doctests.hs
165 build-depends:
166 base == 4.*,
167 -- Additional test dependencies.
168 doctest == 0.9.*,
169 filemanip == 0.3.6.*
170
171 -- It's not entirely clear to me why I have to reproduce all of this.
172 ghc-options:
173 -Wall
174 -fwarn-hi-shadowing
175 -fwarn-missing-signatures
176 -fwarn-name-shadowing
177 -fwarn-orphans
178 -fwarn-type-defaults
179 -fwarn-tabs
180 -fwarn-incomplete-record-updates
181 -fwarn-monomorphism-restriction
182 -fwarn-unused-do-bind
183 -rtsopts
184 -threaded
185 -optc-O3
186 -optc-march=native
187
188 source-repository head
189 type: git
190 location: http://michael.orlitzky.com/git/haeredes.git
191 branch: master