Blob Blame History Raw
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}

Name:           python-carbon
Version:        0.9.12
Release:        3%{?dist}
Summary:        Back-end data caching and persistence daemon for Graphite
Group:          System Environment/Daemons

License:        ASL 2.0
URL:            https://launchpad.net/graphite/
Source0:        https://github.com/graphite-project/carbon/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1:        %{name}-cache.init
Source2:        %{name}-relay.init
Source3:        %{name}-aggregator.init
Source4:        %{name}.sysconfig
Patch0:         python-carbon-0.9.12-fedora.patch

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:      noarch
BuildRequires:  python-devel, python-setuptools
Requires:       python-whisper >= %{version}, python-twisted-core >= 8.0
Requires(post): chkconfig
Requires(pre):  shadow-utils
Requires(preun): chkconfig, initscripts


%description
Twisted daemon that listens for time-series data and writes this data
out to whisper databases, relays the data or aggregates the data.
Carbon is a data collection and storage agent.


%prep
%setup -q -n carbon-%{version}
# Patch for Filesystem Hierarchy Standard
%patch0 -p1


%build
%{__python} setup.py build


%install
rm -rf %{buildroot}
%{__python} setup.py install -O1 --skip-build --root %{buildroot}

# Temp mv to non .py locations
pushd %{buildroot}/usr/bin/
%{__mv} carbon-aggregator.py carbon-aggregator
%{__mv} carbon-cache.py carbon-cache
%{__mv} carbon-client.py carbon-client
%{__mv} carbon-relay.py carbon-relay
%{__mv} validate-storage-schemas.py validate-storage-schemas
popd

%{__mkdir_p} %{buildroot}%{_sysconfdir}/carbon
%{__mkdir_p} %{buildroot}%{_localstatedir}/log/carbon
%{__mkdir_p} %{buildroot}%{_localstatedir}/run/carbon
%{__mkdir_p} %{buildroot}%{_sharedstatedir}/carbon

# Install system configuration and init scripts
%{__install} -Dp -m0755 %{SOURCE1} %{buildroot}%{_sysconfdir}/init.d/carbon-cache
%{__install} -Dp -m0755 %{SOURCE2} %{buildroot}%{_sysconfdir}/init.d/carbon-relay
%{__install} -Dp -m0755 %{SOURCE3} %{buildroot}%{_sysconfdir}/init.d/carbon-aggregator
%{__install} -Dp -m0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/carbon

# Install default configuration files
%{__mkdir_p} %{buildroot}%{_sysconfdir}/carbon
%{__install} -Dp -m0644 conf/carbon.conf.example %{buildroot}%{_sysconfdir}/carbon/carbon.conf
%{__install} -Dp -m0644 conf/storage-schemas.conf.example %{buildroot}%{_sysconfdir}/carbon/storage-schemas.conf


%pre
getent group carbon >/dev/null || groupadd -r carbon
getent passwd carbon >/dev/null || \
    useradd -r -g carbon -d %{_sharedstatedir}/carbon \
    -s /sbin/nologin -c "Carbon cache daemon" carbon


%preun
if [ $1 -eq 0 ] ; then
    /sbin/service carbon-cache stop >/dev/null 2>&1
    /sbin/chkconfig --del carbon-cache
    /sbin/service carbon-relay stop >/dev/null 2>&1
    /sbin/chkconfig --del carbon-relay
    /sbin/service carbon-aggregator stop >/dev/null 2>&1
    /sbin/chkconfig --del carbon-aggregator
fi


%post
/sbin/chkconfig --add carbon-cache
/sbin/chkconfig --add carbon-relay
/sbin/chkconfig --add carbon-aggregator


%files
%doc LICENSE conf/*
%dir %{_sysconfdir}/carbon
%dir %{_localstatedir}/run/carbon
%{_bindir}/carbon*
%{_bindir}/validate-storage-schemas
%{_sysconfdir}/init.d/carbon-*
%config(noreplace) %{_sysconfdir}/carbon/*
%config(noreplace) %{_sysconfdir}/sysconfig/carbon
%attr(0755,-,-) %{python_sitelib}/carbon/amqp_publisher.py
%attr(0755,-,-) %{python_sitelib}/carbon/amqp_listener.py
%{python_sitelib}/*
%attr(-,carbon,carbon) %{_localstatedir}/log/carbon
%attr(-,carbon,carbon) %{_sharedstatedir}/carbon


%changelog
* Mon Sep 30 2013 Jonathan Steffan <jsteffan@fedoraproject.org> - 0.9.12-3
- Update default runtime user to carbon for carbon-aggregator and
  carbon-relay (RHBZ#1013813)

* Tue Sep 24 2013 Jonathan Steffan <jsteffan@fedoraproject.org> - 0.9.12-2
- Add strict python-whisper Requires (RHBZ#1010432)
- Don't cleanup user and user data on package remove (RHBZ#1010430)

* Mon Sep 02 2013 Jonathan Steffan <jsteffan@fedoraproject.org> - 0.9.12-1
- Update to 0.9.12

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Sat Nov 24 2012 Jonathan Steffan <jsteffan@fedoraproject.org> - 0.9.10-2
- Update spec to build on el5
- Fix python_sitelib definition

* Wed May 30 2012 Jonathan Steffan <jsteffan@fedoraproject.org> - 0.9.10-1
- Initial Package