[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