3 %bcond_without pa # without plugin archidecture patch
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
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
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
46 Requires: net-snmp-utils
48 Requires: php-common >= 4:5.2.13-10
57 Requires: webserver(access)
58 Requires: webserver(alias)
59 Requires: webserver(indexfile)
60 Requires: webserver(php)
63 Provides: cacti(pia) = %{pia_ver}
66 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 %define _webapps /etc/webapps
69 %define _webapp %{name}
70 %define _sysconfdir %{_webapps}/%{_webapp}
71 %define _appdir /usr/share/%{name}
74 Cacti is a complete frondend to rrdtool, it stores all of the
75 nessesary information to create graphs and populate them with data in
78 The frontend is completely PHP driven. Along with being able to
79 maintain Graphs, Data Sources, and Round Robin Archives in a database,
80 cacti handles the data gathering also. There is also SNMP support for
81 those used to creating traffic graphs with MRTG.
83 %description -l pl.UTF-8
84 Cacti to pełny frontend do rrdtoola, zapamiętujący wszystkie
85 informacje potrzebne do tworzenia wykresów i wypełniające je danymi w
88 Frontend jest w pełni oparty na PHP. Oprócz zarządzania wykresami,
89 źródłami danych, archiwami Round Robin w bazie danych, cacti obsługuje
90 także gromadzenie danych. Ma także obsługę SNMP przydatną przy
91 tworzeniu wykresów ruchu przy użyciu MRTG.
94 Summary: Cacti setup package
95 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji Cacti
96 Group: Applications/WWW
97 Requires: %{name} = %{version}-%{release}
98 Suggests: %{name}-doc = %{version}-%{release}
101 Install this package to configure initial Cacti installation. You
102 should uninstall this package when you're done, as it considered
103 insecure to keep the setup files in place.
105 %description setup -l pl.UTF-8
106 Ten pakiet należy zainstalować, aby wstępnie skonfigurować instalację
107 Cacti. Po tym pakiet powinien zostać odinstalowany, jako że jego
108 obecność może być niebezpieczna.
111 Summary: HTML Documentation for Cacti
112 Summary(pl.UTF-8): Dokumentacja do Cacti w formacie HTML
114 Requires: %{name} = %{version}-%{release}
117 HTML Documentation for Cacti.
119 %description doc -l pl.UTF-8
120 Dokumentacja do Cacti w formacie HTML.
123 %setup -q %{?with_pa:-a8}
129 # copy images and drop the rest
130 mv cacti-plugin-arch/files/images/* images
131 %{__rm} -r cacti-plugin-arch
145 # you should run this sql if your database contains path to %{_datadir}...
150 %{__rm} log/.htaccess
151 %{__rm} cli/.htaccess
152 %{__rm} rra/.htaccess
154 # must require libs to get fatals on missing files, not include
156 s,include(dirname(__FILE__)."/../include/global.php");,require(dirname(__FILE__)."/../include/global.php");,
157 s,include_once,require_once,
160 # make sure scripts have php shebang
162 /bin.php/!i#!%{_bindir}/php
163 }' scripts/*.php cli/*.php
165 chmod a+rx scripts/*.php cli/*.php
167 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
169 # make sure cacti runs out of the box
170 %{__sed} -i -e 's,new_install,%{version},' sql/cacti.sql
173 rm -rf $RPM_BUILD_ROOT
174 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/{cron.d,logrotate.d},%{_sbindir}}
175 install -d $RPM_BUILD_ROOT/var/{log,{lib,cache}/%{name}}
177 cp -a *.php $RPM_BUILD_ROOT%{_appdir}
178 cp -a cli images include install lib resource scripts sql $RPM_BUILD_ROOT%{_appdir}
179 cp -a docs/html $RPM_BUILD_ROOT%{_appdir}/docs/html
180 mv $RPM_BUILD_ROOT{%{_appdir}/poller.php,%{_sbindir}/cacti-poller}
182 cp -a log $RPM_BUILD_ROOT/var/log/%{name}
183 install -d $RPM_BUILD_ROOT/var/log/archive/%{name}
184 cp -a rra $RPM_BUILD_ROOT/var/lib/%{name}
186 mv $RPM_BUILD_ROOT{%{_appdir}/include,%{_sysconfdir}}/config.php
187 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
188 cp -a %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
190 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
191 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
192 cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
195 rm -rf $RPM_BUILD_ROOT
198 %useradd -u 184 -d /var/lib/%{name} -g http -c "Cacti User" cacti
201 if [ ! -f /var/log/%{name}/cacti.log ]; then
202 install -m660 -oroot -ghttp /dev/null /var/log/%{name}/cacti.log
206 if [ "$1" = "0" ]; then
210 %triggerin -- apache1 < 1.3.37-3, apache1-base
211 %webapp_register apache %{_webapp}
213 %triggerun -- apache1 < 1.3.37-3, apache1-base
214 %webapp_unregister apache %{_webapp}
216 %triggerin -- apache < 2.2.0, apache-base
217 %webapp_register httpd %{_webapp}
219 %triggerun -- apache < 2.2.0, apache-base
220 %webapp_unregister httpd %{_webapp}
222 %triggerin -- lighttpd
223 %webapp_register lighttpd %{_webapp}
225 %triggerun -- lighttpd
226 %webapp_unregister lighttpd %{_webapp}
228 %triggerpostun -- %{name} < 0.8.7b-9.5
229 if [ -f /etc/cacti/cacti.cfg.rpmsave ]; then
230 cp -f %{_sysconfdir}/config.php{,.rpmnew}
231 mv /etc/cacti/cacti.cfg.rpmsave %{_sysconfdir}/config.php
235 %defattr(644,root,root,755)
236 %doc docs/CHANGELOG docs/CONTRIB docs/README docs/txt/manual.txt
237 %dir %attr(750,root,http) %{_sysconfdir}
238 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
239 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
240 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
241 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
242 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
243 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
244 %attr(755,root,root) %{_sbindir}/cacti-poller
246 %exclude %{_appdir}/install
247 %exclude %{_appdir}/docs
257 %attr(755,root,root) %{_appdir}/cli/*
259 %dir %{_appdir}/scripts
260 %attr(755,root,root) %{_appdir}/scripts/*
262 %attr(750,root,http) %dir /var/lib/%{name}
263 %attr(770,root,http) %dir /var/lib/%{name}/rra
264 %attr(730,root,http) %dir /var/log/%{name}
265 %attr(750,root,logs) %dir /var/log/archive/%{name}
266 %attr(660,root,http) %ghost /var/log/%{name}/cacti.log
267 %attr(730,root,http) %dir /var/cache/%{name}
270 %defattr(644,root,root,755)
274 %defattr(644,root,root,755)