]> git.pld-linux.org Git - packages/cacti.git/blobdiff - cacti.spec
- use exec to avoid /bin/sh in process table
[packages/cacti.git] / cacti.spec
index 96934d5ec0350274ed8cfa3636819dae33d5fe69..3d20b11177f61f75fb03e5ff15e539a2ce0f62fe 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
-Summary(pl):   Cacti - frontend w PHP do rrdtoola
+Summary(pl.UTF-8):     Cacti - frontend w PHP do rrdtoola
 Name:          cacti
-Version:       0.8.6g
-Release:       0.1
+Version:       0.8.7b
+Release:       11
 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: 63ffca5735b60bc33c68bc880f0e8042
+Source1:       %{name}.cfg.php
+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
 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:      group(http)
 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-gd
-Requires:      php-mysql
-Requires:      php-pcre
-Requires:      php-snmp
-Requires:      php-xml
 Requires:      rrdtool
+Requires:      webapps
 Requires:      webserver
+Requires:      webserver(php)
+Suggests:      cacti-spine
+Provides:      user(cacti)
 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
@@ -45,66 +65,176 @@ 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.
 
-%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.
 
-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
+%setup -q -a 3
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%{__patch} -p1 -s < cacti-plugin-arch/cacti-plugin-0.8.7b-PA-v2.1.diff
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+mkdir -p sql
+mv *.sql sql
+# you should run this sql if your database contains path to %{_datadir}...
+cp %{SOURCE6} sql
 
-%build
+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
+
+%{__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 -d $RPM_BUILD_ROOT%{webadminroot}
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/{%{name},cron.d}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/docs,/etc/cron.d,%{_sbindir}}
 install -d $RPM_BUILD_ROOT/var/{log,lib/%{name}}
 
-cp -aRf * $RPM_BUILD_ROOT%{webadminroot}
-ln -s . $RPM_BUILD_ROOT%{webadminroot}/%{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 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}
 
-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 %{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
 
 %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)
-%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) %dir /var/lib/%{name}
-%attr(750,root,http) %dir /var/lib/%{name}/rra
+%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}
-%{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/html
This page took 0.126929 seconds and 4 git commands to generate.