# # spec file for package golang-github-prometheus-prometheus # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2017 Silvio Moioli # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %{go_nostrip} Name: golang-github-prometheus-prometheus Version: 2.7.1 Release: 0 Summary: The Prometheus monitoring system and time series database License: Apache-2.0 Group: System/Management Url: https://prometheus.io/ Source: prometheus-%{version}.tar.xz Source1: prometheus.service Source2: prometheus.yml Patch1: 0001-Do-not-force-the-pure-Go-name-resolver.patch # Lifted from Debian's prometheus package Patch2: 0002-Default-settings.patch %ifarch aarch64 # For some reason the aarch64 build fails with: # + promu build # > prometheus # # github.com/prometheus/prometheus/cmd/prometheus # /usr/lib64/go/pkg/tool/linux_arm64/link: running gcc failed: exit status 1 # /usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../aarch64-suse-linux/bin/ld: cannot find -lpthread # /usr/lib64/gcc/aarch64-suse-linux/4.8/../../../../aarch64-suse-linux/bin/ld: cannot find -lc # collect2: error: ld returned 1 exit status # Adding glibc-devel-static fixes it, but it's odd that this isn't # also a problem on x86_64. BuildRequires: glibc-devel-static %endif BuildRequires: fdupes BuildRequires: golang-github-prometheus-promu BuildRequires: golang-packaging BuildRequires: xz BuildRequires: golang(API) >= 1.11 BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} Requires(pre): shadow %{go_provides} %description Prometheus's main features are: - a multi-dimensional data model (time series identified by metric name and key/value pairs) - a flexible query language to leverage this dimensionality - no reliance on distributed storage; single server nodes are autonomous - time series collection happens via a pull model over HTTP - pushing time series is supported via an intermediary gateway - targets are discovered via service discovery or static configuration - multiple modes of graphing and dashboarding support %prep %setup -q -n prometheus-%{version} %patch1 -p 1 %patch2 -p 1 %build %goprep github.com/prometheus/prometheus GOPATH=%{_builddir}/go promu build %install %goinstall install -D -m0755 %{_builddir}/prometheus-%{version}/prometheus %{buildroot}/%{_bindir}/prometheus install -D -m0755 %{_builddir}/prometheus-%{version}/prometheus %{buildroot}/%{_bindir}/promtool %gosrc install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/prometheus.service install -Dd -m 0755 %{buildroot}%{_sbindir} ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcprometheus install -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/prometheus/prometheus.yml install -Dd -m 0750 %{buildroot}%{_localstatedir}/lib/prometheus install -Dd -m 0750 %{buildroot}%{_localstatedir}/lib/prometheus/metrics %gofilelist %fdupes %{buildroot}/%{_prefix} %pre %service_add_pre prometheus.service getent group prometheus >/dev/null || %{_sbindir}/groupadd -r prometheus getent passwd prometheus >/dev/null || %{_sbindir}/useradd -r -g prometheus -d %{_localstatedir}/lib/prometheus -s /sbin/nologin prometheus %post %service_add_post prometheus.service %preun %service_del_preun prometheus.service %postun %service_del_postun prometheus.service %files -f file.lst %defattr(-,root,root,-) %doc README.md %license LICENSE %{_bindir}/prometheus %{_bindir}/promtool %{_unitdir}/prometheus.service %{_sbindir}/rcprometheus %dir %attr(0750, prometheus, prometheus) %{_localstatedir}/lib/prometheus %dir %attr(0750, prometheus, prometheus) %{_localstatedir}/lib/prometheus/metrics %dir %{_sysconfdir}/prometheus %config(noreplace) %{_sysconfdir}/prometheus/prometheus.yml %changelog