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