python312Packages.jax: 0.4.38 -> 0.5.0 (#374810)
[NixPkgs.git] / pkgs / tools / system / collectd / plugins.nix
blob45b38f8e68f3e8b123cd29c282196e3b91c7c155
2   lib,
3   stdenv,
4   curl,
5   hiredis,
6   iptables,
7   jdk,
8   libatasmart,
9   libdbi,
10   libesmtp,
11   libgcrypt,
12   libmemcached,
13   cyrus_sasl,
14   libmodbus,
15   libmicrohttpd,
16   libmnl,
17   libmysqlclient,
18   libnotify,
19   gdk-pixbuf,
20   liboping,
21   libpcap,
22   libsigrok,
23   libvirt,
24   libxml2,
25   lua,
26   lvm2,
27   lm_sensors,
28   mongoc,
29   mosquitto,
30   net-snmp,
31   openldap,
32   openipmi,
33   perl,
34   postgresql,
35   protobufc,
36   python3,
37   rabbitmq-c,
38   rdkafka,
39   riemann_c_client,
40   rrdtool,
41   udev,
42   varnish,
43   xen,
44   yajl,
45   IOKit,
46   # Defaults to `null` for all supported plugins (except xen, which is marked as
47   # insecure), otherwise a list of plugin names for a custom build
48   enabledPlugins ? null,
49   ...
52 let
53   # Plugins that have dependencies.
54   # Please help to extend these!
55   plugins = {
56     amqp.buildInputs = [
57       yajl
58     ] ++ lib.optionals stdenv.hostPlatform.isLinux [ rabbitmq-c ];
59     apache.buildInputs = [ curl ];
60     ascent.buildInputs = [
61       curl
62       libxml2
63     ];
64     battery.buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
65       IOKit
66     ];
67     bind.buildInputs = [
68       curl
69       libxml2
70     ];
71     ceph.buildInputs = [ yajl ];
72     curl.buildInputs = [ curl ];
73     curl_json.buildInputs = [
74       curl
75       yajl
76     ];
77     curl_xml.buildInputs = [
78       curl
79       libxml2
80     ];
81     dbi.buildInputs = [ libdbi ];
82     disk.buildInputs =
83       lib.optionals stdenv.hostPlatform.isLinux [
84         udev
85       ]
86       ++ lib.optionals stdenv.hostPlatform.isDarwin [
87         IOKit
88       ];
89     dns.buildInputs = [ libpcap ];
90     ipmi.buildInputs = [ openipmi ];
91     iptables.buildInputs =
92       [
93         libpcap
94       ]
95       ++ lib.optionals stdenv.hostPlatform.isLinux [
96         iptables
97         libmnl
98       ];
99     java.buildInputs = [
100       jdk
101       libgcrypt
102       libxml2
103     ];
104     log_logstash.buildInputs = [ yajl ];
105     lua.buildInputs = [ lua ];
106     memcachec.buildInputs = [
107       libmemcached
108       cyrus_sasl
109     ];
110     modbus.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libmodbus ];
111     mqtt.buildInputs = [ mosquitto ];
112     mysql.buildInputs = lib.optionals (libmysqlclient != null) [
113       libmysqlclient
114     ];
115     netlink.buildInputs =
116       [
117         libpcap
118       ]
119       ++ lib.optionals stdenv.hostPlatform.isLinux [
120         libmnl
121       ];
122     network.buildInputs = [ libgcrypt ];
123     nginx.buildInputs = [ curl ];
124     notify_desktop.buildInputs = [
125       libnotify
126       gdk-pixbuf
127     ];
128     notify_email.buildInputs = [ libesmtp ];
129     openldap.buildInputs = [ openldap ];
130     ovs_events.buildInputs = [ yajl ];
131     ovs_stats.buildInputs = [ yajl ];
132     perl.buildInputs = [ perl ];
133     pinba.buildInputs = [ protobufc ];
134     ping.buildInputs = [ liboping ];
135     postgresql.buildInputs = [ postgresql ];
136     python.buildInputs = [ python3 ];
137     redis.buildInputs = [ hiredis ];
138     rrdcached.buildInputs = [
139       rrdtool
140       libxml2
141     ];
142     rrdtool.buildInputs = [
143       rrdtool
144       libxml2
145     ];
146     sensors.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ lm_sensors ];
147     sigrok.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
148       libsigrok
149       udev
150     ];
151     smart.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
152       libatasmart
153       udev
154     ];
155     snmp.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ net-snmp ];
156     snmp_agent.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ net-snmp ];
157     varnish.buildInputs = [
158       curl
159       varnish
160     ];
161     virt.buildInputs =
162       [
163         libvirt
164         libxml2
165         yajl
166       ]
167       ++ lib.optionals stdenv.hostPlatform.isLinux [
168         lvm2
169         udev
170       ];
171     write_http.buildInputs = [
172       curl
173       yajl
174     ];
175     write_kafka.buildInputs = [
176       yajl
177       rdkafka
178     ];
179     write_log.buildInputs = [ yajl ];
180     write_mongodb.buildInputs = [ mongoc ];
181     write_prometheus.buildInputs = [
182       protobufc
183       libmicrohttpd
184     ];
185     write_redis.buildInputs = [ hiredis ];
186     write_riemann.buildInputs = [
187       protobufc
188       riemann_c_client
189     ];
190     xencpu.buildInputs = [ xen ];
191   };
193   configureFlags = lib.optionals (enabledPlugins != null) (
194     [ "--disable-all-plugins" ] ++ (map (plugin: "--enable-${plugin}") enabledPlugins)
195   );
197   pluginBuildInputs =
198     plugin:
199     lib.optionals (
200       plugins ? ${plugin} && plugins.${plugin} ? buildInputs
201     ) plugins.${plugin}.buildInputs;
203   buildInputs =
204     if enabledPlugins == null then
205       builtins.concatMap pluginBuildInputs (
206         builtins.attrNames (builtins.removeAttrs plugins [ "xencpu" ])
207       )
208     else
209       builtins.concatMap pluginBuildInputs enabledPlugins;
212   inherit configureFlags buildInputs;