]> git.pld-linux.org Git - packages/cacti.git/blobdiff - cacti.spec
- up to 0.8.7d
[packages/cacti.git] / cacti.spec
index 3d761d6aae1c0031d9dcccf14501020c58d146c2..bcd7576839c6ec9890f93a671a12855db222958d 100644 (file)
@@ -1,39 +1,59 @@
-# TODO:
-# - add apache config
-# - security http://security.gentoo.org/glsa/glsa-200506-20.xml
 %include       /usr/lib/rpm/macros.perl
 Summary:       Cacti is a PHP frontend for rrdtool
 %include       /usr/lib/rpm/macros.perl
 Summary:       Cacti is a PHP frontend for rrdtool
-Summary(pl):   Cacti - frontend w PHP do rrdtoola
+Summary(pl.UTF-8):     Cacti - frontend w PHP do rrdtoola
 Name:          cacti
 Name:          cacti
-Version:       0.8.6g
+Version:       0.8.7d
 Release:       0.1
 License:       GPL
 Group:         Applications/WWW
 Source0:       http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
 Release:       0.1
 License:       GPL
 Group:         Applications/WWW
 Source0:       http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
-# Source0-md5: b3cf31349d2db47d14dcf347b8422bc2
-Patch0:                http://www.cacti.net/downloads/patches/0.8.6g/short_open_tag_parse_error.patch
-Patch1:                http://www.cacti.net/downloads/patches/0.8.6g/graph_properties_zoom.patch
-Patch2:                http://www.cacti.net/downloads/patches/0.8.6g/script_server_snmp_auth.patch
-Patch3:                http://www.cacti.net/downloads/patches/0.8.6g/mib_file_loading.patch
-Patch4:                %{name}-config.patch
+# Source0-md5: 0822068bfa547278e94d3143ef9279e0
+Source1:       %{name}.cfg.php
+Source2:       %{name}.crontab
+Source3:       %{name}-apache.conf
+Source4:       %{name}-lighttpd.conf
+Source5:       %{name}-rrdpath.sql
+Patch0:                cacti-plugin-%{version}-PA-v2.4.diff
+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:                %{name}-rrdresourcecheck.patch
 URL:           http://www.cacti.net/
 BuildRequires: rpm-perlprov
 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:      crondaemon
 Requires:      crondaemon
+Requires:      group(http)
 Requires:      net-snmp-utils
 Requires:      net-snmp-utils
-Requires:      net-snmp
-Requires:      php
+Requires:      php(gd)
+Requires:      php(mysql)
+Requires:      php(pcre)
+Requires:      php(snmp)
+Requires:      php(xml)
 Requires:      php-cli
 Requires:      php-cli
-Requires:      php-gd
-Requires:      php-mysql
-Requires:      php-pcre
-Requires:      php-snmp
-Requires:      php-xml
 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
+Provides:      user(cacti)
 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}
 
 %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
@@ -45,15 +65,44 @@ maintain Graphs, Data Sources, and Round Robin Archives in a database,
 cacti handles the data gathering also. There is also SNMP support for
 those used to creating traffic graphs with MRTG.
 
 cacti handles the data gathering also. There is also SNMP support for
 those used to creating traffic graphs with MRTG.
 
-%description -l pl
-Cacti to pe³ny frontend do rrdtoola, zapamiêtuj±cy wszystkie
-informacje potrzebne do tworzenia wykresów i wype³niaj±ce je danymi w
+%description -l pl.UTF-8
+Cacti to pełny frontend do rrdtoola, zapamiętujący wszystkie
+informacje potrzebne do tworzenia wykresów i wypełniające je danymi w
 bazie MySQL.
 
 bazie MySQL.
 
-Frontend jest w pe³ni oparty na PHP. Oprócz zarz±dzania wykresami,
-¼ród³ami danych, archiwami Round Robin w bazie danych, cacti obs³uguje
-tak¿e gromadzenie danych. Ma tak¿e obs³ugê SNMP przydatn± przy
-tworzeniu wykresów ruchu przy u¿yciu MRTG.
+Frontend jest w pełni oparty na PHP. Oprócz zarządzania wykresami,
+źródłami danych, archiwami Round Robin w bazie danych, cacti obsługuje
+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
@@ -62,48 +111,126 @@ tworzeniu wykres
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch2 -p1
 %patch3 -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 %{SOURCE5} sql
 
 
-%build
+rm -rf cacti-plugin-arch
+rm -rf lib/adodb
+rm -f log/.htaccess
+rm -f cli/.htaccess
+rm -f rra/.placeholder
+
+%{__sed} -i -e '1i#!%{_bindir}/php' scripts/*.php
+chmod a+rx scripts/*
+
+%{__sed} -i -e '1i#!%{_bindir}/php' cli/*.php
+chmod a+rx cli/*
+
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
 
 %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},cron.d}
-install -d $RPM_BUILD_ROOT/var/{log,lib}
-
-cp -aRf * $RPM_BUILD_ROOT%{webadminroot}
-ln -s . $RPM_BUILD_ROOT%{webadminroot}/%{name}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/cron.d,%{_sbindir}}
+install -d $RPM_BUILD_ROOT/var/{log,lib/%{name}}
 
 
-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";
-?>
-EOF
+cp -a *.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}
 
 
-mv $RPM_BUILD_ROOT%{webadminroot}/log $RPM_BUILD_ROOT/var/log/%{name}
-ln -sf /var/log/cacti $RPM_BUILD_ROOT%{webadminroot}/log
+cp -a log $RPM_BUILD_ROOT/var/log/%{name}
+cp -a rra $RPM_BUILD_ROOT/var/lib/%{name}
 
 
-mv $RPM_BUILD_ROOT%{webadminroot}/rra $RPM_BUILD_ROOT/var/lib/%{name}
-ln -sf /var/lib/%{name}/rra $RPM_BUILD_ROOT%{webadminroot}/rra
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/config.php
+cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
 
 
-cat  << EOF > $RPM_BUILD_ROOT%{_sysconfdir}/cron.d/%{name}
-*/5 * * * * http umask 022; /usr/bin/php %{webadminroot}/poller.php > /dev/null 2>&1
-EOF
+cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
+cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
+cp -a %{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
+
+%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 size mtime md5) %{_sysconfdir}/%{name}/%{name}.cfg
-%attr(750,root,http) %dir /var/log/%{name}
-%attr(660,root,http) %ghost /var/log/%{name}/*.log
-%attr(750,root,root) /var/lib/%{name}
+%doc docs/CHANGELOG docs/CONTRIB docs/README docs/text/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/cron.d/%{name}
-%{webadminroot}
+%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(730,root,http) %dir /var/log/%{name}
+%attr(660,root,http) %ghost /var/log/%{name}/cacti.log
+
+%files setup
+%defattr(644,root,root,755)
+%{_appdir}/install
+
+%files doc
+%defattr(644,root,root,755)
+%{_appdir}/docs
This page took 0.12188 seconds and 4 git commands to generate.