push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
{ stdenv, collectd }:
stdenv.mkDerivation {
pname = "collectd-data";
inherit (collectd) meta src version;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
installPhase = ''
install -Dm444 -t $out/share/collectd/ src/*.{db,conf}
'';
}

View File

@@ -0,0 +1,93 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
callPackage,
autoreconfHook,
pkg-config,
libtool,
bison,
flex,
perl,
nixosTests,
...
}@args:
let
plugins = callPackage ./plugins.nix args;
in
stdenv.mkDerivation (finalAttrs: {
pname = "collectd";
version = "5.12.0";
src = fetchFromGitHub {
owner = "collectd";
repo = "collectd";
tag = "collectd-${finalAttrs.version}";
hash = "sha256-UTlCY1GPRpbdQFLFUDjNr1PgEdGv4WNtjr8TYbxHK5A=";
};
# All of these are going to be included in the next release
patches = [
# fix -t never printing syntax errors
# should be included in next release
(fetchpatch {
name = "fix-broken-dash-t-option.patch";
url = "https://github.com/collectd/collectd/commit/3f575419e7ccb37a3b10ecc82adb2e83ff2826e1.patch";
hash = "sha256-XkDxLITmG0FLpgf8Ut1bDqulM4DmPs8Xrec2QB1tkks=";
})
(fetchpatch {
name = "no_include_longintrepr.patch";
url = "https://github.com/collectd/collectd/commit/623e95394e0e62e7f9ced2104b786d21e9c0bf53.patch";
hash = "sha256-0eD7yNW3TWVyNMpLsADhYFDvy6COoCaI0kS1XJrwDgM=";
})
];
nativeBuildInputs = [
pkg-config
autoreconfHook
bison
flex
perl # for pod2man
];
buildInputs = [
libtool
]
++ plugins.buildInputs;
configureFlags = [
"--localstatedir=/var"
"--disable-werror"
]
++ plugins.configureFlags
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "--with-fp-layout=nothing" ];
# Used in `src/virt.c`
env.NIX_CFLAGS_COMPILE = "-DATTRIBUTE_UNUSED=__attribute__((unused))";
# do not create directories in /var during installPhase
postConfigure = ''
substituteInPlace Makefile --replace-fail '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/' '#'
'';
postInstall = ''
if [ -d $out/share/collectd/java ]; then
mv $out/share/collectd/java $out/share/
fi
'';
enableParallelBuilding = true;
passthru.tests = {
inherit (nixosTests) collectd;
};
meta = {
description = "Daemon which collects system performance statistics periodically";
homepage = "https://collectd.org";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bjornfor ];
};
})

View File

@@ -0,0 +1,201 @@
{
lib,
stdenv,
curl,
hiredis,
iptables,
jdk,
libatasmart,
libdbi,
libesmtp,
libgcrypt,
libmemcached,
cyrus_sasl,
libmodbus,
libmicrohttpd,
libmnl,
libmysqlclient,
libnotify,
gdk-pixbuf,
liboping,
libpcap,
libpq,
libsigrok,
libvirt,
libxml2,
lua,
lvm2,
lm_sensors,
mongoc,
mosquitto,
net-snmp,
openldap,
openipmi,
perl,
protobufc,
python3,
rabbitmq-c,
rdkafka,
riemann_c_client,
rrdtool,
udev,
varnish,
xen,
yajl,
# Defaults to `null` for all supported plugins (except xen, which is marked as
# insecure), otherwise a list of plugin names for a custom build
enabledPlugins ? null,
...
}:
let
# Plugins that have dependencies.
# Please help to extend these!
plugins = {
amqp.buildInputs = [
yajl
]
++ lib.optionals stdenv.hostPlatform.isLinux [ rabbitmq-c ];
apache.buildInputs = [ curl ];
ascent.buildInputs = [
curl
libxml2
];
bind.buildInputs = [
curl
libxml2
];
ceph.buildInputs = [ yajl ];
curl.buildInputs = [ curl ];
curl_json.buildInputs = [
curl
yajl
];
curl_xml.buildInputs = [
curl
libxml2
];
dbi.buildInputs = [ libdbi ];
disk.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
udev
];
dns.buildInputs = [ libpcap ];
ipmi.buildInputs = [ openipmi ];
iptables.buildInputs = [
libpcap
]
++ lib.optionals stdenv.hostPlatform.isLinux [
iptables
libmnl
];
java.buildInputs = [
jdk
libgcrypt
libxml2
];
log_logstash.buildInputs = [ yajl ];
lua.buildInputs = [ lua ];
memcachec.buildInputs = [
libmemcached
cyrus_sasl
];
modbus.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libmodbus ];
mqtt.buildInputs = [ mosquitto ];
mysql.buildInputs = lib.optionals (libmysqlclient != null) [
libmysqlclient
];
netlink.buildInputs = [
libpcap
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libmnl
];
network.buildInputs = [ libgcrypt ];
nginx.buildInputs = [ curl ];
notify_desktop.buildInputs = [
libnotify
gdk-pixbuf
];
notify_email.buildInputs = [ libesmtp ];
openldap.buildInputs = [ openldap ];
ovs_events.buildInputs = [ yajl ];
ovs_stats.buildInputs = [ yajl ];
perl.buildInputs = [ perl ];
pinba.buildInputs = [ protobufc ];
ping.buildInputs = [ liboping ];
postgresql.buildInputs = [ libpq ];
python.buildInputs = [ python3 ];
redis.buildInputs = [ hiredis ];
rrdcached.buildInputs = [
rrdtool
libxml2
];
rrdtool.buildInputs = [
rrdtool
libxml2
];
sensors.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ lm_sensors ];
sigrok.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
libsigrok
udev
];
smart.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
libatasmart
udev
];
snmp.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ net-snmp ];
snmp_agent.buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ net-snmp ];
varnish.buildInputs = [
curl
varnish
];
virt.buildInputs = [
libvirt
libxml2
yajl
]
++ lib.optionals stdenv.hostPlatform.isLinux [
lvm2
udev
];
write_http.buildInputs = [
curl
yajl
];
write_kafka.buildInputs = [
yajl
rdkafka
];
write_log.buildInputs = [ yajl ];
write_mongodb.buildInputs = [ mongoc ];
write_prometheus.buildInputs = [
protobufc
libmicrohttpd
];
write_redis.buildInputs = [ hiredis ];
write_riemann.buildInputs = [
protobufc
riemann_c_client
];
xencpu.buildInputs = [ xen ];
};
configureFlags = lib.optionals (enabledPlugins != null) (
[ "--disable-all-plugins" ] ++ (map (plugin: "--enable-${plugin}") enabledPlugins)
);
pluginBuildInputs =
plugin:
lib.optionals (
plugins ? ${plugin} && plugins.${plugin} ? buildInputs
) plugins.${plugin}.buildInputs;
buildInputs =
if enabledPlugins == null then
builtins.concatMap pluginBuildInputs (builtins.attrNames (removeAttrs plugins [ "xencpu" ]))
else
builtins.concatMap pluginBuildInputs enabledPlugins;
in
{
inherit configureFlags buildInputs;
}