1{
2 buildGoModule,
3 fetchFromGitHub,
4 installShellFiles,
5 lib,
6 stdenv,
7}:
8buildGoModule rec {
9 pname = "dnstap";
10 version = "0.4.0";
11
12 src = fetchFromGitHub {
13 owner = "dnstap";
14 repo = "golang-dnstap";
15 tag = "v${version}";
16 hash = "sha256-GmwHJ6AQ4HcPEFNeodKqJe/mYE1Fa95hRiQWoka/nv4=";
17 };
18
19 vendorHash = "sha256-xDui88YgLqIETIR34ZdqT6Iz12v+Rdf6BssAIXgaMLU=";
20
21 nativeBuildInputs = [
22 installShellFiles
23 ];
24
25 postInstall = ''
26 installManPage dnstap/dnstap.8
27 '';
28
29 meta = {
30 description = "Structured DNS server events decoding utility";
31 longDescription = ''
32 dnstap implements an encoding format for DNS server events. It uses a
33 lightweight framing on top of event payloads encoded using Protocol
34 Buffers and is transport neutral.
35
36 dnstap can represent internal state inside a DNS server that is difficult
37 to obtain using techniques based on traditional packet capture or
38 unstructured textual format logging.
39 '';
40 homepage = "https://dnstap.info";
41 changelog = "https://github.com/dnstap/golang-dnstap/releases/tag/${src.rev}";
42 license = lib.licenses.asl20;
43 broken = stdenv.hostPlatform.isDarwin;
44 maintainers = [ lib.maintainers.azahi ];
45 mainProgram = "dnstap";
46 };
47}