1{ stdenv, lib, fetchurl, gnumake, libnetfilter_acct, libnetfilter_conntrack
2, libnetfilter_log, libmnl, libnfnetlink, automake, autoconf, autogen, libtool
3, postgresql, libmysqlclient, sqlite
4, pkg-config, libpcap, linuxdoc-tools, autoreconfHook, nixosTests }:
5
6stdenv.mkDerivation rec {
7 version = "2.0.8";
8 pname = "ulogd";
9
10 src = fetchurl {
11 url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
12 hash = "sha256-Tq1sOXDD9X+h6J/i18xIO6b+K9GwhwFSHgs6/WZ98pE=";
13 };
14
15 outputs = [ "out" "doc" "man" ];
16
17 postPatch = ''
18 substituteInPlace ulogd.8 --replace "/usr/share/doc" "$doc/share/doc"
19 '';
20
21 postBuild = ''
22 pushd doc/
23 linuxdoc --backend=txt --filter ulogd.sgml
24 linuxdoc --backend=html --split=0 ulogd.sgml
25 popd
26 '';
27
28 postInstall = ''
29 install -Dm444 -t $out/share/doc/${pname} ulogd.conf doc/ulogd.txt doc/ulogd.html README doc/*table
30 install -Dm444 -t $out/share/doc/${pname}-mysql doc/mysql*.sql
31 install -Dm444 -t $out/share/doc/${pname}-pgsql doc/pgsql*.sql
32 '';
33
34 buildInputs = [
35 libnetfilter_acct
36 libnetfilter_conntrack
37 libnetfilter_log
38 libmnl
39 libnfnetlink
40 libpcap
41 postgresql
42 libmysqlclient
43 sqlite
44 ];
45
46 nativeBuildInputs = [
47 autoreconfHook
48 pkg-config
49 automake
50 autoconf
51 autogen
52 libtool
53 linuxdoc-tools
54 ];
55
56 passthru.tests = { inherit (nixosTests) ulogd; };
57
58 meta = with lib; {
59 description = "Userspace logging daemon for netfilter/iptables";
60
61 longDescription = ''
62 Logging daemon that reads event messages coming from the Netfilter
63 connection tracking, the Netfilter packet logging subsystem and from the
64 Netfilter accounting subsystem. You have to enable support for connection
65 tracking event delivery; ctnetlink and the NFLOG target in your Linux
66 kernel 2.6.x or load their respective modules. The deprecated ULOG target
67 (which has been superseded by NFLOG) is also supported.
68
69 The received messages can be logged into files or into a MySQL, SQLite3
70 or PostgreSQL database. IPFIX and Graphite output are also supported.
71 '';
72
73 homepage = "https://www.netfilter.org/projects/ulogd/index.html";
74 license = licenses.gpl2;
75 platforms = platforms.linux;
76 maintainers = with maintainers; [ p-h ];
77 };
78}