]> git.pld-linux.org Git - packages/cacti.git/blob - cacti.spec
- upgrade_database.php in %post
[packages/cacti.git] / cacti.spec
1 #
2 # Conditional build:
3 %bcond_without  pa              # without plugin archidecture patch
4
5 %define         pia_ver 3.0
6 %include        /usr/lib/rpm/macros.perl
7 Summary:        Cacti is a PHP frontend for rrdtool
8 Summary(pl.UTF-8):      Cacti - frontend w PHP do rrdtoola
9 Name:           cacti
10 Version:        0.8.7h
11 Release:        2
12 License:        GPL
13 Group:          Applications/WWW
14 Source0:        http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
15 # Source0-md5:  58c9371341f49a190ae11a85118e598d
16 Source2:        %{name}.crontab
17 Source3:        %{name}-apache.conf
18 Source4:        %{name}-lighttpd.conf
19 Source5:        %{name}-rrdpath.sql
20 Source6:        %{name}-pa.sql
21 Source7:        %{name}.logrotate
22 # http://docs.cacti.net/manual:087:1_installation.9_pia
23 Source8:        http://www.cacti.net/downloads/pia/%{name}-plugin-%{version}-PA-v%{pia_ver}.tar.gz
24 # Source8-md5:  1f45a65dc76dee368b11f2c78ae89dfb
25 # NOTE: update provides: cacti(pia) when updating the patch
26 Patch0:         %{name}-PA.patch
27 Patch1:         %{name}-config.patch
28 Patch2:         %{name}-adodb.patch
29 Patch3:         %{name}-ioerror.patch
30 Patch4:         %{name}-webroot.patch
31 Patch5:         %{name}-linux_memory.patch
32 Patch6:         %{name}-log-verbosity.patch
33 Patch7:         %{name}-ss_disk-array-indices.patch
34 Patch8:         host_name-url.patch
35 # http://www.cacti.net/download_patches.php
36 #Patch10:       none now
37 URL:            http://www.cacti.net/
38 BuildRequires:  rpm-perlprov
39 BuildRequires:  sed >= 4.0
40 Requires(postun):       /usr/sbin/userdel
41 Requires(pre):  /bin/id
42 Requires(pre):  /usr/sbin/useradd
43 Requires:       adodb >= 4.67-1.17
44 Requires:       crondaemon
45 Requires:       group(http)
46 Requires:       net-snmp-utils
47 Requires:       php-cli
48 Requires:       php-common >= 4:5.2.13-10
49 Requires:       php-mysql
50 Requires:       php-pcre
51 Requires:       php-session
52 Requires:       php-snmp
53 Requires:       php-xml
54 Requires:       rrdtool
55 Requires:       webapps
56 Requires:       webserver
57 Requires:       webserver(access)
58 Requires:       webserver(alias)
59 Requires:       webserver(indexfile)
60 Requires:       webserver(php)
61 Suggests:       cacti-spine
62 Suggests:       php-gd
63 Provides:       cacti(pia) = %{pia_ver}
64 Provides:       user(cacti)
65 Obsoletes:      cacti-add_template
66 Obsoletes:      cacti-plugin-update
67 BuildArch:      noarch
68 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69
70 %define         _webapps        /etc/webapps
71 %define         _webapp         %{name}
72 %define         _sysconfdir     %{_webapps}/%{_webapp}
73 %define         _appdir         /usr/share/%{name}
74
75 %description
76 Cacti is a complete frondend to rrdtool, it stores all of the
77 nessesary information to create graphs and populate them with data in
78 a MySQL database.
79
80 The frontend is completely PHP driven. Along with being able to
81 maintain Graphs, Data Sources, and Round Robin Archives in a database,
82 cacti handles the data gathering also. There is also SNMP support for
83 those used to creating traffic graphs with MRTG.
84
85 %description -l pl.UTF-8
86 Cacti to pełny frontend do rrdtoola, zapamiętujący wszystkie
87 informacje potrzebne do tworzenia wykresów i wypełniające je danymi w
88 bazie MySQL.
89
90 Frontend jest w pełni oparty na PHP. Oprócz zarządzania wykresami,
91 źródłami danych, archiwami Round Robin w bazie danych, cacti obsługuje
92 także gromadzenie danych. Ma także obsługę SNMP przydatną przy
93 tworzeniu wykresów ruchu przy użyciu MRTG.
94
95 %package setup
96 Summary:        Cacti setup package
97 Summary(pl.UTF-8):      Pakiet do wstępnej konfiguracji Cacti
98 Group:          Applications/WWW
99 Requires:       %{name} = %{version}-%{release}
100 Suggests:       %{name}-doc = %{version}-%{release}
101
102 %description setup
103 Install this package to configure initial Cacti installation. You
104 should uninstall this package when you're done, as it considered
105 insecure to keep the setup files in place.
106
107 %description setup -l pl.UTF-8
108 Ten pakiet należy zainstalować, aby wstępnie skonfigurować instalację
109 Cacti. Po tym pakiet powinien zostać odinstalowany, jako że jego
110 obecność może być niebezpieczna.
111
112 %package doc
113 Summary:        HTML Documentation for Cacti
114 Summary(pl.UTF-8):      Dokumentacja do Cacti w formacie HTML
115 Group:          Documentation
116 Requires:       %{name} = %{version}-%{release}
117
118 %description doc
119 HTML Documentation for Cacti.
120
121 %description doc -l pl.UTF-8
122 Dokumentacja do Cacti w formacie HTML.
123
124 %prep
125 %setup -q %{?with_pa:-a8}
126 # official patches
127 #%patch10 -p1
128
129 %if %{with pa}
130 %patch0 -p1
131 # copy images and drop the rest
132 mv cacti-plugin-arch/files/images/* images
133 %{__rm} -r cacti-plugin-arch
134 %endif
135
136 %patch1 -p1
137 %patch2 -p1
138 %patch3 -p1
139 %patch4 -p1
140 %patch5 -p1
141 %patch6 -p1
142 %patch7 -p1
143 %patch8 -p1
144
145 mkdir -p sql
146 mv *.sql sql
147 # you should run this sql if your database contains path to %{_datadir}...
148 cp -p %{SOURCE5} sql
149 cp -p %{SOURCE6} sql
150
151 %{__rm} -r lib/adodb
152 %{__rm} log/.htaccess
153 %{__rm} cli/.htaccess
154 %{__rm} rra/.htaccess
155
156 # must require libs to get fatals on missing files, not include
157 %{__sed} -i -e '
158         s,include(dirname(__FILE__)."/../include/global.php");,require(dirname(__FILE__)."/../include/global.php");,
159         s,include_once,require_once,
160 ' cli/*.php
161
162 # make sure scripts have php shebang
163 %{__sed} -i -e '1{
164     /bin.php/!i#!%{_bindir}/php
165 }' scripts/*.php  cli/*.php
166
167 chmod a+rx scripts/*.php cli/*.php
168
169 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
170
171 # make sure cacti runs out of the box
172 %{__sed} -i -e 's,new_install,%{version},' sql/cacti.sql
173
174 %install
175 rm -rf $RPM_BUILD_ROOT
176 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/{cron.d,logrotate.d},%{_sbindir}}
177 install -d $RPM_BUILD_ROOT/var/{log,{lib,cache}/%{name}}
178
179 cp -p *.php $RPM_BUILD_ROOT%{_appdir}
180 cp -a cli images include install lib resource scripts sql $RPM_BUILD_ROOT%{_appdir}
181 cp -a docs/html $RPM_BUILD_ROOT%{_appdir}/docs/html
182 mv $RPM_BUILD_ROOT{%{_appdir}/poller.php,%{_sbindir}/cacti-poller}
183
184 cp -a log $RPM_BUILD_ROOT/var/log/%{name}
185 install -d $RPM_BUILD_ROOT/var/log/archive/%{name}
186 cp -a rra $RPM_BUILD_ROOT/var/lib/%{name}
187
188 mv $RPM_BUILD_ROOT{%{_appdir}/include,%{_sysconfdir}}/config.php
189 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
190 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
191
192 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
193 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
194 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
195
196 %clean
197 rm -rf $RPM_BUILD_ROOT
198
199 %pre
200 %useradd -u 184 -d /var/lib/%{name} -g http -c "Cacti User" cacti
201
202 %post
203 if [ ! -f /var/log/%{name}/cacti.log ]; then
204         install -m660 -oroot -ghttp /dev/null /var/log/%{name}/cacti.log
205 fi
206
207 %{_appdir}/cli/upgrade_database.php || :
208
209 %postun
210 if [ "$1" = "0" ]; then
211         %userremove cacti
212 fi
213
214 %triggerin -- apache1 < 1.3.37-3, apache1-base
215 %webapp_register apache %{_webapp}
216
217 %triggerun -- apache1 < 1.3.37-3, apache1-base
218 %webapp_unregister apache %{_webapp}
219
220 %triggerin -- apache < 2.2.0, apache-base
221 %webapp_register httpd %{_webapp}
222
223 %triggerun -- apache < 2.2.0, apache-base
224 %webapp_unregister httpd %{_webapp}
225
226 %triggerin -- lighttpd
227 %webapp_register lighttpd %{_webapp}
228
229 %triggerun -- lighttpd
230 %webapp_unregister lighttpd %{_webapp}
231
232 %triggerpostun -- %{name} < 0.8.7b-9.5
233 if [ -f /etc/cacti/cacti.cfg.rpmsave ]; then
234         cp -f %{_sysconfdir}/config.php{,.rpmnew}
235         mv /etc/cacti/cacti.cfg.rpmsave %{_sysconfdir}/config.php
236 fi
237
238 %files
239 %defattr(644,root,root,755)
240 %doc docs/CHANGELOG docs/CONTRIB docs/README docs/txt/manual.txt
241 %dir %attr(750,root,http) %{_sysconfdir}
242 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
243 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
244 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
245 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
246 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
248 %attr(755,root,root) %{_sbindir}/cacti-poller
249 %dir %{_appdir}
250 %exclude %{_appdir}/install
251 %exclude %{_appdir}/docs
252 %{_appdir}/resource
253 %{_appdir}/sql
254 %{_appdir}/lib
255 %{_appdir}/include
256 %{_appdir}/images
257 %{_appdir}/plugins
258 %{_appdir}/*.php
259
260 %dir %{_appdir}/cli
261 %attr(755,root,root) %{_appdir}/cli/*
262
263 %dir %{_appdir}/scripts
264 %attr(755,root,root) %{_appdir}/scripts/*
265
266 %attr(750,root,http) %dir /var/lib/%{name}
267 %attr(770,root,http) %dir /var/lib/%{name}/rra
268 %attr(730,root,http) %dir /var/log/%{name}
269 %attr(750,root,logs) %dir /var/log/archive/%{name}
270 %attr(660,root,http) %ghost /var/log/%{name}/cacti.log
271 %attr(730,root,http) %dir /var/cache/%{name}
272
273 %files setup
274 %defattr(644,root,root,755)
275 %{_appdir}/install
276
277 %files doc
278 %defattr(644,root,root,755)
279 %{_appdir}/docs
This page took 0.098957 seconds and 3 git commands to generate.