base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / system / rsyslog / default.nix
blob451ced45d728c3fbb075202106ca51a954c65c50
1 { lib
2 , stdenv
3 , fetchurl
4 , pkg-config
5 , autoreconfHook
6 , libestr
7 , json_c
8 , zlib
9 , docutils
10 , fastJson
11 , withKrb5 ? true
12 , libkrb5
13 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
14 , systemd
15 , withJemalloc ? true
16 , jemalloc
17 , withMysql ? true
18 , libmysqlclient
19 , withPostgres ? true
20 , postgresql
21 , withDbi ? true
22 , libdbi
23 , withNetSnmp ? true
24 , net-snmp
25 , withUuid ? true
26 , libuuid
27 , withCurl ? true
28 , curl
29 , withGnutls ? true
30 , gnutls
31 , withGcrypt ? true
32 , libgcrypt
33 , withLognorm ? true
34 , liblognorm
35 , withMaxminddb ? true
36 , libmaxminddb
37 , withOpenssl ? true
38 , openssl
39 , withRelp ? true
40 , librelp
41 , withKsi ? true
42 , libksi
43 , withLogging ? true
44 , liblogging
45 , withNet ? true
46 , libnet
47 , withHadoop ? true
48 , hadoop
49 , withRdkafka ? true
50 , rdkafka
51 , withMongo ? true
52 , mongoc
53 , withCzmq ? true
54 , czmq
55 , withRabbitmq ? true
56 , rabbitmq-c
57 , withHiredis ? true
58 , hiredis
59 , nixosTests
62 stdenv.mkDerivation rec {
63   pname = "rsyslog";
64   version = "8.2408.0";
66   src = fetchurl {
67     url = "https://www.rsyslog.com/files/download/rsyslog/${pname}-${version}.tar.gz";
68     hash = "sha256-i7LxX5v5u35jUYLj0+Nwv8OdCL81o2fc6XFOGG94cgY=";
69   };
71   nativeBuildInputs = [
72     pkg-config
73     autoreconfHook
74     docutils
75   ];
77   buildInputs = [
78     fastJson
79     libestr
80     json_c
81     zlib
82   ] ++ lib.optional withKrb5 libkrb5
83   ++ lib.optional withJemalloc jemalloc
84   ++ lib.optional withPostgres postgresql
85   ++ lib.optional withDbi libdbi
86   ++ lib.optional withNetSnmp net-snmp
87   ++ lib.optional withUuid libuuid
88   ++ lib.optional withCurl curl
89   ++ lib.optional withGnutls gnutls
90   ++ lib.optional withGcrypt libgcrypt
91   ++ lib.optional withLognorm liblognorm
92   ++ lib.optional withOpenssl openssl
93   ++ lib.optional withRelp librelp
94   ++ lib.optional withKsi libksi
95   ++ lib.optional withLogging liblogging
96   ++ lib.optional withNet libnet
97   ++ lib.optional withHadoop hadoop
98   ++ lib.optional withRdkafka rdkafka
99   ++ lib.optionals withMongo [ mongoc ]
100   ++ lib.optional withCzmq czmq
101   ++ lib.optional withRabbitmq rabbitmq-c
102   ++ lib.optional withHiredis hiredis
103   ++ lib.optional withMaxminddb libmaxminddb
104   ++ lib.optional withMysql libmysqlclient
105   ++ lib.optional withSystemd systemd;
107   configureFlags = [
108     "--sysconfdir=/etc"
109     "--localstatedir=/var"
110     "--with-systemdsystemunitdir=\${out}/etc/systemd/system"
111     (lib.enableFeature true "largefile")
112     (lib.enableFeature true "regexp")
113     (lib.enableFeature withKrb5 "gssapi-krb5")
114     (lib.enableFeature true "klog")
115     (lib.enableFeature true "kmsg")
116     (lib.enableFeature withSystemd "imjournal")
117     (lib.enableFeature true "inet")
118     (lib.enableFeature withJemalloc "jemalloc")
119     (lib.enableFeature true "unlimited-select")
120     (lib.enableFeature withCurl "clickhouse")
121     (lib.enableFeature false "debug")
122     (lib.enableFeature false "debug-symbols")
123     (lib.enableFeature true "debugless")
124     (lib.enableFeature false "valgrind")
125     (lib.enableFeature false "diagtools")
126     (lib.enableFeature withCurl "fmhttp")
127     (lib.enableFeature true "usertools")
128     (lib.enableFeature withMysql "mysql")
129     (lib.enableFeature withPostgres "pgsql")
130     (lib.enableFeature withDbi "libdbi")
131     (lib.enableFeature withNetSnmp "snmp")
132     (lib.enableFeature withUuid "uuid")
133     (lib.enableFeature withCurl "elasticsearch")
134     (lib.enableFeature withGnutls "gnutls")
135     (lib.enableFeature withGcrypt "libgcrypt")
136     (lib.enableFeature true "rsyslogrt")
137     (lib.enableFeature true "rsyslogd")
138     (lib.enableFeature true "mail")
139     (lib.enableFeature withLognorm "mmnormalize")
140     (lib.enableFeature withMaxminddb "mmdblookup")
141     (lib.enableFeature true "mmjsonparse")
142     (lib.enableFeature true "mmaudit")
143     (lib.enableFeature true "mmanon")
144     (lib.enableFeature true "mmutf8fix")
145     (lib.enableFeature true "mmcount")
146     (lib.enableFeature true "mmsequence")
147     (lib.enableFeature true "mmfields")
148     (lib.enableFeature true "mmpstrucdata")
149     (lib.enableFeature withOpenssl "mmrfc5424addhmac")
150     (lib.enableFeature withRelp "relp")
151     (lib.enableFeature withKsi "ksi-ls12")
152     (lib.enableFeature withLogging "liblogging-stdlog")
153     (lib.enableFeature withLogging "rfc3195")
154     (lib.enableFeature true "imfile")
155     (lib.enableFeature false "imsolaris")
156     (lib.enableFeature true "imptcp")
157     (lib.enableFeature true "impstats")
158     (lib.enableFeature true "omprog")
159     (lib.enableFeature withNet "omudpspoof")
160     (lib.enableFeature true "omstdout")
161     (lib.enableFeature withSystemd "omjournal")
162     (lib.enableFeature true "pmlastmsg")
163     (lib.enableFeature true "pmcisconames")
164     (lib.enableFeature true "pmciscoios")
165     (lib.enableFeature true "pmaixforwardedfrom")
166     (lib.enableFeature true "pmsnare")
167     (lib.enableFeature true "omruleset")
168     (lib.enableFeature true "omuxsock")
169     (lib.enableFeature true "mmsnmptrapd")
170     (lib.enableFeature withHadoop "omhdfs")
171     (lib.enableFeature withRdkafka "omkafka")
172     (lib.enableFeature withMongo "ommongodb")
173     (lib.enableFeature withCzmq "imczmq")
174     (lib.enableFeature withCzmq "omczmq")
175     (lib.enableFeature withRabbitmq "omrabbitmq")
176     (lib.enableFeature withHiredis "omhiredis")
177     (lib.enableFeature withCurl "omhttp")
178     (lib.enableFeature true "generate-man-pages")
179   ];
181   passthru.tests = {
182     nixos-rsyslogd = nixosTests.rsyslogd;
183   };
185   meta = {
186     homepage = "https://www.rsyslog.com/";
187     description = "Enhanced syslog implementation";
188     mainProgram = "rsyslogd";
189     changelog = "https://raw.githubusercontent.com/rsyslog/rsyslog/v${version}/ChangeLog";
190     license = lib.licenses.gpl3Only;
191     platforms = lib.platforms.linux;
192     maintainers = [ ];
193   };