]> git.pld-linux.org Git - packages/graphite-web.git/blob - graphite-web.spec
local_settings.py[co] is created to python dir, not sysconfig
[packages/graphite-web.git] / graphite-web.spec
1 Summary:        A Django webapp for enterprise scalable realtime graphing
2 Name:           graphite-web
3 Version:        0.9.10
4 Release:        0.4
5 License:        Apache v2.0
6 Group:          Applications/WWW
7 Source0:        https://github.com/downloads/graphite-project/graphite-web/%{name}-%{version}.tar.gz
8 Source1:        apache.conf
9 Source2:        %{name}.logrotate
10 Patch0:         %{name}-0.9.10-fhs-thirdparty.patch
11 URL:            https://launchpad.net/graphite/
12 BuildRequires:  python-devel
13 BuildRequires:  rpm-pythonprov
14 BuildRequires:  rpmbuild(macros) >= 1.658
15 Requires:       apache-mod_wsgi
16 Requires:       fonts-TTF-DejaVu
17 Requires:       python-django
18 Requires:       python-django_tagging
19 Requires:       python-pycairo
20 Requires:       python-pyparsing
21 Requires:       python-pytz
22 Requires:       python-simplejson
23 Requires:       python-whisper
24 Requires:       webapps
25 BuildArch:      noarch
26 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
27
28 %define         _webapps        /etc/webapps
29 %define         _webapp         %{name}
30 %define         _sysconfdir     %{_webapps}/%{_webapp}
31 %define         _appdir         %{_datadir}/%{_webapp}
32
33 %description
34 Graphite consists of a storage backend and a web-based visualization
35 frontend. Client applications send streams of numeric time-series data
36 to the Graphite backend (called carbon), where it gets stored in
37 fixed-size database files similar in design to RRD. The web frontend
38 provides user interfaces for visualizing this data in graphs as well
39 as a simple URL-based API for direct graph generation.
40
41 Graphite's design is focused on providing simple interfaces (both to
42 users and applications), real-time visualization, high-availability,
43 and enterprise scalability.
44
45 %prep
46 %setup -q
47 # Patch for Filesystem Hierarchy Standard
48 # Remove thridparty libs
49 # https://github.com/hggh/graphite-web-upstream/commit/47361a2707f904a8b817ca96deeddabcdbaaa534.patch
50 %patch0 -p1
51
52 %build
53 %{__python} setup.py build
54
55 %install
56 rm -rf $RPM_BUILD_ROOT
57 %{__python} setup.py install \
58         --skip-build \
59         --optimize=2 \
60         --root=$RPM_BUILD_ROOT
61
62 %py_postclean -x manage.py
63
64 # Create directories
65 install -d $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}
66 install -d $RPM_BUILD_ROOT%{_localstatedir}/log/%{name}
67 install -d $RPM_BUILD_ROOT%{_sysconfdir}
68
69 # Install some default configurations and wsgi
70 install -Dp conf/dashboard.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/dashboard.conf
71 mv $RPM_BUILD_ROOT{%{py_sitescriptdir}/graphite/local_settings.py.example,%{_sysconfdir}/local_settings.py}
72 touch $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite/local_settings.py{c,o}
73 install -Dp conf/graphite.wsgi.example $RPM_BUILD_ROOT%{_datadir}/graphite/%{name}.wsgi
74 install -Dp %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
75 install -Dp %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
76
77 # Configure django /media/ location
78 sed -i 's|##PYTHON_SITELIB##|%{py_sitescriptdir}|' $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
79
80 # Create local_settings symlink
81 ln -s %{_sysconfdir}/local_settings.py $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite
82
83 # Don't ship bins that are not needed for prodcution
84 %{__rm} $RPM_BUILD_ROOT%{_bindir}/{build-index.sh,run-graphite-devel-server.py}
85
86 # Fix permissions
87 %{__chmod} 0755 $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite/manage.py
88
89 # Don't ship thirdparty
90 rm -r $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite/thirdparty
91
92 %clean
93 rm -rf $RPM_BUILD_ROOT
94
95 %triggerin -- apache < 2.2.0, apache-base
96 %webapp_register httpd %{_webapp}
97
98 %triggerun -- apache < 2.2.0, apache-base
99 %webapp_unregister httpd %{_webapp}
100
101 %files
102 %defattr(644,root,root,755)
103 %doc conf/* examples/*
104 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
105 %dir %attr(750,root,http) %{_sysconfdir}
106 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
107 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dashboard.conf
108 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/local_settings.py
109
110 %dir %{py_sitescriptdir}/graphite
111 %{py_sitescriptdir}/graphite/[^l]*.py[co]
112 %{py_sitescriptdir}/graphite/logger.py[co]
113 %{py_sitescriptdir}/graphite/local_settings.py
114 %ghost %{py_sitescriptdir}/graphite/local_settings.py[co]
115 %attr(755,root,root) %{py_sitescriptdir}/graphite/manage.py
116 %{py_sitescriptdir}/graphite/account
117 %{py_sitescriptdir}/graphite/browser
118 %{py_sitescriptdir}/graphite/cli
119 %{py_sitescriptdir}/graphite/composer
120 %{py_sitescriptdir}/graphite/dashboard
121 %{py_sitescriptdir}/graphite/events
122 %{py_sitescriptdir}/graphite/graphlot
123 %{py_sitescriptdir}/graphite/metrics
124 %{py_sitescriptdir}/graphite/render
125 %{py_sitescriptdir}/graphite/templates
126 %{py_sitescriptdir}/graphite/version
127 %{py_sitescriptdir}/graphite/whitelist
128 %{py_sitescriptdir}/graphite_web-%{version}-py*.egg-info
129
130 %dir %{_datadir}/graphite
131 %attr(755,root,root) %{_datadir}/graphite/graphite-web.wsgi
132 %{_datadir}/graphite/webapp
133
134 %attr(775,root,http) %dir %{_localstatedir}/log/%{name}
135 %attr(775,root,http) %dir %{_sharedstatedir}/%{name}
This page took 0.091129 seconds and 4 git commands to generate.