%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.7i
+Version: 1.1.34
Release: 1
License: GPL v2
Group: Applications/WWW
-Source0: http://www.cacti.net/downloads/%{name}-%{version}-PIA-%{pia_ver}.tar.gz
-# Source0-md5: 669770a7837986971a279104dbb50b75
+Source0: http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
+# Source0-md5: a44aa8f71c29de82318493f066982766
Source2: %{name}.crontab
Source3: %{name}-apache.conf
Source4: %{name}-lighttpd.conf
Source5: %{name}-rrdpath.sql
Source7: %{name}.logrotate
+
Patch1: %{name}-config.patch
-Patch2: %{name}-adodb.patch
+
Patch3: %{name}-ioerror.patch
Patch4: %{name}-webroot.patch
Patch5: %{name}-linux_memory.patch
Patch7: %{name}-ss_disk-array-indices.patch
Patch8: host_name-url.patch
# http://www.cacti.net/download_patches.php
-Patch10: http://www.cacti.net/downloads/patches/%{version}/settings_checkbox.patch
-# Patch10-md5: 930e6c18b692fb94a19ddbd95a529a8b
+# Patch100: ..
URL: http://www.cacti.net/
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-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: php(core) >= %{php_min_version}
+Requires: php(ctype)
+Requires: php(filter)
+Requires: php(gd)
+Requires: php(json)
+Requires: php(ldap)
+Requires: php(mbstring)
+Requires: php(openssl)
+Requires: php(pcre)
+Requires: php(pdo-mysql)
+Requires: php(posix)
+Requires: php(session)
+Requires: php(sockets)
+Requires: php(xml)
+Requires: php(zlib)
Requires: rrdtool
Requires: webapps
Requires: webserver
Requires: webserver(indexfile)
Requires: webserver(php)
Suggests: cacti-spine
-Suggests: php-gd
+Suggests: php(bcmath)
+Suggests: php(ftp)
+Suggests: php(gmp)
+Suggests: php(snmp)
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 -n %{name}-%{version}-PIA-%{pia_ver}
+%setup -q
+
# official patches
-%patch10 -p1
+%if 0%{?PATCH100:1}
+%patch100 -p1
+%endif
%patch1 -p1
-%patch2 -p1
+
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
-%patch8 -p1
+# ?
+# %patch8 -p1
mkdir -p sql
mv *.sql sql
# you should run this sql if your database contains path to %{_datadir}...
cp -p %{SOURCE5} sql
-%{__rm} -r lib/adodb
%{__rm} log/.htaccess
%{__rm} cli/.htaccess
%{__rm} rra/.htaccess
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/{cron.d,logrotate.d},%{_sbindir}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/docs,/etc/{cron.d,logrotate.d},%{_sbindir}}
install -d $RPM_BUILD_ROOT/var/{log,{lib,cache}/%{name}}
cp -p *.php $RPM_BUILD_ROOT%{_appdir}
-cp -a cli images include install lib resource scripts sql $RPM_BUILD_ROOT%{_appdir}
+# dirs that contain index.php are likely to be installed
+# ls -1d */index.php | cut -d"/" -f1 | xargs
+cp -a cache/* $RPM_BUILD_ROOT/var/cache/%{name}
+ln -s /var/cache/%{name} $RPM_BUILD_ROOT%{_appdir}/cache
+cp -a cli formats images include install lib locales mibs plugins 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}
+:> $RPM_BUILD_ROOT/var/log/%{name}/%{name}.log
install -d $RPM_BUILD_ROOT/var/log/archive/%{name}
cp -a rra $RPM_BUILD_ROOT/var/lib/%{name}
cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+%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
%pre
%useradd -u 184 -d /var/lib/%{name} -g http -c "Cacti User" cacti
+%pretrans
+if [ -d "%{_appdir}/cache" ] && [ ! -L "%{_appdir}/cache" ]; then
+ mv -v %{_appdir}/cache{,.rpmsave}
+fi
+exit 0
+
%post
if [ ! -f /var/log/%{name}/cacti.log ]; then
install -m660 -oroot -ghttp /dev/null /var/log/%{name}/cacti.log
fi
-%{_appdir}/cli/upgrade_database.php || :
-
%postun
if [ "$1" = "0" ]; then
%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/txt/manual.txt
+%doc README.md docs/CHANGELOG 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
%dir %{_appdir}
%exclude %{_appdir}/install
%exclude %{_appdir}/docs
-%{_appdir}/resource
-%{_appdir}/sql
-%{_appdir}/lib
-%{_appdir}/include
+%{_appdir}/cache
+%{_appdir}/formats
%{_appdir}/images
+%{_appdir}/include
+%{_appdir}/lib
+%{_appdir}/locales
+%{_appdir}/mibs
%{_appdir}/plugins
+%{_appdir}/resource
+%{_appdir}/sql
%{_appdir}/*.php
%dir %{_appdir}/cli
%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}
+/var/cache/%{name}/index.php
+%attr(730,root,http) %dir /var/cache/%{name}/boost
+%attr(730,root,http) %dir /var/cache/%{name}/mibcache
+%attr(730,root,http) %dir /var/cache/%{name}/realtime
+%attr(730,root,http) %dir /var/cache/%{name}/spikekill
+/var/cache/%{name}/*/.htaccess
+/var/cache/%{name}/*/index.php
%files setup
%defattr(644,root,root,755)