|
|
|
@ -1,26 +1,18 @@
|
|
|
|
|
# Release number for rpm build. Stays at 1 for new PACKAGE_VERSION increases.
|
|
|
|
|
%define release 1
|
|
|
|
|
# Version number of oldest elfutils release that works with systemtap.
|
|
|
|
|
%define elfutils_version 0.131
|
|
|
|
|
|
|
|
|
|
# Default options (suitable for fedora)
|
|
|
|
|
%define with_sqlite 1
|
|
|
|
|
%define with_docs 1
|
|
|
|
|
%define with_crash 0
|
|
|
|
|
%define with_bundled_elfutils 0
|
|
|
|
|
|
|
|
|
|
# Enable these options by default for RHEL
|
|
|
|
|
%if 0%{?rhel} >= 5
|
|
|
|
|
%define with_crash 1
|
|
|
|
|
%define with_bundled_elfutils 1
|
|
|
|
|
%endif
|
|
|
|
|
%{!?with_sqlite: %define with_sqlite 1}
|
|
|
|
|
%{!?with_docs: %define with_docs 1}
|
|
|
|
|
%{!?with_crash: %define with_crash 0}
|
|
|
|
|
%{!?with_rpm: %define with_rpm 1}
|
|
|
|
|
%{!?with_bundled_elfutils: %define with_bundled_elfutils 0}
|
|
|
|
|
%{!?elfutils_version: %define elfutils_version 0.127}
|
|
|
|
|
%{!?pie_supported: %define pie_supported 1}
|
|
|
|
|
%{!?with_grapher: %define with_grapher 0}
|
|
|
|
|
|
|
|
|
|
Name: systemtap
|
|
|
|
|
Version: 0.6.2
|
|
|
|
|
Release: %{release}%{?dist}
|
|
|
|
|
Version: 0.9.8
|
|
|
|
|
Release: 1%{?dist}
|
|
|
|
|
# for version, see also configure.ac
|
|
|
|
|
Summary: Instrumentation System
|
|
|
|
|
Group: Development/System
|
|
|
|
|
ExcludeArch: ppc
|
|
|
|
|
License: GPLv2+
|
|
|
|
|
URL: http://sourceware.org/systemtap/
|
|
|
|
|
Source: ftp://sourceware.org/pub/%{name}/releases/%{name}-%{version}.tar.gz
|
|
|
|
@ -28,23 +20,27 @@ Source: ftp://sourceware.org/pub/%{name}/releases/%{name}-%{version}.tar.gz
|
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
|
|
|
|
|
|
|
|
Requires: kernel >= 2.6.9-11
|
|
|
|
|
BuildRequires: libcap-devel
|
|
|
|
|
%if %{with_sqlite}
|
|
|
|
|
BuildRequires: sqlite-devel
|
|
|
|
|
Requires: sqlite
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with_crash}
|
|
|
|
|
BuildRequires: crash-devel zlib-devel
|
|
|
|
|
%endif
|
|
|
|
|
# Requires: kernel-devel
|
|
|
|
|
# or is that kernel-smp-devel? kernel-hugemem-devel?
|
|
|
|
|
%if %{with_rpm}
|
|
|
|
|
BuildRequires: rpm-devel glibc-headers
|
|
|
|
|
%endif
|
|
|
|
|
# Alternate kernel packages kernel-PAE-devel et al have a virtual
|
|
|
|
|
# provide for kernel-devel, so this requirement does the right thing.
|
|
|
|
|
Requires: kernel-devel
|
|
|
|
|
Requires: gcc make
|
|
|
|
|
# Suggest: kernel-debuginfo
|
|
|
|
|
Requires: systemtap-runtime = %{version}-%{release}
|
|
|
|
|
BuildRequires: nss-devel nss-tools pkgconfig
|
|
|
|
|
|
|
|
|
|
%if %{with_bundled_elfutils}
|
|
|
|
|
Source1: elfutils-%{elfutils_version}.tar.gz
|
|
|
|
|
Patch1: elfutils-portability.patch
|
|
|
|
|
BuildRequires: m4
|
|
|
|
|
%define setup_elfutils -a1
|
|
|
|
|
%else
|
|
|
|
|
BuildRequires: elfutils-devel >= %{elfutils_version}
|
|
|
|
@ -55,6 +51,10 @@ Requires: crash
|
|
|
|
|
|
|
|
|
|
%if %{with_docs}
|
|
|
|
|
BuildRequires: /usr/bin/latex /usr/bin/dvips /usr/bin/ps2pdf latex2html
|
|
|
|
|
# On F10, xmlto's pdf support was broken off into a sub-package,
|
|
|
|
|
# called 'xmlto-tex'. To avoid a specific F10 BuildReq, we'll do a
|
|
|
|
|
# file-based buildreq on '/usr/share/xmlto/format/fo/pdf'.
|
|
|
|
|
BuildRequires: xmlto /usr/share/xmlto/format/fo/pdf
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%description
|
|
|
|
@ -86,6 +86,51 @@ Requires: systemtap dejagnu
|
|
|
|
|
The testsuite allows testing of the entire SystemTap toolchain
|
|
|
|
|
without having to rebuild from sources.
|
|
|
|
|
|
|
|
|
|
%package client
|
|
|
|
|
Summary: Instrumentation System Client
|
|
|
|
|
Group: Development/System
|
|
|
|
|
License: GPLv2+
|
|
|
|
|
URL: http://sourceware.org/systemtap/
|
|
|
|
|
Requires: systemtap-runtime = %{version}-%{release}
|
|
|
|
|
Requires: avahi avahi-tools nss nss-tools mktemp
|
|
|
|
|
|
|
|
|
|
%description client
|
|
|
|
|
SystemTap client is the client component of an instrumentation
|
|
|
|
|
system for systems running Linux 2.6. Developers can write
|
|
|
|
|
instrumentation to collect data on the operation of the system.
|
|
|
|
|
|
|
|
|
|
%package server
|
|
|
|
|
Summary: Instrumentation System Server
|
|
|
|
|
Group: Development/System
|
|
|
|
|
License: GPLv2+
|
|
|
|
|
URL: http://sourceware.org/systemtap/
|
|
|
|
|
Requires: systemtap
|
|
|
|
|
Requires: avahi avahi-tools nss nss-tools mktemp
|
|
|
|
|
|
|
|
|
|
%description server
|
|
|
|
|
SystemTap server is the server component of an instrumentation
|
|
|
|
|
system for systems running Linux 2.6. Developers can write
|
|
|
|
|
instrumentation to collect data on the operation of the system.
|
|
|
|
|
|
|
|
|
|
%package sdt-devel
|
|
|
|
|
Summary: Static probe support tools
|
|
|
|
|
Group: Development/System
|
|
|
|
|
License: GPLv2+
|
|
|
|
|
URL: http://sourceware.org/systemtap/
|
|
|
|
|
|
|
|
|
|
%description sdt-devel
|
|
|
|
|
Support tools to allow applications to use static probes.
|
|
|
|
|
|
|
|
|
|
%package initscript
|
|
|
|
|
Summary: Systemtap Initscript
|
|
|
|
|
Group: Development/System
|
|
|
|
|
License: GPLv2+
|
|
|
|
|
URL: http://sourceware.org/systemtap/
|
|
|
|
|
Requires: systemtap-runtime, initscripts
|
|
|
|
|
|
|
|
|
|
%description initscript
|
|
|
|
|
Initscript for Systemtap scripts.
|
|
|
|
|
|
|
|
|
|
%prep
|
|
|
|
|
%setup -q %{?setup_elfutils}
|
|
|
|
|
|
|
|
|
@ -130,27 +175,49 @@ cd ..
|
|
|
|
|
%define crash_config --disable-crash
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# Enable/disable the code to find and suggest needed rpms
|
|
|
|
|
%if %{with_rpm}
|
|
|
|
|
%define rpm_config --with-rpm
|
|
|
|
|
%else
|
|
|
|
|
%define rpm_config --without-rpm
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if %{with_docs}
|
|
|
|
|
%define docs_config --enable-docs
|
|
|
|
|
%else
|
|
|
|
|
%define docs_config --disable-docs
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# Enable pie as configure defaults to disabling it
|
|
|
|
|
%if %{pie_supported}
|
|
|
|
|
%define pie_config --enable-pie
|
|
|
|
|
%else
|
|
|
|
|
%define pie_config --disable-pie
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if %{with_grapher}
|
|
|
|
|
%define grapher_config --enable-grapher
|
|
|
|
|
%else
|
|
|
|
|
%define grapher_config --disable-grapher
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%configure %{?elfutils_config} %{sqlite_config} %{crash_config} %{docs_config}
|
|
|
|
|
%configure %{?elfutils_config} %{sqlite_config} %{crash_config} %{docs_config} %{pie_config} %{grapher_config} %{rpm_config}
|
|
|
|
|
make %{?_smp_mflags}
|
|
|
|
|
|
|
|
|
|
# Fix paths in the example & testsuite scripts
|
|
|
|
|
find examples testsuite -type f -name '*.stp' -print0 | xargs -0 sed -i -r -e '1s@^#!.+stap@#!%{_bindir}/stap@'
|
|
|
|
|
|
|
|
|
|
# To avoid perl dependency, make perl sample script non-executable
|
|
|
|
|
chmod -x examples/samples/kmalloc-top
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
|
rm -rf ${RPM_BUILD_ROOT}
|
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
|
|
|
|
|
|
# We want the examples in the special doc dir, not the build install dir.
|
|
|
|
|
# We build it in place and then move it away so it doesn't get installed
|
|
|
|
|
# twice. rpm can specify itself where the (versioned) docs go with the
|
|
|
|
|
# %doc directive.
|
|
|
|
|
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/examples examples
|
|
|
|
|
|
|
|
|
|
# Fix paths in the example & testsuite scripts
|
|
|
|
|
find examples testsuite -type f -name '*.stp' -print0 | xargs -0 sed -i -r -e '1s@^#!.+stap@#!%{_bindir}/stap@'
|
|
|
|
|
|
|
|
|
|
# Because "make install" may install staprun with mode 04111, the
|
|
|
|
|
# post-processing programs rpmbuild runs won't be able to read it.
|
|
|
|
|
# So, we change permissions so that they can read it. We'll set the
|
|
|
|
@ -159,8 +226,25 @@ chmod 755 $RPM_BUILD_ROOT%{_bindir}/staprun
|
|
|
|
|
|
|
|
|
|
# Copy over the testsuite
|
|
|
|
|
cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap
|
|
|
|
|
mkdir $RPM_BUILD_ROOT%{_datadir}/%{name}/src
|
|
|
|
|
cp -rp examples $RPM_BUILD_ROOT%{_datadir}/%{name}/src
|
|
|
|
|
|
|
|
|
|
%if %{with_docs}
|
|
|
|
|
# We want the manuals in the special doc dir, not the generic doc install dir.
|
|
|
|
|
# We build it in place and then move it away so it doesn't get installed
|
|
|
|
|
# twice. rpm can specify itself where the (versioned) docs go with the
|
|
|
|
|
# %doc directive.
|
|
|
|
|
mkdir docs.installed
|
|
|
|
|
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/*.pdf docs.installed/
|
|
|
|
|
mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/tapsets docs.installed/
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d/
|
|
|
|
|
install -m 755 initscript/systemtap $RPM_BUILD_ROOT%{_sysconfdir}/init.d/
|
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap
|
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/conf.d
|
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/script.d
|
|
|
|
|
install -m 644 initscript/config $RPM_BUILD_ROOT%{_sysconfdir}/systemtap
|
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/systemtap
|
|
|
|
|
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/systemtap
|
|
|
|
|
|
|
|
|
|
%clean
|
|
|
|
|
rm -rf ${RPM_BUILD_ROOT}
|
|
|
|
@ -170,18 +254,39 @@ getent group stapdev >/dev/null || groupadd -r stapdev
|
|
|
|
|
getent group stapusr >/dev/null || groupadd -r stapusr
|
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
|
|
%post initscript
|
|
|
|
|
chkconfig --add systemtap
|
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
|
|
%preun initscript
|
|
|
|
|
chkconfig --del systemtap
|
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
|
|
%post
|
|
|
|
|
# Remove any previously-built uprobes.ko materials
|
|
|
|
|
(make -C /usr/share/systemtap/runtime/uprobes clean) >/dev/null 3>&1 || true
|
|
|
|
|
|
|
|
|
|
%preun
|
|
|
|
|
# Ditto
|
|
|
|
|
(make -C /usr/share/systemtap/runtime/uprobes clean) >/dev/null 3>&1 || true
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
|
|
|
|
|
%doc README AUTHORS NEWS COPYING examples
|
|
|
|
|
%if %{with_docs}
|
|
|
|
|
%doc doc/tutorial.pdf
|
|
|
|
|
%doc doc/langref.pdf
|
|
|
|
|
%doc docs.installed/*.pdf
|
|
|
|
|
%doc docs.installed/tapsets
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%{_bindir}/stap
|
|
|
|
|
%{_bindir}/stap-report
|
|
|
|
|
%{_bindir}/stap-env
|
|
|
|
|
%{_bindir}/stap-gen-cert
|
|
|
|
|
%{_bindir}/stap-authorize-cert
|
|
|
|
|
%{_bindir}/stap-authorize-signing-cert
|
|
|
|
|
%{_mandir}/man1/*
|
|
|
|
|
%{_mandir}/man5/*
|
|
|
|
|
%{_mandir}/man3/*
|
|
|
|
|
|
|
|
|
|
%dir %{_datadir}/%{name}
|
|
|
|
|
%{_datadir}/%{name}/runtime
|
|
|
|
@ -200,35 +305,81 @@ exit 0
|
|
|
|
|
%files runtime
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
%attr(4111,root,root) %{_bindir}/staprun
|
|
|
|
|
%{_bindir}/stap-report
|
|
|
|
|
%{_libexecdir}/%{name}
|
|
|
|
|
%{_mandir}/man8/*
|
|
|
|
|
%{_mandir}/man8/staprun.8*
|
|
|
|
|
|
|
|
|
|
%doc README AUTHORS NEWS COPYING
|
|
|
|
|
|
|
|
|
|
%files testsuite
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
%{_datadir}/%{name}/src
|
|
|
|
|
%{_datadir}/%{name}/testsuite
|
|
|
|
|
|
|
|
|
|
%files client
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
%{_bindir}/stap-client
|
|
|
|
|
%{_bindir}/stap-env
|
|
|
|
|
%{_bindir}/stap-find-servers
|
|
|
|
|
%{_bindir}/stap-client-connect
|
|
|
|
|
%{_mandir}/man8/stap-server.8*
|
|
|
|
|
|
|
|
|
|
%files server
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
%{_bindir}/stap-server
|
|
|
|
|
%{_bindir}/stap-serverd
|
|
|
|
|
%{_bindir}/stap-env
|
|
|
|
|
%{_bindir}/stap-start-server
|
|
|
|
|
%{_bindir}/stap-find-servers
|
|
|
|
|
%{_bindir}/stap-find-or-start-server
|
|
|
|
|
%{_bindir}/stap-stop-server
|
|
|
|
|
%{_bindir}/stap-gen-cert
|
|
|
|
|
%{_bindir}/stap-authorize-cert
|
|
|
|
|
%{_bindir}/stap-authorize-server-cert
|
|
|
|
|
%{_bindir}/stap-server-connect
|
|
|
|
|
%{_mandir}/man8/stap-server.8*
|
|
|
|
|
|
|
|
|
|
%files sdt-devel
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
%{_bindir}/dtrace
|
|
|
|
|
%{_includedir}/sys/sdt.h
|
|
|
|
|
|
|
|
|
|
%files initscript
|
|
|
|
|
%defattr(-,root,root)
|
|
|
|
|
%{_sysconfdir}/init.d/systemtap
|
|
|
|
|
%dir %{_sysconfdir}/systemtap
|
|
|
|
|
%dir %{_sysconfdir}/systemtap/conf.d
|
|
|
|
|
%dir %{_sysconfdir}/systemtap/script.d
|
|
|
|
|
%config(noreplace) %{_sysconfdir}/systemtap/config
|
|
|
|
|
%dir %{_localstatedir}/cache/systemtap
|
|
|
|
|
%dir %{_localstatedir}/run/systemtap
|
|
|
|
|
%doc initscript/README.initscript
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
* Thu Mar 27 2008 Will Cohen <wcohen@redhat.com> - 0.6.2-1
|
|
|
|
|
- Rebase.
|
|
|
|
|
* Thu Jun 11 2009 Josh Stone <jistone@redhat.com> - 0.9.8-1
|
|
|
|
|
- Upstream release.
|
|
|
|
|
|
|
|
|
|
* Wed Feb 21 2008 Will Cohen <wcohen@redhat.com> - 0.6.1-8
|
|
|
|
|
- Bump version.
|
|
|
|
|
* Thu Apr 23 2009 Josh Stone <jistone@redhat.com> - 0.9.7-1
|
|
|
|
|
- Upstream release.
|
|
|
|
|
|
|
|
|
|
* Wed Feb 13 2008 Will Cohen <wcohen@redhat.com> - 0.6.1-5
|
|
|
|
|
- Correct elfi typo in runtime/stack-i386.c.
|
|
|
|
|
* Fri Mar 27 2009 Josh Stone <jistone@redhat.com> - 0.9.5-1
|
|
|
|
|
- Upstream release.
|
|
|
|
|
|
|
|
|
|
* Tue Feb 12 2008 Will Cohen <wcohen@redhat.com> - 0.6.1-4
|
|
|
|
|
- Add patch for gcc 4.3.
|
|
|
|
|
* Wed Mar 18 2009 Will Cohen <wcohen@redhat.com> - 0.9-2
|
|
|
|
|
- Add location of man pages.
|
|
|
|
|
|
|
|
|
|
* Tue Feb 17 2009 Frank Ch. Eigler <fche@redhat.com> - 0.9-1
|
|
|
|
|
- Upstream release.
|
|
|
|
|
|
|
|
|
|
* Thu Nov 13 2008 Frank Ch. Eigler <fche@redhat.com> - 0.8-1
|
|
|
|
|
- Upstream release.
|
|
|
|
|
|
|
|
|
|
* Tue Jul 15 2008 Frank Ch. Eigler <fche@redhat.com> - 0.7-1
|
|
|
|
|
- Upstream release.
|
|
|
|
|
|
|
|
|
|
* Fri Feb 1 2008 Frank Ch. Eigler <fche@redhat.com> - 0.6.1-3
|
|
|
|
|
- Add zlib-devel dependency which is supposed to come from crash-devel.
|
|
|
|
|
|
|
|
|
|
* Fri Feb 1 2008 Frank Ch. Eigler <fche@redhat.com> - 0.6.1-2
|
|
|
|
|
- Process testsuite .stp files to fool "#! stap" dep. finder.
|
|
|
|
|
- Add zlib-devel to buildreq; missing from crash-devel
|
|
|
|
|
- Process testsuite .stp files for #!stap->#!/usr/bin/stap
|
|
|
|
|
|
|
|
|
|
* Fri Jan 18 2008 Frank Ch. Eigler <fche@redhat.com> - 0.6.1-1
|
|
|
|
|
- Add crash-devel buildreq to build staplog.so crash(8) module.
|
|
|
|
|