systemtap/systemtap.spec

191 lines
5.8 KiB
RPMSpec
Raw Normal View History

- Upgrade to version 5.2. See systemtap.changes for changelog - Upgrade to version 5.2. See systemtap.changes for changelog - Upgrade to version 5.2. See systemtap.changes for changelog - Resolve errors with linux-6.13 based kernels. Building trivial 'hello world' failed with: <command-line>: fatal error: {path_to}stapconf.h: No such file or directory Attemptng to preserve build directory (-k) caused an infinite loop of: /usr/src/linux-6.13.4-1/scripts/Makefile.build:370: warning: overriding recipe for target 'modules.order' New patch: linux-6.13-fedora-compatibility.patch New patch: rawhide-6.13-kbuild-compatibility.patch - Update to version 5.2 Summary of changes: * SystemTap frontend (stap) changes - New /* pragma:suffix */ for file-level embedded C code blocks to be placed near the end of the emitted kernel module C file. Corresponding macros allow additional C hooks for module init/exit. - With elfutils 0.192's release on 2024-10-18, the "metadata" based probes announced in systemtap 5.0 should now be increasingly available. * SystemTap backend changes - Numerous kernel portability changes - "probe never" probes don't emit C code at all any more. - The standard Fedora spec packaging breaks up the sdt.h header file and the /usr/bin/dtrace stub-builder script, for those cases where the macros in sdt.h are sufficient. - More robust message transport draining during shutdown to prevent message losses. * SystemTap tapset changes - Numerous kernel portability changes - Added a few functions to inet_sock.stp. * SystemTap sample scripts - traceio3.stp: Trace VFS operations by filename regex. - swapmonitor.stp: Trace swap operations. * Bugfixes - PR31597 Systemtap not extracting all the data sent to the print data in the buffers before shutdown - PR31707 Need a way to postpone emitting the file-level embedded C blocks - PR31708 Probe never handlers still emit C code for the handler handlers and probe local structs - PR31699 UBSAN errors for systemtap map functions with Fedora Rawhide and Fedora 39 6.8.8 kernels - PR31740 @hist_log affects the result of @variance - PR31893 access_ok() was called without turning off page faults - PR32064 SEC_ERROR_BAD_DATABASE during very first stap-server start - PR31703 Git detection false positive when 'which' not available - PR32107 Drop obsolete -Werror hack in buildrun.cxx - PR32194 Reflect the uprobe_unregister() split - PR32209 No tracepoints seen using kernel-6.12 - PR32302 Unrecognized tracepoints - RHEL-55262 Handle S390_lowcore macro removal - RHEL-66275 Add some inet_sock.stp tapset functions. - RHEL-66150 Fix cachestat.stp for newer kernels. - RHEL-66577 Add swapmonitor.stp example script. OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=154
2025-02-25 21:43:00 +00:00
#
# spec file for package systemtap
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
%endif
Name: systemtap
Version: 5.2
Release: 0
Summary: Instrumentation System
License: GPL-2.0-or-later
Group: Development/Tools/Debuggers
URL: https://sourceware.org/systemtap/
Source0: https://sourceware.org/systemtap/ftp/releases/systemtap-%{version}.tar.gz
Source1: https://sourceware.org/systemtap/ftp/releases/systemtap-%{version}.tar.gz.asc
Source2: %{name}.keyring
Source3: README-BEFORE-ADDING-PATCHES
Source4: README-KEYRING
Source5: stap-server.conf
Patch1: systemtap-build-source-dir.patch
Patch2: linux-6.13-fedora-compatibility.patch
Patch3: rawhide-6.13-kbuild-compatibility.patch
BuildRequires: autoconf >= 2.71
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libavahi-devel
BuildRequires: libcap-devel
BuildRequires: libdw-devel
BuildRequires: mozilla-nspr-devel
BuildRequires: mozilla-nss-devel
BuildRequires: mozilla-nss-tools
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: sqlite-devel
BuildRequires: pkgconfig(json-c)
BuildRequires: pkgconfig(libdebuginfod)
BuildRequires: pkgconfig(systemd)
Requires: %{name}-dtrace = %{version}
Requires: %{name}-runtime = %{version}-%{release}
Recommends: kernel-devel
Obsoletes: systemtap-client < 1.5
%description
SystemTap is an instrumentation system for systems running Linux.
Developers can write instrumentation to collect data on the operation
of the system.
%package runtime
Summary: Runtime environment for systemtap
Group: Development/Tools/Debuggers
%description runtime
SystemTap is an instrumentation system for systems running Linux.
This package contains the runtime environment for systemtap programs.
%package server
Summary: Systemtap server
Group: Development/Tools/Debuggers
Requires: %{name} = %{version}-%{release}
# dependancies for systemtap shell scripts
Requires: avahi
Requires: avahi-utils
Requires: coreutils
Requires: mozilla-nss-tools
Requires: unzip
Requires: zip
%description server
SystemTap is an instrumentation system for systems running Linux.
This package contains the server component of systemtap.
%package sdt-devel
Summary: Static probe support tools
# systemtap-headers provides the same header files
# as sdt-devel, so we must conflict.
Group: Development/Tools/Debuggers
Requires: %{name} = %{version}-%{release}
Conflicts: systemtap-headers
%description sdt-devel
SystemTap is an instrumentation system for systems running Linux.
This package contains the support tools for static probes.
%prep
%setup -q
%autopatch -p1
%build
autoreconf -fi
%configure \
--disable-docs \
--with-python3 \
--docdir=%{_docdir}/systemtap
make %{?_smp_mflags} V=1
%install
%make_install
rm -f %{buildroot}%{_bindir}/dtrace
rm -f %{buildroot}%{_libexecdir}/systemtap/stap-server-request
# README, AUTHORS, NEWS, man3 and all examples packaged by systemtap-docs
# COPYING needs to stay in main for GPL
rm -rf %{buildroot}%{_docdir}/systemtap/
rm -rf %{buildroot}%{_datadir}/systemtap/examples
rm -rf %{buildroot}%{_mandir}/man3 %{buildroot}%{_mandir}/cs/man3
mkdir -p %{buildroot}%{_docdir}/systemtap/
cp COPYING %{buildroot}%{_docdir}/systemtap/
mkdir -p %{buildroot}%{_localstatedir}/cache/systemtap
mkdir -p %{buildroot}%{_localstatedir}/log
touch %{buildroot}%{_localstatedir}/log/stap-server.log
# config file for stap-server (/run now on tmpfs)
mkdir -p %{buildroot}%{_tmpfilesdir}
install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}
%fdupes %{buildroot}%{_datadir}/%{name}
%python3_fix_shebang
%find_lang systemtap
%post server
# Create tmpfiles
%tmpfiles_create %{_tmpfilesdir}/stap-server.conf
%files
%{_bindir}/stap
%{_bindir}/stap-prep
%{_bindir}/stap-profile-annotate
%{_bindir}/stap-jupyter-container
%{_bindir}/stap-jupyter-install
%{_mandir}/man[17]/*
%{_mandir}/cs/man[17]/*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/runtime
%{_datadir}/%{name}/interactive-notebook
%{_datadir}/%{name}/tapset
#packaged by systemtap-initscript in upstream
%dir %{_localstatedir}/cache/systemtap
%files runtime -f systemtap.lang
%doc %{_docdir}/systemtap
%{_bindir}/staprun
%{_bindir}/stapsh
%{_bindir}/stap-merge
%{_bindir}/stap-report
%{_bindir}/stapbpf
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/stapio
%{_libexecdir}/%{name}/stap-env
%{_libexecdir}/%{name}/stap-authorize-cert
%{_mandir}/man8/staprun.8*
%{_mandir}/man8/systemtap-service.8*
%{_mandir}/cs/man8/systemtap.8*
%{_mandir}/man8/stapsh.8*
%{_mandir}/cs/man8/stapsh.8*
%{_mandir}/man8/stapbpf.8*
%files server
%dir %{_tmpfilesdir}
%{_tmpfilesdir}/stap-server.conf
%{_bindir}/stap-server
%{_libexecdir}/%{name}/stap-gen-cert
%{_libexecdir}/%{name}/stap-serverd
%{_libexecdir}/%{name}/stap-sign-module
%{_libexecdir}/%{name}/stap-start-server
%{_libexecdir}/%{name}/stap-stop-server
%{_mandir}/man8/stap-server.8*
%{_mandir}/cs/man8/stap-server.8*
%ghost %{_localstatedir}/log/stap-server.log
%ghost %dir %{_rundir}/stap-server
%files sdt-devel
%{_includedir}/sys/*.h
%changelog