diff options
Diffstat (limited to 'graphite-web.spec')
-rw-r--r-- | graphite-web.spec | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/graphite-web.spec b/graphite-web.spec new file mode 100644 index 0000000..810ccb3 --- /dev/null +++ b/graphite-web.spec @@ -0,0 +1,133 @@ +Summary: A Django webapp for enterprise scalable realtime graphing +Name: graphite-web +Version: 0.9.10 +Release: 0.1 +License: Apache v2.0 +Group: Applications/WWW +Source0: https://github.com/downloads/graphite-project/graphite-web/%{name}-%{version}.tar.gz +Source1: apache.conf +Source2: %{name}.logrotate +Patch0: %{name}-0.9.10-fhs-thirdparty.patch +URL: https://launchpad.net/graphite/ +BuildRequires: python-devel +BuildRequires: rpm-pythonprov +BuildRequires: rpmbuild(macros) >= 1.658 +Requires: apache-mod_wsgi +Requires: fonts-TTF-DejaVu +Requires: python-django +Requires: python-django_tagging +Requires: python-pycairo +Requires: python-pyparsing +Requires: python-pytz +Requires: python-simplejson +Requires: python-whisper +Requires: webapps +BuildArch: noarch +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%define _webapps /etc/webapps +%define _webapp %{name} +%define _sysconfdir %{_webapps}/%{_webapp} +%define _appdir %{_datadir}/%{_webapp} + +%description +Graphite consists of a storage backend and a web-based visualization +frontend. Client applications send streams of numeric time-series data +to the Graphite backend (called carbon), where it gets stored in +fixed-size database files similar in design to RRD. The web frontend +provides user interfaces for visualizing this data in graphs as well +as a simple URL-based API for direct graph generation. + +Graphite's design is focused on providing simple interfaces (both to +users and applications), real-time visualization, high-availability, +and enterprise scalability. + +%prep +%setup -q +# Patch for Filesystem Hierarchy Standard +# Remove thridparty libs +# https://github.com/hggh/graphite-web-upstream/commit/47361a2707f904a8b817ca96deeddabcdbaaa534.patch +%patch0 -p1 + +%build +%{__python} setup.py build + +%install +rm -rf $RPM_BUILD_ROOT +%{__python} setup.py install \ + --skip-build \ + --optimize=2 \ + --root=$RPM_BUILD_ROOT + +%py_postclean -x manage.py + +# Create directories +install -d $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name} +install -d $RPM_BUILD_ROOT%{_localstatedir}/log/%{name} +install -d $RPM_BUILD_ROOT%{_sysconfdir} + +# Install some default configurations and wsgi +install -Dp conf/dashboard.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/dashboard.conf +mv $RPM_BUILD_ROOT{%{py_sitescriptdir}/graphite/local_settings.py.example,%{_sysconfdir}/local_settings.py} +touch $RPM_BUILD_ROOT%{_sysconfdir}/local_settings.py{c,o} +install -Dp conf/graphite.wsgi.example $RPM_BUILD_ROOT%{_datadir}/graphite/%{name}.wsgi +install -Dp %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf +install -Dp %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name} + +# Configure django /media/ location +sed -i 's|##PYTHON_SITELIB##|%{py_sitescriptdir}|' $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf + +# Create local_settings symlink +ln -s %{_sysconfdir}/local_settings.py $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite + +# Don't ship bins that are not needed for prodcution +%{__rm} $RPM_BUILD_ROOT%{_bindir}/{build-index.sh,run-graphite-devel-server.py} + +# Fix permissions +%{__chmod} 0755 $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite/manage.py + +# Don't ship thirdparty +rm -r $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite/thirdparty + +%clean +rm -rf $RPM_BUILD_ROOT + +%triggerin -- apache < 2.2.0, apache-base +%webapp_register httpd %{_webapp} + +%triggerun -- apache < 2.2.0, apache-base +%webapp_unregister httpd %{_webapp} + +%files +%defattr(644,root,root,755) +%doc conf/* examples/* +%config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name} +%dir %attr(750,root,http) %{_sysconfdir} +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dashboard.conf +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local_settings.py +%ghost %{_sysconfdir}/local_settings.pyc +%ghost %{_sysconfdir}/local_settings.pyo + +%dir %{py_sitescriptdir}/graphite +%{py_sitescriptdir}/graphite/*.py[co] +%{py_sitescriptdir}/graphite/local_settings.py +%attr(755,root,root) %{py_sitescriptdir}/graphite/manage.py +%{py_sitescriptdir}/graphite/account +%{py_sitescriptdir}/graphite/browser +%{py_sitescriptdir}/graphite/cli +%{py_sitescriptdir}/graphite/composer +%{py_sitescriptdir}/graphite/dashboard +%{py_sitescriptdir}/graphite/events +%{py_sitescriptdir}/graphite/graphlot +%{py_sitescriptdir}/graphite/metrics +%{py_sitescriptdir}/graphite/render +%{py_sitescriptdir}/graphite/templates +%{py_sitescriptdir}/graphite/version +%{py_sitescriptdir}/graphite/whitelist +%{py_sitescriptdir}/graphite_web-%{version}-py*.egg-info + +%{_datadir}/graphite + +%attr(775,root,http) %dir %{_localstatedir}/log/%{name} +%attr(775,root,http) %dir %{_sharedstatedir}/%{name} |