49b9e7e
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
49b9e7e
%bcond_without systemd
49b9e7e
%else
49b9e7e
%bcond_with systemd
49b9e7e
%endif
49b9e7e
5a8991e
# Because libuv-devel and Judy-devel are not available in el8 yet
5a8991e
%if 0%{?rhel} && 0%{?rhel} == 8
5a8991e
%bcond_with dbengine
5a8991e
%else
5a8991e
%bcond_without dbengine
5a8991e
%endif
5a8991e
49b9e7e
%if 0%{?rhel} && 0%{?rhel} <= 7
49b9e7e
# This is temporary and should eventually be resolved. This bypasses
49b9e7e
# the default rhel __os_install_post which throws a python compile
49b9e7e
# error.
49b9e7e
%global __os_install_post %{nil}
49b9e7e
%endif
49b9e7e
49b9e7e
# We use some plugins which need suid
49b9e7e
%global  _hardened_build 1
49b9e7e
548f5c1
# Build release candidate
5a8991e
%global upver        1.20.0
548f5c1
#global rcver        rc0
548f5c1
49b9e7e
Name:           netdata
548f5c1
Version:        %{upver}%{?rcver:~%{rcver}}
5a8991e
Release:        1%{?dist}
49b9e7e
Summary:        Real-time performance monitoring
49b9e7e
# For a breakdown of the licensing, see LICENSE-REDISTRIBUTED.md
49b9e7e
License:        GPLv3 and GPLv3+ and ASL 2.0 and CC-BY and MIT and WTFPL 
49b9e7e
URL:            https://github.com/%{name}/%{name}/
548f5c1
Source0:        https://github.com/%{name}/%{name}/archive/v%{upver}%{?rcver:-%{rcver}}/%{name}-%{upver}%{?rcver:-%{rcver}}.tar.gz
49b9e7e
Source1:        netdata.tmpfiles.conf
49b9e7e
Source2:        netdata.init
49b9e7e
Source3:        netdata.conf
5a8991e
Patch0:         netdata-fix-shebang-1.20.0.patch
5a8991e
Patch1:         netdata-fix-shebang-1.20.0.el6.patch
49b9e7e
%if 0%{?fedora}
49b9e7e
# Remove embedded font
5a8991e
Patch10:        netdata-remove-fonts-1.19.0.patch
49b9e7e
%endif
49b9e7e
49b9e7e
BuildRequires:  zlib-devel
49b9e7e
BuildRequires:  git
49b9e7e
BuildRequires:  autoconf
49b9e7e
BuildRequires:  automake
49b9e7e
BuildRequires:  pkgconfig
49b9e7e
BuildRequires:  libuuid-devel
49b9e7e
BuildRequires:  freeipmi-devel
49b9e7e
BuildRequires:  httpd
49b9e7e
BuildRequires:  cppcheck
49b9e7e
BuildRequires:  gcc
5a8991e
%if %{with dbengine}
5a8991e
BuildRequires:  libuv-devel
5a8991e
BuildRequires:  Judy-devel
5a8991e
%endif
5a8991e
BuildRequires:  lz4-devel
5a8991e
BuildRequires:  openssl-devel
5a8991e
BuildRequires:  libmnl-devel
5a8991e
BuildRequires:  make
5a8991e
BuildRequires:  libcurl-devel
5a8991e
BuildRequires:  cups-devel
5a8991e
# Only Fedora
49b9e7e
%if 0%{?fedora}
5a8991e
BuildRequires:  python3
5a8991e
BuildRequires:  autoconf-archive
5a8991e
BuildRequires:  autogen
5a8991e
BuildRequires:  findutils
5a8991e
%else
5a8991e
# Only CentOS
5a8991e
BuildRequires:  python2
49b9e7e
%endif
5a8991e
49b9e7e
%if %{with systemd}
49b9e7e
BuildRequires:  systemd
49b9e7e
%{?systemd_requires}
49b9e7e
%else
49b9e7e
Requires:       initscripts
49b9e7e
Requires:       /sbin/service
49b9e7e
Requires:       /sbin/chkconfig
49b9e7e
%endif
5a8991e
5a8991e
Requires:       nodejs
5a8991e
Requires:       curl
5a8991e
Requires:       nc
5a8991e
%if 0%{?fedora}
5a8991e
Requires:       glyphicons-halflings-fonts
5a8991e
%endif
5a8991e
49b9e7e
Requires:       %{name}-data = %{version}-%{release}
49b9e7e
Requires:       %{name}-conf = %{version}-%{release}
49b9e7e
49b9e7e
%description
49b9e7e
netdata is the fastest way to visualize metrics. It is a resource
49b9e7e
efficient, highly optimized system for collecting and visualizing any
49b9e7e
type of realtime time-series data, from CPU usage, disk activity, SQL
49b9e7e
queries, API calls, web site visitors, etc.
49b9e7e
49b9e7e
netdata tries to visualize the truth of now, in its greatest detail,
49b9e7e
so that you can get insights of what is happening now and what just
49b9e7e
happened, on your systems and applications.
49b9e7e
49b9e7e
%package data
49b9e7e
BuildArch:      noarch
49b9e7e
Summary:        Data files for netdata
49b9e7e
49b9e7e
%description data
49b9e7e
Data files for netdata
49b9e7e
49b9e7e
%package conf
49b9e7e
BuildArch:      noarch
49b9e7e
Summary:        Configuration files for netdata
49b9e7e
49b9e7e
%description conf
49b9e7e
Configuration files for netdata
49b9e7e
49b9e7e
%package freeipmi
49b9e7e
Summary:        FreeIPMI plugin for netdata
49b9e7e
Requires:       %{name}%{?_isa} = %{version}-%{release}
49b9e7e
License:        GPLv3
49b9e7e
49b9e7e
%description freeipmi
49b9e7e
freeipmi plugin for netdata
49b9e7e
49b9e7e
%prep
548f5c1
%setup -qn %{name}-%{upver}%{?rcver:-%{rcver}}
548f5c1
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
49b9e7e
%patch0 -p1
548f5c1
%else
548f5c1
%patch1 -p1
548f5c1
%endif
49b9e7e
%if 0%{?fedora}
49b9e7e
# Remove embedded font(added in requires)
49b9e7e
%patch10 -p1
49b9e7e
rm -rf web/fonts
49b9e7e
%endif
49b9e7e
49b9e7e
%build
49b9e7e
autoreconf -ivf
49b9e7e
%configure \
49b9e7e
    --prefix=%{_prefix} \
49b9e7e
    --sysconfdir=%{_sysconfdir} \
49b9e7e
    --localstatedir=%{_localstatedir} \
49b9e7e
    --enable-plugin-freeipmi \
49b9e7e
    --with-zlib --with-math --with-user=netdata
49b9e7e
%make_build
49b9e7e
49b9e7e
%install
49b9e7e
%make_install
49b9e7e
find %{buildroot} -name '.keep' -delete
49b9e7e
# Unit file
49b9e7e
%if %{with systemd}
49b9e7e
mkdir -p %{buildroot}%{_unitdir}
49b9e7e
mkdir -p %{buildroot}%{_tmpfilesdir}
49b9e7e
install -Dp -m 0644 system/netdata.service %{buildroot}%{_unitdir}/%{name}.service
49b9e7e
install -p -m 0644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf
49b9e7e
%else
49b9e7e
# Init script
49b9e7e
mkdir -p %{buildroot}%{_initrddir}
49b9e7e
install -p -Dp -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/%{name}
49b9e7e
%endif
49b9e7e
mkdir -p %{buildroot}%{_localstatedir}/lib/%{name}
5a8991e
mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
5a8991e
mkdir -p %{buildroot}%{_localstatedir}/cache/%{name}
49b9e7e
49b9e7e
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
49b9e7e
install -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/
49b9e7e
install -p -m 0644 system/netdata.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
49b9e7e
# Conf files must be in /etc, dixit FHS 
49b9e7e
mv %{buildroot}%{_libdir}/%{name}/conf.d %{buildroot}%{_sysconfdir}/%{name}/
49b9e7e
# Scripts must not be in /etc
49b9e7e
mv %{buildroot}%{_sysconfdir}/%{name}/edit-config %{buildroot}%{_libexecdir}/%{name}/edit-config
49b9e7e
# Fix EOL
49b9e7e
sed -i -e 's/\r//' %{buildroot}%{_datadir}/%{name}/web/lib/tableExport-1.6.0.min.js
49b9e7e
# Delete useless hidden dir
49b9e7e
rm -rf %{buildroot}%{_datadir}/%{name}/web/.well-known
49b9e7e
49b9e7e
%check
49b9e7e
# tests cannot be run on el6
49b9e7e
%if 0%{?fedora} >= 17 || 0%{?rhel} >= 7
49b9e7e
./cppcheck.sh
49b9e7e
%endif
49b9e7e
49b9e7e
%pre
49b9e7e
getent group netdata > /dev/null || groupadd -r netdata
49b9e7e
getent passwd netdata > /dev/null || useradd -r -g netdata -c "NetData User" -s /sbin/nologin -d /var/log/%{name} netdata
49b9e7e
49b9e7e
%post
49b9e7e
%if 0%{?systemd_post:1}
49b9e7e
%systemd_post %{name}.service
49b9e7e
%else
49b9e7e
if [ $1 = 1 ]; then
49b9e7e
    # Initial installation
49b9e7e
%if %{with systemd}
49b9e7e
    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
49b9e7e
%else
49b9e7e
    /sbin/chkconfig --add %{name}
49b9e7e
%endif
49b9e7e
fi
49b9e7e
%endif
49b9e7e
echo "The current config file can be downloaded with the following command"
49b9e7e
echo "curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf"
49b9e7e
49b9e7e
%preun
49b9e7e
%if 0%{?systemd_preun:1}
49b9e7e
%systemd_preun %{name}.service
49b9e7e
%else
49b9e7e
if [ "$1" = 0 ] ; then
49b9e7e
    # Package removal, not upgrade
49b9e7e
%if %{with systemd}
49b9e7e
    /bin/systemctl --no-reload disable %{name}.service >/dev/null 2>&1 || :
49b9e7e
    /bin/systemctl stop %{name}.service >/dev/null 2>&1 || :
49b9e7e
%else
49b9e7e
    /sbin/service %{name} stop > /dev/null 2>&1
49b9e7e
    /sbin/chkconfig --del %{name}
49b9e7e
%endif
49b9e7e
fi
49b9e7e
exit 0
49b9e7e
%endif
49b9e7e
49b9e7e
%postun
49b9e7e
%if 0%{?systemd_postun_with_restart:1}
49b9e7e
%systemd_postun_with_restart %{name}.service
49b9e7e
%else
49b9e7e
%if %{with systemd}
49b9e7e
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
49b9e7e
if [ $1 -ge 1 ]; then
49b9e7e
# Package upgrade, not uninstall
49b9e7e
    /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
49b9e7e
fi
49b9e7e
%else
49b9e7e
if [ "$1" -ge 1 ]; then
49b9e7e
    /sbin/service %{name} restart > /dev/null 2>&1
49b9e7e
fi
49b9e7e
exit 0
49b9e7e
%endif
49b9e7e
%endif
49b9e7e
49b9e7e
%triggerun -- netdata
49b9e7e
%if %{with systemd}
49b9e7e
if [ -f /etc/rc.d/init.d/%{name} ]; then
49b9e7e
# Save the current service runlevel info
49b9e7e
# User must manually run systemd-sysv-convert --apply netdata
49b9e7e
# to migrate them to systemd targets
49b9e7e
/usr/bin/systemd-sysv-convert --save %{name} >/dev/null 2>&1 ||:
49b9e7e
49b9e7e
# Run these because the SysV package being removed won't do them
49b9e7e
/sbin/chkconfig --del %{name} >/dev/null 2>&1 || :
49b9e7e
/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
49b9e7e
fi
49b9e7e
%endif
49b9e7e
49b9e7e
%files
49b9e7e
%doc README.md CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTORS.md HISTORICAL_CHANGELOG.md
49b9e7e
%license LICENSE REDISTRIBUTED.md
49b9e7e
%{_sbindir}/%{name}
5a8991e
%{_sbindir}/%{name}-claim.sh
5a8991e
%{_sbindir}/%{name}cli
49b9e7e
%{_libexecdir}/%{name}
49b9e7e
%if %{with systemd}
49b9e7e
%{_unitdir}/%{name}.service
49b9e7e
%{_tmpfilesdir}/%{name}.conf
49b9e7e
%else
49b9e7e
%attr(0755,root,root) %{_initrddir}/%{name}
49b9e7e
%endif
49b9e7e
%attr(4755,root,root) %{_libexecdir}/%{name}/plugins.d/apps.plugin
49b9e7e
%exclude %{_libexecdir}/%{name}/plugins.d/freeipmi.plugin
49b9e7e
%attr(0755, netdata, netdata) %{_localstatedir}/lib/%{name}
49b9e7e
%attr(0755, netdata, netdata) %dir %{_localstatedir}/cache/%{name}
49b9e7e
%attr(0755, netdata, netdata) %dir %{_localstatedir}/log/%{name}
49b9e7e
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
49b9e7e
49b9e7e
%files conf
49b9e7e
%doc README.md
49b9e7e
%license LICENSE REDISTRIBUTED.md
49b9e7e
%dir %{_sysconfdir}/%{name}
49b9e7e
%dir %{_sysconfdir}/%{name}/conf.d
49b9e7e
%dir %{_sysconfdir}/%{name}/conf.d/charts.d
49b9e7e
%dir %{_sysconfdir}/%{name}/conf.d/health.d
49b9e7e
%dir %{_sysconfdir}/%{name}/conf.d/python.d
49b9e7e
%dir %{_sysconfdir}/%{name}/conf.d/statsd.d
49b9e7e
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
49b9e7e
%config(noreplace) %{_sysconfdir}/%{name}/conf.d/*.conf
49b9e7e
%config(noreplace) %{_sysconfdir}/%{name}/conf.d/charts.d/*.conf
49b9e7e
%config(noreplace) %{_sysconfdir}/%{name}/conf.d/health.d/*.conf
49b9e7e
%config(noreplace) %{_sysconfdir}/%{name}/conf.d/python.d/*.conf
49b9e7e
%config(noreplace) %{_sysconfdir}/%{name}/conf.d/statsd.d/*.conf
49b9e7e
49b9e7e
%files data
49b9e7e
%doc README.md
49b9e7e
%license LICENSE REDISTRIBUTED.md
49b9e7e
%dir %{_datadir}/%{name}
49b9e7e
%{_datadir}/%{name}/web
49b9e7e
49b9e7e
49b9e7e
%files freeipmi
49b9e7e
%doc README.md
49b9e7e
%license LICENSE REDISTRIBUTED.md
49b9e7e
%attr(4755,root,root) %{_libexecdir}/%{name}/plugins.d/freeipmi.plugin
49b9e7e
49b9e7e
%changelog
5a8991e
* Sun Mar 01 2020 Didier Fabert <didier.fabert@gmail.com> 1.20.0-1
5a8991e
- Update from upstream
5a8991e
88628e0
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18.1-2
88628e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
88628e0
03e3867
* Sun Oct 20 2019 Didier Fabert <didier.fabert@gmail.com> 1.18.1-1
03e3867
- Update from upstream
03e3867
90642f7
* Thu Oct 17 2019 Didier Fabert <didier.fabert@gmail.com> 1.18.0-1
90642f7
- Update from upstream
90642f7
58fc2d2
* Fri Sep 13 2019 Didier Fabert <didier.fabert@gmail.com> 1.17.1-1
58fc2d2
- Update from upstream
58fc2d2
aa4036c
* Sat Sep 07 2019 Didier Fabert <didier.fabert@gmail.com> 1.17.0-1
aa4036c
- Update from upstream
aa4036c
2fd6fed
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.0-2
2fd6fed
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
2fd6fed
04ff73c
* Mon Jul 08 2019 Didier Fabert <didier.fabert@gmail.com> 1.16.0-1
04ff73c
- Update from upstream
04ff73c
1abe8ae
* Tue May 21 2019 Didier Fabert <didier.fabert@gmail.com> 1.15.0-1
1abe8ae
- Update from upstream
1abe8ae
548f5c1
* Fri Apr 19 2019 Didier Fabert <didier.fabert@gmail.com> 1.14.0-1
548f5c1
- Update from upstream
548f5c1
548f5c1
* Fri Apr 05 2019 Didier Fabert <didier.fabert@gmail.com> 1.14.0~rc0-2
548f5c1
- Remove condition for patch (SRPM must embedded all)
548f5c1
548f5c1
* Thu Apr 04 2019 Didier Fabert <didier.fabert@gmail.com> 1.14.0~rc0-1
548f5c1
- Update from upstream
548f5c1
fbd6984
* Fri Mar 22 2019 Didier Fabert <didier.fabert@gmail.com> 1.13.0-2
fbd6984
- Fix bash and sh path on el6
fbd6984
2719314
* Wed Mar 20 2019 Didier Fabert <didier.fabert@gmail.com> 1.13.0-1
2719314
- Update from upstream
2719314
- Bind to localhost
2719314
49b9e7e
* Sun Mar 03 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.2-3
49b9e7e
- Fix upstream archive name (source0)
49b9e7e
49b9e7e
* Sat Mar 02 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.2-2
49b9e7e
- Fix spec file according to https://bugzilla.redhat.com/show_bug.cgi?id=1684719
49b9e7e
49b9e7e
* Fri Mar 01 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.2-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Sat Feb 23 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.1-3
49b9e7e
- Fix rpmlint errors
49b9e7e
49b9e7e
* Sat Feb 23 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.1-2
49b9e7e
- /usr/share/netdata/web must be owned by netdata user for now
49b9e7e
49b9e7e
* Sat Feb 23 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.1-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Tue Feb 19 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.0-2
49b9e7e
- Don't remove embedded font for el6 and el7, again
49b9e7e
49b9e7e
* Mon Feb 18 2019 Didier Fabert <didier.fabert@gmail.com> 1.12.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Tue Nov 20 2018 Didier Fabert <didier.fabert@gmail.com> 1.11.0-4
49b9e7e
- Don't remove embedded font for el6 and el7, package is not exist
49b9e7e
49b9e7e
* Sun Nov 18 2018 Didier Fabert <didier.fabert@gmail.com> 1.11.0-3
49b9e7e
- Disable tests for el6
49b9e7e
49b9e7e
* Sun Nov 18 2018 Didier Fabert <didier.fabert@gmail.com> 1.11.0-2
49b9e7e
- Re-enable el6 and el7
49b9e7e
49b9e7e
* Sat Nov 17 2018 Didier Fabert <didier.fabert@gmail.com> 1.11.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Mon May 14 2018 Didier Fabert <didier.fabert@gmail.com> 1.10.0-2
49b9e7e
- Remove embedded font files
49b9e7e
- Add data (noarch) subpackage
49b9e7e
- Remove deprecated instructions
49b9e7e
49b9e7e
* Wed Mar 28 2018 Didier Fabert <didier.fabert@gmail.com> 1.10.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Wed Dec 20 2017 Didier Fabert <didier.fabert@gmail.com> 1.9.0-1
49b9e7e
- Update from upstream
49b9e7e
- Move freeipmi plugin to sub package (avoid freeipmi dependency)
49b9e7e
49b9e7e
* Tue Sep 19 2017 Didier Fabert <didier.fabert@gmail.com> 1.8.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Thu Aug 31 2017 Didier Fabert <didier.fabert@gmail.com> 1.7.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Thu Mar 23 2017 Didier Fabert <didier.fabert@gmail.com> 1.6.0-3
49b9e7e
- Fix freeipmi plugin permisions: must be suid to root
49b9e7e
49b9e7e
* Thu Mar 23 2017 Didier Fabert <didier.fabert@gmail.com> 1.6.0-2
49b9e7e
- Enable freeipmi plugin
49b9e7e
49b9e7e
* Thu Mar 23 2017 Didier Fabert <didier.fabert@gmail.com> 1.6.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Mon Jan 23 2017 Didier Fabert <didier.fabert@gmail.com> 1.5.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Thu Dec 01 2016 Didier Fabert <didier.fabert@gmail.com> 1.4.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Wed Sep 07 2016 Didier Fabert <didier.fabert@gmail.com> 1.3.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Wed Jun 15 2016 Didier Fabert <didier.fabert@gmail.com> 1.2.0-2
49b9e7e
- Create missing dir: /var/lib/netdata (useful for registry)
49b9e7e
49b9e7e
* Wed Jun 15 2016 Didier Fabert <didier.fabert@gmail.com> 1.2.0-1
49b9e7e
- Update from upstream
49b9e7e
49b9e7e
* Fri Apr 01 2016 Didier Fabert <didier.fabert@gmail.com> 1.0.0-1
49b9e7e
- First Release