+#
+# Conditional build:
+%bcond_without pa # without plugin archidecture patch
+
%include /usr/lib/rpm/macros.perl
Summary: Cacti is a PHP frontend for rrdtool
Summary(pl.UTF-8): Cacti - frontend w PHP do rrdtoola
Name: cacti
-Version: 0.8.7e
-Release: 3
+Version: 0.8.7g
+Release: 4
License: GPL
Group: Applications/WWW
Source0: http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
-# Source0-md5: 7563a58a57d2c6cc0da28cc341a30969
+# Source0-md5: 268421cb1a58d3444f7ecbddb4c4b016
Source1: %{name}.cfg.php
Source2: %{name}.crontab
Source3: %{name}-apache.conf
Source4: %{name}-lighttpd.conf
Source5: %{name}-rrdpath.sql
Source6: %{name}-pa.sql
-Patch0: %{name}-plugin-%{version}-PA-v2.5.diff
+Source7: %{name}.logrotate
+# http://cactiusers.org/wiki/PluginArchitectureInstall
+# http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
+Patch0: %{name}-PA.patch
Patch1: %{name}-config.patch
Patch2: %{name}-adodb.patch
Patch3: %{name}-ioerror.patch
Patch5: %{name}-linux_memory.patch
Patch6: %{name}-log-verbosity.patch
Patch7: %{name}-ss_disk-array-indices.patch
-Patch8: %{name}-rrdresourcecheck.patch
-Patch9: host_name-url.patch
+Patch8: host_name-url.patch
+Patch9: cli-relpath.patch
+# http://www.cacti.net/download_patches.php
+Patch10: data_source_deactivate.patch
+Patch11: graph_list_view.patch
+Patch12: html_output.patch
+Patch13: ldap_group_authenication.patch
+Patch14: script_server_command_line_parse.patch
+Patch15: ping.patch
+Patch16: poller_interval.patch
URL: http://www.cacti.net/
BuildRequires: rpm-perlprov
BuildRequires: sed >= 4.0
Requires: crondaemon
Requires: group(http)
Requires: net-snmp-utils
-Requires: php(gd)
-Requires: php(mysql)
-Requires: php(pcre)
-Requires: php(snmp)
-Requires: php(xml)
Requires: php-cli
+Requires: php-common >= 4:5.2.13-10
+Requires: php-mysql
+Requires: php-pcre
+Requires: php-session
+Requires: php-snmp
+Requires: php-xml
Requires: rrdtool
Requires: webapps
Requires: webserver
Requires: webserver(indexfile)
Requires: webserver(php)
Suggests: cacti-spine
+Suggests: php-gd
Provides: user(cacti)
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%prep
%setup -q
-%patch0 -p1
+%{?with_pa:%patch0 -p1}
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+
%patch1 -p1
%patch2 -p1
%patch3 -p1
cp %{SOURCE5} sql
cp %{SOURCE6} sql
-rm -rf cacti-plugin-arch
-rm -rf lib/adodb
-rm -f log/.htaccess
-rm -f cli/.htaccess
-rm -f rra/.placeholder
+%{__rm} -r cacti-plugin-arch
+%{__rm} -r lib/adodb
+%{__rm} log/.htaccess
+%{__rm} cli/.htaccess
+%{__rm} rra/.placeholder
+%{__rm} rra/.htaccess
-%{__sed} -i -e '1i#!%{_bindir}/php' scripts/*.php
-chmod a+rx scripts/*
+# must require libs to get fatals on missing files, not include
+%{__sed} -i -e '
+ s,include(dirname(__FILE__)."/../include/global.php");,require(dirname(__FILE__)."/../include/global.php");,
+ s,include_once,require_once,
+' cli/*.php
-%{__sed} -i -e '1i#!%{_bindir}/php' cli/*.php
-chmod a+rx cli/*
+# make sure scripts have php shebang
+%{__sed} -i -e '1{
+ /bin.php/!i#!%{_bindir}/php
+}' scripts/*.php cli/*.php
-find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+chmod a+rx scripts/*.php cli/*.php
-rm log/.placeholder
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
# make sure cacti runs out of the box
-sed -e "s,new_install,%{version}," -i sql/cacti.sql
+%{__sed} -i -e 's,new_install,%{version},' sql/cacti.sql
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/cron.d,%{_sbindir}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/{cron.d,logrotate.d},%{_sbindir}}
install -d $RPM_BUILD_ROOT/var/{log,lib/%{name}}
cp -a *.php $RPM_BUILD_ROOT%{_appdir}
cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
+cp -a %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
%attr(755,root,root) %{_sbindir}/cacti-poller
%dir %{_appdir}
%exclude %{_appdir}/install