File systemtap.spec of Package systemtap

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

%if ! %{defined _rundir}
%define _rundir %{_localstatedir}/run
Name:           systemtap
Version:        4.2
Release:        0
Summary:        Instrumentation System
License:        GPL-2.0-or-later
Group:          Development/Tools/Debuggers
Source2:        %{name}.keyring
Source4:        README-KEYRING
Source5:        stap-server.conf
Patch1:         systemtap-build-source-dir.patch
Patch2:         systemtap-fix-strict-prototypes-in-autoconf-stack-trace-save-regs.c.patch
Patch3:         systemtap-amend-fallback-comment-to-work-with-newer-gcc.patch
BuildRequires:  autoconf
BuildRequires:  automake
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(systemd)
Requires:       %{name}-dtrace = %{version}
Requires:       %{name}-runtime = %{version}-%{release}
Recommends:     kernel-devel
Obsoletes:      systemtap-client < 1.5

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.

%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1

autoreconf -fi
%configure \
  --disable-docs \
  --with-python3 \
make %{?_smp_mflags} V=1

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 (/var/run now on tmpfs)
mkdir -p %{buildroot}%{_tmpfilesdir}
install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}

%find_lang systemtap

%post server
# Create tmpfiles
%tmpfiles_create %{_tmpfilesdir}/stap-server.conf

%dir %{_datadir}/%{name}
#packaged by systemtap-initscript in upstream
%dir %{_localstatedir}/cache/systemtap

%files runtime -f systemtap.lang
%doc %{_docdir}/systemtap
%dir %{_libexecdir}/%{name}

%files server
%dir %{_tmpfilesdir}
%ghost %{_localstatedir}/log/stap-server.log
%ghost %dir %{_rundir}/stap-server

%files sdt-devel

openSUSE Build Service is sponsored by