]> git.pld-linux.org Git - packages/cacti.git/blob - cacti.spec
make logrotate compatible with ac
[packages/cacti.git] / cacti.spec
1 %define         pia_ver 3.1
2 %define         php_min_version 5.2.13-10
3 %include        /usr/lib/rpm/macros.php
4 Summary:        Cacti is a PHP frontend for rrdtool
5 Summary(pl.UTF-8):      Cacti - frontend w PHP do rrdtoola
6 Name:           cacti
7 Version:        0.8.8f
8 Release:        1
9 License:        GPL v2
10 Group:          Applications/WWW
11 Source0:        http://www.cacti.net/downloads/%{name}-%{version}.tar.gz
12 # Source0-md5:  8d90642b362f80c46c489c5531e2ba90
13 Source2:        %{name}.crontab
14 Source3:        %{name}-apache.conf
15 Source4:        %{name}-lighttpd.conf
16 Source5:        %{name}-rrdpath.sql
17 Source7:        %{name}.logrotate
18 Patch0:         mysql-socket.patch
19 Patch1:         %{name}-config.patch
20 Patch2:         %{name}-adodb.patch
21 Patch3:         %{name}-ioerror.patch
22 Patch4:         %{name}-webroot.patch
23 Patch5:         %{name}-linux_memory.patch
24 Patch6:         %{name}-log-verbosity.patch
25 Patch7:         %{name}-ss_disk-array-indices.patch
26 Patch8:         host_name-url.patch
27 # http://www.cacti.net/download_patches.php
28 # Patch100: ..
29 URL:            http://www.cacti.net/
30 BuildRequires:  sed >= 4.0
31 Requires(postun):       /usr/sbin/userdel
32 Requires(pre):  /bin/id
33 Requires(pre):  /usr/sbin/useradd
34 Requires:       adodb >= 4.67-1.17
35 Requires:       cacti-plugin-boost >= 5.0
36 Requires:       crondaemon
37 Requires:       group(http)
38 Requires:       net-snmp-utils
39 Requires:       php(core) >= %{php_min_version}
40 Requires:       php(mysql)
41 Requires:       php(pcre)
42 Requires:       php(session)
43 Requires:       php(snmp)
44 Requires:       php(xml)
45 Requires:       rrdtool
46 Requires:       webapps
47 Requires:       webserver
48 Requires:       webserver(access)
49 Requires:       webserver(alias)
50 Requires:       webserver(indexfile)
51 Requires:       webserver(php)
52 Suggests:       cacti-spine
53 Suggests:       php-bcmath
54 Suggests:       php-ftp
55 Suggests:       php-gd
56 Provides:       cacti(pia) = %{pia_ver}
57 Provides:       user(cacti)
58 Obsoletes:      cacti-add_template
59 Obsoletes:      cacti-plugin-update
60 %if "%{pld_release}" != "ac"
61 Conflicts:      logrotate < 3.8.0
62 %endif
63 BuildArch:      noarch
64 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
65
66 %define         _webapps        /etc/webapps
67 %define         _webapp         %{name}
68 %define         _sysconfdir     %{_webapps}/%{_webapp}
69 %define         _appdir         /usr/share/%{name}
70
71 # bad depsolver
72 %define         _noautopear     pear
73 # optional
74 %define         _noautophp      php-ftp php-bcmath
75
76 # put it together for rpmbuild
77 %define         _noautoreq      %{?_noautophp} %{?_noautopear}
78
79 %description
80 Cacti is a complete frondend to rrdtool, it stores all of the
81 nessesary information to create graphs and populate them with data in
82 a MySQL database.
83
84 The frontend is completely PHP driven. Along with being able to
85 maintain Graphs, Data Sources, and Round Robin Archives in a database,
86 cacti handles the data gathering also. There is also SNMP support for
87 those used to creating traffic graphs with MRTG.
88
89 %description -l pl.UTF-8
90 Cacti to pełny frontend do rrdtoola, zapamiętujący wszystkie
91 informacje potrzebne do tworzenia wykresów i wypełniające je danymi w
92 bazie MySQL.
93
94 Frontend jest w pełni oparty na PHP. Oprócz zarządzania wykresami,
95 źródłami danych, archiwami Round Robin w bazie danych, cacti obsługuje
96 także gromadzenie danych. Ma także obsługę SNMP przydatną przy
97 tworzeniu wykresów ruchu przy użyciu MRTG.
98
99 %package setup
100 Summary:        Cacti setup package
101 Summary(pl.UTF-8):      Pakiet do wstępnej konfiguracji Cacti
102 Group:          Applications/WWW
103 Requires:       %{name} = %{version}-%{release}
104 Suggests:       %{name}-doc = %{version}-%{release}
105
106 %description setup
107 Install this package to configure initial Cacti installation. You
108 should uninstall this package when you're done, as it considered
109 insecure to keep the setup files in place.
110
111 %description setup -l pl.UTF-8
112 Ten pakiet należy zainstalować, aby wstępnie skonfigurować instalację
113 Cacti. Po tym pakiet powinien zostać odinstalowany, jako że jego
114 obecność może być niebezpieczna.
115
116 %package doc
117 Summary:        HTML Documentation for Cacti
118 Summary(pl.UTF-8):      Dokumentacja do Cacti w formacie HTML
119 Group:          Documentation
120 Requires:       %{name} = %{version}-%{release}
121
122 %description doc
123 HTML Documentation for Cacti.
124
125 %description doc -l pl.UTF-8
126 Dokumentacja do Cacti w formacie HTML.
127
128 %prep
129 %setup -q
130
131 # official patches
132 %if 0%{?PATCH100:1}
133 %patch100 -p1
134 %endif
135
136 %patch0 -p1
137 %patch1 -p1
138 %patch2 -p1
139 %patch3 -p1
140 %patch4 -p1
141 %patch5 -p1
142 %patch6 -p1
143 %patch7 -p1
144 %patch8 -p1
145
146 mkdir -p sql
147 mv *.sql sql
148 # you should run this sql if your database contains path to %{_datadir}...
149 cp -p %{SOURCE5} sql
150
151 %{__rm} -r lib/adodb
152 %{__rm} log/.htaccess
153 %{__rm} cli/.htaccess
154 %{__rm} rra/.htaccess
155
156 # must require libs to get fatals on missing files, not include
157 %{__sed} -i -e '
158         s,include(dirname(__FILE__)."/../include/global.php");,require(dirname(__FILE__)."/../include/global.php");,
159         s,include_once,require_once,
160 ' cli/*.php
161
162 # make sure scripts have php shebang
163 %{__sed} -i -e '1{
164     /bin.php/!i#!%{_bindir}/php
165 }' scripts/*.php  cli/*.php
166
167 chmod a+rx scripts/*.php cli/*.php
168
169 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
170
171 # make sure cacti runs out of the box
172 %{__sed} -i -e 's,new_install,%{version},' sql/cacti.sql
173
174 %install
175 rm -rf $RPM_BUILD_ROOT
176 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},%{_appdir}/{docs,plugins},/etc/{cron.d,logrotate.d},%{_sbindir}}
177 install -d $RPM_BUILD_ROOT/var/{log,{lib,cache}/%{name}}
178
179 cp -p *.php $RPM_BUILD_ROOT%{_appdir}
180 cp -a cli images include install lib resource scripts sql $RPM_BUILD_ROOT%{_appdir}
181 cp -a docs/html $RPM_BUILD_ROOT%{_appdir}/docs/html
182 mv $RPM_BUILD_ROOT{%{_appdir}/poller.php,%{_sbindir}/cacti-poller}
183
184 cp -a log $RPM_BUILD_ROOT/var/log/%{name}
185 install -d $RPM_BUILD_ROOT/var/log/archive/%{name}
186 cp -a rra $RPM_BUILD_ROOT/var/lib/%{name}
187
188 mv $RPM_BUILD_ROOT{%{_appdir}/include,%{_sysconfdir}}/config.php
189 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/%{name}
190 cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
191
192 %if "%{pld_release}" == "ac"
193 %{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
194 %endif
195
196 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
197 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
198 cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/lighttpd.conf
199
200 %clean
201 rm -rf $RPM_BUILD_ROOT
202
203 %pre
204 %useradd -u 184 -d /var/lib/%{name} -g http -c "Cacti User" cacti
205
206 %post
207 if [ ! -f /var/log/%{name}/cacti.log ]; then
208         install -m660 -oroot -ghttp /dev/null /var/log/%{name}/cacti.log
209 fi
210
211 %postun
212 if [ "$1" = "0" ]; then
213         %userremove cacti
214 fi
215
216 %post setup
217 %{_appdir}/cli/upgrade_database.php || :
218
219 %triggerin -- apache1 < 1.3.37-3, apache1-base
220 %webapp_register apache %{_webapp}
221
222 %triggerun -- apache1 < 1.3.37-3, apache1-base
223 %webapp_unregister apache %{_webapp}
224
225 %triggerin -- apache < 2.2.0, apache-base
226 %webapp_register httpd %{_webapp}
227
228 %triggerun -- apache < 2.2.0, apache-base
229 %webapp_unregister httpd %{_webapp}
230
231 %triggerin -- lighttpd
232 %webapp_register lighttpd %{_webapp}
233
234 %triggerun -- lighttpd
235 %webapp_unregister lighttpd %{_webapp}
236
237 %triggerpostun -- %{name} < 0.8.7b-9.5
238 if [ -f /etc/cacti/cacti.cfg.rpmsave ]; then
239         cp -f %{_sysconfdir}/config.php{,.rpmnew}
240         mv /etc/cacti/cacti.cfg.rpmsave %{_sysconfdir}/config.php
241 fi
242
243 %files
244 %defattr(644,root,root,755)
245 %doc docs/CHANGELOG docs/CONTRIB docs/README docs/txt/manual.txt
246 %dir %attr(750,root,http) %{_sysconfdir}
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
248 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd.conf
249 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lighttpd.conf
250 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/config.php
251 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
252 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
253 %attr(755,root,root) %{_sbindir}/cacti-poller
254 %dir %{_appdir}
255 %exclude %{_appdir}/install
256 %exclude %{_appdir}/docs
257 %{_appdir}/resource
258 %{_appdir}/sql
259 %{_appdir}/lib
260 %{_appdir}/include
261 %{_appdir}/images
262 %{_appdir}/plugins
263 %{_appdir}/*.php
264
265 %dir %{_appdir}/cli
266 %attr(755,root,root) %{_appdir}/cli/*
267
268 %dir %{_appdir}/scripts
269 %attr(755,root,root) %{_appdir}/scripts/*
270
271 %attr(750,root,http) %dir /var/lib/%{name}
272 %attr(770,root,http) %dir /var/lib/%{name}/rra
273 %attr(730,root,http) %dir /var/log/%{name}
274 %attr(750,root,logs) %dir /var/log/archive/%{name}
275 %attr(660,root,http) %ghost /var/log/%{name}/cacti.log
276 %attr(730,root,http) %dir /var/cache/%{name}
277
278 %files setup
279 %defattr(644,root,root,755)
280 %{_appdir}/install
281
282 %files doc
283 %defattr(644,root,root,755)
284 %{_appdir}/docs
This page took 0.142378 seconds and 3 git commands to generate.