-%include /usr/lib/rpm/macros.perl
+%define pia_ver 3.1
+%define php_min_version 5.2.13-10
+%include /usr/lib/rpm/macros.php
Summary: Cacti is a PHP frontend for rrdtool
Summary(pl.UTF-8): Cacti - frontend w PHP do rrdtoola
Name: cacti
-Version: 0.8.7b
-Release: 11
-License: GPL
+Version: 0.8.8f
+Release: 1
+License: GPL v2
Group: Applications/WWW
Source0: http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
-# Source0-md5: 63ffca5735b60bc33c68bc880f0e8042
-Source1: %{name}.cfg.php
+# Source0-md5: 8d90642b362f80c46c489c5531e2ba90
Source2: %{name}.crontab
-Source3: http://cactiusers.org/downloads/%{name}-plugin-arch.tar.gz
-# Source3-md5: 7079c1f366e8ea1b26c7e251e6373226
-Source4: %{name}-apache.conf
-Source5: %{name}-lighttpd.conf
-Source6: %{name}-rrdpath.sql
-Patch100: http://www.cacti.net/downloads/patches/0.8.7b/upgrade_from_086k_fix.patch
-Patch101: http://www.cacti.net/downloads/patches/0.8.7b/snmp_auth_none_notice.patch
-Patch102: http://www.cacti.net/downloads/patches/0.8.7b/reset_each_patch.patch
-Patch0: %{name}-config.patch
-Patch1: %{name}-adodb.patch
-Patch2: %{name}-ioerror.patch
-Patch3: %{name}-webroot.patch
-Patch4: %{name}-linux_memory.patch
-Patch5: %{name}-log-verbosity.patch
-Patch6: %{name}-ss_disk-array-indices.patch
+Source3: %{name}-apache.conf
+Source4: %{name}-lighttpd.conf
+Source5: %{name}-rrdpath.sql
+Source7: %{name}.logrotate
+Patch0: mysql-socket.patch
+Patch1: %{name}-config.patch
+Patch2: %{name}-adodb.patch
+Patch3: %{name}-ioerror.patch
+Patch4: %{name}-webroot.patch
+Patch5: %{name}-linux_memory.patch
+Patch6: %{name}-log-verbosity.patch
+Patch7: %{name}-ss_disk-array-indices.patch
+Patch8: host_name-url.patch
+# http://www.cacti.net/download_patches.php
+# Patch100: ..
URL: http://www.cacti.net/
-BuildRequires: rpm-perlprov
BuildRequires: sed >= 4.0
Requires(postun): /usr/sbin/userdel
Requires(pre): /bin/id
Requires(pre): /usr/sbin/useradd
Requires: adodb >= 4.67-1.17
+Requires: cacti-plugin-boost >= 5.0
Requires: crondaemon
Requires: group(http)
Requires: net-snmp-utils
-Requires: php(gd)
+Requires: php(core) >= %{php_min_version}
Requires: php(mysql)
Requires: php(pcre)
+Requires: php(session)
Requires: php(snmp)
Requires: php(xml)
-Requires: php-cli
Requires: rrdtool
Requires: webapps
Requires: webserver
+Requires: webserver(access)
+Requires: webserver(alias)
+Requires: webserver(indexfile)
Requires: webserver(php)
Suggests: cacti-spine
+Suggests: php-bcmath
+Suggests: php-ftp
+Suggests: php-gd
+Provides: cacti(pia) = %{pia_ver}
Provides: user(cacti)
+Obsoletes: cacti-add_template
+Obsoletes: cacti-plugin-update
+%if "%{pld_release}" != "ac"
+Conflicts: logrotate < 3.8.0
+%endif
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir %{_webapps}/%{_webapp}
%define _appdir /usr/share/%{name}
+# bad depsolver
+%define _noautopear pear
+# optional
+%define _noautophp php-ftp php-bcmath
+
+# put it together for rpmbuild
+%define _noautoreq %{?_noautophp} %{?_noautopear}
+
%description
Cacti is a complete frondend to rrdtool, it stores all of the
nessesary information to create graphs and populate them with data in
Dokumentacja do Cacti w formacie HTML.
%prep
-%setup -q -a 3
+%setup -q
+
+# official patches
+%if 0%{?PATCH100:1}
%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-%{__patch} -p1 -s < cacti-plugin-arch/cacti-plugin-0.8.7b-PA-v2.1.diff
+%endif
+
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
mkdir -p sql
mv *.sql sql
# you should run this sql if your database contains path to %{_datadir}...
-cp %{SOURCE6} sql
+cp -p %{SOURCE5} sql
-mv cacti-plugin-arch/pa.sql sql
-rm -rf cacti-plugin-arch
-rm -rf lib/adodb
-rm -f log/.htaccess
-rm -f cli/.htaccess
-rm -f rra/.placeholder
-rm -f plugins/index.php
+%{__rm} -r lib/adodb
+%{__rm} log/.htaccess
+%{__rm} cli/.htaccess
+%{__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
+
+chmod a+rx scripts/*.php cli/*.php
find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
+# make sure cacti runs out of the box
+%{__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,/etc/cron.d,%{_sbindir}}
-install -d $RPM_BUILD_ROOT/var/{log,lib/%{name}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/{cron.d,logrotate.d},%{_sbindir}}
+install -d $RPM_BUILD_ROOT/var/{log,{lib,cache}/%{name}}
-cp -a *.php $RPM_BUILD_ROOT%{_appdir}
-cp -a cli images include install lib plugins resource scripts sql $RPM_BUILD_ROOT%{_appdir}
+cp -p *.php $RPM_BUILD_ROOT%{_appdir}
+cp -a cli images include install lib resource scripts sql $RPM_BUILD_ROOT%{_appdir}
cp -a docs/html $RPM_BUILD_ROOT%{_appdir}/docs/html
mv $RPM_BUILD_ROOT{%{_appdir}/poller.php,%{_sbindir}/cacti-poller}
cp -a log $RPM_BUILD_ROOT/var/log/%{name}
+install -d $RPM_BUILD_ROOT/var/log/archive/%{name}
cp -a rra $RPM_BUILD_ROOT/var/lib/%{name}
-cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
-cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
+mv $RPM_BUILD_ROOT{%{_appdir}/include,%{_sysconfdir}}/config.php
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
+cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
-cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
-cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
-cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
+%if "%{pld_release}" == "ac"
+%{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+%endif
+
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
%clean
rm -rf $RPM_BUILD_ROOT
%userremove cacti
fi
+%post setup
+%{_appdir}/cli/upgrade_database.php || :
+
%triggerin -- apache1 < 1.3.37-3, apache1-base
%webapp_register apache %{_webapp}
%files
%defattr(644,root,root,755)
-%doc docs/CHANGELOG docs/CONTRIB docs/README docs/text/manual.txt
+%doc docs/CHANGELOG docs/CONTRIB docs/README docs/txt/manual.txt
%dir %attr(750,root,http) %{_sysconfdir}
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_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
%attr(750,root,http) %dir /var/lib/%{name}
%attr(770,root,http) %dir /var/lib/%{name}/rra
%attr(730,root,http) %dir /var/log/%{name}
+%attr(750,root,logs) %dir /var/log/archive/%{name}
%attr(660,root,http) %ghost /var/log/%{name}/cacti.log
+%attr(730,root,http) %dir /var/cache/%{name}
%files setup
%defattr(644,root,root,755)