3
0
forked from pool/systemtap
systemtap/systemtap.spec
Tony Jones 29b0745414 - Upgrade to version 5.1. See systemtap.changes for changelog
- Upgrade to version 5.1. See systemtap.changes for changelog 
- Upgrade to version 5.1. See systemtap.changes for changelog 
- Update to version 5.1
  Summary of changes:
  * SystemTap frontend (stap) changes
    - An experimental "--build-as=USER" flag to reduce privilege during
      script compilation, which is a security improvement effort.
    - New probe-points for userland hardware breakpoints/watchpoints
      targeting processes (PR31180):
        probe process.data(ADDRESS).write
        probe process.data(ADDRESS).rw
        probe process.data(ADDRESS).length(LEN).write
        probe process.data(ADDRESS).length(LEN).rw
    - Support for stap --remote=bpf.
    - Improved searching heuristics for probing symbol names with/without
      symbol-version suffixes and with/without weak names.
    - Made long-running debuginfod downloads more cleanly interruptible.
    - Improved stap-prep heuristics for finding debuginfo for "-rt"
      (real-time) kernels.
  
  * SystemTap backend changes
    - Dynamic namespace switching for processes targeted via "-x PID",
      allowing processes running within containers to be probed.
    - Improved message transport robustness for heavy traffic (individual
      messages spanning pages) and for short runs (avoiding loss of
      last-gasp messages).
    - Added MTAG macro on several internal memory allocation routines
      to improve leak warnings.  Corrected a bunch of leaks.
    - "stap -t" now reports module initialization timings too.
    - Ported runtime for GCC14 compatibility, with its more recent C
      dialect warnings.
    - Support for DW_OP_bra in DWARF location lists, which makes a few
      more $context variables accessible to systemtap.
  
  * SystemTap tapset changes
    - Portability fixes for more recent kernels, as always.
    - set_kernel_string* tapset functions improved range checking.
    - print_ubacktrace_fileline() works with PIE binaries.
    - Many portability improvements and some fixes in the testsuite.
    - Enhancements for the tcp, nfs, memory tapsets.
  Drop following patches (upstream):
    - bpf-translate.cxx-fix-build-against-upcoming-gcc14.patch
    - get-shm_flag-defines-from-the-appropriate-include-file-for-linux-6.8-kernel.patch
    - pr31288-build-with-gcc14-cont.patch
    - pr31288-build-with-gcc14.patch
    - pr31373-deal-with-the-removal-of-strlcpy-from-linux-6.8.patch
    - staprun-fix-build-against-upcoming-gcc14.patch
    - stapvirt.c-more-gcc-14-werror-calloc-transposed-args-compatibility.patch

OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=150
2024-06-17 23:02:55 +00:00

188 lines
5.7 KiB
RPMSpec

#
# spec file for package systemtap
#
# Copyright (c) 2024 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.1
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
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-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