]> git.pld-linux.org Git - packages/cacti.git/blobdiff - cacti.spec
make logrotate compatible with ac
[packages/cacti.git] / cacti.spec
index e9e929c349b88f1383ddf494318c8c91656918dc..a3aa4599163a7aa95c82172cc841d399b8c9d6eb 100644 (file)
@@ -1,40 +1,80 @@
-# TODO
-# - patch source to use adodb system path instead of symlinking
-%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
 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:       4
-License:       GPL
+Version:       0.8.8f
+Release:       1
+License:       GPL v2
 Group:         Applications/WWW
 Source0:       http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
 Group:         Applications/WWW
 Source0:       http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
-# Source0-md5: 63ffca5735b60bc33c68bc880f0e8042
-Patch1:                %{name}-upgrade_from_086k_fix.patch
-Patch2:                http://www.cacti.net/downloads/patches/0.8.7b/snmp_auth_none_notice.patch
-Patch10:       %{name}-plugin-%{version}.diff
-Patch11:       %{name}-config.patch
-Patch12:       %{name}-adodb.patch
-Patch13:       %{name}-url_path.patch
+# Source0-md5: 8d90642b362f80c46c489c5531e2ba90
+Source2:       %{name}.crontab
+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/
 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:      adodb >= 4.67-1.17
+Requires:      cacti-plugin-boost >= 5.0
 Requires:      crondaemon
 Requires:      crondaemon
+Requires:      group(http)
 Requires:      net-snmp-utils
 Requires:      net-snmp-utils
-Requires:      php(gd)
+Requires:      php(core) >= %{php_min_version}
 Requires:      php(mysql)
 Requires:      php(pcre)
 Requires:      php(mysql)
 Requires:      php(pcre)
+Requires:      php(session)
 Requires:      php(snmp)
 Requires:      php(xml)
 Requires:      php(snmp)
 Requires:      php(xml)
-Requires:      php-cli
 Requires:      rrdtool
 Requires:      rrdtool
+Requires:      webapps
 Requires:      webserver
 Requires:      webserver
+Requires:      webserver(access)
+Requires:      webserver(alias)
+Requires:      webserver(indexfile)
 Requires:      webserver(php)
 Suggests:      cacti-spine
 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)
 
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                webadminroot /usr/share/%{name}
+%define                _webapps        /etc/webapps
+%define                _webapp         %{name}
+%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
 
 %description
 Cacti is a complete frondend to rrdtool, it stores all of the
@@ -56,74 +96,189 @@ Frontend jest w pełni oparty na PHP. Oprócz zarządzania wykresami,
 także gromadzenie danych. Ma także obsługę SNMP przydatną przy
 tworzeniu wykresów ruchu przy użyciu MRTG.
 
 także gromadzenie danych. Ma także obsługę SNMP przydatną przy
 tworzeniu wykresów ruchu przy użyciu MRTG.
 
+%package setup
+Summary:       Cacti setup package
+Summary(pl.UTF-8):     Pakiet do wstępnej konfiguracji Cacti
+Group:         Applications/WWW
+Requires:      %{name} = %{version}-%{release}
+Suggests:      %{name}-doc = %{version}-%{release}
+
+%description setup
+Install this package to configure initial Cacti installation. You
+should uninstall this package when you're done, as it considered
+insecure to keep the setup files in place.
+
+%description setup -l pl.UTF-8
+Ten pakiet należy zainstalować, aby wstępnie skonfigurować instalację
+Cacti. Po tym pakiet powinien zostać odinstalowany, jako że jego
+obecność może być niebezpieczna.
+
+%package doc
+Summary:       HTML Documentation for Cacti
+Summary(pl.UTF-8):     Dokumentacja do Cacti w formacie HTML
+Group:         Documentation
+Requires:      %{name} = %{version}-%{release}
+
+%description doc
+HTML Documentation for Cacti.
+
+%description doc -l pl.UTF-8
+Dokumentacja do Cacti w formacie HTML.
+
 %prep
 %setup -q
 %prep
 %setup -q
+
+# official patches
+%if 0%{?PATCH100:1}
+%patch100 -p1
+%endif
+
+%patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch1 -p1
 %patch2 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 
-rm -rf lib/adodb
+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
+
+# 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
+
+# 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
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{webadminroot}
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},/etc/cron.d}
-install -d $RPM_BUILD_ROOT/var/{log,lib/%{name}}
-cp -aRf * $RPM_BUILD_ROOT%{webadminroot}
-ln -s . $RPM_BUILD_ROOT%{webadminroot}/%{name}
-
-# TODO: move this to SOURCES. it's a lot better to backtrack changes
-# if it's a separate file.
-cat << 'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.cfg
-<?php
-$database_type = 'mysql';
-$database_default = 'cacti';
-$database_hostname = 'localhost';
-$database_username = 'cactiuser';
-$database_password = 'cactiuser';
-
-$plugins = array();
-// $plugins[] = 'thold';
-// $plugins[] = 'monitor';
-// $plugins[] = 'discovery';
-
-/* Do not edit this line */
-$config = array();
-
-/* This is full URL Path to the Cacti installation
-   For example, if your cacti was accessible by http://server/cacti/ you would user '/cacti/'
-   as the url path.  For just http://server/ use '/'
-*/
-$config['url_path'] = '/cacti/';
-
-?>
-EOF
-
-mv $RPM_BUILD_ROOT%{webadminroot}/log $RPM_BUILD_ROOT/var/log/%{name}
-ln -sf /var/log/cacti $RPM_BUILD_ROOT%{webadminroot}/log
-
-mv $RPM_BUILD_ROOT%{webadminroot}/rra $RPM_BUILD_ROOT/var/lib/%{name}
-ln -sf /var/lib/%{name}/rra $RPM_BUILD_ROOT%{webadminroot}/rra
-ln -sf %{_datadir}/php/adodb $RPM_BUILD_ROOT%{webadminroot}/lib/adodb
-
-cat  << 'EOF' > $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
-*/5 * * * * http umask 022; %{_bindir}/php %{webadminroot}/poller.php > /dev/null 2>&1
-EOF
+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 -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}
+
+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}
+
+%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
 
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%pre
+%useradd -u 184 -d /var/lib/%{name} -g http -c "Cacti User" cacti
+
+%post
+if [ ! -f /var/log/%{name}/cacti.log ]; then
+       install -m660 -oroot -ghttp /dev/null /var/log/%{name}/cacti.log
+fi
+
+%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}
+
+%triggerun -- apache1 < 1.3.37-3, apache1-base
+%webapp_unregister apache %{_webapp}
+
+%triggerin -- apache < 2.2.0, apache-base
+%webapp_register httpd %{_webapp}
+
+%triggerun -- apache < 2.2.0, apache-base
+%webapp_unregister httpd %{_webapp}
+
+%triggerin -- lighttpd
+%webapp_register lighttpd %{_webapp}
+
+%triggerun -- lighttpd
+%webapp_unregister lighttpd %{_webapp}
+
+%triggerpostun -- %{name} < 0.8.7b-9.5
+if [ -f /etc/cacti/cacti.cfg.rpmsave ]; then
+       cp -f %{_sysconfdir}/config.php{,.rpmnew}
+       mv /etc/cacti/cacti.cfg.rpmsave %{_sysconfdir}/config.php
+fi
+
 %files
 %defattr(644,root,root,755)
 %files
 %defattr(644,root,root,755)
-%doc docs/CHANGELOG docs/CONTRIB docs/README
-%attr(750,root,http) %dir %{_sysconfdir}/%{name}
-%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.cfg
-%attr(770,root,http) %dir /var/log/%{name}
-%attr(660,root,http) %ghost /var/log/%{name}/*.log
+%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
+%exclude %{_appdir}/docs
+%{_appdir}/resource
+%{_appdir}/sql
+%{_appdir}/lib
+%{_appdir}/include
+%{_appdir}/images
+%{_appdir}/plugins
+%{_appdir}/*.php
+
+%dir %{_appdir}/cli
+%attr(755,root,root) %{_appdir}/cli/*
+
+%dir %{_appdir}/scripts
+%attr(755,root,root) %{_appdir}/scripts/*
+
 %attr(750,root,http) %dir /var/lib/%{name}
 %attr(770,root,http) %dir /var/lib/%{name}/rra
 %attr(750,root,http) %dir /var/lib/%{name}
 %attr(770,root,http) %dir /var/lib/%{name}/rra
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
-%{webadminroot}
+%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)
+%{_appdir}/install
+
+%files doc
+%defattr(644,root,root,755)
+%{_appdir}/docs
This page took 0.093745 seconds and 4 git commands to generate.