]> TLD Linux GIT Repositories - packages/systemtap.git/blob - systemtap.spec
- rediffed patches
[packages/systemtap.git] / systemtap.spec
1 #
2 # Conditional build:
3 %bcond_without  doc             # documentation build
4 %bcond_with     publican        # publican guides build [as of 3.0 not rebuilt automatically, PDFs are included]
5 %bcond_without  crash           # crash extension
6 %bcond_with     dyninst         # dyninst support
7 %bcond_without  java            # Java runtime support
8 %bcond_without  python2         # Python 2.x runtime support
9 %bcond_without  python3         # Python 3.x runtime support
10
11 %ifnarch %{ix86} %{x8664} x32 alpha arm ia64 ppc64 s390 s390x
12 %undefine       with_crash
13 %endif
14 %ifnarch %{ix86} %{x8664} x32 ppc ppc64 aarch64
15 %undefine       with_dyninst
16 %endif
17 Summary:        Instrumentation System
18 Summary(pl.UTF-8):      System oprzyrządowania
19 Name:           systemtap
20 Version:        3.3
21 Release:        3
22 License:        GPL v2+
23 Group:          Base
24 Source0:        http://sourceware.org/systemtap/ftp/releases/%{name}-%{version}.tar.gz
25 # Source0-md5:  7f80117649a9eb663781b5372e8a4f96
26 Patch0:         %{name}-configure.patch
27 Patch1:         %{name}-build.patch
28 Patch2:         %{name}-rpm-4.5-support.patch
29 Patch3:         %{name}-no-werror.patch
30 Patch4:         format-security.patch
31 Patch5:         %{name}-dyninst.patch
32 URL:            http://sourceware.org/systemtap/
33 BuildRequires:  autoconf >= 2.63
34 BuildRequires:  automake
35 BuildRequires:  avahi-devel
36 BuildRequires:  boost-devel
37 %{?with_crash:BuildRequires:    crash-devel}
38 BuildRequires:  docbook-dtd412-xml
39 %{?with_dyninst:BuildRequires:  dyninst-devel >= 8.0}
40 BuildRequires:  elfutils-devel >= 0.148
41 BuildRequires:  gettext-devel >= 0.19.4
42 BuildRequires:  gettext-tools >= 0.19.4
43 BuildRequires:  glib2-devel >= 2.0
44 BuildRequires:  json-c-devel >= 0.12
45 %{?with_java:BuildRequires:     jdk}
46 %if %{with dyninst} || %{with java}
47 BuildRequires:  libselinux-devel
48 %endif
49 BuildRequires:  libstdc++-devel >= 6:4.5
50 BuildRequires:  libvirt-devel >= 1.0.2
51 BuildRequires:  libxml2-devel >= 2.0
52 BuildRequires:  mysql-devel
53 BuildRequires:  ncurses-devel
54 BuildRequires:  nss-devel >= 3
55 BuildRequires:  pkgconfig
56 %if %{with python2}
57 BuildRequires:  python-devel >= 1:2.6
58 BuildRequires:  python-setuptools
59 %endif
60 %if %{with python3}
61 BuildRequires:  python3-devel >= 1:3.2
62 BuildRequires:  python3-setuptools
63 %endif
64 BuildRequires:  readline-devel
65 BuildRequires:  rpm-devel
66 %{?with_java:BuildRequires:     rpm-javaprov}
67 BuildRequires:  rpm-pythonprov
68 BuildRequires:  rpmbuild(macros) >= 1.219
69 BuildRequires:  sqlite3-devel >= 3.7
70 BuildRequires:  xmlto
71 %if %{with doc}
72 BuildRequires:  latex2html
73 %{?with_publican:BuildRequires: publican}
74 BuildRequires:  texlive-dvips
75 BuildRequires:  texlive-fonts-bitstream
76 BuildRequires:  texlive-fonts-type1-bitstream
77 BuildRequires:  texlive-latex
78 BuildRequires:  texlive-latex-psnfss
79 BuildRequires:  texlive-xetex
80 %endif
81 # let base mean client+local development package
82 Requires:       %{name}-client = %{version}-%{release}
83 Requires:       %{name}-devel = %{version}-%{release}
84 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
85
86 %description
87 SystemTap is an instrumentation system for systems running Linux 2.6.
88 Developers can write instrumentation to collect data on the operation
89 of the system. The base systemtap package provides the components
90 needed to locally develop and execute systemtap script.
91
92 %description -l pl.UTF-8
93 SystemTap to system oprzyrządowania dla systemów opartych na Linuksie
94 2.6. Programiści mogą pisać narzędzia do zbierania danych dotyczących
95 operacji w systemie. Główny pakiet dostarcza komponenty niezbędne do
96 lokalnego tworzenia i wykonywania skryptów systemtap.
97
98 %package runtime
99 Summary:        Programmable system-wide instrumentation system - runtime
100 Summary(pl.UTF-8):      Programowalny systemowy system oprzyrządowania - środowisko uruchomieniowe
101 Group:          Applications/System
102 Requires:       json-c >= 0.12
103
104 %description runtime
105 SystemTap runtime contains the components needed to execute a
106 systemtap script that was already compiled into a module using a local
107 or remote systemtap-devel installation.
108
109 %description runtime -l pl.UTF-8
110 Środowisko uruchomieniowe SystemTap zawiera komponenty niezbędne do
111 uruchomienia skryptu systemtap, który został już wkompilowany do
112 modułu przy użyciu lokalnej lub zdalnej instalacji systemtap-devel.
113
114 %package runtime-java
115 Summary:        SystemTap Java runtime support
116 Summary(pl.UTF-8):      Obsługa Javy dla środowiska uruchomieniowego SystemTap
117 Group:          Libraries
118 Requires:       %{name}-runtime = %{version}-%{release}
119 Requires:       byteman > 2.0
120
121 %description runtime-java
122 This package includes support files needed to run systemtap scripts
123 that probe Java processes running on the OpenJDK 1.6 and OpenJDK 1.7
124 runtimes using Byteman.
125
126 %description runtime-java -l pl.UTF-8
127 Ten pakiet zawiera pliki niezbędne do uruchamiania skryptów systemtap
128 sondujących procesy Javy działające w środowiskach OpenJDK 1.6 i
129 OpenJDK 1.7 przy użyciu Bytemana.
130
131 %package runtime-python2
132 Summary:        SystemTap Python 2 Runtime Support
133 Summary(pl.UTF-8):      Obsługa Pythona 2 dla środowiska uruchomieniowego SystemTap
134 Group:          Development/Tools
135 Requires:       %{name}-runtime = %{version}-%{release}
136 Requires:       python-modules >= 1:2.6
137
138 %description runtime-python2
139 This package includes support files needed to run systemtap scripts
140 that probe Python 2 processes.
141
142 %description runtime-python2 -l pl.UTF-8
143 Ten pakiet zawiera pliki niezbędne do uruchamiania skryptów systemtap
144 sondujących procesy Pythona 2.
145
146 %package runtime-python3
147 Summary:        SystemTap Python 3 Runtime Support
148 Summary(pl.UTF-8):      Obsługa Pythona 3 dla środowiska uruchomieniowego SystemTap
149 Group:          Development/Tools
150 Requires:       %{name}-runtime = %{version}-%{release}
151 Requires:       python3-modules >= 1:3.2
152
153 %description runtime-python3
154 This package includes support files needed to run systemtap scripts
155 that probe Python 3 processes.
156
157 %description runtime-python3 -l pl.UTF-8
158 Ten pakiet zawiera pliki niezbędne do uruchamiania skryptów systemtap
159 sondujących procesy Pythona 3.
160
161 %package client
162 Summary:        Programmable system-wide instrumentation system - client
163 Summary(pl.UTF-8):      Programowalny systemowy system oprzyrządowania - klient
164 Group:          Applications/System
165 Requires:       %{name}-runtime = %{version}-%{release}
166 Requires:       coreutils
167 Requires:       grep
168 Requires:       libvirt >= 1.0.2
169 Requires:       openssh-clients
170 Requires:       sed
171 Requires:       unzip
172 Requires:       zip
173
174 %description client
175 This package provides the components needed to develop systemtap
176 scripts and compile them using a local systemtap-devel or a remote
177 systemtap-server installation, then run them using a local or remote
178 systemtap-runtime. It includes script samples and documentation, and a
179 copy of the tapset library for reference.
180
181 %description client -l pl.UTF-8
182 Ten pakiet dostarcza komponenty niezbędne do tworzenia skryptów
183 systemtap i kompilowania ich przy użyciu lokalnej instalacji
184 systemtap-devel lub zdalnej instalacji systemtap-server, a następnie
185 uruchamiania ich przy użyciu lokalnej lub zdalnej instalacji
186 systemtap-runtime. Zawiera przykłady skryptów oraz dokumentację, a
187 także kopię biblioteki tapset.
188
189 %package devel
190 Summary:        Programmable system-wide instrumentation system - development headers, tools
191 Summary(pl.UTF-8):      Programowalny systemowy system oprzyrządowania - pliki nagłówkowe, narzędzia
192 Group:          Development/Tools
193 Requires:       %{name}-client = %{version}-%{release}
194 Requires:       gcc
195 Requires:       make
196
197 %description devel
198 This package provides the components needed to compile a systemtap
199 script from source form into executable (.ko) forms. It may be
200 installed on a self-contained developer workstation (along with the
201 systemtap-client and systemtap-runtime packages), or on a dedicated
202 remote server (alongside the systemtap-server package). It includes a
203 copy of the standard tapset library and the runtime library C files.
204
205 %description devel -l pl.UTF-8
206 Ten pakiet dostarcza komponenty niezbędne do kompilowania skryptów
207 systemtap z postaci źródłowej do wykonywalnej (.ko). Może być
208 zainstalowany na samodzielnej stacji roboczej programisty (wraz z
209 pakietami systemtap-client i systemtap-runtime) lub dedykowanym
210 zdalnym serwerze (wraz z pakietem systemtap-server). Zawiera kopię
211 standardowej biblioteki tapset oraz pliki biblioteki uruchomieniowej
212 C.
213
214 %package initscript
215 Summary:        SystemTap Initscripts
216 Summary(pl.UTF-8):      Skrypty startowe SystemTap
217 Group:          Base
218 Requires(post,preun):   /sbin/chkconfig
219 Requires:       %{name} = %{version}-%{release}
220 Requires:       rc-scripts
221
222 %description initscript
223 SysVinit scripts to launch selected systemtap scripts at system
224 startup.
225
226 %description initscript -l pl.UTF-8
227 Skrypty SysVinit do uruchamiania wybranych skryptów systemtap w
228 trakcie startu systemu.
229
230 %package server
231 Summary:        Instrumentation System Server
232 Summary(pl.UTF-8):      Serwer systemu oprzyrządowania
233 Group:          Applications/System
234 Requires(post,preun):   /sbin/chkconfig
235 Requires:       %{name}-devel = %{version}-%{release}
236 Requires:       /bin/mktemp
237 Requires:       unzip
238 Requires:       zip
239
240 %description server
241 This is the remote script compilation server component of systemtap.
242 It announces itself to nearby clients with avahi (if available), and
243 compiles systemtap scripts to kernel objects on their demand.
244
245 %description server -l pl.UTF-8
246 Ten pakiet zawiera komponent serwera do zdalnej kompilacji skryptów
247 systemtap. Rozgłasza się pobliskim klientom przy użyciu avahi (jeśli
248 jest dostępny) i na żądanie kompiluje skrypty systemtap do obiektów
249 jądra.
250
251 %package sdt-devel
252 Summary:        Static probe support tools
253 Summary(pl.UTF-8):      Narzędzia do obsługi sond statycznych
254 License:        GPL v2+ and Public Domain
255 Group:          Development/Libraries
256
257 %description sdt-devel
258 This package includes the <sys/sdt.h> header file used for static
259 instrumentation compiled into userspace programs and libraries, along
260 with the optional dtrace-compatibility preprocessor to process related
261 .d files into tracing-macro-laden .h headers.
262
263 %description sdt-devel -l pl.UTF-8
264 Ten pakiet zawiera plik nagłówkowy <sys/sdt.h> służący do
265 wkompilowywania statycznego oprzyrządowania do programów i bibliotek
266 przestrzeni użytkownika, wraz z opcjonalnym preprocesorem zgodności z
267 dtrace, który przetwarza pliki .d na pliki nagłówkowe .h z makrami
268 śledzącymi.
269
270 %package doc
271 Summary:        SystemTap guides and tutorials
272 Summary(pl.UTF-8):      Przewodniki i dokumentacja wprowadzająca do SystemTap
273 Group:          Documentation
274
275 %description doc
276 SystemTap guides and tutorials.
277
278 %description doc -l pl.UTF-8
279 Przewodniki i dokumentacja wprowadzająca do SystemTap.
280
281 %prep
282 %setup -q
283 %patch0 -p1
284 %patch1 -p1
285 %patch2 -p1
286 %patch3 -p1
287 %patch4 -p1
288 %patch5 -p1
289
290 %build
291 %{__gettextize}
292 %{__aclocal}
293 %{__autoconf}
294 %{__autoheader}
295 %{__automake}
296 %configure \
297         --disable-silent-rules \
298         %{?with_crash:--enable-crash} \
299         --enable-docs%{!?with_doc:=no} \
300         --enable-pie \
301         --enable-server \
302         --enable-sqlite \
303         --with-dyninst%{!?with_dyninst:=no} \
304         --with-java=%{?with_java:%{_jvmdir}/java}%{!?with_java:no}
305 %{__make}
306
307 %install
308 rm -rf $RPM_BUILD_ROOT
309 install -d $RPM_BUILD_ROOT/var/{cache,run}/%{name} \
310         $RPM_BUILD_ROOT{%{_sysconfdir}/stap-server/conf.d,/etc/{sysconfig,logrotate.d,rc.d/init.d}} \
311         $RPM_BUILD_ROOT/var/log/stap-server
312
313 %{__make} install \
314         DESTDIR=$RPM_BUILD_ROOT
315
316 # not installed by make
317 install -p stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
318
319 install -p initscript/systemtap $RPM_BUILD_ROOT/etc/rc.d/init.d
320 cp -p initscript/config.systemtap $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/config
321
322 install -p initscript/stap-server $RPM_BUILD_ROOT/etc/rc.d/init.d
323 cp -p initscript/config.stap-server $RPM_BUILD_ROOT/etc/sysconfig/stap-server
324 cp -p initscript/logrotate.stap-server $RPM_BUILD_ROOT/etc/logrotate.d/stap-server
325
326 install -d $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/{conf.d,script.d}
327 install -d $RPM_BUILD_ROOT/var/lib/stap-server/.systemtap
328 install -d $RPM_BUILD_ROOT/var/log/stap-server
329
330 %{__mv} $RPM_BUILD_ROOT%{_docdir}/systemtap docs-installed
331
332 %if %{with python2}
333 %py_postclean
334 %endif
335
336 %find_lang %{name}
337
338 %clean
339 rm -rf $RPM_BUILD_ROOT
340
341 %files
342 %defattr(644,root,root,755)
343
344 %files runtime -f %{name}.lang
345 %defattr(644,root,root,755)
346 %doc AUTHORS NEWS README*
347 %attr(755,root,root) %{_bindir}/stap-merge
348 %attr(755,root,root) %{_bindir}/stap-report
349 %attr(755,root,root) %{_bindir}/stapbpf
350 %{?with_dyninst:%attr(755,root,root) %{_bindir}/stapdyn}
351 %attr(755,root,root) %{_bindir}/stapsh
352 # XXX: %attr(4754,root,stapusr) staprun ?
353 %attr(755,root,root) %{_bindir}/staprun
354 %dir %{_libexecdir}/%{name}
355 %attr(755,root,root) %{_libexecdir}/%{name}/stap-authorize-cert
356 %attr(755,root,root) %{_libexecdir}/%{name}/stapio
357 %if %{with crash}
358 %if "%{_libdir}" != "%{_libexecdir}"
359 %dir %{_libdir}/%{name}
360 %endif
361 %attr(755,root,root) %{_libdir}/%{name}/staplog.so
362 %endif
363 %{_mandir}/man1/stap-merge.1*
364 %{_mandir}/man1/stap-report.1*
365 %{_mandir}/man1/stapref.1*
366 %{_mandir}/man3/stapex.3stap*
367 %{_mandir}/man3/stapfuncs.3stap*
368 %{_mandir}/man3/stapprobes.3stap*
369 %{_mandir}/man3/stapvars.3stap*
370 %if %{with doc}
371 %{_mandir}/man3/function::*.3stap*
372 %{_mandir}/man3/macro::*.3stap*
373 %{_mandir}/man3/probe::*.3stap*
374 %{_mandir}/man3/tapset::*.3stap*
375 %endif
376 %{_mandir}/man7/error::*.7stap*
377 %{_mandir}/man7/stappaths.7*
378 %{_mandir}/man7/warning::debuginfo.7stap*
379 %{_mandir}/man7/warning::symbols.7stap*
380 %{_mandir}/man8/stapbpf.8*
381 %{?with_dyninst:%{_mandir}/man8/stapdyn.8*}
382 %{_mandir}/man8/staprun.8*
383 %{_mandir}/man8/stapsh.8*
384 %{_mandir}/man8/systemtap.8*
385 %lang(cs) %{_mandir}/cs/man1/stap-merge.1*
386 %lang(cs) %{_mandir}/cs/man1/stap-report.1*
387 %lang(cs) %{_mandir}/cs/man1/stapref.1*
388 %lang(cs) %{_mandir}/cs/man3/stapex.3stap*
389 %lang(cs) %{_mandir}/cs/man3/stapfuncs.3stap*
390 %lang(cs) %{_mandir}/cs/man3/stapprobes.3stap*
391 %lang(cs) %{_mandir}/cs/man3/stapvars.3stap*
392 %lang(cs) %{_mandir}/cs/man7/error::*.7stap*
393 %lang(cs) %{_mandir}/cs/man7/stappaths.7*
394 %lang(cs) %{_mandir}/cs/man7/warning::debuginfo.7stap*
395 %lang(cs) %{_mandir}/cs/man7/warning::symbols.7stap*
396 %lang(cs) %{_mandir}/cs/man8/stapsh.8*
397 %lang(cs) %{_mandir}/cs/man8/systemtap.8*
398
399 %if %{with java}
400 %files runtime-java
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{_libexecdir}/%{name}/stapbm
403 %attr(755,root,root) %{_libexecdir}/%{name}/libHelperSDT_*.so
404 %{_libexecdir}/%{name}/HelperSDT.jar
405 %endif
406
407 %if %{with python2}
408 %files runtime-python2
409 %defattr(644,root,root,755)
410 %dir %{py_sitedir}/HelperSDT
411 %attr(755,root,root) %{py_sitedir}/HelperSDT/_HelperSDT.so
412 %{py_sitedir}/HelperSDT/*.py[co]
413 %{py_sitedir}/HelperSDT-0.1.0-py*.egg-info
414 %endif
415
416 %if %{with python3}
417 %files runtime-python3
418 %defattr(644,root,root,755)
419 %dir %{py3_sitedir}/HelperSDT
420 %attr(755,root,root) %{py3_sitedir}/HelperSDT/_HelperSDT.cpython-*.so
421 %{py3_sitedir}/HelperSDT/*.py
422 %{py3_sitedir}/HelperSDT/__pycache__
423 %{py3_sitedir}/HelperSDT-0.1.0-py*.egg-info
424 %endif
425
426 %files client
427 %defattr(644,root,root,755)
428 %attr(755,root,root) %{_bindir}/stap
429 %attr(755,root,root) %{_bindir}/stap-prep
430 %attr(755,root,root) %{_bindir}/stapvirt
431 %dir %{_datadir}/%{name}
432 %{_datadir}/%{name}/examples
433 %{_datadir}/%{name}/tapset
434 %{_mandir}/man1/stap.1*
435 %{_mandir}/man1/stap-prep.1*
436 %{_mandir}/man1/stapvirt.1*
437 %lang(cs) %{_mandir}/cs/man1/stap.1*
438 %lang(cs) %{_mandir}/cs/man1/stap-prep.1*
439 %lang(cs) %{_mandir}/cs/man1/stapvirt.1*
440
441 %files devel
442 %defattr(644,root,root,755)
443 %{_datadir}/%{name}/runtime
444 %if %{with python2} || %{with python3}
445 %dir %{_libexecdir}/%{name}
446 %dir %{_libexecdir}/%{name}/python
447 %attr(755,root,root) %{_libexecdir}/systemtap/python/stap-resolve-module-function.py
448 %endif
449
450 %files initscript
451 %defattr(644,root,root,755)
452 %attr(754,root,root) /etc/rc.d/init.d/systemtap
453 %dir %{_sysconfdir}/systemtap
454 %dir %{_sysconfdir}/systemtap/conf.d
455 %dir %{_sysconfdir}/systemtap/script.d
456 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemtap/config
457 %dir /var/cache/%{name}
458 %dir /var/run/%{name}
459
460 %files server
461 %defattr(644,root,root,755)
462 %attr(755,root,root) %{_bindir}/stap-server
463 %attr(755,root,root) %{_libexecdir}/%{name}/stap-env
464 %attr(755,root,root) %{_libexecdir}/%{name}/stap-gen-cert
465 %attr(755,root,root) %{_libexecdir}/%{name}/stap-serverd
466 %attr(755,root,root) %{_libexecdir}/%{name}/stap-sign-module
467 %attr(755,root,root) %{_libexecdir}/%{name}/stap-start-server
468 %attr(755,root,root) %{_libexecdir}/%{name}/stap-stop-server
469 %dir %{_sysconfdir}/stap-server
470 %dir %{_sysconfdir}/stap-server/conf.d
471 %attr(754,root,root) /etc/rc.d/init.d/stap-server
472 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/stap-server
473 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/stap-server
474 # TODO: create user/group
475 #%attr(750,stap-server,stap-server) %dir /var/lib/stap-server
476 #%attr(700,stap-server,stap-server) %dir /var/lib/stap-server/.systemtap
477 #%attr(755,stap-server,stap-server) %dir /var/log/stap-server
478 #%attr(755,stap-server,stap-server) %dir /var/run/stap-server
479 %{_mandir}/man8/stap-server.8*
480 %lang(cs) %{_mandir}/cs/man8/stap-server.8*
481
482 %files sdt-devel
483 %defattr(644,root,root,755)
484 %attr(755,root,root) %{_bindir}/dtrace
485 %{_includedir}/sys/sdt.h
486 %{_includedir}/sys/sdt-config.h
487 %{_mandir}/man1/dtrace.1*
488 %lang(cs) %{_mandir}/cs/man1/dtrace.1*
489
490 %if %{with doc}
491 %files doc
492 %defattr(644,root,root,755)
493 %doc doc/{langref,tutorial}.pdf doc/beginners/SystemTap_Beginners_Guide.pdf docs-installed/tapsets.pdf
494 %endif