summaryrefslogtreecommitdiff
path: root/graphite-web.spec
diff options
context:
space:
mode:
Diffstat (limited to 'graphite-web.spec')
-rw-r--r--graphite-web.spec133
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}