2 %define php_min_version 5.2.13-10
3 %include /usr/lib/rpm/macros.php
4 Summary: Cacti is a PHP frontend for rrdtool
5 Summary(pl.UTF-8): Cacti - frontend w PHP do rrdtoola
10 Group: Applications/WWW
11 Source0: http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
12 # Source0-md5: 8d90642b362f80c46c489c5531e2ba90
13 Source2: %{name}.crontab
14 Source3: %{name}-apache.conf
15 Source4: %{name}-lighttpd.conf
16 Source5: %{name}-rrdpath.sql
17 Source7: %{name}.logrotate
18 Patch0: mysql-socket.patch
19 Patch1: %{name}-config.patch
20 Patch2: %{name}-adodb.patch
21 Patch3: %{name}-ioerror.patch
22 Patch4: %{name}-webroot.patch
23 Patch5: %{name}-linux_memory.patch
24 Patch6: %{name}-log-verbosity.patch
25 Patch7: %{name}-ss_disk-array-indices.patch
26 Patch8: host_name-url.patch
27 # http://www.cacti.net/download_patches.php
29 URL: http://www.cacti.net/
30 BuildRequires: sed >= 4.0
31 Requires(postun): /usr/sbin/userdel
32 Requires(pre): /bin/id
33 Requires(pre): /usr/sbin/useradd
34 Requires: adodb >= 4.67-1.17
35 Requires: cacti-plugin-boost >= 5.0
38 Requires: net-snmp-utils
39 Requires: php(core) >= %{php_min_version}
42 Requires: php(session)
48 Requires: webserver(access)
49 Requires: webserver(alias)
50 Requires: webserver(indexfile)
51 Requires: webserver(php)
56 Provides: cacti(pia) = %{pia_ver}
58 Obsoletes: cacti-add_template
59 Obsoletes: cacti-plugin-update
60 %if "%{pld_release}" != "ac"
61 Conflicts: logrotate < 3.8.0
64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
66 %define _webapps /etc/webapps
67 %define _webapp %{name}
68 %define _sysconfdir %{_webapps}/%{_webapp}
69 %define _appdir /usr/share/%{name}
72 %define _noautopear pear
74 %define _noautophp php-ftp php-bcmath
76 # put it together for rpmbuild
77 %define _noautoreq %{?_noautophp} %{?_noautopear}
80 Cacti is a complete frondend to rrdtool, it stores all of the
81 nessesary information to create graphs and populate them with data in
84 The frontend is completely PHP driven. Along with being able to
85 maintain Graphs, Data Sources, and Round Robin Archives in a database,
86 cacti handles the data gathering also. There is also SNMP support for
87 those used to creating traffic graphs with MRTG.
89 %description -l pl.UTF-8
90 Cacti to pełny frontend do rrdtoola, zapamiętujący wszystkie
91 informacje potrzebne do tworzenia wykresów i wypełniające je danymi w
94 Frontend jest w pełni oparty na PHP. Oprócz zarządzania wykresami,
95 źródłami danych, archiwami Round Robin w bazie danych, cacti obsługuje
96 także gromadzenie danych. Ma także obsługę SNMP przydatną przy
97 tworzeniu wykresów ruchu przy użyciu MRTG.
100 Summary: Cacti setup package
101 Summary(pl.UTF-8): Pakiet do wstępnej konfiguracji Cacti
102 Group: Applications/WWW
103 Requires: %{name} = %{version}-%{release}
104 Suggests: %{name}-doc = %{version}-%{release}
107 Install this package to configure initial Cacti installation. You
108 should uninstall this package when you're done, as it considered
109 insecure to keep the setup files in place.
111 %description setup -l pl.UTF-8
112 Ten pakiet należy zainstalować, aby wstępnie skonfigurować instalację
113 Cacti. Po tym pakiet powinien zostać odinstalowany, jako że jego
114 obecność może być niebezpieczna.
117 Summary: HTML Documentation for Cacti
118 Summary(pl.UTF-8): Dokumentacja do Cacti w formacie HTML
120 Requires: %{name} = %{version}-%{release}
123 HTML Documentation for Cacti.
125 %description doc -l pl.UTF-8
126 Dokumentacja do Cacti w formacie HTML.
148 # you should run this sql if your database contains path to %{_datadir}...
152 %{__rm} log/.htaccess
153 %{__rm} cli/.htaccess
154 %{__rm} rra/.htaccess
156 # must require libs to get fatals on missing files, not include
158 s,include(dirname(__FILE__)."/../include/global.php");,require(dirname(__FILE__)."/../include/global.php");,
159 s,include_once,require_once,
162 # make sure scripts have php shebang
164 /bin.php/!i#!%{_bindir}/php
165 }' scripts/*.php cli/*.php
167 chmod a+rx scripts/*.php cli/*.php
169 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
171 # make sure cacti runs out of the box
172 %{__sed} -i -e 's,new_install,%{version},' sql/cacti.sql
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}}
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}
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}
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}
192 %if "%{pld_release}" == "ac"
193 %{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
196 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
197 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
198 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
201 rm -rf $RPM_BUILD_ROOT
204 %useradd -u 184 -d /var/lib/%{name} -g http -c "Cacti User" cacti
207 if [ ! -f /var/log/%{name}/cacti.log ]; then
208 install -m660 -oroot -ghttp /dev/null /var/log/%{name}/cacti.log
212 if [ "$1" = "0" ]; then
217 %{_appdir}/cli/upgrade_database.php || :
219 %triggerin -- apache1 < 1.3.37-3, apache1-base
220 %webapp_register apache %{_webapp}
222 %triggerun -- apache1 < 1.3.37-3, apache1-base
223 %webapp_unregister apache %{_webapp}
225 %triggerin -- apache < 2.2.0, apache-base
226 %webapp_register httpd %{_webapp}
228 %triggerun -- apache < 2.2.0, apache-base
229 %webapp_unregister httpd %{_webapp}
231 %triggerin -- lighttpd
232 %webapp_register lighttpd %{_webapp}
234 %triggerun -- lighttpd
235 %webapp_unregister lighttpd %{_webapp}
237 %triggerpostun -- %{name} < 0.8.7b-9.5
238 if [ -f /etc/cacti/cacti.cfg.rpmsave ]; then
239 cp -f %{_sysconfdir}/config.php{,.rpmnew}
240 mv /etc/cacti/cacti.cfg.rpmsave %{_sysconfdir}/config.php
244 %defattr(644,root,root,755)
245 %doc docs/CHANGELOG docs/CONTRIB docs/README docs/txt/manual.txt
246 %dir %attr(750,root,http) %{_sysconfdir}
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
248 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
249 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
250 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
251 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
252 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
253 %attr(755,root,root) %{_sbindir}/cacti-poller
255 %exclude %{_appdir}/install
256 %exclude %{_appdir}/docs
266 %attr(755,root,root) %{_appdir}/cli/*
268 %dir %{_appdir}/scripts
269 %attr(755,root,root) %{_appdir}/scripts/*
271 %attr(750,root,http) %dir /var/lib/%{name}
272 %attr(770,root,http) %dir /var/lib/%{name}/rra
273 %attr(730,root,http) %dir /var/log/%{name}
274 %attr(750,root,logs) %dir /var/log/archive/%{name}
275 %attr(660,root,http) %ghost /var/log/%{name}/cacti.log
276 %attr(730,root,http) %dir /var/cache/%{name}
279 %defattr(644,root,root,755)
283 %defattr(644,root,root,755)