[packages/netdata] Up to 2.12.1.
arekm
arekm at pld-linux.org
Thu Oct 15 11:54:40 CEST 2026
commit f3596fc0a0e53209afe7900d8176691025120c35
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Thu Oct 15 11:53:27 2026 +0200
Up to 2.12.1.
netdata-system-libs.patch | 273 +++++++++++++++++++++++++++++++
netdata.conf | 3 -
netdata.init | 2 +-
netdata.spec | 406 ++++++++++++++++++++++++++++++++++------------
nodejs.patch | 17 --
5 files changed, 577 insertions(+), 124 deletions(-)
---
diff --git a/netdata.spec b/netdata.spec
index e547c36..815dfd8 100644
--- a/netdata.spec
+++ b/netdata.spec
@@ -1,32 +1,70 @@
#
# Conditional build:
+%bcond_without cups # CUPS plugin
%bcond_without freeipmi # freeipmi plugin
+%bcond_without go # Go plugins (go.d, scripts.d, nd-mcp)
+%bcond_without mongodb # MongoDB exporter
%bcond_without nfacct # nfacct plugin
+%bcond_without xenstat # xenstat plugin
+
+%define sqlite_src_ver 3530400
Summary: Linux real time performance monitoring
Summary(pl.UTF-8): Monitorowanie wydajności Linuksa w czasie rzeczywistym
Name: netdata
-Version: 1.8.0
-Release: 1
+Version: 2.12.1
+Release: 0.1
License: GPL v3+
Group: Applications/System
-#Source0Download: https://github.com/firehol/netdata/releases
-Source0: https://github.com/firehol/netdata/releases/download/v%{version}/%{name}-%{version}.tar.xz
-# Source0-md5: 4058c3acdda1af5968e7dc636ba322e2
-Source1: %{name}.conf
-Source2: %{name}.init
-Patch0: nodejs.patch
-URL: http://netdata.firehol.org/
-BuildRequires: autoconf >= 2.60
-BuildRequires: automake
+#Source0Download: https://github.com/netdata/netdata/releases
+Source0: https://github.com/netdata/netdata/releases/download/v%{version}/%{name}-v%{version}.tar.gz
+# Source0-md5: 45331671be9cdf4eb02f29da14884c7e
+# vendored Go modules; regenerate with:
+# cd %%{name}-v%%{version}
+# for d in src/go src/collectors/cgroups.plugin/cgroup-name src/web/mcp/bridges/stdio-golang; do (cd $d && go mod vendor); done
+# tar cJf ../%%{name}-vendor-%%{version}.tar.xz src/go/vendor src/web/mcp/bridges/stdio-golang/vendor
+Source1: %{name}-vendor-%{version}.tar.xz
+# Source1-md5: 233b147f970ef182ccc521001dccc7c1
+# only ext/recover is used, it is not part of libsqlite3
+Source2: https://www.sqlite.org/2026/sqlite-src-%{sqlite_src_ver}.zip
+# Source2-md5: 718613520b678b8754427ed2b01d12d3
+Source3: %{name}.conf
+Source4: %{name}.init
+Patch0: %{name}-system-libs.patch
+URL: https://www.netdata.cloud/
+BuildRequires: cmake >= 3.16.0
+%{?with_cups:BuildRequires: cups-devel}
+BuildRequires: curl-devel >= 7.21
%{?with_freeipmi:BuildRequires: freeipmi-devel}
+%{?with_go:BuildRequires: golang >= 1.27}
+BuildRequires: json-c-devel >= 0.14
+BuildRequires: judy-devel
+BuildRequires: libbacktrace-devel
+BuildRequires: libbrotli-devel
BuildRequires: libcap-devel
-%{?with_nfacct:BuildRequires: libmnl-devel}
+BuildRequires: libmnl-devel
%{?with_nfacct:BuildRequires: libnetfilter_acct-devel}
+BuildRequires: libstdc++-devel >= 6:7
BuildRequires: libuuid-devel
+BuildRequires: libuv-devel
+BuildRequires: lm_sensors-devel
+BuildRequires: lz4-devel >= 1.7.1
+%{?with_mongodb:BuildRequires: mongo-c-driver-devel >= 1.7}
+BuildRequires: ninja
+BuildRequires: openssl-devel
+BuildRequires: pcre2-8-devel
BuildRequires: pkgconfig
-BuildRequires: rpmbuild(macros) >= 1.647
+BuildRequires: protobuf
+BuildRequires: protobuf-devel
+BuildRequires: rpmbuild(macros) >= 1.742
+BuildRequires: snappy-devel
+BuildRequires: sqlite3-devel
+BuildRequires: systemd-devel
+BuildRequires: unzip
+%{?with_xenstat:BuildRequires: xen-devel}
+BuildRequires: yaml-devel
BuildRequires: zlib-devel
+BuildRequires: zstd-devel
Provides: group(netdata)
Provides: user(netdata)
Requires(post,preun): /sbin/chkconfig
@@ -38,13 +76,14 @@ Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Requires: rc-scripts
+Requires: systemd-units >= 38
Suggests: %{name}-charts
-Suggests: %{name}-nodejs
+%{?with_go:Suggests: %{name}-go}
Suggests: %{name}-python
+Obsoletes: netdata-nodejs < 2
+%{?with_go:ExclusiveArch: %go_arches}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _libexecdir %{_prefix}/lib
-
%description
netdata is the fastest way to visualize metrics. It is a resource
efficient, highly optimized system for collecting and visualizing any
@@ -66,7 +105,7 @@ wywołań API, odwiedzających stronę WWW.
Summary: netdata charts plugin
Summary(pl.UTF-8): Wtyczka do wykresów dla netdata
Group: Applications/System
-URL: https://github.com/firehol/netdata/wiki/General-Info---charts.d
+URL: https://learn.netdata.cloud/docs/collecting-metrics/
Requires: %{name} = %{version}-%{release}
Requires: bash >= 4
BuildArch: noarch
@@ -94,34 +133,64 @@ trzymany cały czas w pamięci, zbierając dane z możliwie małym narzutem
Charts.d wyszukuje skrypty w katalogu charts.d. Skrypty powinny mieć
rozszerzenie nazwy pliku: .chart.sh.
-%package nodejs
-Summary: netdata node.js plugins
-Summary(pl.UTF-8): Wtyczki node.js dla netdata
+%package cups
+Summary: netdata CUPS plugin
+Summary(pl.UTF-8): Wtyczka CUPS dla netdata
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+
+%description cups
+netdata plugin collecting metrics from CUPS print server.
+
+%description cups -l pl.UTF-8
+Wtyczka netdata zbierająca metryki z serwera wydruku CUPS.
+
+%package freeipmi
+Summary: netdata FreeIPMI plugin
+Summary(pl.UTF-8): Wtyczka FreeIPMI dla netdata
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+
+%description freeipmi
+netdata plugin collecting IPMI sensor metrics using FreeIPMI.
+
+%description freeipmi -l pl.UTF-8
+Wtyczka netdata zbierająca metryki czujników IPMI przy użyciu
+FreeIPMI.
+
+%package go
+Summary: netdata Go plugins
+Summary(pl.UTF-8): Wtyczki netdata napisane w Go
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+
+%description go
+go.d.plugin and scripts.d.plugin for netdata - data collectors
+written in Go for a large number of applications and services.
+
+%description go -l pl.UTF-8
+go.d.plugin i scripts.d.plugin dla netdata - moduły zbierające dane
+napisane w Go dla dużej liczby aplikacji i usług.
+
+%package nfacct
+Summary: netdata nfacct plugin
+Summary(pl.UTF-8): Wtyczka nfacct dla netdata
Group: Applications/System
-URL: https://github.com/firehol/netdata/wiki/General-Info---node.d
Requires: %{name} = %{version}-%{release}
-BuildArch: noarch
-%description nodejs
-node.d.plugin is a netdata plugin that provides an abstraction layer
-to allow easy and quick development of data collectors in node.js. It
-also manages all its data collectors (placed in node.d) using a single
-instance of node, thus lowering the memory footprint of data
-collection.
+%description nfacct
+netdata plugin collecting netfilter accounting and conntrack metrics.
-%description nodejs -l pl.UTF-8
-Wtyczka node.d zapewnia warstwę abstrakcji, pozwalającą na łatwe i
-szybkie tworzenie modułów zbierających dane w node.js. Zarządza też
-wszystkimi modułami zbierającymi dane (umieszczonymi w node.d) przy
-użyciu prostej instancji węzła, obniżając narzut pamięciowy zbierania
-danych.
+%description nfacct -l pl.UTF-8
+Wtyczka netdata zbierająca metryki rozliczania netfiltra i conntracka.
%package python
Summary: netdata Python plugins
Summary(pl.UTF-8): Wtyczki Pythona dla netdata
Group: Applications/System
-URL: https://github.com/firehol/netdata/wiki/How-to-write-new-module
+URL: https://learn.netdata.cloud/docs/collecting-metrics/
Requires: %{name} = %{version}-%{release}
+Requires: python3
BuildArch: noarch
%description python
@@ -130,36 +199,101 @@ Netdata Python plugins.
%description python -l pl.UTF-8
Wtyczki Pythona dla netdata.
+%package xenstat
+Summary: netdata xenstat plugin
+Summary(pl.UTF-8): Wtyczka xenstat dla netdata
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+
+%description xenstat
+netdata plugin collecting metrics from the Xen hypervisor.
+
+%description xenstat -l pl.UTF-8
+Wtyczka netdata zbierająca metryki z hipernadzorcy Xen.
+
%prep
-%setup -q
+%setup -q -n %{name}-v%{version} -a1 -a2
%patch -P0 -p1
%build
-%{__aclocal} -I m4
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- --libdir=%{_libexecdir} \
- %{__enable_disable freeipmi plugin-freeipmi} \
- %{__enable_disable nfacct plugin-nfacct} \
- --with-math \
- --with-zlib \
- --with-user=netdata
-%{__make}
+export GOCACHE=$(pwd)/.go-cache
+export GOFLAGS="-mod=vendor -trimpath"
+export GOTOOLCHAIN=local
+export GOPROXY=off
+%{?__jobs:export GOMAXPROCS=%{__jobs}}
+# the local dashboard is closed source and downloaded at build time;
+# ML needs dlib, which is not packaged; OTEL/NetFlow need vendored Rust crates;
+# eBPF downloads prebuilt BPF objects and a libbpf fork
+%cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/ \
+ -DENABLE_BUNDLED_JSONC=OFF \
+ -DENABLE_BUNDLED_PROTOBUF=OFF \
+ -DENABLE_BUNDLED_YAML=OFF \
+ -DENABLE_DASHBOARD=OFF \
+ -DENABLE_DBENGINE=ON \
+ %{cmake_on_off mongodb ENABLE_EXPORTER_MONGODB} \
+ -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=ON \
+ -DENABLE_JEMALLOC=OFF \
+ -DENABLE_LIBBACKTRACE=ON \
+ -DENABLE_MIMALLOC=OFF \
+ -DENABLE_ML=OFF \
+ -DENABLE_NETDATA_JOURNAL_FILE_READER=OFF \
+ -DENABLE_PLUGIN_APPS=ON \
+ -DENABLE_PLUGIN_CGROUP_NETWORK=ON \
+ -DENABLE_PLUGIN_CHARTS=ON \
+ %{cmake_on_off cups ENABLE_PLUGIN_CUPS} \
+ -DENABLE_PLUGIN_DEBUGFS=ON \
+ -DENABLE_PLUGIN_EBPF=OFF \
+ %{cmake_on_off freeipmi ENABLE_PLUGIN_FREEIPMI} \
+ %{cmake_on_off go ENABLE_PLUGIN_GO} \
+ %{cmake_on_off go ENABLE_ND_MCP} \
+ %{cmake_on_off go ENABLE_PLUGIN_SCRIPTS} \
+ %{cmake_on_off go ENABLE_CGROUP_NAME} \
+ -DENABLE_PLUGIN_IBM=OFF \
+ -DENABLE_PLUGIN_LOCAL_LISTENERS=ON \
+ -DENABLE_PLUGIN_NETFLOW=OFF \
+ -DENABLE_PLUGIN_NETWORK_VIEWER=ON \
+ %{cmake_on_off nfacct ENABLE_PLUGIN_NFACCT} \
+ -DENABLE_PLUGIN_OTEL=OFF \
+ -DENABLE_PLUGIN_PERF=ON \
+ -DENABLE_PLUGIN_PYTHON=ON \
+ -DENABLE_PLUGIN_SLABINFO=ON \
+ -DENABLE_PLUGIN_STATSD=OFF \
+ -DENABLE_PLUGIN_SYSTEMD_JOURNAL=ON \
+ -DENABLE_PLUGIN_SYSTEMD_UNITS=ON \
+ %{cmake_on_off xenstat ENABLE_PLUGIN_XENSTAT} \
+ -DENABLE_SENTRY=OFF \
+ -DENABLE_WEBRTC=OFF \
+ -DNETDATA_SQLITE_RECOVER_SOURCE_DIR=$(pwd)/sqlite-src-%{sqlite_src_ver}/ext/recover \
+ -DUSE_MOLD=OFF
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
-
-%{__rm} $RPM_BUILD_ROOT/var/{cache,lib,log}/netdata/.keep
-%{__rm} $RPM_BUILD_ROOT/var/lib/netdata/registry/.keep
-
-install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir},%{_localstatedir}/lib/%{name}/registry}
-cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
-install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
-cp -p system/netdata.service $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
+export GOCACHE=$(pwd)/.go-cache
+export GOFLAGS="-mod=vendor -trimpath"
+export GOTOOLCHAIN=local
+export GOPROXY=off
+%{?__jobs:export GOMAXPROCS=%{__jobs}}
+%ninja_install -C build
+
+%{__sed} -i -e '1s,^#!/usr/bin/env bash$,#!/bin/bash,' -e '1s,^#!/usr/bin/env sh$,#!/bin/sh,' \
+ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/edit-config \
+ $RPM_BUILD_ROOT%{_libexecdir}/%{name}/plugins.d/{alarm-notify.sh,anonymous-statistics.sh,cgroup-network-helper.sh,charts.d.dryrun-helper.sh,charts.d.plugin,get-kubernetes-labels.sh,ioping.plugin,python.d.plugin,system-info.sh,tc-qos-helper.sh}
+
+install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,systemd},%{systemdunitdir},%{systemdtmpfilesdir}}
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
+install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p build/system/systemd/netdata.service $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
+%{__sed} -e 's,^d /run/,d /var/run/,' build/system/systemd/tmpfiles/netdata.conf > $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
+# LogNamespace=netdata in netdata.service
+cp -p system/systemd/journald at netdata.conf $RPM_BUILD_ROOT/etc/systemd/journald at netdata.conf
+
+# self-updater, uninstaller and service files for other init systems
+%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/{install-service.sh,netdata-updater.sh}
+%{__rm} $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/conf.d/netdata-updater.conf
+%{__rm} -r $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/system
%clean
rm -rf $RPM_BUILD_ROOT
@@ -189,68 +323,134 @@ fi
%files
%defattr(644,root,root,755)
-%doc ChangeLog LICENSE.md LICENSE-REDISTRIBUTED.md README.md
+%doc README.md
%dir %{_sysconfdir}/%{name}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/apps_groups.conf
+%attr(755,root,root) %{_sysconfdir}/%{name}/edit-config
+%{_sysconfdir}/%{name}/.install-type
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/netdata.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/fping.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/health_alarm_notify.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/health_email_recipients.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/stream.conf
+%dir %{_sysconfdir}/%{name}/custom-plugins.d
%dir %{_sysconfdir}/%{name}/health.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/health.d/*.conf
-%attr(754,root,root) /etc/rc.d/init.d/netdata
-%attr(755,root,root) %{_sbindir}/%{name}
-%dir %{_datadir}/%{name}
+%dir %{_sysconfdir}/%{name}/ssl
+%dir %{_sysconfdir}/%{name}/statsd.d
+%config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
+%config(noreplace) %verify(not md5 mtime size) /etc/systemd/journald at netdata.conf
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%{systemdunitdir}/%{name}.service
+%{systemdtmpfilesdir}/%{name}.conf
+%attr(755,root,root) %{_sbindir}/log2journal
+%attr(755,root,root) %{_sbindir}/nd-run
+%attr(755,root,root) %{_sbindir}/netdata
+%attr(755,root,root) %{_sbindir}/netdata-claim.sh
+%attr(755,root,root) %{_sbindir}/netdata-support-bundle
+%attr(755,root,root) %{_sbindir}/netdatacli
+%attr(755,root,root) %{_sbindir}/systemd-cat-native
+%dir %{_prefix}/lib/%{name}
+%dir %{_prefix}/lib/%{name}/conf.d
+%{_prefix}/lib/%{name}/conf.d/apps_groups.conf
+%{_prefix}/lib/%{name}/conf.d/exporting.conf
+%{_prefix}/lib/%{name}/conf.d/health_alarm_notify.conf
+%{_prefix}/lib/%{name}/conf.d/health_email_recipients.conf
+%{_prefix}/lib/%{name}/conf.d/ioping.conf
+%{_prefix}/lib/%{name}/conf.d/netdata.conf
+%{_prefix}/lib/%{name}/conf.d/sensors3.conf
+%{_prefix}/lib/%{name}/conf.d/stream.conf
+%{_prefix}/lib/%{name}/conf.d/health.d
+%{_prefix}/lib/%{name}/conf.d/log2journal.d
+%{_prefix}/lib/%{name}/conf.d/schema.d
+%{_prefix}/lib/%{name}/conf.d/statsd.d
+%{_prefix}/lib/%{name}/conf.d/vnodes
%dir %{_libexecdir}/%{name}
-%{systemdunitdir}/netdata.service
-%attr(755,netdata,netdata) %dir %{_localstatedir}/cache/%{name}
-%attr(755,netdata,netdata) %dir %{_localstatedir}/log/%{name}
-%attr(755,netdata,netdata) %dir %{_localstatedir}/lib/%{name}
-%attr(755,netdata,netdata) %dir %{_localstatedir}/lib/%{name}/registry
-
-%defattr(-,root,root,-)
-%{_libexecdir}/%{name}/plugins.d
-# subpackages
-%exclude %{_libexecdir}/%{name}/plugins.d/node.d.plugin
-%exclude %{_libexecdir}/%{name}/plugins.d/charts.d*
-
-%defattr(-,root,netdata,-)
+%dir %{_libexecdir}/%{name}/plugins.d
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/alarm-notify.sh
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/anonymous-statistics.sh
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/cgroup-network-helper.sh
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/get-kubernetes-labels.sh
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/ioping.plugin
+%{_libexecdir}/%{name}/plugins.d/loopsleepms.sh.inc
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/system-info.sh
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/systemd-units.plugin
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/tc-qos-helper.sh
+%if %{with go}
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/cgroup-name
+%endif
+# setns() into cgroups and running cgroup-network-helper.sh as root
+%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/cgroup-network
+# finding processes listening on local sockets
+%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/local-listeners
+# running a fixed set of privileged commands for collectors
+%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/ndsudo
+%caps(cap_dac_read_search,cap_sys_ptrace=ep) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/apps.plugin
+%caps(cap_dac_read_search,cap_audit_control=ep) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/debugfs.plugin
+%caps(cap_sys_admin,cap_sys_ptrace,cap_dac_read_search=ep) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/network-viewer.plugin
+%caps(cap_perfmon=ep) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/perf.plugin
+%caps(cap_dac_read_search=ep) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/slabinfo.plugin
+%caps(cap_dac_read_search=ep) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/systemd-journal.plugin
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/build-info-cmake-cache.gz
%{_datadir}/%{name}/web
+%attr(770,netdata,netdata) %dir /var/cache/%{name}
+%attr(770,netdata,netdata) %dir /var/lib/%{name}
+%attr(770,netdata,netdata) %dir /var/lib/%{name}/cloud.d
+%attr(770,netdata,netdata) %dir /var/lib/%{name}/registry
+%attr(755,netdata,root) %dir /var/log/%{name}
+%attr(775,root,netdata) %dir /var/run/%{name}
%files charts
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/charts.d.conf
%dir %{_sysconfdir}/%{name}/charts.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/charts.d/*.conf
-%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/charts.d*
+%{_prefix}/lib/%{name}/conf.d/charts.d.conf
+%{_prefix}/lib/%{name}/conf.d/charts.d
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/charts.d.dryrun-helper.sh
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/charts.d.plugin
%dir %{_libexecdir}/%{name}/charts.d
-%{_libexecdir}/%{name}/charts.d/README.md
%attr(755,root,root) %{_libexecdir}/%{name}/charts.d/*.chart.sh
-%files nodejs
+%if %{with cups}
+%files cups
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/node.d.conf
-%dir %{_sysconfdir}/%{name}/node.d
-%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/node.d.plugin
-%dir %{_libexecdir}/%{name}/node.d
-%{_libexecdir}/%{name}/node.d/README.md
-%{_libexecdir}/%{name}/node.d/node_modules
-%attr(755,root,root) %{_libexecdir}/%{name}/node.d/*.node.js
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/cups.plugin
+%endif
+
+%if %{with freeipmi}
+%files freeipmi
+%defattr(644,root,root,755)
+%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/freeipmi.plugin
+%endif
+
+%if %{with go}
+%files go
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/nd-mcp
+%dir %{_sysconfdir}/%{name}/go.d
+%{_prefix}/lib/%{name}/conf.d/go.d.conf
+%{_prefix}/lib/%{name}/conf.d/go.d
+%{_prefix}/lib/%{name}/conf.d/scripts.d.conf
+%{_prefix}/lib/%{name}/conf.d/scripts.d
+# CAP_NET_ADMIN for WireGuard, CAP_NET_RAW for ping, CAP_NET_BIND_SERVICE for SNMP traps on UDP/162
+%caps(cap_dac_read_search,cap_net_admin,cap_net_raw,cap_net_bind_service=eip) %attr(750,root,netdata) %{_libexecdir}/%{name}/plugins.d/go.d.plugin
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/scripts.d.plugin
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/snmp-trap-profile-gen
+%endif
+
+%if %{with nfacct}
+%files nfacct
+%defattr(644,root,root,755)
+%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/nfacct.plugin
+%endif
%files python
%defattr(644,root,root,755)
%dir %{_sysconfdir}/%{name}/python.d
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/python.d.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/python.d/*.conf
+%{_prefix}/lib/%{name}/conf.d/python.d.conf
+%{_prefix}/lib/%{name}/conf.d/python.d
+%attr(755,root,root) %{_libexecdir}/%{name}/plugins.d/python.d.plugin
%dir %{_libexecdir}/%{name}/python.d
-%{_libexecdir}/%{name}/python.d/README.md
%attr(755,root,root) %{_libexecdir}/%{name}/python.d/*.chart.py
-
# XXX system packages
-%{_libexecdir}/%{name}/python.d/python-modules-installer.sh
-%dir %{_libexecdir}/%{name}/python.d/python_modules
-%{_libexecdir}/%{name}/python.d/python_modules/*.py
-%{_libexecdir}/%{name}/python.d/python_modules/pyyaml2
-%{_libexecdir}/%{name}/python.d/python_modules/pyyaml3
-%{_libexecdir}/%{name}/python.d/python_modules/urllib3
+%{_libexecdir}/%{name}/python.d/python_modules
+
+%if %{with xenstat}
+%files xenstat
+%defattr(644,root,root,755)
+%attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/xenstat.plugin
+%endif
diff --git a/netdata-system-libs.patch b/netdata-system-libs.patch
new file mode 100644
index 0000000..d145907
--- /dev/null
+++ b/netdata-system-libs.patch
@@ -0,0 +1,273 @@
+Link against system SQLite, Judy, libsensors and libbacktrace instead of the
+copies upstream downloads at build time (SQLite, libbacktrace) or bundles
+(Judy, libsensors); SQLite's recover extension is not part of libsqlite3 and
+is built from NETDATA_SQLITE_RECOVER_SOURCE_DIR.
+Based on https://distfiles.gentoo.org/pub/dev/arthurzam@gentoo.org/net-analyzer/netdata/netdata-2.11.1-system-libs.patch.xz
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2499,29 +2499,9 @@ set(PROMETHEUS_REMOTE_WRITE_EXPORTING_FILES
+ # build libjudy
+ #
+
+-add_library(judy STATIC ${LIBJUDY_SOURCES})
+-
+-target_compile_options(judy PRIVATE
+- -Wno-all -Wno-extra
+- -Wno-shadow
+- -Wformat
+-)
+-
+-target_compile_definitions(judy PRIVATE
+- JUDYL
+- $<$<EQUAL:${CMAKE_SIZEOF_VOID_P},8>:JU_64BIT>
+-)
+-
+-target_include_directories(judy PUBLIC
+- src/libnetdata/libjudy/vendored
+- src/libnetdata/libjudy/vendored/JudyCommon
+-)
+-
+-set_source_files_properties(${LIBJUDY_PREV_FILES} PROPERTIES COMPILE_OPTIONS "-DJUDYPREV")
+-set_source_files_properties(${LIBJUDY_NEXT_FILES} PROPERTIES COMPILE_OPTIONS "-DJUDYNEXT")
+-set_source_files_properties(src/libnetdata/libjudy/vendored/JudyL/j__udyLGet.c PROPERTIES COMPILE_OPTIONS "-DJUDYGETINLINE")
+-set_source_files_properties(src/libnetdata/libjudy/vendored/JudyL/JudyLByCount.c PROPERTIES COMPILE_OPTIONS "-DNOSMARTJBB -DNOSMARTJBU -DNOSMARTJLB")
+-set_source_files_properties(JudyLTables.c PROPERTIES COMPILE_OPTIONS "-I${CMAKE_SOURCE_DIR}/src/libnetdata/libjudy/src/JudyL")
++# use system libJudy (JudyMalloc/JudyFree are still interposed by libnetdata)
++find_path(JUDY_INCLUDE_DIR Judy.h REQUIRED)
++find_library(JUDY_LIBRARY Judy REQUIRED)
+
+ set(NETIPC_PROTOCOL_FILES
+ src/libnetdata/netipc/src/protocol/netipc_protocol.c
+@@ -2729,7 +2709,8 @@ if(OS_WINDOWS)
+ endif()
+
+ # judy
+-target_link_libraries(libnetdata PUBLIC judy)
++target_include_directories(libnetdata PUBLIC ${JUDY_INCLUDE_DIR})
++target_link_libraries(libnetdata PUBLIC ${JUDY_LIBRARY})
+
+ netdata_add_jsonc_to_target(libnetdata)
+
+@@ -2923,17 +2904,11 @@ if(ENABLE_PLUGIN_DEBUGFS)
+ # Add executable for debugfs.plugin
+ add_executable(debugfs.plugin ${DEBUGFS_PLUGIN_FILES})
+
+- # Add vendored libsensors library
+- add_subdirectory(src/collectors/debugfs.plugin/libsensors)
+-
+- # Link debugfs.plugin with vendored libsensors
+- target_link_libraries(debugfs.plugin PRIVATE vendored_libsensors)
+-
+- # Include vendored libsensors headers
+- target_include_directories(debugfs.plugin PRIVATE
+- src/collectors/debugfs.plugin/libsensors/vendored/lib
+- ${CMAKE_CURRENT_BINARY_DIR}/src/collectors/debugfs.plugin/libsensors # For generated headers
+- )
++ # use system libsensors
++ find_path(SENSORS_INCLUDE_DIR sensors/sensors.h REQUIRED)
++ find_library(SENSORS_LIBRARY sensors REQUIRED)
++ target_link_libraries(debugfs.plugin PRIVATE ${SENSORS_LIBRARY})
++ target_include_directories(debugfs.plugin PRIVATE ${SENSORS_INCLUDE_DIR})
+
+ # Link against libnetdata and optionally libcap
+ target_link_libraries(debugfs.plugin PRIVATE libnetdata ${CAP_LIBRARIES})
+diff --git a/packaging/cmake/Modules/NetdataBacktrace.cmake b/packaging/cmake/Modules/NetdataBacktrace.cmake
+--- a/packaging/cmake/Modules/NetdataBacktrace.cmake
++++ b/packaging/cmake/Modules/NetdataBacktrace.cmake
+@@ -1,52 +1,19 @@
+ # SPDX-License-Identifier: GPL-3.0-or-later
+ # Functions and macros for handling of libbacktrace
+ #
+-# Handle bundling of libbacktrace.
++# Use system libbacktrace.
+ #
+-# This clones and builds libbacktrace using ExternalProject functionality.
+-
+-include(ExternalProject)
+
+ function(netdata_bundle_libbacktrace)
+- message(STATUS "Preparing libbacktrace")
+-
+- set(libbacktrace_SOURCE_DIR "${CMAKE_BINARY_DIR}/libbacktrace-src")
+- set(libbacktrace_BINARY_DIR "${CMAKE_BINARY_DIR}/libbacktrace-build")
+- set(libbacktrace_INSTALL_DIR "${CMAKE_BINARY_DIR}/libbacktrace-install")
+- set(libbacktrace_LIBRARY "${libbacktrace_INSTALL_DIR}/lib/libbacktrace.a")
+-
+- # Clone and build libbacktrace
+- ExternalProject_Add(
+- libbacktrace
+- GIT_REPOSITORY https://github.com/ianlancetaylor/libbacktrace.git
+- SOURCE_DIR "${libbacktrace_SOURCE_DIR}"
+- BINARY_DIR "${libbacktrace_BINARY_DIR}"
+- CONFIGURE_COMMAND "${libbacktrace_SOURCE_DIR}/configure" --prefix=${libbacktrace_INSTALL_DIR} --enable-static
+- BUILD_COMMAND make install
+- INSTALL_COMMAND ""
+- BUILD_BYPRODUCTS "${libbacktrace_LIBRARY}"
+- EXCLUDE_FROM_ALL 1
+- UPDATE_DISCONNECTED ON
+- )
++ find_path(LIBBACKTRACE_INCLUDE_DIR backtrace.h REQUIRED)
++ find_library(LIBBACKTRACE_LIBRARY backtrace REQUIRED)
+
+- # Create an imported library target
+- add_library(libbacktrace_library STATIC IMPORTED GLOBAL)
+- set_property(
+- TARGET libbacktrace_library
+- PROPERTY IMPORTED_LOCATION "${libbacktrace_LIBRARY}"
+- )
+- add_dependencies(libbacktrace_library libbacktrace)
+-
+- # Export variables to parent scope
+- set(NETDATA_LIBBACKTRACE_INCLUDE_DIRS "${libbacktrace_INSTALL_DIR}/include" PARENT_SCOPE)
+- set(NETDATA_LIBBACKTRACE_LIBRARIES libbacktrace_library PARENT_SCOPE)
++ set(NETDATA_LIBBACKTRACE_INCLUDE_DIRS "${LIBBACKTRACE_INCLUDE_DIR}" PARENT_SCOPE)
++ set(NETDATA_LIBBACKTRACE_LIBRARIES "${LIBBACKTRACE_LIBRARY}" PARENT_SCOPE)
+ set(HAVE_LIBBACKTRACE TRUE PARENT_SCOPE)
+-
+- message(STATUS "Finished preparing libbacktrace")
+ endfunction()
+
+ function(netdata_add_libbacktrace_to_target _target)
+ target_include_directories(${_target} BEFORE PUBLIC "${NETDATA_LIBBACKTRACE_INCLUDE_DIRS}")
+ target_link_libraries(${_target} PUBLIC ${NETDATA_LIBBACKTRACE_LIBRARIES})
+- add_dependencies(${_target} libbacktrace)
+ endfunction()
+diff --git a/packaging/cmake/Modules/NetdataSQLite.cmake b/packaging/cmake/Modules/NetdataSQLite.cmake
+--- a/packaging/cmake/Modules/NetdataSQLite.cmake
++++ b/packaging/cmake/Modules/NetdataSQLite.cmake
+@@ -1,105 +1,30 @@
+ # SPDX-License-Identifier: GPL-3.0-or-later
+ # Functions and macros for handling of SQLite
+ #
+-# Handle bundling of SQLite.
+-#
+-# This fetches the SQLite source tree (via tarball or git clone),
+-# generates the amalgamation at build time (with --enable-update-limit
+-# so the parser supports UPDATE/DELETE ... LIMIT), then compiles it as
+-# a separate static library that links into libnetdata.
+-
+-include(ExternalProject)
+-
+-set(SQLITE_VERSION "3.53.4")
+-set(SQLITE_VERSION_NUMBER "3530400")
+-set(SQLITE_VERSION_YEAR "2026")
+-
+-set(SQLITE_TARBALL_SHA256 "d18fa15aec74d8c17e1463f861095adc01b5ad190256acb4f91d22f0368d232b")
+-set(SQLITE_GIT_SHA "b09c88c14082339b66c7b7158d609a771e64ca69") # tag is: version-${SQLITE_VERSION}
++# Use system SQLite, and only build the recover extension
++# (not part of libsqlite3) from NETDATA_SQLITE_RECOVER_SOURCE_DIR.
+
+-option(SQLITE_USE_GIT "Fetch SQLite sources via git clone instead of tarball" OFF)
++set(NETDATA_SQLITE_RECOVER_SOURCE_DIR "" CACHE PATH "Path to SQLite ext/recover sources")
+
+ function(netdata_bundle_sqlite3)
+- message(STATUS "Preparing SQLite ${SQLITE_VERSION}")
++ pkg_check_modules(SQLITE3 REQUIRED sqlite3)
+
+- set(sqlite_SOURCE_DIR "${CMAKE_BINARY_DIR}/sqlite-src")
+- set(sqlite_BINARY_DIR "${CMAKE_BINARY_DIR}/sqlite-build")
+- set(sqlite_OUTPUT_DIR "${CMAKE_BINARY_DIR}/sqlite-output")
+-
+- file(MAKE_DIRECTORY "${sqlite_OUTPUT_DIR}")
+-
+- if(SQLITE_USE_GIT)
+- message(STATUS "Fetching SQLite via git clone")
+- set(SQLITE_FETCH_ARGS
+- GIT_REPOSITORY https://github.com/sqlite/sqlite.git
+- GIT_TAG "${SQLITE_GIT_SHA}"
+- )
+- else()
+- message(STATUS "Fetching SQLite via tarball")
+- set(SQLITE_FETCH_ARGS
+- URL "https://www.sqlite.org/${SQLITE_VERSION_YEAR}/sqlite-src-${SQLITE_VERSION_NUMBER}.zip"
+- URL_HASH "SHA256=${SQLITE_TARBALL_SHA256}"
+- )
+- endif()
+-
+- ExternalProject_Add(
+- sqlite_project
+- ${SQLITE_FETCH_ARGS}
+- SOURCE_DIR "${sqlite_SOURCE_DIR}"
+- BINARY_DIR "${sqlite_BINARY_DIR}"
+- CONFIGURE_COMMAND "${sqlite_SOURCE_DIR}/configure" --enable-update-limit
+- # GNU Make jobserver flags are not understood by FreeBSD make.
+- BUILD_COMMAND "${CMAKE_COMMAND}" -E env MAKEFLAGS= make sqlite3.c sqlite3.h
+- INSTALL_COMMAND ${CMAKE_COMMAND} -E copy
+- "${sqlite_BINARY_DIR}/sqlite3.c"
+- "${sqlite_BINARY_DIR}/sqlite3.h"
+- "${sqlite_SOURCE_DIR}/ext/recover/sqlite3recover.c"
+- "${sqlite_SOURCE_DIR}/ext/recover/sqlite3recover.h"
+- "${sqlite_SOURCE_DIR}/ext/recover/dbdata.c"
+- "${sqlite_OUTPUT_DIR}"
+- BUILD_BYPRODUCTS
+- "${sqlite_OUTPUT_DIR}/sqlite3.c"
+- "${sqlite_OUTPUT_DIR}/sqlite3.h"
+- "${sqlite_OUTPUT_DIR}/sqlite3recover.c"
+- "${sqlite_OUTPUT_DIR}/sqlite3recover.h"
+- "${sqlite_OUTPUT_DIR}/dbdata.c"
+- EXCLUDE_FROM_ALL 1
+- UPDATE_DISCONNECTED ON
++ set(SQLITE_RECOVER_SOURCES
++ "${NETDATA_SQLITE_RECOVER_SOURCE_DIR}/sqlite3recover.c"
++ "${NETDATA_SQLITE_RECOVER_SOURCE_DIR}/dbdata.c"
+ )
+
+- set(SQLITE_SOURCES
+- "${sqlite_OUTPUT_DIR}/sqlite3.c"
+- "${sqlite_OUTPUT_DIR}/sqlite3recover.c"
+- "${sqlite_OUTPUT_DIR}/dbdata.c"
++ add_library(sqlite3recover STATIC ${SQLITE_RECOVER_SOURCES})
++ target_compile_options(sqlite3recover PRIVATE -Wno-unused-parameter ${SQLITE3_CFLAGS_OTHER})
++ target_include_directories(sqlite3recover PUBLIC
++ "${NETDATA_SQLITE_RECOVER_SOURCE_DIR}"
++ ${SQLITE3_INCLUDE_DIRS}
+ )
++ target_link_libraries(sqlite3recover PUBLIC ${SQLITE3_LDFLAGS})
+
+- set_source_files_properties(${SQLITE_SOURCES} PROPERTIES GENERATED TRUE)
+-
+- add_library(sqlite3 STATIC ${SQLITE_SOURCES})
+-
+- target_compile_definitions(sqlite3 PRIVATE
+- SQLITE_ENABLE_UPDATE_DELETE_LIMIT
+- SQLITE_ENABLE_MEMORY_MANAGEMENT
+- SQLITE_OMIT_LOAD_EXTENSION
+- SQLITE_ENABLE_DBSTAT_VTAB
+- SQLITE_ENABLE_DBPAGE_VTAB
+- )
+-
+- target_compile_options(sqlite3 PRIVATE -Wno-unused-parameter)
+-
+- target_include_directories(sqlite3 PUBLIC "${sqlite_OUTPUT_DIR}")
+-
+- add_dependencies(sqlite3 sqlite_project)
+-
+- # Export variables to parent scope
+- set(NETDATA_SQLITE_INCLUDE_DIRS "${sqlite_OUTPUT_DIR}" PARENT_SCOPE)
+- set(NETDATA_SQLITE_LIBRARIES sqlite3 PARENT_SCOPE)
+-
+- message(STATUS "Finished preparing SQLite ${SQLITE_VERSION}")
++ set(NETDATA_SQLITE_LIBRARIES sqlite3recover PARENT_SCOPE)
+ endfunction()
+
+ function(netdata_add_sqlite3_to_target _target)
+- target_include_directories(${_target} BEFORE PUBLIC "${NETDATA_SQLITE_INCLUDE_DIRS}")
+ target_link_libraries(${_target} PUBLIC ${NETDATA_SQLITE_LIBRARIES})
+- add_dependencies(${_target} sqlite3)
+ endfunction()
+diff --git a/src/collectors/debugfs.plugin/module-libsensors.c b/src/collectors/debugfs.plugin/module-libsensors.c
+--- a/src/collectors/debugfs.plugin/module-libsensors.c
++++ b/src/collectors/debugfs.plugin/module-libsensors.c
+@@ -5,8 +5,8 @@
+
+ #define NETDATA_CALCULATED_STATES 1
+
+-#include "libsensors/vendored/lib/sensors.h"
+-#include "libsensors/vendored/lib/error.h"
++#include <sensors/sensors.h>
++#include <sensors/error.h>
+
+ typedef short SENSOR_BUS_TYPE;
+ ENUM_STR_MAP_DEFINE(SENSOR_BUS_TYPE) = {
diff --git a/netdata.conf b/netdata.conf
index 0586e15..6904c96 100644
--- a/netdata.conf
+++ b/netdata.conf
@@ -7,9 +7,6 @@
[global]
run as user = netdata
- web files owner = root
- web files group = netdata
[registry]
enabled = no
- registry db directory = /var/lib/netdata/registry
diff --git a/netdata.init b/netdata.init
index 2956ac9..195b47d 100755
--- a/netdata.init
+++ b/netdata.init
@@ -39,7 +39,7 @@ start() {
fi
msg_starting "Netdata Daemon"
- daemon /usr/sbin/netdata
+ daemon /usr/sbin/netdata -P $PIDFILE
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/netdata
}
diff --git a/nodejs.patch b/nodejs.patch
deleted file mode 100644
index 340f35c..0000000
--- a/nodejs.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- netdata-1.8.0/plugins.d/node.d.plugin.orig 2017-12-02 09:30:52.141653204 +0100
-+++ netdata-1.8.0/plugins.d/node.d.plugin 2017-12-02 09:36:15.688316178 +0100
-@@ -1,12 +1,5 @@
--#!/usr/bin/env bash
--':' //; exec "$(command -v nodejs || command -v node || command -v js || echo "ERROR node.js IS NOT AVAILABLE IN THIS SYSTEM")" "$0" "$@"
--
--// shebang hack from:
--// http://unix.stackexchange.com/questions/65235/universal-node-js-shebang
--
--// Initially this is run as a shell script.
--// Then, the second line, finds nodejs or node or js in the system path
--// and executes it with the shell parameters.
-+#!/usr/bin/node
-+// vim:ft=javascript
-
- // netdata
- // real-time performance and health monitoring, done right!
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/netdata.git/commitdiff/f3596fc0a0e53209afe7900d8176691025120c35
More information about the pld-cvs-commit
mailing list