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