diff --git a/linux-6.13-fedora-compatibility.patch b/linux-6.13-fedora-compatibility.patch new file mode 100644 index 0000000..f8e25c9 --- /dev/null +++ b/linux-6.13-fedora-compatibility.patch @@ -0,0 +1,54 @@ +From: Frank Ch. Eigler +Date: Thu Jan 9 18:30:13 2025 -0500 +Subject: linux 6.13/fedora compatibility +Git-commit: ebee5ff5bda46f331ae5eade5185f1816e4b45f0 +Signed-off-by: Tony Jones + + PR32458: linux 6.13/fedora compatibility + + It appears as though an unnecessarily complicated bit of our + module-building process, invoking a nested $(MAKE) to generate the + STAPCONF_HEADER header file. This stopped working with a fedora + rawhide 6.13-rc thing, leading to frankly mystifying phenomena, + including our own generated Makefile being rewritten (!!!). This + is now simplified. + +diff --git a/buildrun.cxx b/buildrun.cxx +index e5cb563b8..1dae071d1 100644 +--- a/buildrun.cxx ++++ b/buildrun.cxx +@@ -345,11 +345,6 @@ compile_pass (systemtap_session& s) + + o << "STAPCONF_HEADER := " << s.tmpdir << "/" << s.stapconf_name << endl; + o << ".DELETE_ON_ERROR: $(STAPCONF_HEADER)" << endl; +- o << "$(STAPCONF_HEADER):" << endl; +- o << "\t"; +- if (s.verbose < 4) +- o << "@"; +- o << "$(MAKE) -f \"$(firstword $(MAKEFILE_LIST))\" gen-stapconf" << endl; + + vector cs; // to hold autoconf C file names + +@@ -570,8 +565,10 @@ compile_pass (systemtap_session& s) + + o2.close (); + +- o << ".PHONY: gen-stapconf" << endl; +- o << "gen-stapconf: " << stap_export_nm; ++ // PR32458 (!) Build the combined conf header as an ordinary ++ // dependency of the module.o file. Don't invoke a sub-$(MAKE) with ++ // crude command line parsing. ++ o << "$(STAPCONF_HEADER): " << stap_export_nm; + for (unsigned i=0; i $(STAPCONF_HEADER)" << endl; +- ++ o << s.module_name <<".o : $(STAPCONF_HEADER)" << endl; ++ + o << module_cflags << " += -include $(STAPCONF_HEADER)" << endl; + + for (unsigned i=0; i +Date: Fri Jan 17 19:40:56 2025 -0500 +Subject: rawhide (6.13) kbuild compatibility +Git-commit: 048ee97b8d57209e824c7078b34f4a130da40363 +Signed-off-by: Tony Jones + + PR32458: rawhide (6.13) kbuild compatibility + + Subject kernel versions introduce changes to the kbuild $(MAKE) + invocations process command line options, and twiddle with working + directories, making our systemtap module Makefile not quite + compatible. Sprinkle $(obj)/ liberally around all the generated + header files (used for autoconf* purposes) and nearby. This appears + to make both >6.13 and <6.13 kbuilds happy. + +diff --git a/buildrun.cxx b/buildrun.cxx +index 1dae071d1..f369135af 100644 +--- a/buildrun.cxx ++++ b/buildrun.cxx +@@ -186,7 +186,7 @@ output_autoconf(systemtap_session& s, ofstream& o, + const char *deffalse) + { + autoconf_c_files.push_back (autoconf_c); +- o << endl << s.tmpdir << "/" << autoconf_c << ".h:" << endl; ++ o << endl << "$(obj)/" << autoconf_c << ".h:" << endl; + o << "\t"; + if (s.verbose < 4) + o << "@"; +@@ -286,7 +286,8 @@ compile_pass (systemtap_session& s) + string makefile_nm = s.tmpdir + "/Makefile"; + ofstream o (makefile_nm.c_str()); + +- string stap_export_nm = s.tmpdir + "/stapconf_export.h"; ++ string stap_export_basenm = "stapconf_export.h"; ++ string stap_export_nm = s.tmpdir + "/" + stap_export_basenm; + ofstream o2 (stap_export_nm.c_str()); + + // Create makefile +@@ -343,7 +344,7 @@ compile_pass (systemtap_session& s) + + o << module_cflags << " += -Wmissing-prototypes" << endl; // GCC14 prep, PR31288 + +- o << "STAPCONF_HEADER := " << s.tmpdir << "/" << s.stapconf_name << endl; ++ o << "STAPCONF_HEADER := " << "$(obj)/" << s.stapconf_name << endl; + o << ".DELETE_ON_ERROR: $(STAPCONF_HEADER)" << endl; + + vector cs; // to hold autoconf C file names +@@ -568,16 +569,16 @@ compile_pass (systemtap_session& s) + // PR32458 (!) Build the combined conf header as an ordinary + // dependency of the module.o file. Don't invoke a sub-$(MAKE) with + // crude command line parsing. +- o << "$(STAPCONF_HEADER): " << stap_export_nm; ++ o << "$(STAPCONF_HEADER): " << "$(obj)/" << stap_export_basenm; + for (unsigned i=0; i $(STAPCONF_HEADER)" << endl; +- o << s.module_name <<".o : $(STAPCONF_HEADER)" << endl; ++ o << "$(obj)/" << s.module_name <<".o : $(STAPCONF_HEADER)" << endl; + + o << module_cflags << " += -include $(STAPCONF_HEADER)" << endl; + +@@ -692,18 +693,20 @@ compile_pass (systemtap_session& s) + } + o << " stap_symbols.o" << endl; + +- o << s.tmpdir << "/stap_symbols.o: $(STAPCONF_HEADER)" << endl; ++ o << "$(obj)/stap_symbols.o: $(STAPCONF_HEADER)" << endl; + + // add all stapconf dependencies + string translated = s.translated_source; ++ translated = translated.substr(translated.rfind('/')+1); // basename + translated[translated.size()-1] = 'o'; +- o << translated << ": $(STAPCONF_HEADER)" << endl; ++ o << "$(obj)/" << translated << ": $(STAPCONF_HEADER)" << endl; + translated[translated.size()-1] = 'i'; +- o << translated << ": $(STAPCONF_HEADER)" << endl; ++ o << "$(obj)/" << translated << ": $(STAPCONF_HEADER)" << endl; + for (unsigned i=0; ifilename; ++ translated = translated.substr(translated.rfind('/')+1); // basename + translated[translated.size()-1] = 'o'; +- o << translated << ": $(STAPCONF_HEADER)" << endl; ++ o << "$(obj)/" << translated << ": $(STAPCONF_HEADER)" << endl; + } + + o.close (); +@@ -723,7 +726,7 @@ compile_pass (systemtap_session& s) + + // Run make + vector make_cmd = make_make_cmd(s, s.tmpdir); +- if (s.keep_tmpdir) ++ if (false && s.keep_tmpdir) // PR32458: kbuild 6.13+ can't abide multiple make targets + { + string E_source = s.translated_source.substr(s.translated_source.find_last_of("/")+1); + E_source.at(E_source.length() - 1) = 'i'; // overwrite the last character diff --git a/systemtap-5.1.tar.gz b/systemtap-5.1.tar.gz deleted file mode 100644 index 0a3ee6d..0000000 --- a/systemtap-5.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1db8c1d65bb13b65bc3f30e4cee2f7e174d517e908d994bb0fcde0051f181b40 -size 6590820 diff --git a/systemtap-5.1.tar.gz.asc b/systemtap-5.1.tar.gz.asc deleted file mode 100644 index efbc2eb..0000000 --- a/systemtap-5.1.tar.gz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEETdE2SQQRwKQrKIRPJYtu+g8gnSQFAmYsJFgACgkQJYtu+g8g -nSRR7g/+PBWvHSsD24d/k4QR39X9+eANOY166u+SEbDKc2Wh+5JOjjCKY1cTf8mY -M+Z8nFeHZcQW5bXexX8HHui3W1+Nk2IkrLE0Tc11TaIz/Sjj8jouNsM8OVp3GYIu -nZlhOrGmBnh//ojJRV0eiccgHWxVJUfQf4JV8CPt4gKDm1a0tIJVId2HsUQXl4hN -u/cdrCPQgDk2WzpKTQqnfLHrCjEsfgxRVEDERyn+cjYfeYMZyMkyYG+0ln+775i8 -64S8Qe9oOX80dRjRPQ7S0IvOLje4PWUlw6p2ZhW1P6Wf0G2xXKJ4n6T0PSI77ju8 -QdZUDm78j4S0fJLjrkFe1IWepsZYCmom/JQWGufmPTn8xEgIAXji7vHRu2fx9pa2 -HBtFrrRqwdxfEa5UB3McSZl128B/x8+jkCROKdV+e/Uk8lu7KUkVkeLQzbXgh8kd -2nRxzDPCwN/Ps1Udz/6DUiEBAUwSjtqnIe+p+a1fG/HSxTEHYhCj99SFyQB/8ufd -Zh+7W33eki2zMiUzTWBMSOjkydUdQ0rEYcJryWh9RCpeEZKcwwIPvU9p3hKtpUxD -zsE2Piy8NWqdjTBY+ENkPNEkEIMcqSgqW3nZTRbDuZ85PmC5ikide3p6ql085PRr -kpMImFX76fTbiToAC76bXjrtuKzvmgd/uCt9Kt143162cxAZdao= -=nS25 ------END PGP SIGNATURE----- diff --git a/systemtap-5.2.tar.gz b/systemtap-5.2.tar.gz new file mode 100644 index 0000000..5bf9779 --- /dev/null +++ b/systemtap-5.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0644bc0ab0bf5dde6a32daf41eaa3e2379bfbee294d8bd330b835a345ca8e56 +size 6594250 diff --git a/systemtap-5.2.tar.gz.asc b/systemtap-5.2.tar.gz.asc new file mode 100644 index 0000000..8efede0 --- /dev/null +++ b/systemtap-5.2.tar.gz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEETdE2SQQRwKQrKIRPJYtu+g8gnSQFAmcufXsACgkQJYtu+g8g +nSQFDw/+IM5MWVRpqoYIRdkCvZGSGAPCdpTX8Uh7u84LzZO5pF7aRcmVD4GtJ1hd +gP3rFeN9722N7UctQqMtWanQo7+ngXLIOsKBHhwv8dDhiQyNJ+ix22VxdNrGWsK+ +Lw4D8SvAMhbwRiZmJetPDX+5D+dByEyRj4+SgY/Nphb9j6iHMu1Mt5wNtE2bEb6C +reFHZRdDgVf6sjhBHcrR/MnOB3Z1m1UbmrZUyUQ2d3EtofLht53KNBHVZNO3dwxt +951BWPdNbYg2ITooHtJ99qjJo1nXER6ELURzAkYyuouTnWjtCED5K6XuwVMuKeD5 +Io5mmx5Fa1UbiDWFsf3KSnd9v/oFjtC1YvqUQdybN1+hN7yioF7rYyNt7qWt4xxA +4miElHqM3Co5ex5LuRjIbCC0uB7RDERcOG1A9WSXKYbRvXLB91AbIhT9VfbvBBqE +iA7au10+vn5ueogEcLk0lrZcEiRNIbXzD9e6hCkxDa0vi1S1CXYMdfJJ4X7gi77n +dLF+qski+9Z1oxea7Z0y4knbK0cIPKvEhFxJicIEToO4lYsjLiFg4rpwvQ4hU8Vo +ui14fwHh+n/q9EZM59I0EUVfiVAgWR9/C0NOsJvUS/ZA4CkFiRPRMyWJ4qgZ2v0Y +8U5rBLudOia+t6jmR5eMOwilcCxoUvzV9IE7wPPd1niKckdxBYk= +=4K3q +-----END PGP SIGNATURE----- diff --git a/systemtap-build-source-dir.patch b/systemtap-build-source-dir.patch index 044c87b..d138430 100644 --- a/systemtap-build-source-dir.patch +++ b/systemtap-build-source-dir.patch @@ -24,9 +24,11 @@ necessary headers. session.cxx | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) ---- a/session.cxx -+++ b/session.cxx -@@ -108,6 +108,7 @@ systemtap_session::systemtap_session (): +Index: systemtap-5.2/session.cxx +=================================================================== +--- systemtap-5.2.orig/session.cxx 2024-11-08 11:25:26.000000000 -0800 ++++ systemtap-5.2/session.cxx 2025-02-25 12:58:15.330925215 -0800 +@@ -112,6 +112,7 @@ kernel_release = string (buf.release); release = kernel_release; kernel_build_tree = "/lib/modules/" + kernel_release + "/build"; @@ -34,7 +36,7 @@ necessary headers. architecture = machine = normalize_machine(buf.machine); for (unsigned i=0; i<5; i++) perpass_verbose[i]=0; -@@ -298,6 +299,7 @@ systemtap_session::systemtap_session (co +@@ -317,6 +318,7 @@ { release = kernel_release = kern; kernel_build_tree = "/lib/modules/" + kernel_release + "/build"; @@ -42,7 +44,7 @@ necessary headers. kernel_extra_cflags = other.kernel_extra_cflags; architecture = machine = normalize_machine(arch); setup_kernel_release(kern.c_str()); -@@ -2218,21 +2220,39 @@ systemtap_session::setup_kernel_release +@@ -2346,21 +2348,39 @@ // normal search in tapsets.cxx. Without CONFIG_DEBUG_INFO, we'd // need heuristics such as this one: diff --git a/systemtap-docs.changes b/systemtap-docs.changes index a96c777..d7da7e0 100644 --- a/systemtap-docs.changes +++ b/systemtap-docs.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Mon Feb 24 18:14:46 UTC 2025 - Tony Jones + +- Upgrade to version 5.2. See systemtap.changes for changelog + +------------------------------------------------------------------- +Mon Jan 6 13:20:23 UTC 2025 - Dominique Leuenberger + +- Avoid usage of %{_libdir} in a noarch package: noarch cannot rely + on libdir, an arch-dependent variable. Rather use %{_prefix}/lib* + to remove files. Fixes build with RPM 4.20. + ------------------------------------------------------------------- Mon Jun 17 22:44:47 UTC 2024 - Tony Jones diff --git a/systemtap-docs.spec b/systemtap-docs.spec index aac2850..ca5ad5d 100644 --- a/systemtap-docs.spec +++ b/systemtap-docs.spec @@ -1,7 +1,7 @@ # # spec file for package systemtap-docs # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: systemtap-docs -Version: 5.1 +Version: 5.2 Release: 0 Summary: Documents and examples for systemtap License: GPL-2.0-or-later @@ -77,7 +77,7 @@ cp README AUTHORS NEWS %{buildroot}%{_docdir}/systemtap/ # remove binaries and runtime stuff rm -rf %{buildroot}%{_bindir} rm -rf %{buildroot}%{_sbindir} -rm -rf %{buildroot}%{_libdir} +rm -rf %{buildroot}%{_prefix}/lib* rm -rf %{buildroot}%{_libexecdir} rm -rf %{buildroot}%{_datadir}/systemtap rm -rf %{buildroot}%{_includedir} diff --git a/systemtap-dtrace.changes b/systemtap-dtrace.changes index b1e0568..6a7b92d 100644 --- a/systemtap-dtrace.changes +++ b/systemtap-dtrace.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Feb 24 18:14:46 UTC 2025 - Tony Jones + +- Upgrade to version 5.2. See systemtap.changes for changelog + ------------------------------------------------------------------- Mon Jun 17 22:44:47 UTC 2024 - Tony Jones diff --git a/systemtap-dtrace.spec b/systemtap-dtrace.spec index 2fe365d..b7e9190 100644 --- a/systemtap-dtrace.spec +++ b/systemtap-dtrace.spec @@ -1,7 +1,7 @@ # # spec file for package systemtap-dtrace # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define _rundir %{_localstatedir}/run %endif Name: systemtap-dtrace -Version: 5.1 +Version: 5.2 Release: 0 Summary: SystemTap dtrace utility License: GPL-2.0-or-later diff --git a/systemtap-headers.changes b/systemtap-headers.changes index 18e4860..743cb36 100644 --- a/systemtap-headers.changes +++ b/systemtap-headers.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Feb 24 18:14:46 UTC 2025 - Tony Jones + +- Upgrade to version 5.2. See systemtap.changes for changelog + ------------------------------------------------------------------- Mon Jun 17 22:44:47 UTC 2024 - Tony Jones diff --git a/systemtap-headers.spec b/systemtap-headers.spec index 1a5ca34..4813c38 100644 --- a/systemtap-headers.spec +++ b/systemtap-headers.spec @@ -1,7 +1,7 @@ # # spec file for package systemtap-headers # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ %define _rundir %{_localstatedir}/run %endif Name: systemtap-headers -Version: 5.1 +Version: 5.2 Release: 0 Summary: SystemTap headers License: GPL-2.0-or-later diff --git a/systemtap.changes b/systemtap.changes index 2ca6521..8a4ad61 100644 --- a/systemtap.changes +++ b/systemtap.changes @@ -1,3 +1,69 @@ +------------------------------------------------------------------- +Tue Feb 25 21:07:47 UTC 2025 - Tony Jones + +- Resolve errors with linux-6.13 based kernels. + + Building trivial 'hello world' failed with: + : fatal error: {path_to}stapconf.h: No such file or directory + + Attemptng to preserve build directory (-k) caused an infinite loop of: + /usr/src/linux-6.13.4-1/scripts/Makefile.build:370: warning: overriding + recipe for target 'modules.order' + + New patch: linux-6.13-fedora-compatibility.patch + New patch: rawhide-6.13-kbuild-compatibility.patch + +------------------------------------------------------------------- +Mon Feb 24 18:11:09 UTC 2025 - Tony Jones + +- Update to version 5.2 + + Summary of changes: + * SystemTap frontend (stap) changes + - New /* pragma:suffix */ for file-level embedded C code blocks to be + placed near the end of the emitted kernel module C file. + Corresponding macros allow additional C hooks for module init/exit. + - With elfutils 0.192's release on 2024-10-18, the "metadata" based + probes announced in systemtap 5.0 should now be increasingly available. + + * SystemTap backend changes + - Numerous kernel portability changes + - "probe never" probes don't emit C code at all any more. + - The standard Fedora spec packaging breaks up the sdt.h header file + and the /usr/bin/dtrace stub-builder script, for those cases where + the macros in sdt.h are sufficient. + - More robust message transport draining during shutdown to prevent + message losses. + + * SystemTap tapset changes + - Numerous kernel portability changes + - Added a few functions to inet_sock.stp. + + * SystemTap sample scripts + - traceio3.stp: Trace VFS operations by filename regex. + - swapmonitor.stp: Trace swap operations. + + * Bugfixes + - PR31597 Systemtap not extracting all the data sent to the print data + in the buffers before shutdown + - PR31707 Need a way to postpone emitting the file-level embedded C blocks + - PR31708 Probe never handlers still emit C code for the handler handlers + and probe local structs + - PR31699 UBSAN errors for systemtap map functions with Fedora Rawhide and + Fedora 39 6.8.8 kernels + - PR31740 @hist_log affects the result of @variance + - PR31893 access_ok() was called without turning off page faults + - PR32064 SEC_ERROR_BAD_DATABASE during very first stap-server start + - PR31703 Git detection false positive when 'which' not available + - PR32107 Drop obsolete -Werror hack in buildrun.cxx + - PR32194 Reflect the uprobe_unregister() split + - PR32209 No tracepoints seen using kernel-6.12 + - PR32302 Unrecognized tracepoints + - RHEL-55262 Handle S390_lowcore macro removal + - RHEL-66275 Add some inet_sock.stp tapset functions. + - RHEL-66150 Fix cachestat.stp for newer kernels. + - RHEL-66577 Add swapmonitor.stp example script. + ------------------------------------------------------------------- Mon Jun 17 22:40:06 UTC 2024 - Tony Jones diff --git a/systemtap.spec b/systemtap.spec index fe9687e..6ba7e5e 100644 --- a/systemtap.spec +++ b/systemtap.spec @@ -1,7 +1,7 @@ # # spec file for package systemtap # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define _rundir %{_localstatedir}/run %endif Name: systemtap -Version: 5.1 +Version: 5.2 Release: 0 Summary: Instrumentation System License: GPL-2.0-or-later @@ -33,6 +33,8 @@ Source3: README-BEFORE-ADDING-PATCHES Source4: README-KEYRING Source5: stap-server.conf Patch1: systemtap-build-source-dir.patch +Patch2: linux-6.13-fedora-compatibility.patch +Patch3: rawhide-6.13-kbuild-compatibility.patch BuildRequires: autoconf >= 2.71 BuildRequires: automake @@ -137,6 +139,7 @@ install -m 644 %{SOURCE5} %{buildroot}%{_tmpfilesdir} %files %{_bindir}/stap +%{_bindir}/stap-prep %{_bindir}/stap-profile-annotate %{_bindir}/stap-jupyter-container %{_bindir}/stap-jupyter-install