Compare commits

...
Sign in to create a new pull request.

101 commits

Author SHA1 Message Date
Jonathan Wakely
0eafb3090d Patched to workaround Autoconf 2.72 incompatiblity with GCC 16 2026-01-13 18:57:21 +00:00
Jonathan Wakely
070cdc17ea Rebuilt for Boost 1.90 2026-01-13 10:52:47 +00:00
Frank Ch. Eigler
6fe8d3d7ef upstream release 5.4 2025-10-31 14:14:14 -04:00
Martin Cermak
93ca322655 Fix the CI gating setup
Fix the CI gating setup per https://docs.fedoraproject.org/en-US/ci/gating/
2025-09-22 20:32:15 +02:00
Frank Ch. Eigler
703cf33b20 Automated weekly systemtap rawhide release: 5.4~pre17585496g86ab88eb 2025-09-22 10:01:32 -04:00
Frank Ch. Eigler
02ce13f371 Automated weekly systemtap rawhide release: 5.4~pre17585473g1fe4178d 2025-09-22 09:23:23 -04:00
Python Maint
e304ee7f0d Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 14:59:01 +02:00
Python Maint
ccde07acbd Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:19:43 +02:00
Fedora Release Engineering
360287bbf0 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:02:43 +00:00
Python Maint
846836105b Rebuilt for Python 3.14 2025-06-03 14:30:52 +02:00
Frank Ch. Eigler
967cf9e53d disable dyninst buildreq on i686 2025-05-02 14:55:11 -04:00
Frank Ch. Eigler
b9c00fd898 rebase to upstream release 5.3 2025-05-02 14:45:36 -04:00
Frank Ch. Eigler
423d7bf3e5 Respin against newer dyninst 2025-02-06 09:04:46 -05:00
Frank Ch. Eigler
3105e88d5b expect disabled dyninst on i686 2025-01-24 18:52:57 -05:00
Frank Ch. Eigler
a230f161dd respin try for dyninst 13 2025-01-24 15:51:58 -05:00
Frank Ch. Eigler
12f28a923c Respin against dyninst 13.0.0 2025-01-24 15:25:54 -05:00
Frank Ch. Eigler
2da431cab3 Automated weekly systemtap rawhide release: 5.3~pre17373816g7a71d34b 2025-01-20 09:01:46 -05:00
Frank Ch. Eigler
e8c03b8035 Automated weekly systemtap rawhide release: 5.3~pre17373794g3efe129d 2025-01-20 08:26:17 -05:00
Frank Ch. Eigler
4f28506db7 Automated weekly systemtap rawhide release: 5.3~pre17373422g9a48fbea 2025-01-19 22:04:39 -05:00
Frank Ch. Eigler
ae0cad098c Automated weekly systemtap rawhide release: 5.2~pre17373420g1e894ff0 2025-01-19 22:01:49 -05:00
Fedora Release Engineering
eb8c0fea4c Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 12:16:21 +00:00
Frank Ch. Eigler
17f221776b upstream systemtap 5.2 release 2024-11-08 19:58:20 -05:00
William Cohen
67e80ccf00 Automated weekly systemtap rawhide release: 5.2~pre17283218gc5774e18 2024-10-07 13:24:16 -04:00
William Cohen
5a82cccf73 Automated weekly systemtap rawhide release: 5.2~pre17277956g0b7f6722 2024-10-01 11:15:22 -04:00
Frank Ch. Eigler
9c79ac67a5 Automated weekly systemtap rawhide release: 5.2~pre17250223gd07e4284 2024-08-30 08:52:32 -04:00
Martin Cermak
e42e009a44 CI Tests: Move systemtap tests to separate git repo
* Move systemtap tests to separate tests repo:
  https://src.fedoraproject.org/tests/systemtap
* For automated CI gating purposes use:
  https://src.fedoraproject.org/tests/systemtap-gating
2024-08-19 17:50:12 +02:00
Martin Cermak
6ba46a9a04 CI Tests: Regression/stap-ERROR-Build-id-mismatch-with: Skip on rhel9 (known RHEL-50105) 2024-08-16 18:27:34 +02:00
Martin Cermak
4bf1177f47 CI Tests: Regression/small-tests: run each subtest as a separate testcase 2024-08-16 18:02:50 +02:00
Martin Cermak
91da2bdd2e CI Tests: Regression/small-tests: provide TESTS var to specify tests to run 2024-08-16 17:22:11 +02:00
Lumir Balhar
20b4dc7947 Final split of sdt-dtrace and sdt-devel (rhbz#2296275)
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
2024-08-12 10:54:45 +00:00
Martin Cermak
d0c648ee8c CI Tests: Mark Sanity/quick-smoke-test as 'tier 1' 2024-08-09 13:30:01 +02:00
William Cohen
eedaf37e14 Automated weekly systemtap rawhide release: 5.2~pre17224323g98d1ea34 2024-07-31 09:27:17 -04:00
Lumir Balhar
93948388bc New sdt-dtrace subpackage for dtrace tool (rhbz#2296275)
This is phase one of the approved self-contained change:
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package

Phase two will be to switch all packages that need the dtrace tool
to the new systemtap-sdt-drace and then we can remove
the requirement from systemtap-sdt-devel package.
2024-07-18 10:01:34 +02:00
William Cohen
8c07a00957 Automated weekly systemtap rawhide release: 5.2~pre17206355g1a07290a 2024-07-10 14:19:34 -04:00
William Cohen
f95124e787 Automated weekly systemtap rawhide release: 5.1~pre17206206ge48abca5 2024-07-10 10:10:10 -04:00
Martin Cermak
956a4db3d9 CI Tests: ftrace-logging-tapset test: adjust expected output 2024-06-28 13:02:36 +02:00
Martin Cermak
36b1f19663 CI tests: Regression/small-tests: extend test time 2024-06-20 14:36:31 +02:00
Martin Cermak
897096ec80 CI Tests: second-command-not-captured: raise STP_OVERLOAD_THRESHOLD for ppc64le
In tests/Regression/second-command-not-captured raise the
STP_OVERLOAD_THRESHOLD.  In practice the original treshold
500000000LL was hit here and there, causing intermittent
testcase failures.  This was reproducible manually in cca
50% of tests.
2024-06-20 14:20:53 +02:00
Martin Cermak
dd61c2d292 CI Tests: Port backtrace test for kernel-6.10
Modern kernel-6.10 doesn't have function kmem_cache_alloc(),
but we can test with another one, such as schedule().
2024-06-19 10:48:55 +02:00
Martin Cermak
73bce465bd CI Tests: Suppress selected rhel10/ppc64le error::dwarf problems 2024-06-17 18:42:00 +02:00
Martin Cermak
4ae3ff2152 CI Tests: Do not rely on python-unversioned-command.rpm 2024-06-13 12:15:54 +02:00
Python Maint
95a46ceb44 Rebuilt for Python 3.13 2024-06-08 22:34:35 +02:00
Frank Ch. Eigler
64a9703628 release 5.1 2024-05-16 12:03:54 -04:00
Martin Cermak
11f44c8ba2 CI tests: Regression/small-tests update 2024-05-08 08:22:55 +02:00
Martin Cermak
87e8ee9d88 CI tests: python probing: behave on rhel 2024-05-08 08:04:34 +02:00
Martin Cermak
668b8dd42a CI test updates
- Add upstream testsuite tests/Regression/upstream-testsuite
  to the CI testplan.  However, this one isn't a good measure
  for gating, because it is too complex and flaky.  But it's
  good to have test results at hand.  This testcase reports a
  failure only in case of an infrastructure problem.  Individual
  .exp test failures are not a show stopper from the persp of
  the CI gating.
- Add upstream systemtap build and install pseudo testcase.
  tests/Install/upstream-systemtap to the testplan.
  This one is disabled by default (in its main.fmf file).  The
  point here is to be able to test with upstream version of
  systemtap in case a working fedora build isn't available.
  This is a helper for manual testing, although if enabled, it
  will do its job in the automated CI pipeline too.
- Use FMF tag instead of tier attributes to define the testplan.
- Testcase updates:
  * tests/Regression/second-command-not-captured
  * tests/Regression/python-probing
2024-04-17 08:29:50 +02:00
Martin Cermak
63994d2843 Align with modern FMF specs. 2024-02-21 15:26:12 +01:00
Frank Ch. Eigler
4ae6e4b029
testsuite: adapt to "egrep" deprecation
sigh
2024-01-25 17:56:30 -05:00
Frank Ch. Eigler
756feba063 Automated weekly systemtap rawhide release: 5.1~pre17062192g5fd8daba 2024-01-25 16:47:16 -05:00
Frank Ch. Eigler
6b9b658442 testsuite: adapt to "fgrep" deprecation
Since for some reason upstream grep deprecated "fgrep", and for some reason
fedora packagers followed suit, some these tests scripts fail with the goofy
"fgrep: warning: fgrep is obsolescent; using grep -F" warning.
2024-01-25 16:42:18 -05:00
Frank Ch. Eigler
5c095346d4 Regression/PR16166/towers.c: gcc14 warning suppression 2024-01-25 16:38:34 -05:00
Frank Ch. Eigler
9c100ef16f restore SPDX %changelog blurb 2024-01-25 15:04:14 -05:00
Frank Ch. Eigler
0cecbe6966 Automated weekly systemtap rawhide release: 5.1~pre17062114g2604d135 2024-01-25 14:39:53 -05:00
Frank Ch. Eigler
f078b4cd79 Automated weekly systemtap rawhide release: 5.1~pre17060399gb6abf4bd 2024-01-23 15:00:09 -05:00
Frank Ch. Eigler
086a7444b9 Automated weekly systemtap rawhide release: 5.1~pre17059382g67086c54 2024-01-22 10:44:38 -05:00
Frank Ch. Eigler
d628fd39d2 Automated weekly systemtap rawhide release: 5.1~pre17056139g6c0b92b3 2024-01-18 16:39:40 -05:00
Frank Ch. Eigler
4aed2098f3 Automated weekly systemtap rawhide release: 5.1~pre17056120g2ccc0c4c 2024-01-18 16:07:50 -05:00
Jonathan Wakely
2783b620ad Rebuilt for Boost 1.83 2024-01-18 05:21:41 +00:00
Martin Cermak
1d4a6f14bb CI Tests: Robustify Regression/RHEL6Feature-cpp-backtraces 2023-11-24 15:13:33 +01:00
Frank Ch. Eigler
2a2af534e3 Resolves: RHEL-16549, systemtap uprobe partial registration failure can cause crashes 2023-11-16 18:50:39 -05:00
Frank Ch. Eigler
7e30728b5f Upstream release 5.0 2023-11-04 12:31:05 -04:00
Martin Cermak
5d53a19f79 Fix Regression/ipv6-tapset-support for modern Fedoras 2023-10-13 23:05:42 +02:00
William Cohen
b7cac72f19 Automated weekly systemtap rawhide release: 5.0~pre16958465gca71442b 2023-09-27 16:30:49 -04:00
Fedora Release Engineering
92650f2647 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 03:06:17 +00:00
Frank Ch. Eigler
3be2cacf55 Automated weekly systemtap rawhide release: 5.0~pre16891249ge891a37e 2023-07-11 21:23:14 -04:00
Frank Ch. Eigler
f303d28d53 Automated weekly systemtap rawhide release: 5.0~pre16890184ge891a37e 2023-07-10 15:47:14 -04:00
Frank Ch. Eigler
6c6cf1bcac Automated weekly systemtap rawhide release: 5.0~pre16885234gd98d6c2d 2023-07-04 22:17:16 -04:00
Frank Ch. Eigler
61a9dae5ea Automated weekly systemtap rawhide release: 5.0~pre16885197g6b17715f 2023-07-04 21:30:50 -04:00
Python Maint
6464adf385 Rebuilt for Python 3.12 2023-06-13 23:29:35 +02:00
Mark Wielaard
11422e39ad 4.9-2 - rebuilt for f39-build-side-67564 target 2023-05-19 22:49:33 +02:00
Martin Cermak
91acc811a1 CI Tests: Set DEBUGINFOD_URLS based on test FMF context.
Tests are supposed to be executed within defined context, such as e.g.
tmt --root . -c arch=x86_64 -c distro=fedora-38 -c trigger=build run ...

FTR: https://tmt.readthedocs.io/en/stable/spec/plans.html#context

This update sets DEBUGINFOD_URLS based on the provided distro
via the ci.fmf file.
2023-05-19 10:34:46 +02:00
Martin Cermak
3759fe484f CI Tests: Instead of waiting for a random event/hit, trigger one via ping 2023-05-18 13:09:44 +02:00
Martin Cermak
863bc06741 CI Tests: Regression/small-tests: Use debuginfod on Fedora 2023-05-18 12:26:45 +02:00
Martin Cermak
ca2a8a03ea CI Tests: Work around PR29765 2023-05-17 17:19:46 +02:00
Martin Cermak
12975603f1 CI Tests: Multiple updates
tests/Regression/RHEL6Feature-cpp-methods:
  Fix locale/LANG dependent sort collation prob
tests/Regression/python-probing:
  Make sure needed debuginfo is in place
tests/Regression/wrong-data-returned-by-nfs-commit-done:
  Refactor, improve clranup, simplify
2023-05-04 17:56:45 +02:00
Martin Cermak
6e53120fd1 CI Tests: Relax check for RPMs (not applicable to rhel8 modules) 2023-05-02 10:47:18 +02:00
Frank Ch. Eigler
0a08050f43 upstream release 2023-04-28 17:21:02 -04:00
Martin Cermak
8ea2489c53 CI Testing: Extend test coverage on Fedora
Enable most of the tests on Fedora.  Port some of them to Fedora.
Annotate expected failures with respective bugzilla IDs.
2023-03-10 15:27:23 +01:00
Frank Ch. Eigler
340640bc27 rhbz2173032 2023-02-23 16:37:59 -05:00
Martin Cermak
1c8c98dbcd CI testing: Drop the Regression/testsuite-upstream-raw TC 2023-02-22 09:48:52 +01:00
Martin Cermak
6e2eede1a1 CI tests: bz2152970 is a known issue 2023-02-21 20:41:54 +01:00
Martin Cermak
671f002697 Make yamllint happier 2023-02-21 18:46:22 +01:00
Martin Cermak
da710f5bb8 CI tests: On Fedora run Tier1 tests only. 2023-02-21 16:46:33 +01:00
Jonathan Wakely
f407c7e3a1 Rebuilt for Boost 1.81 2023-02-20 22:18:20 +00:00
Frank Ch. Eigler
6b7d1588ab respin with important upstream fixes 2023-02-08 12:36:07 -05:00
Fedora Release Engineering
14dabc02a6 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 04:34:30 +00:00
Martin Cermak
d5b191f9b0 tests: Fix fmf plan deprecated attributes 2022-12-12 13:55:48 +01:00
Serhei Makarov
359f52a3b0 upstream release 4.8 2022-11-03 17:30:09 -04:00
Frank Ch. Eigler
4da5c082d7 Automated weekly systemtap rawhide release: 4.8~pre16650659g6a096a7d 2022-10-06 10:19:54 -04:00
Martin Cermak
96a7f16670 tests/Regression/elfutils-debuginfod-client-not-being-called: Debuginfod client cache location change
Reflect elfutils upstream commit e939590219 (PR25502) changing the
location of the client cache.  Without this update the first run of
the testcase works, but not the subsequent runs.
2022-08-10 14:05:07 +02:00
Frank Ch. Eigler
3138353e0e Automated weekly systemtap rawhide release: 4.8~pre16594741g5bdc37b9 2022-08-02 17:03:09 -04:00
Frank Ch. Eigler
648b6d77e5 Automated weekly systemtap rawhide release: 4.8~pre16594727g09f1b7bb 2022-08-02 16:38:53 -04:00
Fedora Release Engineering
8efeb38c25 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 10:00:37 +00:00
Zbigniew Jędrzejewski-Szmek
460815a33b Rebuilt for pyparsing-3.0.9 2022-07-19 11:12:36 +02:00
Frank Ch. Eigler
d5dda0dab9 Automated weekly systemtap rawhide release: 4.8~pre16578235g069e109c 2022-07-14 14:32:00 -04:00
Frank Ch. Eigler
613a6720d2 Automated weekly systemtap rawhide release: 4.8~pre16557277g2882dcc9 2022-06-20 08:23:06 -04:00
Python Maint
19434e1809 Rebuilt for Python 3.11 2022-06-13 19:54:29 +02:00
Martin Cermak
5d247c7220 CI Tests: make Regression/python-probing less flaky
Make Regression/python-probing less flaky by restricting
the output flow, preventing the transport buffers flood (PR29108).
2022-05-26 11:05:48 +02:00
Martin Cermak
ca4fdbacfc CI Tests: make Regression/second-command-not-captured less flaky
Make Regression/second-command-not-captured less flaky by restricting
the output flow, preventing the transport buffers flood (PR29108).
2022-05-11 14:49:56 +02:00
Martin Cermak
8d5d041590 Include downstream/RHEL tests
Find new home for downstream RHEL tests.  Upstream them.  The set of
tests used for fedora gating stays intact:  The gating tests are only
those having the tier1 tag set in their main.fmf file.  The testplan
plans/ci.fmf filters the others out from gating.

The set of Fedora gating tests stays the same as it was before this
change.
2022-05-10 09:56:18 +02:00
Thomas Rodgers
1b351ce0ad Rebuilt for Boost 1.78 2022-05-04 11:42:19 +02:00
32 changed files with 333 additions and 1053 deletions

35
.gitignore vendored
View file

@ -78,3 +78,38 @@
/systemtap-4.7~pre16433134g7d871ab5.tar.gz
/systemtap-4.7~pre16468670g9f253544.tar.gz
/systemtap-4.7.tar.gz
/systemtap-4.8~pre16557277g2882dcc9.tar.gz
/systemtap-4.8~pre16578235g069e109c.tar.gz
/systemtap-4.8~pre16594727g09f1b7bb.tar.gz
/systemtap-4.8~pre16594741g5bdc37b9.tar.gz
/systemtap-4.8~pre16650659g6a096a7d.tar.gz
/systemtap-4.8.tar.gz
/systemtap-4.9.tar.gz
/systemtap-5.0~pre16885197g6b17715f.tar.gz
/systemtap-5.0~pre16885234gd98d6c2d.tar.gz
/systemtap-5.0~pre16890184ge891a37e.tar.gz
/systemtap-5.0~pre16891249ge891a37e.tar.gz
/systemtap-5.0~pre16958465gca71442b.tar.gz
/systemtap-5.0.tar.gz
/systemtap-5.1~pre17056120g2ccc0c4c.tar.gz
/systemtap-5.1~pre17056139g6c0b92b3.tar.gz
/systemtap-5.1~pre17059382g67086c54.tar.gz
/systemtap-5.1~pre17060399gb6abf4bd.tar.gz
/systemtap-5.1~pre17062114g2604d135.tar.gz
/systemtap-5.1~pre17062192g5fd8daba.tar.gz
/systemtap-5.1.tar.gz
/systemtap-5.1~pre17206206ge48abca5.tar.gz
/systemtap-5.2~pre17206355g1a07290a.tar.gz
/systemtap-5.2~pre17224323g98d1ea34.tar.gz
/systemtap-5.2~pre17250223gd07e4284.tar.gz
/systemtap-5.2~pre17277956g0b7f6722.tar.gz
/systemtap-5.2~pre17283218gc5774e18.tar.gz
/systemtap-5.2.tar.gz
/systemtap-5.2~pre17373420g1e894ff0.tar.gz
/systemtap-5.3~pre17373422g9a48fbea.tar.gz
/systemtap-5.3~pre17373794g3efe129d.tar.gz
/systemtap-5.3~pre17373816g7a71d34b.tar.gz
/systemtap-5.3.tar.gz
/systemtap-5.4~pre17585473g1fe4178d.tar.gz
/systemtap-5.4~pre17585496g86ab88eb.tar.gz
/systemtap-5.4.tar.gz

View file

@ -1,7 +1,15 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
decision_contexts: [bodhi_update_push_testing]
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation}
--- !Policy
product_versions:
- fedora-*
decision_contexts: [bodhi_update_push_stable]
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

View file

@ -1,11 +1,12 @@
summary: CI Gating Plan
discover:
how: fmf
directory: tests
how: fmf
url: https://src.fedoraproject.org/tests/systemtap-gating.git
ref: main
directory: tests
prepare:
how: install
exclude:
- glibc-headers-x86
- glibc-headers-s390
- name: prepare
how: shell
script: ./plans/prepare.sh
execute:
how: beakerlib
how: tmt

View file

@ -1,7 +0,0 @@
summary: Setup task
prepare:
script: ./plans/ci/prepare/prepare.sh
recommend:
- koji
- bind-utils
- avahi-tools

View file

@ -1,12 +1,9 @@
#!/bin/bash
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
# On Rawhide, the running kernel packages won't probably be avail in
# configured repos. Debuginfo isn't a problem, we access that using
# the debuginfod.
__install_deps ()
__fedora_install_deps ()
{
TMPD=$(mktemp -d)
pushd $TMPD
@ -20,8 +17,12 @@ __install_deps ()
set -xe
source /etc/os-release
# Install needed packages
stap-prep || __install_deps
if [ "$ID" == "fedora" ]; then
stap-prep || __fedora_install_deps
fi
stap-prep
# Report installed packages

View file

@ -1 +1 @@
SHA512 (systemtap-4.7.tar.gz) = 7d7c213dc4f7c5430f81763668da21403fbc351d1701b1096eb1ad233e3f0325e35f01dfd0a33e75f277b26fdde88c46d42dd32e32e4d4f27a45d53e2dd0f831
SHA512 (systemtap-5.4.tar.gz) = 5869fe3735e44be65ba7895a46b4ea66fcdcc21ed2ab0673c62d822730553837f816d82fd78eeca4bfe6f17fdeaa12eb2f94c0b0b7ebb8c495c961f0b6935785

13
systemtap-gcc16.patch Normal file
View file

@ -0,0 +1,13 @@
--- systemtap-5.4/configure~ 2025-10-30 14:47:35.000000000 +0000
+++ systemtap-5.4/configure 2026-01-13 18:53:20.466037572 +0000
@@ -3121,8 +3121,8 @@
}
{
// Unicode literals
- char const *utf8 = u8"UTF-8 string \u2500";
- char16_t const *utf16 = u"UTF-8 string \u2500";
+ auto const *utf8 = u8"UTF-8 string \u2500";
+ char16_t const *utf16 = u"UTF-16 string \u2500";
char32_t const *utf32 = U"UTF-32 string \u2500";
}
'

View file

@ -1,3 +1,5 @@
# work around flakey gcc warnings
%{!?with_Werror: %global with_Werror 0}
%{!?with_sqlite: %global with_sqlite 0%{?fedora} >= 17 || 0%{?rhel} >= 7}
# prefer prebuilt docs
%{!?with_docs: %global with_docs 0}
@ -11,8 +13,8 @@
%endif
%{!?with_rpm: %global with_rpm 1}
%{!?elfutils_version: %global elfutils_version 0.179}
%{!?with_boost: %global with_boost 0}
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
%{!?with_boost: %global with_boost 1}
%ifarch x86_64 ppc ppc64 ppc64le aarch64
%{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7}
%else
%{!?with_dyninst: %global with_dyninst 0}
@ -20,7 +22,11 @@
%{!?with_bpf: %global with_bpf 0%{?fedora} >= 22 || 0%{?rhel} >= 8}
%{!?with_systemd: %global with_systemd 0%{?fedora} >= 19 || 0%{?rhel} >= 7}
%{!?with_emacsvim: %global with_emacsvim 0%{?fedora} >= 19 || 0%{?rhel} >= 7}
%ifarch %{ix86}
%{!?with_java: %global with_java 0}
%else
%{!?with_java: %global with_java 0%{?fedora} >= 19 || 0%{?rhel} >= 7}
%endif
%{!?with_debuginfod: %global with_debuginfod 0%{?fedora} >= 25 || 0%{?rhel} >= 7}
%{!?with_virthost: %global with_virthost 0%{?fedora} >= 19 || 0%{?rhel} >= 7}
%{!?with_virtguest: %global with_virtguest 1}
@ -39,9 +45,13 @@
%{!?with_httpd: %global with_httpd 0}
%{!?with_specific_python: %global with_specific_python 0%{?fedora} >= 31}
%{!?with_sysusers: %global with_sysusers 0%{?fedora} >= 32 || 0%{?rhel} >= 9}
# NB: can't turn this on by default on any distro version whose builder system
# may run kernels different than the distro version itself.
%{!?with_check: %global with_check 0}
# Virt is supported on these arches, even on el7, but it's not in core EL7
%if 0%{?rhel} <= 7
%if 0%{?rhel} && 0%{?rhel} <= 7
%ifarch ppc64le aarch64
%global with_virthost 0
%endif
@ -60,9 +70,6 @@
%else
%if 0%{?rhel} >= 6
%define udevrulesdir /lib/udev/rules.d
%else
# RHEL5
%define udevrulesdir /etc/udev/rules.d
%endif
%endif
%endif
@ -79,11 +86,7 @@
%define dracutbindir %{_bindir}
%endif
%if 0%{?rhel} == 6
%{!?_rpmmacrodir: %define _rpmmacrodir /etc/rpm/}
%else
%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d}
%endif
%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d}
# To avoid testsuite/*/*.stp has shebang which doesn't start with '/'
%define __brp_mangle_shebangs_exclude_from .stp$
@ -93,7 +96,10 @@
\
g stapusr 156\
g stapsys 157\
g stapdev 158
g stapdev 158\
g stapunpriv 159\
u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin\
m stapunpriv stapunpriv
%define _systemtap_server_preinstall \
# See systemd-sysusers(8) sysusers.d(5)\
@ -115,10 +121,17 @@ m stapsys stapsys\
m stapdev stapusr\
m stapdev stapdev
%define _systemtap_server_preinstall_tmpfiles \
# See systemd-tmpfiles(8) tmpfiles.d(5)\
d /var/lib/stap-server 0750 stap-server stap-server -\
d /var/lib/stap-server/.systemtap 0700 stap-server stap-server -\
d /var/log/stap-server 0755 stap-server stap-server -\
f /var/log/stap-server/log 0644 stap-server stap-server -
Name: systemtap
Version: 4.7
Release: 1%{?release_override}%{?dist}
# PRERELEASE
Version: 5.4
Release: 2%{?release_override}%{?dist}
# for version, see also configure.ac
@ -130,13 +143,15 @@ Release: 1%{?release_override}%{?dist}
# 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-sdt-devel /usr/include/sys/sdt.h /usr/bin/dtrace
# systemtap-sdt-devel /usr/include/sys/sdt.h
# systemtap-sdt-dtrace /usr/bin/dtrace
# systemtap-testsuite /usr/share/systemtap/testsuite*, req:systemtap, req:sdt-devel
# 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-jupyter /usr/bin/stap-jupyter-* interactive-notebook req:systemtap
#
# Typical scenarios:
#
@ -150,9 +165,10 @@ Release: 1%{?release_override}%{?dist}
# intermediary stap-server for --use-server: systemtap-server (-devel unused)
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
Patch0: systemtap-gcc16.patch
# Build*
BuildRequires: make
@ -163,6 +179,7 @@ BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(avahi-client)
%if %{with_debuginfod}
BuildRequires: pkgconfig(libdebuginfod)
BuildRequires: pkgconfig(json-c)
%endif
%if %{with_dyninst}
BuildRequires: dyninst-devel >= 10.0
@ -179,9 +196,7 @@ BuildRequires: pkgconfig(ncurses)
BuildRequires: systemd
%endif
# Needed for libstd++ < 4.0, without <tr1/memory>
%if %{with_boost}
BuildRequires: boost-devel
%endif
%if %{with_crash}
BuildRequires: crash-devel zlib-devel
%endif
@ -203,7 +218,7 @@ BuildRequires: xmlto /usr/share/xmlto/format/fo/pdf
%endif
%if %{with_emacsvim}
# for _emacs_sitelispdir macros etc.
BuildRequires: emacs
BuildRequires: emacs-common
%endif
%if %{with_java}
BuildRequires: java-devel
@ -214,9 +229,6 @@ BuildRequires: pkgconfig(libvirt)
BuildRequires: pkgconfig(libxml-2.0)
%endif
BuildRequires: readline-devel
%if 0%{?rhel} <= 5
BuildRequires: pkgconfig(ncurses)
%endif
%if %{with_python2_probes}
BuildRequires: python2-devel
%if 0%{?fedora} >= 1
@ -232,17 +244,20 @@ BuildRequires: python3
BuildRequires: python3-devel
BuildRequires: python3-setuptools
%endif
%if %{with_specific_python}
BuildRequires: /usr/bin/pathfix.py
%endif
%if %{with_httpd}
BuildRequires: libmicrohttpd-devel
BuildRequires: libuuid-devel
%endif
%if %{with_sysusers}
BuildRequires: systemd-rpm-macros
BuildRequires: systemd-rpm-macros
%endif
%if %{with_check}
BuildRequires: kernel-devel
# and some of the same Requires: as below
BuildRequires: dejagnu gcc make
%endif
# Install requirements
@ -259,8 +274,8 @@ the components needed to locally develop and execute systemtap scripts.
%package server
Summary: Instrumentation System Server
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-devel = %{version}-%{release}
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-runtime < %{version}-%{release}
@ -289,8 +304,8 @@ compiles systemtap scripts to kernel objects on their demand.
%package devel
Summary: Programmable system-wide instrumentation system - development headers, tools
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND BSD-2-Clause
URL: https://sourceware.org/systemtap/
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: (kernel-debug-devel if kernel-debug)
@ -319,8 +334,8 @@ a copy of the standard tapset library and the runtime library C files.
%package runtime
Summary: Programmable system-wide instrumentation system - runtime
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires(pre): shadow-utils
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
@ -334,8 +349,8 @@ using a local or remote systemtap-devel installation.
%package client
Summary: Programmable system-wide instrumentation system - client
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND GFDL-1.2-or-later AND BSD-2-Clause
URL: https://sourceware.org/systemtap/
Requires: zip unzip
Requires: systemtap-runtime = %{version}-%{release}
Requires: coreutils grep sed unzip zip
@ -348,17 +363,19 @@ Requires: mokutil
%endif
%description client
This package contains/requires the components needed to develop
systemtap scripts, and compile them using a local systemtap-devel
or a remote systemtap-server installation, then run them using a
local or remote systemtap-runtime. It includes script samples and
This package contains/requires only the components needed to
use systemtap scripts by compiling them using a local or a remote
systemtap-server service, then run them using a local or
remote systemtap-runtime. It includes script samples and
documentation, and a copy of the tapset library for reference.
It does NOT include all the components for running a systemtap
script in a self-contained fashion; for that, use the -devel
subpackage instead.
%package initscript
Summary: Systemtap Initscripts
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
%if %{with_systemd}
Requires: systemd
@ -376,9 +393,24 @@ boot-time probing if supported.
%package sdt-devel
Summary: Static probe support tools
License: GPLv2+ and Public Domain
URL: http://sourceware.org/systemtap/
Summary: Static probe support header files
License: GPL-2.0-or-later AND CC0-1.0
URL: https://sourceware.org/systemtap/
%if 0%{?rhel} && 0%{?rhel} <= 10
# for RHEL buildability compatibility, pull in sdt-dtrace at all times
Requires: systemtap-sdt-dtrace = %{version}-%{release}
%endif
%description sdt-devel
This package includes the <sys/sdt.h> header file used for static
instrumentation compiled into userspace programs.
%package sdt-dtrace
Summary: Static probe support dtrace tool
License: GPL-2.0-or-later AND CC0-1.0
URL: https://sourceware.org/systemtap/
Provides: dtrace = %{version}-%{release}
%if %{with_pyparsing}
%if %{with_python3}
Requires: python3-pyparsing
@ -391,21 +423,19 @@ Requires: python2-pyparsing
%endif
%endif
%description sdt-devel
This package includes the <sys/sdt.h> header file used for static
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.
%description sdt-dtrace
This package includes the dtrace-compatibility preprocessor
to process related .d files into tracing-macro-laden .h headers.
%package testsuite
Summary: Instrumentation System Testsuite
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
Requires: systemtap-sdt-devel = %{version}-%{release}
Requires: systemtap-server = %{version}-%{release}
Requires: dejagnu which elfutils grep nc
Requires: dejagnu which elfutils grep nc wget
%if %{with_debuginfod}
Requires: elfutils-debuginfod
%endif
@ -472,8 +502,8 @@ systemtap on the current system.
%if %{with_java}
%package runtime-java
Summary: Systemtap Java Runtime Support
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
# work around fedora ci gating kvetching about i686<->x86-64 conflicts
%ifarch x86_64
@ -494,8 +524,8 @@ that probe Java processes running on the OpenJDK runtimes using Byteman.
%if %{with_python2_probes}
%package runtime-python2
Summary: Systemtap Python 2 Runtime Support
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description runtime-python2
@ -506,8 +536,8 @@ that probe python 2 processes.
%if %{with_python3_probes}
%package runtime-python3
Summary: Systemtap Python 3 Runtime Support
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%if ! (%{with_python2_probes})
@ -523,8 +553,8 @@ that probe python 3 processes.
%if %{with_python3_probes}
%package exporter
Summary: Systemtap-prometheus interoperation mechanism
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description exporter
@ -536,8 +566,8 @@ to remote requesters on demand.
%if %{with_virthost}
%package runtime-virthost
Summary: Systemtap Cross-VM Instrumentation - host
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
# only require libvirt-libs really
#Requires: libvirt >= 1.0.2
Requires: libxml2
@ -551,8 +581,8 @@ connection.
%if %{with_virtguest}
%package runtime-virtguest
Summary: Systemtap Cross-VM Instrumentation - guest
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%if %{with_systemd}
Requires(post): findutils coreutils
@ -569,10 +599,22 @@ This package installs the services necessary on a virtual machine for a
systemtap-runtime-virthost machine to execute systemtap scripts.
%endif
%package jupyter
Summary: ISystemtap jupyter kernel and examples
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
%description jupyter
This package includes files needed to build and run
the interactive systemtap Jupyter kernel, either locally
or within a container.
# ------------------------------------------------------------------------
%prep
%setup -q
%patch 0 -p1
%build
@ -583,6 +625,13 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
%global dyninst_config --without-dyninst
%endif
# Enable/disable the dyninst pure-userspace backend
%if %{with_Werror}
%global Werror_config --enable-Werror
%else
%global Werror_config --disable-Werror
%endif
# Enable/disable the sqlite coverage testing support
%if %{with_sqlite}
%global sqlite_config --enable-sqlite
@ -670,12 +719,17 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
# We don't ship compileworthy python code, just oddball samples
%global py_auto_byte_compile 0
%configure %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}"
%configure %{Werror_config} %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}"
make %{?_smp_mflags} V=1
%install
make DESTDIR=$RPM_BUILD_ROOT install
%if ! (%{with_python3})
rm -v $RPM_BUILD_ROOT%{_bindir}/stap-profile-annotate
%endif
%find_lang %{name}
for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do
dir=$(echo $dir | sed -e "s|^$RPM_BUILD_ROOT||")
@ -688,6 +742,8 @@ mkdir -p %{buildroot}%{_sysusersdir}
echo '%_systemtap_runtime_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-runtime.conf
echo '%_systemtap_server_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-server.conf
echo '%_systemtap_testsuite_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-testsuite.conf
mkdir -p %{buildroot}%{_tmpfilesdir}
echo '%_systemtap_server_preinstall_tmpfiles' > %{buildroot}%{_tmpfilesdir}/systemtap-server.conf
%endif
@ -705,9 +761,6 @@ find testsuite -type f -name '.gitignore' -print0 | xargs -0 rm -f
# permissions back to 04110 in the %files section below.
chmod 755 $RPM_BUILD_ROOT%{_bindir}/staprun
#install the useful stap-prep script
install -c -m 755 stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
# Copy over the testsuite
cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap
@ -813,33 +866,52 @@ done
%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}/*
%py3_shebang_fix %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/*
%endif
%check
%if %{with_check}
make check RUNTESTFLAGS=environment_sanity.exp
%endif
%pre runtime
%if %{with_sysusers}
%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11)
echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-runtime.conf -
exit 0
%endif
%else
getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev
%endif
getent passwd stapunpriv >/dev/null || \
useradd -c "Systemtap Unprivileged User" -u 159 -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv 2>/dev/null || \
useradd -c "Systemtap Unprivileged User" -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv
exit 0
%endif
%pre server
%if %{with_sysusers}
%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11)
echo '%_systemtap_server_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-server.conf -
echo '%_systemtap_server_preinstall_tmpfiles' | systemd-tmpfiles --replace=%{_tmpfilesdir}/systemtap-server.conf -
exit 0
%endif
%else
getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server
getent passwd stap-server >/dev/null || \
useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server 2>/dev/null || \
useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server
%endif
exit 0
%endif
%pre testsuite
%if %{with_sysusers}
%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11)
echo '%_systemtap_testsuite_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-testsuite.conf -
exit 0
%endif
%else
getent passwd stapusr >/dev/null || \
useradd -c "Systemtap 'stapusr' User" -g stapusr -r -s /sbin/nologin stapusr
@ -847,8 +919,8 @@ getent passwd stapsys >/dev/null || \
useradd -c "Systemtap 'stapsys' User" -g stapsys -G stapusr -r -s /sbin/nologin stapsys
getent passwd stapdev >/dev/null || \
useradd -c "Systemtap 'stapdev' User" -g stapdev -G stapusr -r -s /sbin/nologin stapdev
%endif
exit 0
%endif
%post server
@ -868,7 +940,8 @@ if [ ! -f ~stap-server/.systemtap/rc ]; then
numcpu=`/usr/bin/getconf _NPROCESSORS_ONLN`
if [ -z "$numcpu" -o "$numcpu" -lt 1 ]; then numcpu=1; fi
nproc=`expr $numcpu \* 30`
echo "--rlimit-as=614400000 --rlimit-cpu=60 --rlimit-nproc=$nproc --rlimit-stack=1024000 --rlimit-fsize=51200000" > ~stap-server/.systemtap/rc
# PR29661 -> 4G
echo "--rlimit-as=4294967296 --rlimit-cpu=60 --rlimit-nproc=$nproc --rlimit-stack=1024000 --rlimit-fsize=51200000" > ~stap-server/.systemtap/rc
chown stap-server:stap-server ~stap-server/.systemtap/rc
fi
@ -1055,6 +1128,7 @@ exit 0
%if %{with_systemd}
%{_unitdir}/stap-server.service
%{_tmpfilesdir}/stap-server.conf
%{_tmpfilesdir}/systemtap-server.conf
%else
%{initdir}/stap-server
%dir %{_sysconfdir}/stap-server/conf.d
@ -1078,7 +1152,9 @@ exit 0
%files devel -f systemtap.lang
%{_bindir}/stap
%{_bindir}/stap-prep
%if %{with_python3}
%{_bindir}/stap-profile-annotate
%endif
%{_bindir}/stap-report
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/runtime
@ -1099,13 +1175,14 @@ exit 0
%if %{with_emacsvim}
%{_emacs_sitelispdir}/*.el*
%{_emacs_sitestartdir}/systemtap-init.el
%{_datadir}/vim/vimfiles/*/*.vim
%{_datadir}/vim/vimfiles
%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}
%{_libexecdir}/systemtap/python/stap-resolve-module-function.py
%dir %{_libexecdir}/systemtap/python
%exclude %{_libexecdir}/systemtap/python/stap-resolve-module-function.py?
%endif
@ -1200,16 +1277,22 @@ exit 0
%files sdt-devel
%{_bindir}/dtrace
%{_includedir}/sys/sdt.h
%{_includedir}/sys/sdt-config.h
%{_mandir}/man1/dtrace.1*
%{_rpmmacrodir}/macros.systemtap
%doc README AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%files sdt-dtrace
%{_bindir}/dtrace
%doc README AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_mandir}/man1/dtrace.1*
%files testsuite
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/testsuite
@ -1266,15 +1349,115 @@ exit 0
%{_sbindir}/stap-exporter
%endif
%files jupyter
%{_bindir}/stap-jupyter-container
%{_bindir}/stap-jupyter-install
%{_mandir}/man1/stap-jupyter.1*
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/interactive-notebook
# ------------------------------------------------------------------------
# Future new-release entries should be of the form
# * DDD MMM DD YYYY YOURNAME <YOUREMAIL> - V-R
# - Upstream release, see wiki page below for detailed notes.
# http://sourceware.org/systemtap/wiki/SystemTapReleases
# https://sourceware.org/systemtap/wiki/SystemTapReleases
# PRERELEASE
%changelog
* Tue Jan 13 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 5.4-2
- Patched to workaround Autoconf 2.72 incompatiblity with GCC 16
* Fri Oct 31 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon Sep 22 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-17585496g86ab88eb
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Sep 22 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-17585473g1fe4178d
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 5.3-5
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 5.3-4
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 5.3-2
- Rebuilt for Python 3.14
* Fri May 02 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Thu Feb 06 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3~pre17373816g7a71d34b.5
- Respin against dyninst 13 redux
* Fri Jan 24 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3~pre17373816g7a71d34b.3
- Respin against dyninst 13, sans dyninst on i686.
* Mon Jan 20 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373816g7a71d34b
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Jan 20 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373794g3efe129d
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373422g9a48fbea
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Frank Ch. Eigler <fche@redhat.com> - 5.2-17373420g1e894ff0
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Nov 08 2024 Frank Ch. Eigler <fche@redhat.com> - 5.2-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon Oct 07 2024 William Cohen <wcohen@redhat.com> - 5.2-17283218gc5774e18
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Tue Oct 01 2024 William Cohen <wcohen@redhat.com> - 5.2-17277956g0b7f6722
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Aug 30 2024 Frank Ch. Eigler <fche@redhat.com> - 5.2-17250223gd07e4284
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Aug 08 2024 Lumír Balhar <lbalhar@redhat.com> - 5.2-pre
- Final split of sdt-dtrace and sdt-devel (rhbz#2296275)
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
* Fri Apr 26 2024 Frank Ch. Eigler <fche@redhat.com> - 5.1-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Sat Nov 04 2023 Frank Ch. Eigler <fche@redhat.com> - 5.0-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
- migrated to SPDX license
* Fri Apr 28 2023 Frank Ch. Eigler <fche@redhat.com> - 4.9-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Thu Nov 03 2022 Serhei Makarov <serhei@serhei.io> - 4.8-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon May 02 2022 Frank Ch. Eigler <fche@redhat.com> - 4.7-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases

View file

@ -1,20 +0,0 @@
#!/usr/bin/stap -v
/*
Example usage of the Python systemtap tapset to show a nested view of all
Python function calls (and returns) across the whole system.
Run this using
stap systemtap-example.stp
to instrument all Python processes on the system, or (for example) using
stap systemtap-example.stp -c COMMAND
to instrument a specific program (implemented in Python)
*/
probe python.function.entry
{
printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno);
}
probe python.function.return
{
printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno);
}

View file

@ -1,23 +0,0 @@
summary: Systemtap static probes test
description: |
This test checks basic functionality of Python's systemtap static
probes. It runs list & top systemtap scripts (examples from the
python rpm) and then a python script using the "random" module.
Finally it checks that the "random" module is correctly listed in
the output of both systemtap scripts.
contact: Petr Splichal <psplicha@redhat.com>
component:
- python
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- python
- python-debuginfo
- systemtap
- python2
- python3
- elfutils
duration: 15m
extra-summary: /CoreOS/python/Sanity/systemtap
extra-task: /CoreOS/python/Sanity/systemtap

View file

@ -1,81 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/python/Sanity/systemtap
# Description: Systemtap static probes test
# Author: Petr Splichal <psplicha@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
# Packages to be tested
PACKAGES="${PACKAGES:-python3}"
# Other required packages
REQUIRES=${REQUIRES:-}
# Binary name parametrized
PYTHON="${PYTHON:-python3}"
package=$(rpm -qf --queryformat '%{name}\n' $(which $PYTHON))
collection_path=$(which python | sed 's/\/usr\/bin\/python//')
rlJournalStart
rlPhaseStartSetup
rlAssertRpm --all
rlAssertRpm "systemtap"
rlLogInfo "Running on kernel: $(uname -r)"
rlRun "rpm -qa 'systemtap*'" 0 "Checking systemtap packages"
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "cp list.stp top.stp test.py $TmpDir" 0 "Copying scripts"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest "Verifying ELF file for presence of .probes section"
for lib in ${collection_path}/usr/lib*/libpython*.so.* ; do
rlRun "eu-readelf -x .probes $lib" \
0 "Checking for .probes section within $lib"
done
rlPhaseEnd
# Note that typically you need to be root to run "stap" (or be within
# an appropriate group)
for script in list top; do
rlPhaseStartTest "Test $script"
rlRun "rm -rf ~/.systemtap/cache" 0 "Cleaning cache"
rlRun "stap $script.stp -v -c \"$PYTHON test.py\" > $script" \
0 "Testing with $script.stp"
rlRun "tail -100 $script | col -b" 0 "Inspecting output"
if ! rlRun "grep '/usr/lib.*python.*random.py' '$script'" \
0 "Checking for random in the $script output"; then
rlRun "stap $script.stp -vvv -c \"$PYTHON test.py\" > $script" \
0 "Running $script.stp once more in verbose mode"
fi
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
import random, time
print(random.random())
time.sleep(3)

View file

@ -1,21 +0,0 @@
#!/usr/bin/stap -v
global fn_calls;
probe python.function.entry
{
fn_calls[pid(), filename, funcname, lineno] += 1;
}
probe timer.ms(1000) {
printf("\033[2J\033[1;1H") /* clear screen */
printf("%6s %80s %6s %30s %6s\n",
"PID", "FILENAME", "LINE", "FUNCTION", "CALLS")
foreach ([pid, filename, funcname, lineno] in fn_calls- limit 1000) {
printf("%6d %80s %6d %30s %6d\n",
pid, filename, lineno, funcname,
fn_calls[pid, filename, funcname, lineno]);
}
delete fn_calls;
}

View file

@ -1,14 +0,0 @@
summary: suns small tests
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- systemtap-testsuite
- perf
duration: 10m
extra-summary: /tools/systemtap/Regression/small-tests
extra-task: /tools/systemtap/Regression/small-tests

View file

@ -1,183 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/small-tests
# Description: suns small tests
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
_arch=$(arch)
function perf_probe_failed ()
{
probe=$1
perf probe -d $probe ||:
perf probe --add $probe
retval=$?
test $retval -eq 0 && \
rlLogInfo "Running perf probe --add $probe PASSED" || \
rlLogInfo "Running perf probe --add $probe FAILED"
perf probe -d $probe ||:
if test $retval -eq 0; then
return 1
else
return 0
fi
}
function perf_found_none_of ()
{
ret=0
for f in "$@"; do
perf_probe_failed $f || ret=1
done
return $ret
}
rlJournalStart
# Check the environment ---------------------------------------
rlPhaseStart WARN "Check the environment"
rlRun "rpm -qa | egrep '^(kernel|systemtap|perf)' | sort"
rlRun "uname -r"
rlRun "perf --version"
rlPhaseEnd
# bz1162939 ---------------------------------------------------
(
perf_probe_failed "vfs_read" && exit
rlPhaseStart FAIL "test 1 bz1162939"
# At this point a weird problem shows up: sometimes the first
# systemtap invocation fails for some reason, but subsequent
# invocations succeed. Can't reproduce this manually:
rlRun "stap -vvvp4 -e 'probe vfs.read{println(\"hit\")}'" 0,1
sleep 30
rlRun "stap -vvvp4 -e 'probe vfs.read{println(\"hit\")}'" 0,1
sleep 30
rlRun "stap -e 'probe vfs.read{println(\"hit\")}' -c 'head -1 /etc/hosts'"
rlPhaseEnd
)
# bz1119335 ---------------------------------------------------
rlPhaseStart FAIL "test 2 bz1119335"
rlRun "man 8 staprun | grep 'STAP_FIPS_OVERRIDE'"
rlPhaseEnd
# bz1153673 ---------------------------------------------------
rlPhaseStart FAIL "test 3 bz1153673"
_tested=0
for _pkg in $( rpm -qa | grep systemtap-testsuite ); do
for _tc in $( rpm -ql $_pkg | grep 'alias_suffixes.stp$' ); do
stap -p4 $_tc && p="" || p="-P"
rlRun "stap $p -p4 $_tc"
_tested=1
done
done
[[ $_tested -eq 0 ]] && rlFail "Not tested"
rlPhaseEnd
# bz1160837 ---------------------------------------------------
(
perf_probe_failed "sd_init_command" && exit
rlPhaseStart FAIL "test 4 bz1160837"
_tested=0
_prologue_search=''
for _pkg in $( rpm -qa | grep systemtap-testsuite ); do
for _tc in $( rpm -ql $_pkg | grep 'iostat-scsi.stp$' ); do
test $_arch = ppc64le && _prologue_search='-P'
rlRun "stap -g $_prologue_search $_tc 1 -c 'sleep 1'"
_tested=1
done
done
[[ $_tested -eq 0 ]] && rlFail "Not tested"
rlPhaseEnd
)
# bz1203808 ---------------------------------------------------
rlPhaseStart FAIL "test 5 bz1203808"
_tested=0
for _pkg in $( rpm -qa | grep systemtap-testsuite ); do
for _tc in $( rpm -ql $_pkg | grep 'vfs-all-probes.stp$' ); do
stap -wp4 $_tc && p="" || p="-P"
rlRun "stap $p -w -p4 $_tc"
_tested=1
done
done
[[ $_tested -eq 0 ]] && rlFail "Not tested"
rlPhaseEnd
# bz1269062 ---------------------------------------------------
rlPhaseStart FAIL "test 6 bz1269062"
rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'"
rlPhaseEnd
# bz528792 ---------------------------------------------------
(
# Not relevant on rhel-9 because of kernel commit cad6967ac10843a70842cd39c7b53412901dd21f that removes
# _do_fork() and replaces it with new kernel_clone()
perf_found_none_of "_do_fork" "do_fork" "sys_clone" && exit
rlPhaseStart FAIL "test 7 bz528792"
if test $_arch = ppc64le; then
# https://bugzilla.redhat.com/show_bug.cgi?id=1652740#c4 - We can not reach any function parameters, namely $clone_flags
rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { println(pp()) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\""
else
rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { printf(\"%x\n\",\$clone_flags) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\""
fi
rlPhaseEnd
)
# bz1890702 ---------------------------------------------------
(
perf_probe_failed "vfs_open" && exit
rlPhaseStart FAIL "test 8 bz1890702"
rlRun "stap -g --suppress-time-limits -e 'probe kernel.function(\"vfs_open\") { printf(\"%s(path: %s)\", ppfunc(), \$path\$) ; exit() }' -c 'cat /etc/hosts'"
rlPhaseEnd
)
# bz1904216 ---------------------------------------------------
rlPhaseStart FAIL "test 9 bz1904216"
rlRun "stap -p4 -DSTP_NO_OVERLOAD -t -c 'sleep 0.25' -e 'probe kernel.trace(\"bcache:bcache_btree_set_root\") { if (pid() == 0) printf(\"probe hit\n\"); }'"
rlPhaseEnd
# bz1940804 ---------------------------------------------------
rlPhaseStart FAIL "test 10 bz1940804"
rlRun "stap -e 'probe process(\"/bin/bash\").function(\"main\") {println(pn()) }' -c '/bin/bash --help'"
rlPhaseEnd
# bz1940945 ---------------------------------------------------
rlPhaseStart FAIL "test 11 bz1940945"
rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'"
rlPhaseEnd
# bz1940761 ---------------------------------------------------
rlPhaseStart FAIL "test 12 bz1940761"
rlRun "stap -v /usr/share/systemtap/examples/process/strace.stp -w -c \"echo hello world\""
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,60 +0,0 @@
package foo.bar;
import java.lang.*;
import java.util.*;
class ThreadedExample
{
public static void printMessage(int message) {
System.out.println("message: " + message);
}
public static void printMessage(long message) {
System.out.println("message: " + message);
}
public static void main(String[] args) {
// sleep so that stap can start and byteman agent gets installed
try {
Thread.sleep(30000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
try {
String[] inputs = new String[] {"int", "foo", "long"};
for (String next : inputs) {
final String arg = next;
final int i = 42;
final long j = 987234864;
Thread thread = new Thread(arg) {
public void run() {
if(arg.equals("int"))
printMessage(i);
else if(arg.equals("long"))
printMessage(j);
else
System.out.println("Neither of the types");
}
};
thread.start();
try {
thread.join();
} catch (Exception e){}
}
} catch (Exception e){}
// sleep so that stap can finish still while probed java program still runs
try {
Thread.sleep(80000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}

View file

@ -1,18 +0,0 @@
probe java("foo.bar.ThreadedExample").class("ThreadedExample").method("printMessage(int)")
{
printf("Hit printMessage(int): %s\n", arg1)
}
probe java("foo.bar.ThreadedExample").class("ThreadedExample").method("printMessage(long)")
{
printf("Hit printMessage(long): %s\n", arg1)
exit()
}
probe timer.ms(100000)
{
error("Exit on timeout")
exit()
}

View file

@ -1,12 +0,0 @@
summary: byteman-java-methods-probing
description: ''
contact: Martin Cermak <mcermak@redhat.com>
test: ./runtest.sh
framework: beakerlib
recommend:
- java-devel
- systemtap
- systemtap-runtime-java
duration: 15m
extra-summary: /tools/systemtap/Sanity/byteman-java-methods-probing
extra-task: /tools/systemtap/Sanity/byteman-java-methods-probing

View file

@ -1,83 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Sanity/byteman-java-methods-probing
# Description: byteman-java-methods-probing
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
rlJournalStart
rlPhaseStartSetup
# At this point we simply rely on that the %triggerin scriptlet from
# systemtap-runtime-java did it's job well. There was a hack to force
# trigger it here, but commit respective to this comment removes it.
# https://bugzilla.redhat.com/show_bug.cgi?id=1732514#c11
rlRun "rpm -qa | fgrep -e systemtap-runtime-java -e byteman -e openjdk | sort"
rlRun "stap-prep"
for BINARY in java javac; do
rlRun "alternatives --display $BINARY | grep -v slave"
rlRun "$BINARY -version"
done
rlRun "TMPDIR=$( mktemp -d )"
rlRun "mkdir -p $TMPDIR/foo/bar"
rlRun "cp ThreadedExample.java $TMPDIR/foo/bar/"
rlRun "cp ThreadedExample.stp $TMPDIR/"
rlRun "pushd $TMPDIR"
rlPhaseEnd
rlPhaseStart FAIL 'Prepare bytecode class'
rlRun "javac foo/bar/ThreadedExample.java"
rlPhaseEnd
rlPhaseStart FAIL 'Prepare the LKML'
rlRun "stap -p4 -m ThreadedExample ThreadedExample.stp"
rlPhaseEnd
rlPhaseStart FAIL 'Check the Feature'
java foo.bar.ThreadedExample &
rlRun "jps -l | grep 'foo.bar.ThreadedExample'"
export STAPBM_VERBOSE=yes
# rlRun "stap --poison-cache -vv ThreadedExample.stp 2>&1 | tee testout.log"
# Speed the stap startup up by pre-compiling the module within separate
# phase 'Prepare the LKML' above.
rlRun "staprun -v -R ThreadedExample.ko 2>&1 | tee testout.log"
rlRun "grep -q 'Hit printMessage(int): 42' testout.log"
rlRun "grep -q 'Hit printMessage(long): 987234864' testout.log"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
obj-m := MODULENAME.o
module:
make -C /lib/modules/$(shell uname -r)/build KBUILD_EXTMOD=DIRECTORY SUBDIRS=DIRECTORY modules

View file

@ -1,17 +0,0 @@
summary: Tests systemtap working with kernel modules
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- kernel-devel
- bison
- flex
- openssl-devel
- elfutils-libelf-devel
duration: 10m
extra-summary: /tools/systemtap/Sanity/kernel-modules
extra-task: /tools/systemtap/Sanity/kernel-modules

View file

@ -1,20 +0,0 @@
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");
return 0;
}
int some_method(void){
printk(KERN_INFO "Some method called\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}
MODULE_LICENSE("GPL");

View file

@ -1,123 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Sanity/kernel-modules
# Description: Tests systemtap working with kernel modules
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh
PACKAGE="systemtap"
check_probes(){
FAIL=""
rlAssertGrep init_module $1 || FAIL='yes'
rlAssertGrep cleanup_module $1 || FAIL='yes'
rlAssertGrep some_method $1 || FAIL='yes'
if [ -n "$FAIL" ]
then
rlFileSubmit $1 $2.out
fi
}
rlJournalStart
rlPhaseStartSetup "Preparing modules"
rlRun "mkdir -p 'stap-underscore' 'stap-dash' 'stap-none'"
rlRun "cp module.c stap-underscore/test_module.c"
rlRun "cp module.c stap-dash/test-module.c"
rlRun "cp module.c stap-none/testmodule.c"
cat Makefile.template | sed -e 's/MODULENAME/test_module/g' \
| sed -e "s|DIRECTORY|$PWD/stap-underscore|g" > stap-underscore/Makefile
rlAssert0 "Creating Makefile for underscore variant" $?
cat Makefile.template | sed -e 's/MODULENAME/test-module/g' \
| sed -e "s|DIRECTORY|$PWD/stap-dash|g" > stap-dash/Makefile
rlAssert0 "Creating Makefile for dash variant" $?
cat Makefile.template | sed -e 's/MODULENAME/testmodule/g' \
| sed -e "s|DIRECTORY|$PWD/stap-none|g" > stap-none/Makefile
rlAssert0 "Creating Makefile for no character variant" $?
if [ -n "$ARCH" ]
then
rlLog "ARCH is set to: [$ARCH]"
rlLog "This interferes with 'make module', so it needs to be unset."
ARCHOLD="$ARCH"
unset ARCH
rlLog "ARCH is set to: [$ARCH]"
fi
rlRun "make -C stap-underscore module"
rlRun "make -C stap-dash module"
rlRun "make -C stap-none module"
if [ -n "$ARCHOLD" ]
then
rlLog "Restoring ARCH"
export ARCH="$ARCHOLD"
rlLog "ARCH is set to: [$ARCH]"
fi
rlPhaseEnd
rlPhaseStartTest "Testing underscore variant"
rlRun "cp stap-underscore/test_module.ko /lib/modules/$(uname -r)/"
rlRun "insmod stap-underscore/test_module.ko"
stap -L 'module("test_module").function("*")' -v > stap.out
check_probes stap.out "module-und-probe-und"
stap -L 'module("test-module").function("*")' -v > stap.out
check_probes stap.out "module-und-probe-dash"
sleep 1
rlRun "rmmod test_module"
rlRun "rm -f /lib/modules/$(uname -r)/test_module.ko"
rlPhaseEnd
rlPhaseStartTest "Testing dash variant"
rlRun "cp stap-dash/test-module.ko /lib/modules/$(uname -r)/"
rlRun "insmod stap-dash/test-module.ko"
stap -L 'module("test_module").function("*")' -v > stap.out
check_probes stap.out "module-dash-probe-und"
stap -L 'module("test-module").function("*")' -v > stap.out
check_probes stap.out "module-dash-probe-dash"
sleep 1
rlRun "rmmod test-module"
rlRun "rm -f /lib/modules/$(uname -r)/test-module.ko"
rlPhaseEnd
rlPhaseStartTest "Testing no separator variant"
rlRun "cp stap-none/testmodule.ko /lib/modules/$(uname -r)/"
rlRun "insmod stap-none/testmodule.ko"
stap -L 'module("testmodule").function("*")' -v > stap.out
check_probes stap.out "module-none-probe-none"
sleep 1
rlRun "rmmod testmodule"
rlRun "rm -f /lib/modules/$(uname -r)/testmodule.ko"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -rf stap-underscore stap-dash stap-none stap.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: Quick test that systemtap generally works
description: ''
contact:
- Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- koji
- systemtap
- kernel-devel
duration: 1h
extra-summary: /tools/systemtap/Sanity/quick-smoke-test
extra-task: /tools/systemtap/Sanity/quick-smoke-test

View file

@ -1,23 +0,0 @@
#!/bin/bash
# runtest.sh of /tools/systemtap/Sanity/quick-smoke-test
. /usr/share/beakerlib/beakerlib.sh || exit 1
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
# export DEBUGINFOD_PROGRESS=1
rlJournalStart
rlPhaseStartTest
rlRun "rpm -qa | egrep '^(kernel|systemtap)' | sort"
rlRun "uname -r"
rlRun "stap-prep"
rlRun "stap -L 'process(\"stap\").mark(\"*\")' | grep pass"
rlRun "stap -v --example helloworld.stp"
rlRun "stap -v -T 10 -p4 -e 'probe kernel.function(\"do_exit\") {println(\$\$vars)}'"
rlRun "stap -v -T 60 -e 'probe kernel.function(\"vfs_read\"){ println(\$\$vars); exit() }'"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,17 +0,0 @@
summary: stap-server-basic-sanity
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- kernel-debuginfo
- avahi
- systemtap-server
- dbus
- net-tools
duration: 45m
extra-summary: /tools/systemtap/Sanity/stap-server-basic-sanity
extra-task: /tools/systemtap/Sanity/stap-server-basic-sanity

View file

@ -1,98 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Sanity/stap-server-basic-sanity
# Description: stap-server-basic-sanity
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
CMD='stap'
BIN=$(which --skip-alias $CMD)
PACKAGE="${PACKAGE:-$(rpm -qf --qf='%{name}\n' $BIN | head -1)}"
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
function service_stap_server() {
action=$1
retval=${2:-0}
sleep 5
rlLogInfo "PACKAGE=$PACKAGE"
if echo $PACKAGE | grep -q devtoolset; then
__i=$(echo $PACKAGE | awk -F- '{print $2}')
rlRun "service devtoolset-$__i-stap-server $action" $retval
elif echo $PACKAGE | grep -q gcc-toolset; then
__i=$(echo $PACKAGE | awk -F- '{print $3}')
rlRun "service gcc-toolset-$__i-stap-server $action" $retval
else
rlRun "service stap-server $action" $retval
fi
sleep 5
}
_rhelmajor=$(rpm --eval '%{rhel}')
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlAssertRpm dbus
rlAssertRpm avahi
rlAssertRpm net-tools # because of netstat
rlPhaseEnd
rlPhaseStart FAIL "sanity check"
rlRun "stap -v -e 'probe begin { log(\"hello\"); exit() }'"
rlPhaseEnd
rlPhaseStartTest
rlRun "service iptables stop" 0-255
rlRun "service firewalld stop" 0-255
service_stap_server stop
test $_rhelmajor -le 8 && \
rlRun "service messagebus restart"
rlRun "service avahi-daemon restart"
service_stap_server start
rlRun "netstat -tlp | grep stap"
rlRun "SERVER_PORT=$( netstat -tlpn | awk '/stap/ {print $4}' | grep -o '[0-9]*$' )"
for SERVER_IP in '127.0.0.1' '[::1]'; do
rlLogInfo "Testing SERVER_IP=$SERVER_IP"
rlRun "stap --trust-servers=ssl,signer,all-users,no-prompt --use-server=$SERVER_IP:$SERVER_PORT"
rlRun "stap --use-server=$SERVER_IP:$SERVER_PORT -v -e 'probe begin { log(\"hello\"); exit() }' 2>&1 | tee output.log"
rlRun "grep 'Using a compile server' output.log"
rlRun "grep '^hello$' output.log"
done
rlPhaseEnd
rlPhaseStartCleanup
service_stap_server stop
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
#include <stdio.h>
int main(void) {
printf("Hello world!\n");
return 0;
}

View file

@ -1,16 +0,0 @@
summary: userspace-probes
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- dyninst-devel
- gawk
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=855981
extra-summary: /CoreOS/systemtap/Sanity/userspace-probes
extra-task: /CoreOS/systemtap/Sanity/userspace-probes

View file

@ -1,90 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/systemtap/Sanity/userspace-probes
# Description: userspace-probes
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
PACKAGE="$(rpm -qf $( which stap ) | head -n 1 )"
WORKDIR=$( mktemp -d )
TESTUSER=mytestuser
rlJournalStart
rlPhaseStart WARN "Check the environment"
if ! stap -V 2>&1 | grep -q 'enabled features:.*DYNINST'; then
rlLogWarning "No dyninst available in $PACKAGE"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd
exit 0
fi
rlRun "useradd $TESTUSER" 0,9
rlRun "su $TESTUSER -c 'which stap'"
rlRun "rpm -qa | fgrep -e dyninst -e systemtap | sort"
rlPhaseEnd
rlPhaseStartSetup
rlRun "cp hello.c testcase*.sh $WORKDIR"
rlRun "chown -R $TESTUSER:$TESTUSER $WORKDIR"
rlPhaseEnd
rlPhaseStart FAIL "Testcase 1"
rlRun "which gcc"
rlRun "su $TESTUSER -c 'gcc -g -o $WORKDIR/hello $WORKDIR/hello.c'"
rlRun "su $TESTUSER -c '$WORKDIR/hello'"
rlRun "chmod a+x $WORKDIR/testcase1.sh"
rlRun "su $TESTUSER -c '$WORKDIR/testcase1.sh $WORKDIR'"
LOG="$WORKDIR/stapout.log"
rlRun "cat $LOG"
rlRun "grep '^process(\"$WORKDIR/hello\").function(\"main@$WORKDIR/hello.c:3\")$' $LOG"
rlRun "grep -i error $LOG" 1
rlPhaseEnd
rlPhaseStart FAIL "Testcase 2"
rlRun "chmod a+x $WORKDIR/testcase2.sh"
rlRun "su $TESTUSER -c '$WORKDIR/testcase2.sh $WORKDIR'"
LOG="$WORKDIR/stapout.log"
rlRun "cat $LOG"
rlRun "grep '^\*\*\*\ exiting\ \*\*\*$' $LOG"
rlRun "egrep -i 'error|warning' $LOG" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "userdel $TESTUSER" 0-255
rlRun "rm -rf /home/$TESTUSER $WORKDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
#!/bin/bash
stap -e "probe process(\"$1/hello\").function(\"main\") { println(pn()) }" --runtime=dyninst -c "$1/hello" -o "$1/stapout.log"

View file

@ -1,4 +0,0 @@
#!/bin/bash
stap --runtime=dyninst -e 'probe end { printf("*** exiting ***\n"); exit() }' -c "$1/hello" -o "$1/stapout.log"