netdata/netdata.spec

266 lines
8.9 KiB
RPMSpec
Raw Normal View History

2023-01-30 14:29:42 +08:00
%bcond_with netfilteracct
%bcond_without cups
2021-06-24 11:07:00 +08:00
%global _hardened_build 1
# Build release candidate
Name: netdata
2023-01-30 14:29:42 +08:00
Version: 1.37.1
Release: 1
2021-06-24 11:07:00 +08:00
Summary: Real-time performance monitoring
2023-01-30 14:29:42 +08:00
License: GPLv3 and GPLv3+ and ASL 2.0 and CC-BY-4.0 and MIT and WTFPL
2021-06-24 11:07:00 +08:00
URL: https://github.com/%{name}/%{name}/
2023-01-30 14:29:42 +08:00
Source0: https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-v%{version}.tar.gz
2021-06-24 11:07:00 +08:00
Source1: netdata.tmpfiles.conf
Source2: netdata.init
Source3: netdata.conf
2023-01-30 14:29:42 +08:00
Source4: netdata.profile
Source5: README-packager.md
Patch0: netdata-fix-shebang-1.37.0.patch
2021-06-24 11:07:00 +08:00
# Remove embedded font
2023-01-30 14:29:42 +08:00
Patch10: netdata-remove-fonts-1.37.0.patch
BuildRequires: zlib-devel
BuildRequires: git
BuildRequires: autoconf
BuildRequires: autoconf-archive
BuildRequires: automake
BuildRequires: pkgconfig
BuildRequires: libuuid-devel
BuildRequires: freeipmi-devel
BuildRequires: httpd
BuildRequires: gcc
BuildRequires: libuv-devel
BuildRequires: Judy-devel
BuildRequires: lz4-devel
BuildRequires: openssl-devel
BuildRequires: libmnl-devel
BuildRequires: make
BuildRequires: libcurl-devel
2021-06-24 11:07:00 +08:00
BuildRequires: systemd
2023-01-30 14:29:42 +08:00
BuildRequires: openssl-devel
BuildRequires: libpfm-devel
BuildRequires: autogen
# Prometheus
BuildRequires: snappy-devel
BuildRequires: protobuf-devel
BuildRequires: protobuf-c-devel
BuildRequires: findutils
# Cloud client
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: json-c-devel
BuildRequires: libcap-devel
# For tests
BuildRequires: libcmocka-devel
%if %{with cups}
BuildRequires: cups-devel >= 1.7
2021-06-24 11:07:00 +08:00
%endif
2023-01-30 14:29:42 +08:00
%if %{with netfilteracct}
BuildRequires: libnetfilter_acct-devel
%endif
BuildRequires: python3
Requires: nodejs
Requires: curl
Requires: nc
Requires: snappy
Requires: protobuf-c
Requires: protobuf
Requires: logrotate
Requires: %{name}-data = %{version}-%{release}
Requires: %{name}-conf = %{version}-%{release}
2021-06-24 11:07:00 +08:00
%description
netdata is the fastest way to visualize metrics. It is a resource
efficient, highly optimized system for collecting and visualizing any
type of realtime time-series data, from CPU usage, disk activity, SQL
queries, API calls, web site visitors, etc.
netdata tries to visualize the truth of now, in its greatest detail,
so that you can get insights of what is happening now and what just
happened, on your systems and applications.
%package data
BuildArch: noarch
Summary: Data files for netdata
2023-01-30 14:29:42 +08:00
Requires: /usr/sbin/useradd
Requires: /usr/sbin/groupadd
Requires: /usr/bin/systemctl
2021-06-24 11:07:00 +08:00
%description data
Data files for netdata
%package conf
BuildArch: noarch
Summary: Configuration files for netdata
2023-01-30 14:29:42 +08:00
Requires: logrotate
2021-06-24 11:07:00 +08:00
%description conf
Configuration files for netdata
%package freeipmi
Summary: FreeIPMI plugin for netdata
Requires: %{name}%{?_isa} = %{version}-%{release}
License: GPLv3
%description freeipmi
freeipmi plugin for netdata
%prep
2023-01-30 14:29:42 +08:00
%setup -qn %{name}-v%{version}
2021-06-24 11:07:00 +08:00
%patch0 -p1
# Remove embedded font(added in requires)
%patch10 -p1
2023-01-30 14:29:42 +08:00
rm -rf web/fonts web/gui/dashboard/static/media
cp %{SOURCE5} .
2021-06-24 11:07:00 +08:00
%build
autoreconf -ivf
%configure \
--enable-plugin-freeipmi \
2023-01-30 14:29:42 +08:00
%if %{with netfilteracct}
--enable-plugin-nfacct \
%endif
%if %{with cups}
--enable-plugin-cups \
%endif
--with-zlib \
--with-math \
--with-user=netdata
2021-06-24 11:07:00 +08:00
%make_build
%install
%make_install
find %{buildroot} -name '.keep' -delete
# Unit file
mkdir -p %{buildroot}%{_unitdir}
mkdir -p %{buildroot}%{_tmpfilesdir}
2023-01-30 14:29:42 +08:00
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
2021-06-24 11:07:00 +08:00
install -Dp -m 0644 system/netdata.service %{buildroot}%{_unitdir}/%{name}.service
install -p -m 0644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf
2023-01-30 14:29:42 +08:00
install -Dp -m 0644 system/netdata.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/netdata
2021-06-24 11:07:00 +08:00
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}
2023-01-30 14:29:42 +08:00
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
mkdir -p %{buildroot}%{_localstatedir}/cache/%{name}
2021-06-24 11:07:00 +08:00
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
install -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/
install -p -m 0644 system/netdata.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
2023-01-30 14:29:42 +08:00
# Conf files must be in /etc, dixit FHS and it's better in a noarch pkg
2021-06-24 11:07:00 +08:00
mv %{buildroot}%{_libdir}/%{name}/conf.d %{buildroot}%{_sysconfdir}/%{name}/
2023-01-30 14:29:42 +08:00
# Scripts must not be in /etc, /usr/libexec is a better place
2021-06-24 11:07:00 +08:00
mv %{buildroot}%{_sysconfdir}/%{name}/edit-config %{buildroot}%{_libexecdir}/%{name}/edit-config
# Fix EOL
sed -i -e 's/\r//' %{buildroot}%{_datadir}/%{name}/web/lib/tableExport-1.6.0.min.js
2023-01-30 14:29:42 +08:00
# Delete system dir with init scripts or unit files
rm -rf %{buildroot}%{_libdir}/%{name}/system
2021-06-24 11:07:00 +08:00
# Delete useless hidden dir
rm -rf %{buildroot}%{_datadir}/%{name}/web/.well-known
2023-01-30 14:29:42 +08:00
# Delete useless file (ubuntu)
rm -f %{buildroot}%{_sysconfdir}/%{name}/conf.d/ebpf.d/ebpf_kernel_reject_list.txt
for dir in charts.d health.d python.d statsd.d ; do
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/${dir}
done
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
install -p -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/netdata.sh
2021-06-24 11:07:00 +08:00
%check
2023-01-30 14:29:42 +08:00
make tests
2021-06-24 11:07:00 +08:00
2023-01-30 14:29:42 +08:00
%pre data
2021-06-24 11:07:00 +08:00
getent group netdata > /dev/null || groupadd -r netdata
getent passwd netdata > /dev/null || useradd -r -g netdata -c "NetData User" -s /sbin/nologin -d /var/log/%{name} netdata
%post
2023-01-30 14:29:42 +08:00
sed -i -e '/web files group/ s/root/netdata/' /etc/netdata/netdata.conf ||:
2021-06-24 11:07:00 +08:00
%systemd_post %{name}.service
echo "The current config file can be downloaded with the following command"
echo "curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf"
2023-01-30 14:29:42 +08:00
echo "Config should be edited with %{_libexecdir}/%{name}/edit-config"
2021-06-24 11:07:00 +08:00
%preun
%systemd_preun %{name}.service
%postun
%systemd_postun_with_restart %{name}.service
%files
2023-01-30 14:29:42 +08:00
%doc README.md CHANGELOG.md README-packager.md
2021-06-24 11:07:00 +08:00
%license LICENSE REDISTRIBUTED.md
%{_sbindir}/%{name}
2023-01-30 14:29:42 +08:00
%{_sbindir}/%{name}-claim.sh
%{_sbindir}/%{name}cli
%{_libexecdir}/%{name}/*
2021-06-24 11:07:00 +08:00
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/%{name}.conf
2023-01-30 14:29:42 +08:00
%caps(cap_dac_read_search,cap_sys_ptrace=ep) %attr(0750,root,netdata) %{_libexecdir}/%{name}/plugins.d/apps.plugin
%caps(cap_setuid=ep) %attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/cgroup-network
%attr(0750,root,netdata) %{_libexecdir}/%{name}/plugins.d/cgroup-network-helper.sh
%caps(cap_setuid=ep) %attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/perf.plugin
%caps(cap_setuid=ep) %attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/slabinfo.plugin
%if %{with cups}
%attr(0750,root,netdata) %{_libexecdir}/%{name}/plugins.d/cups.plugin
2021-06-24 11:07:00 +08:00
%endif
2023-01-30 14:29:42 +08:00
%exclude %{_libexecdir}/%{name}/edit-config
2021-06-24 11:07:00 +08:00
%exclude %{_libexecdir}/%{name}/plugins.d/freeipmi.plugin
%attr(0755, netdata, netdata) %{_localstatedir}/lib/%{name}
%attr(0755, netdata, netdata) %dir %{_localstatedir}/cache/%{name}
%attr(0755, netdata, netdata) %dir %{_localstatedir}/log/%{name}
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%files conf
%doc README.md
%license LICENSE REDISTRIBUTED.md
%dir %{_sysconfdir}/%{name}
2023-01-30 14:29:42 +08:00
%dir %{_sysconfdir}/%{name}/charts.d
%dir %{_sysconfdir}/%{name}/health.d
%dir %{_sysconfdir}/%{name}/python.d
%dir %{_sysconfdir}/%{name}/statsd.d
2021-06-24 11:07:00 +08:00
%dir %{_sysconfdir}/%{name}/conf.d
%dir %{_sysconfdir}/%{name}/conf.d/charts.d
%dir %{_sysconfdir}/%{name}/conf.d/health.d
%dir %{_sysconfdir}/%{name}/conf.d/python.d
%dir %{_sysconfdir}/%{name}/conf.d/statsd.d
2023-01-30 14:29:42 +08:00
%dir %{_sysconfdir}/%{name}/conf.d/ebpf.d
2021-06-24 11:07:00 +08:00
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
2023-01-30 14:29:42 +08:00
%config %{_sysconfdir}/%{name}/conf.d/*.conf
%config %{_sysconfdir}/%{name}/conf.d/charts.d/*.conf
%config %{_sysconfdir}/%{name}/conf.d/health.d/*.conf
%config %{_sysconfdir}/%{name}/conf.d/python.d/*.conf
%config %{_sysconfdir}/%{name}/conf.d/statsd.d/*.conf
%config %{_sysconfdir}/%{name}/conf.d/ebpf.d/*.conf
%config %{_sysconfdir}/logrotate.d/netdata
%config %{_sysconfdir}/profile.d/netdata.sh
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/edit-config
%{_sysconfdir}/netdata/.install-type
2021-06-24 11:07:00 +08:00
%files data
%doc README.md
%license LICENSE REDISTRIBUTED.md
%dir %{_datadir}/%{name}
2023-01-30 14:29:42 +08:00
%attr(-, root, netdata) %{_datadir}/%{name}/web
2021-06-24 11:07:00 +08:00
%files freeipmi
%doc README.md
%license LICENSE REDISTRIBUTED.md
2023-01-30 14:29:42 +08:00
%caps(cap_setuid=ep) %attr(4750,root,netdata) %{_libexecdir}/%{name}/plugins.d/freeipmi.plugin
2021-06-24 11:07:00 +08:00
%changelog
2023-01-30 14:29:42 +08:00
* Mon Jan 30 2023 wangkai <wangkai385@h-partners.com> - 1.37.1-1
- Upgrade to version 1.37.1 for fix CVE-2023-22496,CVE-2023-22497
* Sat Jan 29 2022 caodongxia <caodongxia@huawei.com> - 1.16.0-3
- remove install requires glyphicons-halfings-fonts
2023-01-30 14:29:42 +08:00
* Wed Aug 04 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.16.0-2
- Fix missing extern in some global variables
2023-01-30 14:29:42 +08:00
* Thu Jun 24 2021 baizhonggui <baizhonggui@huawei.com> - 1.16.0-1
2021-06-24 11:07:00 +08:00
- package init