SHA256
1
0
forked from pool/systemtap
systemtap/systemtap.spec

188 lines
5.7 KiB
RPMSpec
Raw Normal View History

#
# 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
- 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-18 01:02:55 +02:00
Version: 5.1
Release: 0
Summary: Instrumentation System
License: GPL-2.0-or-later
Group: Development/Tools/Debuggers
URL: https://sourceware.org/systemtap/
Accepting request 627384 from home:simson:branches:devel:tools - Upgrade to version 3.3: Changelog: https://lwn.net/Articles/757030/ eBPF backend extensions, easier access to examples, adapting to meltdown/spectre complications, real-time / high-cpu-count concurrency fixes - Added public key of "Frank Ch. Eigler <fche@elastic.org>", since he signed the new package - Upgrade to version 3.3: Changelog: https://lwn.net/Articles/757030/ eBPF backend extensions, easier access to examples, adapting to meltdown/spectre complications, real-time / high-cpu-count concurrency fixes - Remove patches, because the issues were fixed upstream: systemtap-change-extra_cflags-escape-processing.patch - Adjust patch for version 3.3: systemtap-build-source-dir.patch - Added public key of "Frank Ch. Eigler <fche@elastic.org>", since he signed the new package - Upgrade to version 3.3: Changelog: https://lwn.net/Articles/757030/ eBPF backend extensions, easier access to examples, adapting to meltdown/spectre complications, real-time / high-cpu-count concurrency fixes - Remove patches, because the issues were fixed upstream: systemtap-fixes-for-gcc-8.patch systemtap-change-extra_cflags-escape-processing.patch - Adjust patch for version 3.3: systemtap-build-source-dir.patch - Added public key of "Frank Ch. Eigler <fche@elastic.org>", since he signed the new package OBS-URL: https://build.opensuse.org/request/show/627384 OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=101
2018-08-16 09:21:58 +02:00
Source0: https://sourceware.org/systemtap/ftp/releases/systemtap-%{version}.tar.gz
Accepting request 1085967 from home:dirkmueller:Factory - update to 4.9: * ISystemtap: the new interactive systemtap jupyter kernel. This provides a simple GUI for writing/running Systemtap scripts in an easy, incremental way within Jupyterlab. Added 2 news scripts, stap-jupyter-install and stap-jupyter-container. See stap-jupyter(1). * The new "language-server" mode, specified by "stap --language-server", starts a LSP server which will communicate with the client via stdio. * This server currently supports code completion suggestions. * See language-server/README.md for more details and usage instructions. * Safety/liveness checking for $context variable assignments in probes of retpoline-compiled kernels is temporarily disabled. * DWARF-related probes (.function, .statement) now merge DWARF and non-DWARF symbol-table based matches, rather than being either-or. * The python3 tapset was extended to support python3 3.9, 3.10, and 3.11. See stapprobes(3stap) for further details on probing python functions. * A template cve band-aid script is now included, which demonstrates how to use a new 'livepatch.stp' tapset to standardize activation, interactive control, and monitoring of systemtap cve band-aids. * The kernel runtime now uses much less memory when the number of "possible CPUs" are way more than the online ones. For example, VMWare guests usually have 128 "possible CPUs" while fewer CPUs are actually present or online in the guest system. * The memory allocation size is now irrelevant to the value of NR_CPUS of the current kernel. It is only subject to the OBS-URL: https://build.opensuse.org/request/show/1085967 OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=142
2023-05-10 18:07:34 +02:00
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
Accepting request 1085967 from home:dirkmueller:Factory - update to 4.9: * ISystemtap: the new interactive systemtap jupyter kernel. This provides a simple GUI for writing/running Systemtap scripts in an easy, incremental way within Jupyterlab. Added 2 news scripts, stap-jupyter-install and stap-jupyter-container. See stap-jupyter(1). * The new "language-server" mode, specified by "stap --language-server", starts a LSP server which will communicate with the client via stdio. * This server currently supports code completion suggestions. * See language-server/README.md for more details and usage instructions. * Safety/liveness checking for $context variable assignments in probes of retpoline-compiled kernels is temporarily disabled. * DWARF-related probes (.function, .statement) now merge DWARF and non-DWARF symbol-table based matches, rather than being either-or. * The python3 tapset was extended to support python3 3.9, 3.10, and 3.11. See stapprobes(3stap) for further details on probing python functions. * A template cve band-aid script is now included, which demonstrates how to use a new 'livepatch.stp' tapset to standardize activation, interactive control, and monitoring of systemtap cve band-aids. * The kernel runtime now uses much less memory when the number of "possible CPUs" are way more than the online ones. For example, VMWare guests usually have 128 "possible CPUs" while fewer CPUs are actually present or online in the guest system. * The memory allocation size is now irrelevant to the value of NR_CPUS of the current kernel. It is only subject to the OBS-URL: https://build.opensuse.org/request/show/1085967 OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=142
2023-05-10 18:07:34 +02:00
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
Accepting request 1085967 from home:dirkmueller:Factory - update to 4.9: * ISystemtap: the new interactive systemtap jupyter kernel. This provides a simple GUI for writing/running Systemtap scripts in an easy, incremental way within Jupyterlab. Added 2 news scripts, stap-jupyter-install and stap-jupyter-container. See stap-jupyter(1). * The new "language-server" mode, specified by "stap --language-server", starts a LSP server which will communicate with the client via stdio. * This server currently supports code completion suggestions. * See language-server/README.md for more details and usage instructions. * Safety/liveness checking for $context variable assignments in probes of retpoline-compiled kernels is temporarily disabled. * DWARF-related probes (.function, .statement) now merge DWARF and non-DWARF symbol-table based matches, rather than being either-or. * The python3 tapset was extended to support python3 3.9, 3.10, and 3.11. See stapprobes(3stap) for further details on probing python functions. * A template cve band-aid script is now included, which demonstrates how to use a new 'livepatch.stp' tapset to standardize activation, interactive control, and monitoring of systemtap cve band-aids. * The kernel runtime now uses much less memory when the number of "possible CPUs" are way more than the online ones. For example, VMWare guests usually have 128 "possible CPUs" while fewer CPUs are actually present or online in the guest system. * The memory allocation size is now irrelevant to the value of NR_CPUS of the current kernel. It is only subject to the OBS-URL: https://build.opensuse.org/request/show/1085967 OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=142
2023-05-10 18:07:34 +02:00
%{_bindir}/stap-jupyter-container
%{_bindir}/stap-jupyter-install
%{_mandir}/man[17]/*
%{_mandir}/cs/man[17]/*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/runtime
Accepting request 1085967 from home:dirkmueller:Factory - update to 4.9: * ISystemtap: the new interactive systemtap jupyter kernel. This provides a simple GUI for writing/running Systemtap scripts in an easy, incremental way within Jupyterlab. Added 2 news scripts, stap-jupyter-install and stap-jupyter-container. See stap-jupyter(1). * The new "language-server" mode, specified by "stap --language-server", starts a LSP server which will communicate with the client via stdio. * This server currently supports code completion suggestions. * See language-server/README.md for more details and usage instructions. * Safety/liveness checking for $context variable assignments in probes of retpoline-compiled kernels is temporarily disabled. * DWARF-related probes (.function, .statement) now merge DWARF and non-DWARF symbol-table based matches, rather than being either-or. * The python3 tapset was extended to support python3 3.9, 3.10, and 3.11. See stapprobes(3stap) for further details on probing python functions. * A template cve band-aid script is now included, which demonstrates how to use a new 'livepatch.stp' tapset to standardize activation, interactive control, and monitoring of systemtap cve band-aids. * The kernel runtime now uses much less memory when the number of "possible CPUs" are way more than the online ones. For example, VMWare guests usually have 128 "possible CPUs" while fewer CPUs are actually present or online in the guest system. * The memory allocation size is now irrelevant to the value of NR_CPUS of the current kernel. It is only subject to the OBS-URL: https://build.opensuse.org/request/show/1085967 OBS-URL: https://build.opensuse.org/package/show/devel:tools/systemtap?expand=0&rev=142
2023-05-10 18:07:34 +02:00
%{_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