]> TLD Linux GIT Repositories - packages/rrdtool.git/blob - rrdtool.spec
- added init script for rrdcached
[packages/rrdtool.git] / rrdtool.spec
1 # TODO:
2 # - SysV init script for rrdcached, post/postun/etc.
3 #
4 # Conditional build:
5 %bcond_without  lua             # LUA binding
6 %bcond_without  perl            # Perl binding
7 %bcond_without  python          # Python binding
8 %bcond_without  ruby            # Ruby binding
9 %bcond_without  tcl             # Tcl binding
10 %bcond_with     ceph            # Ceph (RADOS) storage support
11 %bcond_without  rrd_graph       # all rrd_graph functions (depend on cairo+pango)
12 %bcond_without  rrdcgi          # building of rrdcgi (depends on rrd_graph)
13
14 %if %{without rrd_graph}
15 %undefine       with_rrdcgi
16 %endif
17
18 # ceph >= 14.0 no longer support 32-bit archs
19 %ifarch %{ix86}
20 %undefine       with_ceph
21 %endif
22
23 %define pdir    RRDp
24 Summary:        RRDtool - round robin database
25 Summary(pl.UTF-8):      RRDtool - baza danych typu round-robin
26 Summary(pt_BR.UTF-8):   Round Robin Database, uma ferramenta para construção de gráficos
27 Summary(ru.UTF-8):      RRDtool - база данных с "циклическим обновлением"
28 Summary(uk.UTF-8):      RRDtool - це система зберігання та показу серійних даних
29 Name:           rrdtool
30 Version:        1.8.0
31 Release:        0.1
32 License:        GPL v2+ + FLOSS exception
33 Group:          Applications/Databases
34 Source0:        https://github.com/oetiker/rrdtool-1.x/releases/download/v%{version}/%{name}-%{version}.tar.gz
35 # Source0-md5:  852754364cbd0703a099b5eb32932851
36 Source1:        rrdcached.init
37 Source2:        rrdcached.sysconfig
38 Patch0:         %{name}-tcl-path.patch
39 Patch1:         groff.patch
40 URL:            http://oss.oetiker.ch/rrdtool/
41 BuildRequires:  autoconf >= 2.60
42 BuildRequires:  automake
43 %{?with_ceph:BuildRequires:     ceph-devel}
44 BuildRequires:  gettext-tools >= 0.18
45 BuildRequires:  glib2-devel >= 1:2.28.7
46 BuildRequires:  groff
47 BuildRequires:  libdbi-devel
48 BuildRequires:  libtool
49 BuildRequires:  libwrap-devel
50 BuildRequires:  libxml2-devel >= 1:2.7.8
51 BuildRequires:  pkgconfig
52 BuildRequires:  rpm-pythonprov
53 BuildRequires:  rpmbuild(macros) >= 1.745
54 %if %{with rrd_graph}
55 BuildRequires:  glib2-devel >= 1:2.58.1
56 BuildRequires:  libpng-devel >= 2:1.4.8
57 BuildRequires:  pango-devel >= 1:1.28.7
58 %endif
59 %if %{with lua}
60 BuildRequires:  lua >= 5.1
61 BuildRequires:  lua-devel >= 5.1
62 %endif
63 %if %{with perl}
64 BuildRequires:  perl-devel >= 1:5.8.0
65 BuildRequires:  rpm-perlprov
66 %endif
67 %if %{with python}
68 BuildRequires:  python3
69 BuildRequires:  python3-devel
70 %endif
71 %if %{with ruby}
72 BuildRequires:  rpm-rubyprov
73 BuildRequires:  ruby-devel
74 %endif
75 %if %{with tcl}
76 BuildRequires:  tcl-devel
77 %endif
78 %if %{with rrd_graph}
79 Requires:       glib2 >= 1:2.58.1
80 %else
81 Requires:       glib2 >= 1:2.28.7
82 %endif
83 %{?with_rrd_graph:Requires:     libpng >= 2:1.4.8}
84 Requires:       libxml2 >= 1:2.7.8
85 %{?with_rrd_graph:Requires:     pango >= 1:1.28.7}
86 Suggests:       fonts-TTF-DejaVu
87 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88
89 %description
90 RRD is the Acronym for Round Robin Database. RRD is a system to store
91 and display time-series data (i.e. network bandwidth, machine-room
92 temperature, server load average). It stores the data in a very
93 compact way that will not expand over time, and it presents useful
94 graphs by processing the data to enforce a certain data density. It
95 can be used either via simple wrapper scripts (from shell or Perl) or
96 via frontends that poll network devices and put a friendly user
97 interface on it.
98
99 %description -l pl.UTF-8
100 RRD jest akronimem Round Robin Database. Jest to system pozwalający na
101 składowanie i wyświetlanie czasowych serii danych (np. przepustowość
102 sieci, temperatura w pomieszczeniu, obciążenie serwera). Składuje dane
103 w "skondensowanej" postaci, która nie rozrasta się z biegiem czasu
104 oraz pozwala na produkowanie wykresów z użytecznymi danymi. Może być
105 używane poprzez prosty skrypcik (shell lub Perl), frontendy czy inne
106 interfejsy użytkownika.
107
108 %description -l pt_BR.UTF-8
109 RRD e' um sistema para armazenar e apresentar series temporais de
110 dados (i.e. utilização de rede, temperaturas, cargas em servidores).
111 Os dados são armazenados em uma forma compacta que não se expande com
112 o tempo, e gráficos podem ser apresentados processando-se esses dados.
113 RRD pode ser utilizado com wrapper scripts (em shell ou Perl) ou
114 através de front-ends.
115
116 %description -l ru.UTF-8
117 RRD - соращение для "Round Robin Database" (база данных с "циклическим
118 обновлением"). RRD - система для сохранения и показа информации за
119 определенный промежуток времени (например скорость передачи данных в
120 сети, температуру в машинном зале, среднюю загрузку сервера). Она
121 сохраняет данные в очень компактной форме, так что данные не будут
122 занимать все больше и больше места с течением времени и предоставляет
123 разумное графическое представление информации. Может быть использована
124 как из простых скриптов (shell, Perl, etc) или встроена в программы,
125 которые опрашивают сетевые устройства и показывают данные в удобном
126 для пользователя виде.
127
128 %description -l uk.UTF-8
129 Назва RRD - це акронім для Round Robin Database. RRD - це система
130 зберігання та показу серійних даних (наприклад, полоси каналу,
131 температура гермозони, завантаження сервера). RRD зберігає дані дуже
132 компактно і так, що розмір бази даних не збільшується з часом, та
133 презентує корисні графіки обробляючи дані з тим, щоб встановити
134 потрібну щільність вибірки в часі. RRD можна використовувати як через
135 прості wrapper-скрипти, так і через фронтенди, що опитують мережеві
136 пристрої та надають дружній інтерфейс користувача.
137
138 %package cached
139 Summary:        Data caching daemon for RRDtool
140 Summary(pl.UTF-8):      Demon pamięci podręcznej danych dla RRDtoola
141 Group:          Daemons
142 Requires:       %{name} = %{version}-%{release}
143
144 %description cached
145 Data caching daemon for RRDtool.
146
147 %description cached -l pl.UTF-8
148 Demon pamięci podręcznej danych dla RRDtoola.
149
150 %package devel
151 Summary:        RRDtool development
152 Summary(pl.UTF-8):      Narzędzia programistyczne pakietu RRDtool
153 Summary(pt_BR.UTF-8):   Bibliotecas e arquivos de inclusão da librrd
154 Summary(ru.UTF-8):      RRDtool - Заголовки, необходимые для разработки
155 Summary(uk.UTF-8):      RRDtool - бібліотечні лінки та файли хедерів
156 Group:          Development/Libraries
157 Requires:       %{name} = %{version}-%{release}
158 %if %{with rrd_graph}
159 Requires:       glib2-devel >= 1:2.58.1
160 %else
161 Requires:       glib2-devel >= 1:2.28.7
162 %endif
163 Requires:       libdbi-devel
164 Requires:       libwrap-devel
165 Requires:       libxml2-devel >= 1:2.7.8
166 %{?with_rrd_graph:Requires:     pango-devel >= 1:1.28.7}
167
168 %description devel
169 RRDtool development files.
170
171 %description devel -l pl.UTF-8
172 Narzędzia programistyczne pakietu RRDtool.
173
174 %description devel -l pt_BR.UTF-8
175 RRD e' um sistema para armazenar e apresentar series temporais de
176 dados (i.e. utilização de rede, temperaturas, cargas em servidores).
177
178 Este pacote contem arquivos de desenvolvimento do RRD.
179
180 %description devel -l ru.UTF-8
181 RRD - соращение для "Round Robin Database" (база данных с "циклическим
182 обновлением"). RRD - система для сохранения и показа информации за
183 определенный промежуток времени (например скорость передачи данных в
184 сети, температуру в машинном зале, среднюю загрузку сервера).
185
186 Этот пакет позволяет создавать программы, которые используют это
187 библиотеку непосредственно.
188
189 %description devel -l uk.UTF-8
190 RRDtool - библиотечные линки и файлы хедеров.
191
192 %package static
193 Summary:        RRDtool static library
194 Summary(pl.UTF-8):      Statyczne biblioteki RRDtool
195 Summary(pt_BR.UTF-8):   Biblioteca estática librrd
196 Summary(ru.UTF-8):      RRDtool - Статические библиотеки
197 Summary(uk.UTF-8):      Статичні бібліотеки RRDtool
198 Group:          Development/Libraries
199 Requires:       %{name}-devel = %{version}-%{release}
200
201 %description static
202 RRDtool static library.
203
204 %description static -l pl.UTF-8
205 Statyczne biblioteki RRDtool.
206
207 %description static -l pt_BR.UTF-8
208 RRD e' um sistema para armazenar e apresentar series temporais de
209 dados (i.e. utilização de rede, temperaturas, cargas em servidores).
210
211 Este pacote contem a biblioteca estática do RRD.
212
213 %description static -l ru.UTF-8
214 RRD - соращение для "Round Robin Database" (база данных с "циклическим
215 обновлением"). RRD - система для сохранения и показа информации за
216 определенный промежуток времени (например скорость передачи данных в
217 сети, температуру в машинном зале, среднюю загрузку сервера). Этот
218 пакет позволяет создавать статически слинкованные программы, которые
219 используют это библиотеку непосредственно.
220
221 %description static -l uk.UTF-8
222 Статичні бібліотеки для розробки програм, що використовують RRDtool.
223
224 %package doc
225 Summary:        RRDtool documentation
226 Summary(pl.UTF-8):      Dokumentacja do RRDtoola
227 Group:          Documentation
228 BuildArch:      noarch
229
230 %description doc
231 RRD is the Acronym for Round Robin Database. RRD is a system to store
232 and display time-series data (i.e. network bandwidth, machine-room
233 temperature, server load average).
234
235 This package contains documentation on using RRD.
236
237 %description doc -l pl.UTF-8
238 RRD jest akronimem Round Robin Database. Jest to system pozwalający na
239 składowanie i wyświetlanie czasowych serii danych (np. przepustowość
240 sieci, temperatura w pomieszczeniu, obciążenie serwera).
241
242 Ten pakiet zawiera dokumentację użytkownika dla RRD.
243
244 %package -n lua-rrdtool
245 Summary:        RRD module for Lua
246 Summary(pl.UTF-8):      Moduł RRD dla języka Lua
247 Group:          Development/Languages
248 Requires:       %{name} = %{version}-%{release}
249 Requires:       lua
250
251 %description -n lua-rrdtool
252 Lua interface to RRDtool.
253
254 %description -n lua-rrdtool -l pl.UTF-8
255 Interfejs języka Lua do RRDtoola.
256
257 %package -n perl-rrdtool
258 Summary:        Access RRDtool from Perl
259 Summary(pl.UTF-8):      Dostęp do RRDtoola z poziomu Perla
260 Group:          Development/Languages/Perl
261 Requires:       %{name} = %{version}-%{release}
262
263 %description -n perl-rrdtool
264 Perl modules to access RRDtool: RRDs to access RRDtool as shared
265 module and RRDp to access RRDtool via a set of pipes.
266
267 %description -n perl-rrdtool -l pl.UTF-8
268 Moduły Perla pozwalające na dostęp do RRDtoola: RRDs do dostępu do
269 RRDtoola jako modułu dzielonego oraz RRDp do dostępu poprzez zestaw
270 potoków.
271
272 %package -n python3-rrdtool
273 Summary:        Python 3 interface to RRDtool
274 Summary(pl.UTF-8):      Pythonowy interfejs do RRDtoola
275 Group:          Development/Languages/Python
276 Requires:       %{name} = %{version}-%{release}
277 Requires:       python3-libs
278 Obsoletes:      python-rrdtool
279
280 %description -n python3-rrdtool
281 Python 3 interface to RRDtool, the graphing and logging utility.
282
283 %description -n python3-rrdtool -l pl.UTF-8
284 Interfejs Pythona 3 do RRDtoola - narzędzia do tworzenia wykresów i
285 logowania.
286
287 %package -n ruby-rrdtool
288 Summary:        Ruby interface to RRDtool
289 Summary(pl.UTF-8):      Interfejs języka Ruby do RRDtoola
290 Group:          Development/Languages/Ruby
291 Requires:       %{name} = %{version}-%{release}
292
293 %description -n ruby-rrdtool
294 Ruby interface to RRDtool, the graphing and logging utility.
295
296 %description -n ruby-rrdtool -l pl.UTF-8
297 Interfejs języka Ruby do RRDtoola - narzędzia do tworzenia wykresów i
298 logowania.
299
300 %package -n tcl-rrdtool
301 Summary:        Tcl extension to access the RRD library
302 Summary(pl.UTF-8):      Rozszerzenie Tcl-a pozwalające na dostęp do biblioteki Tcl
303 Group:          Development/Languages/Tcl
304 Requires:       %{name} = %{version}-%{release}
305 Requires:       tcl
306
307 %description -n tcl-rrdtool
308 Tcl extension to access the RRD library.
309
310 %description -n tcl-rrdtool -l pl.UTF-8
311 Rozszerzenie Tcl-a pozwalające na dostęp do biblioteki Tcl.
312
313 %prep
314 %setup -q
315 %patch0 -p1
316 %patch1 -p1
317
318 %{__sed} -i -e 's#\$TCL_PACKAGE_PATH#%{_prefix}/lib#g' configure.ac
319 %{__sed} -i -e 's#/lib/lua/#/%{_lib}/lua/#g' configure.ac
320
321 %{__sed} -E -i -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python3}\1,' \
322       examples/stripes.py
323
324 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+tclsh@TCL_VERSION@(\s|$),#!%{__tclsh}\1,' \
325       bindings/tcl/ifOctets.tcl.in
326
327 # We only want .txt and .html files for the main documentation
328 install -d docs/{html,/txt}
329 %{__mv} doc/*.txt docs/txt
330 %{__mv} doc/*.html docs/html
331
332 # Put Perl docs in Perl package
333 install -d perl-docs/html
334 %{__mv} docs/html/RRD*.html perl-docs/html
335
336 %build
337 %{__libtoolize}
338 %{__aclocal} -I m4
339 %{__autoconf}
340 %{__autoheader}
341 %{__automake}
342 %configure \
343         PYTHON=%{__python3} \
344         --disable-silent-rules \
345         %{!?with_ceph:--disable-librados} \
346         %{!?with_rrd_graph:--disable-rrd_graph} \
347         %{!?with_rrdcgi:--disable-rrdcgi} \
348         %{!?with_lua:--disable-lua} \
349         %{!?with_perl:--disable-perl} \
350         %{!?with_python:--disable-python} \
351         %{!?with_ruby:--disable-ruby} \
352         %{!?with_tcl:--disable-tcl} \
353         --with-perl-options="INSTALLDIRS=vendor"
354
355 # empty RUBY_MAKE_OPTIONS as workaround for some make weirdness
356 # (tried to install without DESTDIR on plain make)
357 %{__make} \
358         RUBY_MAKE_OPTIONS=
359
360 %install
361 rm -rf $RPM_BUILD_ROOT
362 install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},%{_examplesdir}/%{name}-%{version}}
363
364 %{__make} install \
365         DESTDIR=$RPM_BUILD_ROOT \
366         perl_sitearch=%{perl_vendorarch} \
367         pythondir=%{py3_sitedir} \
368         examplesdir=%{_examplesdir}/%{name}-%{version} \
369         RUBYARCHDIR=$RPM_BUILD_ROOT%{ruby_archdir}
370
371 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/rrdcached
372 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rrdcached
373
374 %{__rm} $RPM_BUILD_ROOT%{_libdir}/librrd.la
375 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}
376
377 %if %{with lua}
378 %{__rm} $RPM_BUILD_ROOT%{_libdir}/lua/5.*/*.{la,a}
379 %endif
380
381 %if %{with perl}
382 %{__rm} $RPM_BUILD_ROOT%{perl_vendorarch}/auto/RRDs/.packlist
383 %endif
384
385 %clean
386 rm -rf $RPM_BUILD_ROOT
387
388 %post   -p /sbin/ldconfig
389 %postun -p /sbin/ldconfig
390
391 %pre cached
392 %groupadd -g 347 rrdcached
393 %useradd -u 347 -d /usr/share/empty -g rrdcached -c "rrdcached daemon user" rrdcached
394
395 %post cached
396 /sbin/chkconfig --add rrdcached
397 %service rrdcached restart
398
399 %postun cached
400 if [ "$1" = "0" ]; then
401         %userremove rrdcached
402         %groupremove rrdcached
403 fi
404
405 %preun cached
406 if [ "$1" = "0" ]; then
407         %service rrdcached stop
408         /sbin/chkconfig --del rrdcached
409 fi
410
411 %files
412 %defattr(644,root,root,755)
413 %doc CHANGES CONTRIBUTORS COPYRIGHT NEWS THREADS TODO
414 %attr(755,root,root) %{_libdir}/librrd.so.*.*.*
415 %attr(755,root,root) %ghost %{_libdir}/librrd.so.8
416 %{?with_rrdcgi:%attr(755,root,root) %{_bindir}/rrdcgi}
417 %attr(755,root,root) %{_bindir}/rrdcreate
418 %attr(755,root,root) %{_bindir}/rrdinfo
419 %attr(755,root,root) %{_bindir}/rrdtool
420 %attr(755,root,root) %{_bindir}/rrdupdate
421 %{_mandir}/man1/bin_dec_hex.1*
422 %{_mandir}/man1/cdeftutorial.1*
423 %{_mandir}/man1/rpntutorial.1*
424 %{_mandir}/man1/rrd-beginners.1*
425 %{_mandir}/man1/rrd_pdpcalc.1*
426 %{_mandir}/man1/rrdbuild.1*
427 %{?with_rrdcgi:%{_mandir}/man1/rrdcgi.1*}
428 %{_mandir}/man1/rrdcreate.1*
429 %{_mandir}/man1/rrddump.1*
430 %{_mandir}/man1/rrdfetch.1*
431 %{_mandir}/man1/rrdfirst.1*
432 %{_mandir}/man1/rrdgraph*.1*
433 %{_mandir}/man1/rrdinfo.1*
434 %{_mandir}/man1/rrdlast.1*
435 %{_mandir}/man1/rrdlastupdate.1*
436 %{_mandir}/man1/rrdlist.1*
437 %{?with_ceph:%{_mandir}/man1/rrdrados.1*}
438 %{?with_python:%{_mandir}/man1/rrdpython.1*}
439 %{_mandir}/man1/rrdresize.1*
440 %{_mandir}/man1/rrdrestore.1*
441 %{?with_ruby:%{_mandir}/man1/rrdruby.1*}
442 %{_mandir}/man1/rrdthreads.1*
443 %{_mandir}/man1/rrdtool.1*
444 %{_mandir}/man1/rrdtune.1*
445 %{_mandir}/man1/rrdtutorial.1*
446 %{_mandir}/man1/rrdupdate.1*
447 %{_mandir}/man1/rrdxport.1*
448
449 %files cached
450 %defattr(644,root,root,755)
451 %attr(755,root,root) %{_bindir}/rrdcached
452 %{_mandir}/man1/rrdcached.1*
453 %{_mandir}/man1/rrdflushcached.1*
454
455 %files devel
456 %defattr(644,root,root,755)
457 %attr(755,root,root) %{_libdir}/librrd.so
458 %attr(754,root,root) /etc/rc.d/init.d/rrdcached
459 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rrdcached
460 %{_includedir}/rrd*.h
461 %{_pkgconfigdir}/librrd.pc
462 %{_mandir}/man3/librrd.3*
463
464 %files static
465 %defattr(644,root,root,755)
466 %{_libdir}/librrd.a
467
468 %files doc
469 %defattr(644,root,root,755)
470 %doc docs/html docs/txt
471 %{_examplesdir}/%{name}-%{version}
472
473 %if %{with lua}
474 %files -n lua-rrdtool
475 %defattr(644,root,root,755)
476 %attr(755,root,root) %{_libdir}/lua/5.*/rrd.so*
477 %{_mandir}/man1/rrdlua.1*
478 %endif
479
480 %if %{with perl}
481 %files -n perl-rrdtool
482 %defattr(644,root,root,755)
483 %doc perl-docs/html/*
484 %{perl_vendorlib}/RRDp.pm
485 %{perl_vendorarch}/RRDs.pm
486 %dir %{perl_vendorarch}/auto/RRDs
487 %attr(755,root,root) %{perl_vendorarch}/auto/RRDs/RRDs.so
488 %{_mandir}/man3/RRDp.3*
489 %{_mandir}/man3/RRDs.3*
490 %endif
491
492 %if %{with python}
493 %files -n python3-rrdtool
494 %defattr(644,root,root,755)
495 %attr(755,root,root) %{py3_sitedir}/rrdtool*.so
496 %{py3_sitedir}/rrdtool-*.egg-info
497 %endif
498
499 %if %{with ruby}
500 %files -n ruby-rrdtool
501 %defattr(644,root,root,755)
502 %attr(755,root,root) %{ruby_archdir}/RRD.so
503 %endif
504
505 %if %{with tcl}
506 %files -n tcl-rrdtool
507 %defattr(644,root,root,755)
508 %attr(755,root,root) %{_libdir}/tclrrd%{version}.so
509 %{_prefix}/lib/tclrrd%{version}
510 %endif