diff --git a/systemtap.spec b/systemtap.spec index 18bddc2a19a038fa6a09900f4a5b053d7a1bb879..cb4caeac85ad2bf7e98751e96d83b032e1f490ff 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -1,40 +1,39 @@ -%define anolis_release 2 -%{!?with_sqlite: %global with_sqlite 1} -# prefer prebuilt docs -%{!?with_docs: %global with_docs 0} -%{!?with_htmldocs: %global with_htmldocs 0} -%{!?with_monitor: %global with_monitor 1} -%{!?with_crash: %global with_crash 1} -%{!?with_rpm: %global with_rpm 1} +%define anolis_release 3 +%bcond_without rpm +%bcond_without bpf +%bcond_without crash +%bcond_without dracut +%bcond_without sqlite +%bcond_without monitor +%bcond_without dyninst +%bcond_without systemd +%bcond_without python3 +%bcond_without emacsvim +%bcond_without virthost +%bcond_without sysusers +%bcond_without virtguest +%bcond_without pyparsing +%bcond_without debuginfod +%bcond_without python3_probes +%bcond_with java +%bcond_with docs +%bcond_with httpd +%bcond_with boost +%bcond_with htmldocs +%bcond_with python2_probes +%bcond_with specific_python %{!?elfutils_version: %global elfutils_version 0.179} -%{!?with_boost: %global with_boost 0} -%{!?with_dyninst: %global with_dyninst 1} -%{!?with_bpf: %global with_bpf 1} -%{!?with_systemd: %global with_systemd 1} -%{!?with_emacsvim: %global with_emacsvim 1} -%{!?with_java: %global with_java 1} -%{!?with_debuginfod: %global with_debuginfod 1} -%{!?with_virthost: %global with_virthost 1} -%{!?with_virtguest: %global with_virtguest 1} -%{!?with_dracut: %global with_dracut 1} %ifarch x86_64 -%{!?with_mokutil: %global with_mokutil 1} -%{!?with_openssl: %global with_openssl 1} +%bcond_without mokutil +%bcond_without openssl %else -%{!?with_mokutil: %global with_mokutil 0} -%{!?with_openssl: %global with_openssl 0} +%bcond_with mokutil +%bcond_with openssl %endif -%{!?with_pyparsing: %global with_pyparsing 1} -%{!?with_python3: %global with_python3 1} -%{!?with_python2_probes: %global with_python2_probes 0} -%{!?with_python3_probes: %global with_python3_probes 1} -%{!?with_httpd: %global with_httpd 0} -%{!?with_specific_python: %global with_specific_python 0} -%{!?with_sysusers: %global with_sysusers 1} %define initdir %{_initddir} -%if %{with_virtguest} +%if %{with virtguest} %define udevrulesdir /usr/lib/udev/rules.d %endif @@ -83,18 +82,18 @@ Release: %{anolis_release}%{?release_override}%{?dist} # Packaging abstract: # # systemtap empty req:-client req:-devel -# systemtap-server /usr/bin/stap-server*, req:-devel # systemtap-devel /usr/bin/stap, runtime, tapset, req:kernel-devel -# systemtap-runtime /usr/bin/staprun, /usr/bin/stapsh, /usr/bin/stapdyn # systemtap-client /usr/bin/stap, samples, docs, tapset(bonus), req:-runtime -# systemtap-initscript /etc/init.d/systemtap, dracut module, req:systemtap +# systemtap-server /usr/bin/stap-server*, req:-devel +# systemtap-runtime /usr/bin/staprun, /usr/bin/stapsh, /usr/bin/stapdyn # systemtap-sdt-devel /usr/include/sys/sdt.h /usr/bin/dtrace # systemtap-testsuite /usr/share/systemtap/testsuite*, req:systemtap, req:sdt-devel +# systemtap-initscript /etc/init.d/systemtap, dracut module, req:systemtap # systemtap-runtime-java libHelperSDT.so, HelperSDT.jar, stapbm, req:-runtime -# systemtap-runtime-virthost /usr/bin/stapvirt, req:libvirt req:libxml2 -# systemtap-runtime-virtguest udev rules, init scripts/systemd service, req:-runtime # systemtap-runtime-python2 HelperSDT python2 module, req:-runtime # systemtap-runtime-python3 HelperSDT python3 module, req:-runtime +# systemtap-runtime-virthost /usr/bin/stapvirt, req:libvirt req:libxml2 +# systemtap-runtime-virtguest udev rules, init scripts/systemd service, req:-runtime # # Typical scenarios: # @@ -113,83 +112,82 @@ URL: http://sourceware.org/systemtap/ Source: https://sourceware.org/ftp/systemtap/releases/%{name}-%{version}.tar.gz # Build* -BuildRequires: make -BuildRequires: gcc-c++ +BuildRequires: make gcc-c++ BuildRequires: cpio BuildRequires: gettext-devel BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(avahi-client) -%if %{with_debuginfod} +%if %{with debuginfod} BuildRequires: pkgconfig(libdebuginfod) %endif -%if %{with_dyninst} +%if %{with dyninst} BuildRequires: dyninst-devel >= 10.0 BuildRequires: pkgconfig(libselinux) %endif -%if %{with_sqlite} +%if %{with sqlite} BuildRequires: sqlite-devel > 3.7 %endif -%if %{with_monitor} +%if %{with monitor} BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(ncurses) %endif -%if %{with_systemd} +%if %{with systemd} BuildRequires: systemd %endif # Needed for libstd++ < 4.0, without -%if %{with_boost} +%if %{with boost} BuildRequires: boost-devel %endif -%if %{with_crash} +%if %{with crash} BuildRequires: crash-devel zlib-devel %endif -%if %{with_rpm} +%if %{with rpm} BuildRequires: rpm-devel %endif BuildRequires: elfutils-devel >= %{elfutils_version} -%if %{with_docs} +%if %{with docs} BuildRequires: /usr/bin/latex /usr/bin/dvips /usr/bin/ps2pdf BuildRequires: tex(fullpage.sty) tex(fancybox.sty) tex(bchr7t.tfm) tex(graphicx.sty) -%if %{with_htmldocs} +%if %{with htmldocs} # 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 %endif -%if %{with_emacsvim} +%if %{with emacsvim} # for _emacs_sitelispdir macros etc. BuildRequires: emacs %endif -%if %{with_java} +%if %{with java} BuildRequires: java-devel %endif -%if %{with_virthost} +%if %{with virthost} # BuildRequires: libvirt-devel >= 1.0.2 BuildRequires: pkgconfig(libvirt) BuildRequires: pkgconfig(libxml-2.0) %endif BuildRequires: readline-devel -%if %{with_python2_probes} +%if %{with python2_probes} BuildRequires: python2-devel BuildRequires: python-setuptools %endif -%if %{with_python3} +%if %{with python3} BuildRequires: python3 %endif -%if %{with_python3_probes} +%if %{with python3_probes} BuildRequires: python3-devel BuildRequires: python3-setuptools %endif -%if %{with_specific_python} +%if %{with specific_python} BuildRequires: /usr/bin/pathfix.py %endif -%if %{with_httpd} +%if %{with httpd} BuildRequires: libmicrohttpd-devel BuildRequires: libuuid-devel %endif -%if %{with_sysusers} +%if %{with sysusers} BuildRequires: systemd-rpm-macros %endif @@ -199,12 +197,64 @@ Requires: systemtap-client = %{version}-%{release} Requires: systemtap-devel = %{version}-%{release} %description -SystemTap is an instrumentation system for systems running Linux. -Developers can write instrumentation scripts to collect data on -the operation of the system. The base systemtap package contains/requires -the components needed to locally develop and execute systemtap scripts. - -# ------------------------------------------------------------------------ +SystemTap is a powerful tool that allows Linux system administrators +to monitor and analyze system behavior. It provides a flexible and +extensible framework for dynamically instrumenting the kernel and +user-space programs, allowing users to monitor and trace system +activity in real-time. + +SystemTap is built on top of the Linux kernel's dynamic tracing +capabilities, which are provided by the kernel's tracepoints and +kprobes features. Tracepoints are pre-defined locations in kernel +code where specific events occur, such as a process being scheduled +or a file being opened. Kprobes are similar to tracepoints, but +they allow users to define their own tracepoints within kernel code. + +SystemTap provides a high-level scripting language that allows users +to write custom probes to gather data about system events. These probes +are written in a syntax similar to C, with additional constructs for +accessing kernel data structures and performing advanced operations. +The language provides a rich set of functions and macros for writing +complex probes, as well as a powerful data manipulation and analysis +capability. + +One of the key benefits of SystemTap is its ability to monitor system +activity with minimal overhead. SystemTap is designed to have a low +impact on system performance, and it provides a number of optimizations +to minimize the impact of its monitoring activities. It uses a just-in-time +compiler to generate optimized code at runtime, and it supports multiple +output formats, including text, binary, and graphical. + +SystemTap can be used to monitor a wide range of system activities, +including CPU usage, disk I/O, network traffic, system calls, and kernel +data structures. It can also be used to monitor user-space programs, +allowing users to identify performance bottlenecks and system issues. +Users can use SystemTap to monitor system activity on a per-process basis, +allowing them to identify issues that are specific to individual programs. + +SystemTap consists of a set of kernel modules and libraries that allow +it to interact with the running system. These modules allow SystemTap +to read and write data from the kernel, monitor system activity, and create +custom probes. The modules are designed to be lightweight and non-intrusive, +and they can be easily added or removed from the system as needed. + +SystemTap provides a rich set of built-in probes that can be used to +gather data about system activity. These probes can be used to monitor +the system's CPU utilization, memory usage, disk I/O activity, network +activity, and other system events. Users can also create custom probes to +gather data specific to their needs. Once a SystemTap script is written, +it can be executed on a running system using the stap command. The script +will start collecting data and outputting it to the terminal or a log file. +The data can be analyzed using various tools, such as awk, sed, and grep. + +In summary, SystemTap is a powerful tool for analyzing Linux systems, +providing a flexible and extensible framework for dynamically instrumenting +the kernel and user-space programs. It allows users to monitor and trace +system activity in real-time, with minimal impact on system performance, +and it provides a rich set of built-in probes and a powerful scripting +language for creating custom probes. With SystemTap, system administrators +can diagnose problems, optimize system performance, and gain a deeper +understanding of system behavior. %package server Summary: Instrumentation System Server @@ -218,10 +268,10 @@ Requires: nss coreutils Requires: zip unzip Requires(pre): shadow-utils BuildRequires: nss-devel avahi-devel -%if %{with_openssl} +%if %{with openssl} Requires: openssl %endif -%if %{with_systemd} +%if %{with systemd} Requires: systemd %else Requires(post): chkconfig @@ -288,7 +338,7 @@ Requires: openssh-clients Conflicts: systemtap-devel < %{version}-%{release} Conflicts: systemtap-server < %{version}-%{release} Conflicts: systemtap-runtime < %{version}-%{release} -%if %{with_mokutil} +%if %{with mokutil} Requires: mokutil %endif @@ -305,7 +355,7 @@ Summary: Systemtap Initscripts License: GPLv2+ URL: http://sourceware.org/systemtap/ Requires: systemtap = %{version}-%{release} -%if %{with_systemd} +%if %{with systemd} Requires: systemd %else Requires(post): chkconfig @@ -324,8 +374,8 @@ boot-time probing if supported. Summary: Static probe support tools License: GPLv2+ and Public Domain URL: http://sourceware.org/systemtap/ -%if %{with_pyparsing} -%if %{with_python3} +%if %{with pyparsing} +%if %{with python3} Requires: python3-pyparsing %else Requires: pyparsing @@ -338,7 +388,6 @@ instrumentation compiled into userspace programs and libraries, along with the optional dtrace-compatibility preprocessor to process related .d files into tracing-macro-laden .h headers. - %package testsuite Summary: Instrumentation System Testsuite License: GPLv2+ @@ -347,7 +396,7 @@ Requires: systemtap = %{version}-%{release} Requires: systemtap-sdt-devel = %{version}-%{release} Requires: systemtap-server = %{version}-%{release} Requires: dejagnu which elfutils grep nc -%if %{with_debuginfod} +%if %{with debuginfod} Requires: elfutils-debuginfod %endif Requires: gcc gcc-c++ make glibc-devel @@ -359,17 +408,17 @@ Requires: strace Requires: /usr/bin/nc # testsuite/systemtap.server/client.exp needs avahi Requires: avahi -%if %{with_crash} +%if %{with crash} # testsuite/systemtap.base/crash.exp needs crash Requires: crash %endif -%if %{with_java} +%if %{with java} Requires: systemtap-runtime-java = %{version}-%{release} %endif -%if %{with_python2_probes} +%if %{with python2_probes} Requires: systemtap-runtime-python2 = %{version}-%{release} %endif -%if %{with_python3_probes} +%if %{with python3_probes} Requires: systemtap-runtime-python3 = %{version}-%{release} %endif %ifarch x86_64 @@ -389,7 +438,7 @@ suite. This may be used by system administrators to thoroughly check systemtap on the current system. -%if %{with_java} +%if %{with java} %package runtime-java Summary: Systemtap Java Runtime Support License: GPLv2+ @@ -404,7 +453,7 @@ This package includes support files needed to run systemtap scripts that probe Java processes running on the OpenJDK runtimes using Byteman. %endif -%if %{with_python2_probes} +%if %{with python2_probes} %package runtime-python2 Summary: Systemtap Python 2 Runtime Support License: GPLv2+ @@ -416,14 +465,14 @@ This package includes support files needed to run systemtap scripts that probe python 2 processes. %endif -%if %{with_python3_probes} +%if %{with python3_probes} %package runtime-python3 Summary: Systemtap Python 3 Runtime Support License: GPLv2+ URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} -%if ! (%{with_python2_probes}) +%if ! (%{with python2_probes}) # Provide an clean upgrade path when the python2 package is removed Obsoletes: %{name}-runtime-python2 < %{version}-%{release} %endif @@ -433,7 +482,7 @@ This package includes support files needed to run systemtap scripts that probe python 3 processes. %endif -%if %{with_python3_probes} +%if %{with python3_probes} %package exporter Summary: Systemtap-prometheus interoperation mechanism License: GPLv2+ @@ -446,7 +495,7 @@ systemtap sessions and relays prometheus metrics from the sessions to remote requesters on demand. %endif -%if %{with_virthost} +%if %{with virthost} %package runtime-virthost Summary: Systemtap Cross-VM Instrumentation - host License: GPLv2+ @@ -461,13 +510,13 @@ inside a libvirt-managed domain from the host without using a network connection. %endif -%if %{with_virtguest} +%if %{with virtguest} %package runtime-virtguest Summary: Systemtap Cross-VM Instrumentation - guest License: GPLv2+ URL: http://sourceware.org/systemtap/ Requires: systemtap-runtime = %{version}-%{release} -%if %{with_systemd} +%if %{with systemd} Requires(post): findutils coreutils Requires(preun): grep coreutils Requires(postun): grep coreutils @@ -490,20 +539,20 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %build # Enable/disable the dyninst pure-userspace backend -%if %{with_dyninst} +%if %{with dyninst} %global dyninst_config --with-dyninst %else %global dyninst_config --without-dyninst %endif # Enable/disable the sqlite coverage testing support -%if %{with_sqlite} +%if %{with sqlite} %global sqlite_config --enable-sqlite %else %global sqlite_config --disable-sqlite %endif -%if %{with_debuginfod} +%if %{with debuginfod} %global debuginfod_config --with-debuginfod %else %global debuginfod_config --without-debuginfod @@ -511,21 +560,21 @@ systemtap-runtime-virthost machine to execute systemtap scripts. # Enable/disable the crash extension -%if %{with_crash} +%if %{with crash} %global crash_config --enable-crash %else %global crash_config --disable-crash %endif # Enable/disable the code to find and suggest needed rpms -%if %{with_rpm} +%if %{with rpm} %global rpm_config --with-rpm %else %global rpm_config --without-rpm %endif -%if %{with_docs} -%if %{with_htmldocs} +%if %{with docs} +%if %{with htmldocs} %global docs_config --enable-docs --enable-htmldocs %else %global docs_config --enable-docs --disable-htmldocs @@ -534,47 +583,47 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %global docs_config --enable-docs=prebuilt %endif -%if %{with_java} +%if %{with java} %global java_config --with-java=%{_jvmdir}/java %else %global java_config --without-java %endif -%if %{with_python3} +%if %{with python3} %global python3_config --with-python3 %else %global python3_config --without-python3 %endif -%if %{with_python2_probes} +%if %{with python2_probes} %global python2_probes_config --with-python2-probes %else %global python2_probes_config --without-python2-probes %endif -%if %{with_python3_probes} +%if %{with python3_probes} %global python3_probes_config --with-python3-probes %else %global python3_probes_config --without-python3-probes %endif -%if %{with_virthost} +%if %{with virthost} %global virt_config --enable-virt %else %global virt_config --disable-virt %endif -%if %{with_dracut} +%if %{with dracut} %global dracut_config --with-dracutstap=%{dracutstap} --with-dracutbindir=%{dracutbindir} %else %global dracut_config %{nil} %endif -%if %{with_httpd} +%if %{with httpd} %global httpd_config --enable-httpd %else %global httpd_config --disable-httpd %endif -%if %{with_bpf} +%if %{with bpf} %global bpf_config --with-bpf %else %global bpf_config --without-bpf @@ -590,7 +639,7 @@ systemtap-runtime-virthost machine to execute systemtap scripts. %install %make_install -%if ! (%{with_python3}) +%if ! (%{with python3}) rm -v $RPM_BUILD_ROOT%{_bindir}/stap-profile-annotate %endif @@ -601,7 +650,7 @@ for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do echo "%%lang($lang) $dir/man*/*" >> %{name}.lang done -%if %{with_sysusers} +%if %{with sysusers} mkdir -p %{buildroot}%{_sysusersdir} echo '%_systemtap_runtime_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-runtime.conf echo '%_systemtap_server_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-server.conf @@ -635,8 +684,8 @@ cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap # %doc directive. mkdir docs.installed mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/*.pdf docs.installed/ -%if %{with_docs} -%if %{with_htmldocs} +%if %{with docs} +%if %{with htmldocs} mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/tapsets docs.installed/ mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/SystemTap_Beginners_Guide docs.installed/ %endif @@ -645,17 +694,17 @@ mv $RPM_BUILD_ROOT%{_datadir}/doc/systemtap/SystemTap_Beginners_Guide docs.insta install -D -m 644 macros.systemtap $RPM_BUILD_ROOT%{_rpmmacrodir}/macros.systemtap mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/systemtap mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server/.systemtap mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server -touch $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server/log mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/systemtap -mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/systemtap -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d +touch $RPM_BUILD_ROOT%{_localstatedir}/log/stap-server/log +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/stap-server/.systemtap install -m 644 initscript/logrotate.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/stap-server # If using systemd systemtap.service file, retain the old init script in %{_libexecdir} as a helper. -%if %{with_systemd} +%if %{with systemd} mkdir -p $RPM_BUILD_ROOT%{_unitdir} touch $RPM_BUILD_ROOT%{_unitdir}/systemtap.service install -m 644 initscript/systemtap.service $RPM_BUILD_ROOT%{_unitdir}/systemtap.service @@ -674,23 +723,23 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/conf.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/script.d install -m 644 initscript/config.systemtap $RPM_BUILD_ROOT%{_sysconfdir}/systemtap/config -%if %{with_systemd} +%if %{with systemd} mkdir -p $RPM_BUILD_ROOT%{_unitdir} -touch $RPM_BUILD_ROOT%{_unitdir}/stap-server.service -install -m 644 stap-server.service $RPM_BUILD_ROOT%{_unitdir}/stap-server.service mkdir -p $RPM_BUILD_ROOT%{_tmpfilesdir} +touch $RPM_BUILD_ROOT%{_unitdir}/stap-server.service install -m 644 stap-server.conf $RPM_BUILD_ROOT%{_tmpfilesdir}/stap-server.conf +install -m 644 stap-server.service $RPM_BUILD_ROOT%{_unitdir}/stap-server.service %else -install -m 755 initscript/stap-server $RPM_BUILD_ROOT%{initdir} -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server/conf.d mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/stap-server/conf.d +install -m 755 initscript/stap-server $RPM_BUILD_ROOT%{initdir} install -m 644 initscript/config.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/stap-server %endif -%if %{with_emacsvim} +%if %{with emacsvim} mkdir -p $RPM_BUILD_ROOT%{_emacs_sitelispdir} -install -p -m 644 emacs/systemtap-mode.el* $RPM_BUILD_ROOT%{_emacs_sitelispdir} mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir} +install -p -m 644 emacs/systemtap-mode.el* $RPM_BUILD_ROOT%{_emacs_sitelispdir} install -p -m 644 emacs/systemtap-init.el $RPM_BUILD_ROOT%{_emacs_sitestartdir}/systemtap-init.el for subdir in ftdetect ftplugin indent syntax do @@ -699,38 +748,38 @@ do done %endif -%if %{with_virtguest} +%if %{with virtguest} mkdir -p $RPM_BUILD_ROOT%{udevrulesdir} - %if %{with_systemd} - install -p -m 644 staprun/guest/99-stapsh.rules $RPM_BUILD_ROOT%{udevrulesdir} + %if %{with systemd} mkdir -p $RPM_BUILD_ROOT%{_unitdir} + install -p -m 644 staprun/guest/99-stapsh.rules $RPM_BUILD_ROOT%{udevrulesdir} install -p -m 644 staprun/guest/stapsh@.service $RPM_BUILD_ROOT%{_unitdir} %else - install -p -m 644 staprun/guest/99-stapsh-init.rules $RPM_BUILD_ROOT%{udevrulesdir} - install -p -m 755 staprun/guest/stapshd $RPM_BUILD_ROOT%{initdir} mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/systemtap - install -p -m 755 staprun/guest/stapsh-daemon $RPM_BUILD_ROOT%{_libexecdir}/systemtap mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules + install -p -m 755 staprun/guest/stapshd $RPM_BUILD_ROOT%{initdir} + install -p -m 644 staprun/guest/99-stapsh-init.rules $RPM_BUILD_ROOT%{udevrulesdir} + install -p -m 755 staprun/guest/stapsh-daemon $RPM_BUILD_ROOT%{_libexecdir}/systemtap install -p -m 755 staprun/guest/virtio_console.modules $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/modules %endif %endif -%if %{with_dracut} +%if %{with dracut} mkdir -p $RPM_BUILD_ROOT%{dracutstap} - install -p -m 755 initscript/99stap/module-setup.sh $RPM_BUILD_ROOT%{dracutstap} - install -p -m 755 initscript/99stap/install $RPM_BUILD_ROOT%{dracutstap} + touch $RPM_BUILD_ROOT%{dracutstap}/params.conf install -p -m 755 initscript/99stap/check $RPM_BUILD_ROOT%{dracutstap} + install -p -m 755 initscript/99stap/install $RPM_BUILD_ROOT%{dracutstap} + install -p -m 755 initscript/99stap/module-setup.sh $RPM_BUILD_ROOT%{dracutstap} install -p -m 755 initscript/99stap/start-staprun.sh $RPM_BUILD_ROOT%{dracutstap} - touch $RPM_BUILD_ROOT%{dracutstap}/params.conf %endif -%if %{with_specific_python} +%if %{with specific_python} # Some files got ambiguous python shebangs, we fix them after everything else is done pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/* %endif %pre runtime -%if %{with_sysusers} +%if %{with sysusers} echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-runtime.conf - %else getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr @@ -740,7 +789,7 @@ getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev exit 0 %pre server -%if %{with_sysusers} +%if %{with sysusers} echo '%_systemtap_server_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-server.conf - %else getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server @@ -751,7 +800,7 @@ getent passwd stap-server >/dev/null || \ exit 0 %pre testsuite -%if %{with_sysusers} +%if %{with sysusers} echo '%_systemtap_testsuite_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-testsuite.conf - %else getent passwd stapusr >/dev/null || \ @@ -791,7 +840,7 @@ test -e %{_localstatedir}/log/stap-server/log || { chown stap-server:stap-server %{_localstatedir}/log/stap-server/log } # Prepare the service -%if %{with_systemd} +%if %{with systemd} # /bin/systemctl enable stap-server.service >/dev/null 2>&1 || : /bin/systemd-tmpfiles --create %{_tmpfilesdir}/stap-server.conf >/dev/null 2>&1 || : %else @@ -802,8 +851,8 @@ exit 0 %triggerin client -- systemtap-server if test -e ~stap-server/.systemtap/ssl/server/stap.cert; then # echo Authorizing ssl-peer/trusted-signer certificate for local systemtap-server - %{_libexecdir}/systemtap/stap-authorize-cert ~stap-server/.systemtap/ssl/server/stap.cert %{_sysconfdir}/systemtap/ssl/client >/dev/null %{_libexecdir}/systemtap/stap-authorize-cert ~stap-server/.systemtap/ssl/server/stap.cert %{_sysconfdir}/systemtap/staprun >/dev/null + %{_libexecdir}/systemtap/stap-authorize-cert ~stap-server/.systemtap/ssl/server/stap.cert %{_sysconfdir}/systemtap/ssl/client >/dev/null fi exit 0 # XXX: corresponding %triggerun? @@ -812,7 +861,7 @@ exit 0 # Check that this is the actual deinstallation of the package, as opposed to # just removing the old package on upgrade. if [ $1 = 0 ] ; then - %if %{with_systemd} + %if %{with systemd} /bin/systemctl --no-reload disable stap-server.service >/dev/null 2>&1 || : /bin/systemctl stop stap-server.service >/dev/null 2>&1 || : %else @@ -826,7 +875,7 @@ exit 0 # Check whether this is an upgrade of the package. # If so, restart the service if it's running if [ "$1" -ge "1" ] ; then - %if %{with_systemd} + %if %{with systemd} /bin/systemctl condrestart stap-server.service >/dev/null 2>&1 || : %else /sbin/service stap-server condrestart >/dev/null 2>&1 || : @@ -835,7 +884,7 @@ fi exit 0 %post initscript -%if %{with_systemd} +%if %{with systemd} /bin/systemctl enable systemtap.service >/dev/null 2>&1 || : %else /sbin/chkconfig --add systemtap @@ -846,7 +895,7 @@ exit 0 # Check that this is the actual deinstallation of the package, as opposed to # just removing the old package on upgrade. if [ $1 = 0 ] ; then - %if %{with_systemd} + %if %{with systemd} /bin/systemctl --no-reload disable systemtap.service >/dev/null 2>&1 || : /bin/systemctl stop systemtap.service >/dev/null 2>&1 || : %else @@ -860,7 +909,7 @@ exit 0 # Check whether this is an upgrade of the package. # If so, restart the service if it's running if [ "$1" -ge "1" ] ; then - %if %{with_systemd} + %if %{with systemd} /bin/systemctl condrestart systemtap.service >/dev/null 2>&1 || : %else /sbin/service systemtap condrestart >/dev/null 2>&1 || : @@ -869,7 +918,7 @@ fi exit 0 %post runtime-virtguest -%if %{with_systemd} +%if %{with systemd} # Start services if there are ports present if [ -d /dev/virtio-ports ]; then (find /dev/virtio-ports -iname 'org.systemtap.stapsh.[0-9]*' -type l \ @@ -886,7 +935,7 @@ exit 0 %preun runtime-virtguest # Stop service if this is an uninstall rather than an upgrade if [ $1 = 0 ]; then - %if %{with_systemd} + %if %{with systemd} # We need to stop all stapsh services. Because they are instantiated from # a template service file, we can't simply call disable. We need to find # all the running ones and stop them all individually @@ -903,7 +952,7 @@ exit 0 %postun runtime-virtguest # Restart service if this is an upgrade rather than an uninstall if [ "$1" -ge "1" ]; then - %if %{with_systemd} + %if %{with systemd} # We need to restart all stapsh services. Because they are instantiated from # a template service file, we can't simply call restart. We need to find # all the running ones and restart them all individually @@ -916,8 +965,8 @@ if [ "$1" -ge "1" ]; then fi exit 0 -%if %{with_python3_probes} -%if %{with_systemd} +%if %{with python3_probes} +%if %{with systemd} %preun exporter if [ $1 = 0 ] ; then /bin/systemctl stop stap-exporter.service >/dev/null 2>&1 || : @@ -951,19 +1000,19 @@ exit 0 %files server -f systemtap.lang %{_bindir}/stap-server +%{_mandir}/man7/error* +%{_mandir}/man7/warning* +%{_mandir}/man7/stappaths.7* +%{_mandir}/man8/stap-server.8* %dir %{_libexecdir}/systemtap +%{_libexecdir}/systemtap/stap-env %{_libexecdir}/systemtap/stap-serverd -%{_libexecdir}/systemtap/stap-start-server -%{_libexecdir}/systemtap/stap-stop-server %{_libexecdir}/systemtap/stap-gen-cert +%{_libexecdir}/systemtap/stap-stop-server %{_libexecdir}/systemtap/stap-sign-module +%{_libexecdir}/systemtap/stap-start-server %{_libexecdir}/systemtap/stap-authorize-cert -%{_libexecdir}/systemtap/stap-env -%{_mandir}/man7/error* -%{_mandir}/man7/stappaths.7* -%{_mandir}/man7/warning* -%{_mandir}/man8/stap-server.8* -%if %{with_systemd} +%if %{with systemd} %{_unitdir}/stap-server.service %{_tmpfilesdir}/stap-server.conf %else @@ -971,17 +1020,17 @@ exit 0 %dir %{_sysconfdir}/stap-server/conf.d %config(noreplace) %{_sysconfdir}/sysconfig/stap-server %endif -%config(noreplace) %{_sysconfdir}/logrotate.d/stap-server %dir %{_sysconfdir}/stap-server +%{!?_licensedir:%global license %%doc} +%doc README README.unprivileged AUTHORS NEWS +%config(noreplace) %{_sysconfdir}/logrotate.d/stap-server %dir %attr(0750,stap-server,stap-server) %{_localstatedir}/lib/stap-server -%dir %attr(0700,stap-server,stap-server) %{_localstatedir}/lib/stap-server/.systemtap %dir %attr(0755,stap-server,stap-server) %{_localstatedir}/log/stap-server -%ghost %config(noreplace) %attr(0644,stap-server,stap-server) %{_localstatedir}/log/stap-server/log %ghost %attr(0755,stap-server,stap-server) %{_localstatedir}/run/stap-server -%doc README README.unprivileged AUTHORS NEWS -%{!?_licensedir:%global license %%doc} +%dir %attr(0700,stap-server,stap-server) %{_localstatedir}/lib/stap-server/.systemtap +%ghost %config(noreplace) %attr(0644,stap-server,stap-server) %{_localstatedir}/log/stap-server/log %license COPYING -%if %{with_sysusers} +%if %{with sysusers} %{_sysusersdir}/systemtap-server.conf %endif @@ -989,198 +1038,198 @@ exit 0 %files devel -f systemtap.lang %{_bindir}/stap %{_bindir}/stap-prep -%if %{with_python3} +%if %{with python3} %{_bindir}/stap-profile-annotate %endif %{_bindir}/stap-report %dir %{_datadir}/systemtap %{_datadir}/systemtap/runtime %{_datadir}/systemtap/tapset +%{_mandir}/man7/error* %{_mandir}/man1/stap.1* +%{_mandir}/man7/warning* %{_mandir}/man1/stap-prep.1* -%{_mandir}/man1/stap-report.1* -%{_mandir}/man7/error* %{_mandir}/man7/stappaths.7* -%{_mandir}/man7/warning* +%{_mandir}/man1/stap-report.1* %doc README README.unprivileged AUTHORS NEWS %{!?_licensedir:%global license %%doc} %license COPYING -%if %{with_java} +%if %{with java} %dir %{_libexecdir}/systemtap %{_libexecdir}/systemtap/libHelperSDT.so %endif -%if %{with_emacsvim} +%if %{with emacsvim} %{_emacs_sitelispdir}/*.el* -%{_emacs_sitestartdir}/systemtap-init.el %{_datadir}/vim/vimfiles/*/*.vim +%{_emacs_sitestartdir}/systemtap-init.el %endif # Notice that the stap-resolve-module-function.py file is used by # *both* the python2 and python3 subrpms. Both subrpms use that same # python script to help list python probes. -%if %{with_python3_probes} || %{with_python2_probes} +%if %{with python3_probes} || %{with python2_probes} %{_libexecdir}/systemtap/python/stap-resolve-module-function.py %exclude %{_libexecdir}/systemtap/python/stap-resolve-module-function.py? %endif %files runtime -f systemtap.lang -%attr(4110,root,stapusr) %{_bindir}/staprun %{_bindir}/stapsh %{_bindir}/stap-merge %{_bindir}/stap-report -%if %{with_dyninst} +%if %{with dyninst} %{_bindir}/stapdyn %endif -%if %{with_bpf} +%if %{with bpf} %{_bindir}/stapbpf %endif -%dir %{_libexecdir}/systemtap -%{_libexecdir}/systemtap/stapio -%{_libexecdir}/systemtap/stap-authorize-cert -%if %{with_crash} +%if %{with crash} %dir %{_libdir}/systemtap %{_libdir}/systemtap/staplog.so* %endif -%{_mandir}/man1/stap-report.1* %{_mandir}/man7/error* -%{_mandir}/man7/stappaths.7* %{_mandir}/man7/warning* %{_mandir}/man8/stapsh.8* %{_mandir}/man8/staprun.8* -%if %{with_dyninst} +%{_mandir}/man7/stappaths.7* +%dir %{_libexecdir}/systemtap +%{_mandir}/man1/stap-report.1* +%{_libexecdir}/systemtap/stapio +%if %{with dyninst} %{_mandir}/man8/stapdyn.8* %endif -%if %{with_bpf} +%if %{with bpf} %{_mandir}/man8/stapbpf.8* %endif -%doc README README.security AUTHORS NEWS %{!?_licensedir:%global license %%doc} %license COPYING -%if %{with_sysusers} +%if %{with sysusers} %{_sysusersdir}/systemtap-runtime.conf %endif +%doc README README.security AUTHORS NEWS +%attr(4110,root,stapusr) %{_bindir}/staprun +%{_libexecdir}/systemtap/stap-authorize-cert + +%files initscript +%if %{with systemd} +%{_unitdir}/systemtap.service +%{_sbindir}/systemtap-service +%else +%{initdir}/systemtap +%{_sbindir}/systemtap-service +%endif +%dir %{_sysconfdir}/systemtap +%dir %{_sysconfdir}/systemtap/conf.d +%dir %{_sysconfdir}/systemtap/script.d +%config(noreplace) %{_sysconfdir}/systemtap/config +%dir %{_localstatedir}/cache/systemtap +%ghost %{_localstatedir}/run/systemtap +%{_mandir}/man8/systemtap-service.8* +%if %{with dracut} + %dir %{dracutstap} + %{dracutstap}/* +%endif %files client -f systemtap.lang -%doc README README.unprivileged AUTHORS NEWS -%{_datadir}/systemtap/examples -%{!?_licensedir:%global license %%doc} +%{_bindir}/stap %license COPYING %doc docs.installed/*.pdf -%if %{with_docs} -%if %{with_htmldocs} +%{_datadir}/systemtap/examples +%{!?_licensedir:%global license %%doc} +%doc README README.unprivileged AUTHORS NEWS +%if %{with docs} +%if %{with htmldocs} %doc docs.installed/tapsets/*.html %doc docs.installed/SystemTap_Beginners_Guide %endif %endif -%{_bindir}/stap %{_bindir}/stap-prep %{_bindir}/stap-report %{_mandir}/man1/stap.1* +%{_mandir}/man1/stapref.1* %{_mandir}/man1/stap-prep.1* %{_mandir}/man1/stap-merge.1* %{_mandir}/man1/stap-report.1* -%{_mandir}/man1/stapref.1* %{_mandir}/man3/* %{_mandir}/man7/error* -%{_mandir}/man7/stappaths.7* %{_mandir}/man7/warning* %dir %{_datadir}/systemtap +%{_mandir}/man7/stappaths.7* %{_datadir}/systemtap/tapset - - -%files initscript -%if %{with_systemd} -%{_unitdir}/systemtap.service -%{_sbindir}/systemtap-service -%else -%{initdir}/systemtap -%{_sbindir}/systemtap-service -%endif -%dir %{_sysconfdir}/systemtap -%dir %{_sysconfdir}/systemtap/conf.d -%dir %{_sysconfdir}/systemtap/script.d -%config(noreplace) %{_sysconfdir}/systemtap/config -%dir %{_localstatedir}/cache/systemtap -%ghost %{_localstatedir}/run/systemtap -%{_mandir}/man8/systemtap-service.8* -%if %{with_dracut} - %dir %{dracutstap} - %{dracutstap}/* -%endif - - %files sdt-devel +%license COPYING %{_bindir}/dtrace %{_includedir}/sys/sdt.h -%{_includedir}/sys/sdt-config.h %{_mandir}/man1/dtrace.1* -%{_rpmmacrodir}/macros.systemtap %doc README AUTHORS NEWS +%{_includedir}/sys/sdt-config.h +%{_rpmmacrodir}/macros.systemtap %{!?_licensedir:%global license %%doc} -%license COPYING +%if %{with virtguest} +%files runtime-virtguest +%if %{with systemd} + %{_unitdir}/stapsh@.service + %{udevrulesdir}/99-stapsh.rules +%else + %{initdir}/stapshd + %dir %{_libexecdir}/systemtap + %{udevrulesdir}/99-stapsh-init.rules + %{_libexecdir}/systemtap/stapsh-daemon + %{_sysconfdir}/sysconfig/modules/virtio_console.modules +%endif +%endif %files testsuite %dir %{_datadir}/systemtap %{_datadir}/systemtap/testsuite -%if %{with_sysusers} +%if %{with sysusers} %{_sysusersdir}/systemtap-testsuite.conf %endif -%if %{with_java} +%if %{with java} %files runtime-java %dir %{_libexecdir}/systemtap -%{_libexecdir}/systemtap/libHelperSDT.so -%{_libexecdir}/systemtap/HelperSDT.jar %{_libexecdir}/systemtap/stapbm +%{_libexecdir}/systemtap/HelperSDT.jar +%{_libexecdir}/systemtap/libHelperSDT.so +%endif + +%if %{with python3_probes} +%files exporter +%{_sbindir}/stap-exporter +%{_sysconfdir}/stap-exporter +%{_mandir}/man8/stap-exporter.8* +%{_unitdir}/stap-exporter.service +%{_sysconfdir}/sysconfig/stap-exporter %endif -%if %{with_python2_probes} + +%if %{with python2_probes} %files runtime-python2 %{python_sitearch}/HelperSDT %{python_sitearch}/HelperSDT-*.egg-info %endif -%if %{with_python3_probes} +%if %{with python3_probes} %files runtime-python3 %{python3_sitearch}/HelperSDT %{python3_sitearch}/HelperSDT-*.egg-info %endif -%if %{with_virthost} +%if %{with virthost} %files runtime-virthost -%{_mandir}/man1/stapvirt.1* %{_bindir}/stapvirt -%endif - -%if %{with_virtguest} -%files runtime-virtguest -%if %{with_systemd} - %{udevrulesdir}/99-stapsh.rules - %{_unitdir}/stapsh@.service -%else - %{udevrulesdir}/99-stapsh-init.rules - %dir %{_libexecdir}/systemtap - %{_libexecdir}/systemtap/stapsh-daemon - %{initdir}/stapshd - %{_sysconfdir}/sysconfig/modules/virtio_console.modules -%endif -%endif - -%if %{with_python3_probes} -%files exporter -%{_sysconfdir}/stap-exporter -%{_sysconfdir}/sysconfig/stap-exporter -%{_unitdir}/stap-exporter.service -%{_mandir}/man8/stap-exporter.8* -%{_sbindir}/stap-exporter +%{_mandir}/man1/stapvirt.1* %endif # ------------------------------------------------------------------------ %changelog +* Fri Apr 14 2023 Xuchun Shang - 4.8-3 +- Update the description + * Mon Mar 6 2023 Funda Wang - 4.8-2 - rebuilt for boost and dyninst