Compare commits

...

No commits in common. "imports/c9-beta/systemtap-4.5-8.el9_b" and "c8" have entirely different histories.

12 changed files with 2367 additions and 1474 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/systemtap-4.5.tar.gz
SOURCES/systemtap-4.9.tar.gz

View File

@ -1 +1 @@
c549d5fa7aaf6a8cef3371f5757d912d41eae934 SOURCES/systemtap-4.5.tar.gz
7ba2ad579a5ba66ccfd36ad6df0896c9e136f9e9 SOURCES/systemtap-4.9.tar.gz

1845
SOURCES/pr29108.patch Normal file

File diff suppressed because it is too large Load Diff

99
SOURCES/pr30749.patch Normal file
View File

@ -0,0 +1,99 @@
commit 9839db5514a29cf4f58b3de8cc6155088be6d061
gpg: Signature made Sat 12 Aug 2023 02:49:26 PM EDT
gpg: using RSA key 5D38116FA4D3A7CC77E378D37E83610126DCC2E8
gpg: Good signature from "Frank Ch. Eigler <fche@elastic.org>" [full]
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Sat Aug 12 14:28:44 2023 -0400
PR30749: correct stap --sign-module timing
Previous code signed the temp directory copy, after it had already
been copied into the cache -- so the signature never made it to a
permanent artifact.
If the module was being fetched from the cache from a previous build
run, a sign (re)attempt will still be done. This may not be
necessary, but shouldn't be harmful.
Reported-By: Renaud Métrich <rmetrich@redhat.com>
diff --git a/main.cxx b/main.cxx
index 06adb66ad..9f695cbd8 100644
--- a/main.cxx
+++ b/main.cxx
@@ -1190,8 +1190,10 @@ passes_0_4 (systemtap_session &s)
s.mok_fingerprints.clear();
s.mok_fingerprints.push_back(mok_fingerprint);
}
- rc =
- sign_module (s.tmpdir, s.module_filename(), s.mok_fingerprints, mok_path, s.kernel_build_tree);
+ if (s.verbose)
+ clog << _F("Signing %s with mok key %s", s.module_filename().c_str(), mok_path.c_str())
+ << endl;
+ rc = sign_module (s.tmpdir, s.module_filename(), s.mok_fingerprints, mok_path, s.kernel_build_tree);
}
#endif
@@ -1310,8 +1312,30 @@ passes_0_4 (systemtap_session &s)
if (! s.use_script_cache && s.last_pass <= 4)
s.save_module = true;
+#if HAVE_NSS
+ // PR30749
+ if (!rc && s.module_sign_given)
+ {
+ // when run on client as --sign-module, mok fingerprints are result of mokutil -l
+ // when run from server as --sign-module=PATH, mok fingerprint is given by PATH
+ string mok_path;
+ if (!s.module_sign_mok_path.empty())
+ {
+ string mok_fingerprint;
+ split_path (s.module_sign_mok_path, mok_path, mok_fingerprint);
+ s.mok_fingerprints.clear();
+ s.mok_fingerprints.push_back(mok_fingerprint);
+ }
+
+ if (s.verbose)
+ clog << _F("Signing %s with mok key %s", s.module_filename().c_str(), mok_path.c_str())
+ << endl;
+ rc = sign_module (s.tmpdir, s.module_filename(), s.mok_fingerprints, mok_path, s.kernel_build_tree);
+ }
+#endif
+
// Copy module to the current directory.
- if (s.save_module && !pending_interrupts)
+ if (!rc && s.save_module && !pending_interrupts)
{
string module_src_path = s.tmpdir + "/" + s.module_filename();
string module_dest_path = s.module_filename();
@@ -1327,29 +1351,11 @@ passes_0_4 (systemtap_session &s)
}
}
-#if HAVE_NSS
- if (s.module_sign_given)
- {
- // when run on client as --sign-module, mok fingerprints are result of mokutil -l
- // when run from server as --sign-module=PATH, mok fingerprint is given by PATH
- string mok_path;
- if (!s.module_sign_mok_path.empty())
- {
- string mok_fingerprint;
- split_path (s.module_sign_mok_path, mok_path, mok_fingerprint);
- s.mok_fingerprints.clear();
- s.mok_fingerprints.push_back(mok_fingerprint);
- }
-
- rc = sign_module (s.tmpdir, s.module_filename(), s.mok_fingerprints, mok_path, s.kernel_build_tree);
- }
-#endif
-
PROBE1(stap, pass4__end, &s);
return rc;
}
-
+
int
pass_5 (systemtap_session &s, vector<remote*> targets)
{

View File

@ -1,24 +0,0 @@
commit eaf63df6a429956bdc03f2ecd8fc2b6fa50321a8
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Wed Jun 23 20:16:52 2021 -0400
ppc64 runtime: FULL_REGS() gone
Adapt to kernel commit 8dc7f0229b78, which dropped the titular macro
from ppc64 ptrace.h header.
diff --git a/runtime/linux/regs.c b/runtime/linux/regs.c
index 26423164b..5c3a86c62 100644
--- a/runtime/linux/regs.c
+++ b/runtime/linux/regs.c
@@ -182,6 +182,10 @@ static void _stp_print_regs(struct pt_regs * regs)
}
_stp_printf("%016lX ", regs->gpr[i]);
+/* since kernel commit 8dc7f0229 */
+#ifndef FULL_REGS
+#define FULL_REGS(r) true
+#endif
if (i == 13 && !FULL_REGS(regs))
break;
}

View File

@ -1,52 +0,0 @@
commit 5409ddea1a007384b9c71a78e8dd2cbca1fc5424
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Thu Jul 1 14:41:06 2021 -0400
rhbz1972805: add basic syscall-in-ptregs support for s390x
Akin to commit 7be7af0fda36 for ARM, add basic syscalls via
tracepoints / CONTEXT->sregs support for s390x. The argno=6 case is
funny because for syscalls they travel in registers, whereas normally
they hop onto the stack.
diff --git a/tapset/s390/registers.stp b/tapset/s390/registers.stp
index b3986cdd9..cbe7e8483 100644
--- a/tapset/s390/registers.stp
+++ b/tapset/s390/registers.stp
@@ -136,7 +136,10 @@ function uarch_bytes:long() {
function _stp_get_register_by_offset:long (offset:long) %{ /* pure */
long value;
struct pt_regs *regs;
- regs = (CONTEXT->user_mode_p ? CONTEXT->uregs : CONTEXT->kregs);
+ if (CONTEXT->sregs)
+ regs = CONTEXT->sregs;
+ else
+ regs = (CONTEXT->user_mode_p ? CONTEXT->uregs : CONTEXT->kregs);
if (!regs) {
CONTEXT->last_error = "No registers available in this context";
return;
@@ -169,9 +172,10 @@ function _stp_sign_extend32:long (value:long) {
}
function _stp_register:long (name:string, sign_extend:long) {
- assert(registers_valid(), "cannot access CPU registers in this context")
+ # don't assert this: will get *regs state checked in _stp_get_register_by_offset, and better
+ # assert(registers_valid(), "cannot access CPU registers in this context")
offset = _reg_offsets[name]
- assert(offset != 0 || (name in _reg_offsets), "Unknown register: " . name)
+ assert(offset != 0 || (name in _reg_offsets), "Unknown register: " . name)
value = _stp_get_register_by_offset(offset)
if (probing_32bit_app()) {
if (sign_extend)
@@ -235,8 +239,10 @@ function _stp_arg2:long (argnum:long, sign_extend:long, truncate:long,
val = u_register("r5")
else if (argnum == 5)
val = u_register("r6")
+ else if (argnum == 6 && %{ CONTEXT->sregs != NULL %} ) // linux syscall arg6 goes into r7
+ val = u_register("r7")
else if (argnum >= 6)
- val = _stp_get_kernel_stack_param(argnum - 6)
+ val = _stp_get_kernel_stack_param(argnum - 6);
if ((truncate || @__compat_task) && !force64) {
/* High bits may be garbage. */

View File

@ -1,29 +0,0 @@
commit 515a6a2d63cdf16c5bc599f0d29283289219d9a4
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Thu Jun 24 13:30:38 2021 -0400
rhbz1972828: tapsets: iommu tracepoints
Disable detection of intel-iommu tracepoint family on non-x86
platforms, because the 5.13ish kernel headers for this tracepoint
include references to functions like clcache_flush_range which don't
exist on all non-x86.
diff --git a/tapsets.cxx b/tapsets.cxx
index a5e41129f..20e0cb68f 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -11930,6 +11930,13 @@ static vector<string> tracepoint_extra_decls (systemtap_session& s,
they_live.push_back ("#include <linux/phy.h>");
}
+ if (header.find("intel_iommu") != string::npos && s.architecture != "x86_64" && s.architecture != "i386")
+ {
+ // need asm/cacheflush.h for clflush_cache_range() used in that header,
+ // but this function does not exist on e.g. ppc
+ they_live.push_back ("#error nope");
+ }
+
if (header.find("wbt") != string::npos)
{
// blk-wbt.h gets included as "../../../block/blk-wbt.h", so we

View File

@ -1,222 +0,0 @@
commit 04b43f48f1091bdc4bfdbabae86745547e539f8c
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Mon Jul 26 15:49:15 2021 -0400
releng: ditch custom pie/ssp CFLAGS engine in configure.ac
Just inherit the desired c*flags from autoconf via environment
variables from the distro spec files. This lets us automatically
benefit from centralized hardening flags on some distros. OTOH
distros without that now will need to add such settings to the build
scripts that invoke this configure script.
diff --git a/configure b/configure
index 3830ca898..55ff87330 100755
--- a/configure
+++ b/configure
@@ -904,8 +904,6 @@ with_libiconv_prefix
with_libintl_prefix
enable_prologues
enable_sdt_probes
-enable_ssp
-enable_pie
with_debuginfod
enable_sqlite
enable_translator
@@ -1609,8 +1607,6 @@ Optional Features:
--disable-rpath do not hardcode runtime library paths
--enable-prologues make -P prologue-searching default
--disable-sdt-probes disable process.mark probes in stap, staprun, stapio
- --disable-ssp disable gcc stack-protector
- --enable-pie enable position-independent-executable
--enable-sqlite build with sqlite support
--disable-translator build only runtime utilities
--enable-crash[=DIRECTORY]
@@ -10269,82 +10265,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
-# Check whether --enable-ssp was given.
-if test "${enable_ssp+set}" = set; then :
- enableval=$enable_ssp;
-fi
-
-if test "x$enable_ssp" != xno; then :
-
- save_CFLAGS="$CFLAGS"
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CXXFLAGS"
- CFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int something ();
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiling with gcc -fstack-protector-all et al." >&5
-$as_echo "$as_me: Compiling with gcc -fstack-protector-all et al." >&6;}
- CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CFLAGS"
- CXXFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CXXFLAGS"
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiler does not support -fstack-protector-all et al." >&5
-$as_echo "$as_me: Compiler does not support -fstack-protector-all et al." >&6;}
- CFLAGS="$save_CFLAGS"
- CXXFLAGS="$save_CXXFLAGS"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-
-# Compiling with fPIE by default (but see PR 9922)
-# Check whether --enable-pie was given.
-if test "${enable_pie+set}" = set; then :
- enableval=$enable_pie;
-fi
-
-if test "x$enable_pie" != xno; then :
-
- PIECFLAGS='-fPIE'
- PIECXXFLAGS='-fPIE'
- PIELDFLAGS='-pie -Wl,-z,relro -Wl,-z,now'
- save_CFLAGS="$CFLAGS"
- save_CXXFLAGS="$CXXFLAGS"
- save_LDFLAGS="$LDFLAGS"
- CFLAGS="$CFLAGS $PIECFLAGS"
- CXXFLAGS="$CXXFLAGS $PIECXXFLAGS"
- LDFLAGS="$LDFLAGS $PIELDFLAGS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-void main () {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiling with gcc pie et al." >&5
-$as_echo "$as_me: Compiling with gcc pie et al." >&6;}
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: Compiler does not support -pie et al." >&5
-$as_echo "$as_me: Compiler does not support -pie et al." >&6;}
- PIECFLAGS=""
- PIECXXFLAGS=""
- PIELDFLAGS=""
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CFLAGS="$save_CFLAGS"
- CXXFLAGS="$save_CXXFLAGS"
- LDFLAGS="$save_LDFLAGS"
-
-fi
diff --git a/configure.ac b/configure.ac
index d4fd9e1b0..a88c20bff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,60 +190,8 @@ AS_IF([test "x$HAVE_CXX11" != x1],[
AC_LANG_POP(C++)
])
-AC_ARG_ENABLE([ssp],
- [AS_HELP_STRING([--disable-ssp], [disable gcc stack-protector])])
-AS_IF([test "x$enable_ssp" != xno],[
- save_CFLAGS="$CFLAGS"
- save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CXXFLAGS"
- CFLAGS="-Werror -fstack-protector-all -D_FORTIFY_SOURCE=2 $CFLAGS"
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([int something ();])], [
- AC_MSG_NOTICE([Compiling with gcc -fstack-protector-all et al.])
- CFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CFLAGS"
- CXXFLAGS="-fstack-protector-all -D_FORTIFY_SOURCE=2 $save_CXXFLAGS"],[
- AC_MSG_NOTICE([Compiler does not support -fstack-protector-all et al.])
- CFLAGS="$save_CFLAGS"
- CXXFLAGS="$save_CXXFLAGS"])])
-
-
-dnl Link with gold if possible
-dnl but: https://bugzilla.redhat.com/show_bug.cgi?id=636603
-dnl
-dnl AC_PATH_PROG(GOLD, [ld.gold], [no])
-dnl if test "x$GOLD" != "xno"
-dnl then
-dnl mkdir -p Bdir
-dnl ln -sf $GOLD Bdir/ld
-dnl LDFLAGS="$LDFLAGS -B`pwd`/Bdir/"
-dnl AC_MSG_NOTICE([using ld.gold to link])
-dnl fi
-
-
-# Compiling with fPIE by default (but see PR 9922)
-AC_ARG_ENABLE([pie],
- [AS_HELP_STRING([--enable-pie], [enable position-independent-executable])])
-AS_IF([test "x$enable_pie" != xno],[
- PIECFLAGS='-fPIE'
- PIECXXFLAGS='-fPIE'
- PIELDFLAGS='-pie -Wl,-z,relro -Wl,-z,now'
- save_CFLAGS="$CFLAGS"
- save_CXXFLAGS="$CXXFLAGS"
- save_LDFLAGS="$LDFLAGS"
- CFLAGS="$CFLAGS $PIECFLAGS"
- CXXFLAGS="$CXXFLAGS $PIECXXFLAGS"
- LDFLAGS="$LDFLAGS $PIELDFLAGS"
- AC_LINK_IFELSE([AC_LANG_SOURCE([void main () {}])], [
- AC_MSG_NOTICE([Compiling with gcc pie et al.])
- ], [
- AC_MSG_NOTICE([Compiler does not support -pie et al.])
- PIECFLAGS=""
- PIECXXFLAGS=""
- PIELDFLAGS=""
- ])
- CFLAGS="$save_CFLAGS"
- CXXFLAGS="$save_CXXFLAGS"
- LDFLAGS="$save_LDFLAGS"
-])
+dnl Carry forward some empty PIE*FLAGS so we don't have to modify
+dnl all the Makefile.am's just now.
AC_SUBST(PIELDFLAGS)
AC_SUBST(PIECFLAGS)
AC_SUBST(PIECXXFLAGS)
diff --git a/systemtap.spec b/systemtap.spec
index e5224e902..a2458b4b5 100644
--- a/systemtap.spec
+++ b/systemtap.spec
@@ -11,7 +11,6 @@
%endif
%{!?with_rpm: %global with_rpm 1}
%{!?elfutils_version: %global elfutils_version 0.179}
-%{!?pie_supported: %global pie_supported 1}
%{!?with_boost: %global with_boost 0}
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
%{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7}
@@ -589,14 +588,6 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
%global docs_config --enable-docs=prebuilt
%endif
-# Enable pie as configure defaults to disabling it
-%if %{pie_supported}
-%global pie_config --enable-pie
-%else
-%global pie_config --disable-pie
-%endif
-
-
%if %{with_java}
%global java_config --with-java=%{_jvmdir}/java
%else
@@ -646,8 +637,8 @@ 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} %{pie_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}
+%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}"
+make %{?_smp_mflags} V=1
%install

File diff suppressed because it is too large Load Diff

24
SOURCES/rhbz2223733.patch Normal file
View File

@ -0,0 +1,24 @@
commit ead30c04c7157fec194c0f6d81e5c51c99bf25cf
gpg: Signature made Wed 24 May 2023 10:23:54 AM EDT
gpg: using RSA key 5D38116FA4D3A7CC77E378D37E83610126DCC2E8
gpg: Good signature from "Frank Ch. Eigler <fche@elastic.org>" [full]
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Wed May 24 10:22:08 2023 -0400
PR30484: stap-report: scrape less of /sys /proc
Mainly: avoid process/busy parts like /proc/$pid.
diff --git a/stap-report b/stap-report
index 217ddf840..3b3a1a258 100755
--- a/stap-report
+++ b/stap-report
@@ -105,7 +105,7 @@ elif [ -f /var/log/packages ]; then
run "cat /var/log/packages | egrep 'systemtap|elfutils|kernel|gcc|dyninst|java|byteman|avahi|nss|nspr|dejagnu' | sort -k9"
fi
run "egrep 'PROBE|RANDOMIZE|RELOC|TRACE|MARKER|KALLSYM|_DEBUG_|LOCKDEP|LOCKING|MODULE|FENTRY|_SIG|BPF' /lib/modules/`uname -r`/build/.config | grep -v not.set | sort | fmt -w 80"
-run "find /debugfs /proc /sys /dev /sys/kernel/debug -type f -path '*kprobe*' -o -path '*yama*' 2>/dev/null | xargs grep -H ."
+run "find /debugfs /proc/sys /sys/kernel /dev -type f -path '*kprobe*' -o -path '*yama*' 2>/dev/null | xargs grep -H ."
run "lsmod"
run "avahi-browse -r -t _stap._tcp"
run "ifconfig -a"

64
SOURCES/rhbz2223735.patch Normal file
View File

@ -0,0 +1,64 @@
commit ab0c5c25509600b7c9cecc9e10baebc984082b50
gpg: Signature made Fri 12 May 2023 11:18:18 AM EDT
gpg: using RSA key 5D38116FA4D3A7CC77E378D37E83610126DCC2E8
gpg: Good signature from "Frank Ch. Eigler <fche@elastic.org>" [full]
Author: Frank Ch. Eigler <fche@redhat.com>
Date: Fri May 12 11:13:45 2023 -0400
PR30442: failing optional statement probes should not trigger pass2 exceptions
In tapsets.cxx, query_cu() and query_module() aggressively caught &
sess-print_error'd semantic_errors from subsidiary call sites. They
are unaware of whether the probe in question is being resolved within
an optional (? or !) context. Instead of this, they now simply let
the exceptions propagate out to derive_probes() or similar, which does
know whether exceptions are errors in that context. That means
exceptions can propagate through elfutils iteration machinery too,
perhaps risking C level memory leaks, but so be it.
This fix goes well beyond statement probes per se, but hand-testing
and the testsuite appear not to show regressions related to this.
Added semok/badstmt.exp to test.
diff --git a/tapsets.cxx b/tapsets.cxx
index 859160bc5..7b7107371 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -2453,8 +2453,9 @@ query_cu (Dwarf_Die * cudie, dwarf_query * q)
}
catch (const semantic_error& e)
{
- q->sess.print_error (e);
- return DWARF_CB_ABORT;
+ // q->sess.print_error (e);
+ throw;
+ // return DWARF_CB_ABORT;
}
}
@@ -2696,8 +2697,9 @@ query_module (Dwfl_Module *mod,
}
catch (const semantic_error& e)
{
- q->sess.print_error (e);
- return DWARF_CB_ABORT;
+ // q->sess.print_error (e);
+ // return DWARF_CB_ABORT;
+ throw;
}
}
diff --git a/testsuite/semok/stmtbad.stp b/testsuite/semok/stmtbad.stp
new file mode 100755
index 000000000..06780790a
--- /dev/null
+++ b/testsuite/semok/stmtbad.stp
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+exec stap -v -p2 -e 'probe oneshot {log("nothing") }
+ probe process.statement("main@*:1")? { log("yo") }' -c stap
+
+# The optional misaddressed statement probe should let stap still
+# succeed with the oneshot probe.

View File

@ -4,14 +4,13 @@
%{!?with_htmldocs: %global with_htmldocs 0}
%{!?with_monitor: %global with_monitor 1}
# crash is not available
%ifarch ppc ppc64 %{sparc} %{mips}
%ifarch ppc ppc64 %{sparc} %{mips} %{riscv}
%{!?with_crash: %global with_crash 0}
%else
%{!?with_crash: %global with_crash 1}
%endif
%{!?with_rpm: %global with_rpm 1}
%{!?elfutils_version: %global elfutils_version 0.179}
%{!?pie_supported: %global pie_supported 1}
%{!?with_boost: %global with_boost 0}
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
%{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7}
@ -21,7 +20,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,6 +42,7 @@
%{!?with_python3_probes: %global with_python3_probes (0%{?fedora} >= 23 || 0%{?rhel} > 7)}
%{!?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}
# Virt is supported on these arches, even on el7, but it's not in core EL7
%if 0%{?rhel} <= 7
@ -88,9 +92,38 @@
# To avoid testsuite/*/*.stp has shebang which doesn't start with '/'
%define __brp_mangle_shebangs_exclude_from .stp$
%define _systemtap_runtime_preinstall \
# See systemd-sysusers(8) sysusers.d(5)\
\
g stapusr 156\
g stapsys 157\
g stapdev 158
%define _systemtap_server_preinstall \
# See systemd-sysusers(8) sysusers.d(5)\
\
g stap-server -\
u stap-server - "systemtap compiler server" /var/lib/stap-server /sbin/nologin\
m stap-server stap-server
%define _systemtap_testsuite_preinstall \
# See systemd-sysusers(8) sysusers.d(5)\
\
u stapusr - "systemtap testsuite user" / /sbin/nologin\
u stapsys - "systemtap testsuite user" / /sbin/nologin\
u stapdev - "systemtap testsuite user" / /sbin/nologin\
m stapusr stapusr\
m stapsys stapusr\
m stapsys stapsys\
m stapdev stapusr\
m stapdev stapdev
Name: systemtap
Version: 4.5
Release: 8%{?release_override}%{?dist}
# PRERELEASE
Version: 4.9
Release: 3%{?release_override}%{?dist}
# for version, see also configure.ac
@ -109,6 +142,7 @@ Release: 8%{?release_override}%{?dist}
# 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:
#
@ -126,11 +160,11 @@ License: GPLv2+
URL: http://sourceware.org/systemtap/
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
Patch1: rhbz1972803.patch
Patch2: rhbz1972828.patch
Patch3: rhbz1972805.patch
Patch4: rhbz1982908.patch
Patch5: rhbz1985124.patch
Patch1: rhbz2223733.patch
Patch2: rhbz2223735.patch
Patch3: pr29108.patch
Patch4: pr30749.patch
# Build*
BuildRequires: make
@ -180,6 +214,7 @@ BuildRequires: xmlto /usr/share/xmlto/format/fo/pdf
%endif
%endif
%if %{with_emacsvim}
# for _emacs_sitelispdir macros etc.
BuildRequires: emacs
%endif
%if %{with_java}
@ -202,18 +237,22 @@ BuildRequires: python2-setuptools
BuildRequires: python-setuptools
%endif
%endif
%if %{with_python3}
BuildRequires: python3
%endif
%if %{with_python3_probes}
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
%endif
# Install requirements
Requires: systemtap-client = %{version}-%{release}
@ -490,7 +529,7 @@ This package includes support files needed to run systemtap scripts
that probe python 3 processes.
%endif
%if %{with_python3}
%if %{with_python3_probes}
%package exporter
Summary: Systemtap-prometheus interoperation mechanism
License: GPLv2+
@ -508,7 +547,8 @@ to remote requesters on demand.
Summary: Systemtap Cross-VM Instrumentation - host
License: GPLv2+
URL: http://sourceware.org/systemtap/
Requires: libvirt >= 1.0.2
# only require libvirt-libs really
#Requires: libvirt >= 1.0.2
Requires: libxml2
%description runtime-virthost
@ -538,15 +578,26 @@ This package installs the services necessary on a virtual machine for a
systemtap-runtime-virthost machine to execute systemtap scripts.
%endif
%if %{with_python3} && %{with_monitor}
%package jupyter
Summary: ISystemtap jupyter kernel and examples
License: GPLv2+
URL: http://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.
%endif
# ------------------------------------------------------------------------
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch -P1 -p1
%patch -P2 -p1
%patch -P3 -p1
%patch -P4 -p1
%build
@ -595,14 +646,6 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
%global docs_config --enable-docs=prebuilt
%endif
# Enable pie as configure defaults to disabling it
%if %{pie_supported}
%global pie_config --enable-pie
%else
%global pie_config --disable-pie
%endif
%if %{with_java}
%global java_config --with-java=%{_jvmdir}/java
%else
@ -652,12 +695,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} %{pie_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}
%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}"
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||")
@ -665,6 +713,14 @@ for dir in $(ls -1d $RPM_BUILD_ROOT%{_mandir}/{??,??_??}) ; do
echo "%%lang($lang) $dir/man*/*" >> %{name}.lang
done
%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
echo '%_systemtap_testsuite_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-testsuite.conf
%endif
ln -s %{_datadir}/systemtap/examples
# Fix paths in the example scripts.
@ -714,6 +770,9 @@ install -m 644 initscript/logrotate.stap-server $RPM_BUILD_ROOT%{_sysconfdir}/lo
%if %{with_systemd}
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
touch $RPM_BUILD_ROOT%{_unitdir}/systemtap.service
# RHBZ2070857
mkdir -p $RPM_BUILD_ROOT%{_presetdir}
echo 'enable systemtap.service' > $RPM_BUILD_ROOT%{_presetdir}/42-systemtap.preset
install -m 644 initscript/systemtap.service $RPM_BUILD_ROOT%{_unitdir}/systemtap.service
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
install -m 755 initscript/systemtap $RPM_BUILD_ROOT%{_sbindir}/systemtap-service
@ -784,28 +843,41 @@ 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
%pre runtime
%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
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev
%endif
exit 0
%pre server
%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
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
%pre testsuite
%if %{with_sysusers}
echo '%_systemtap_testsuite_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-testsuite.conf -
%else
getent passwd stapusr >/dev/null || \
useradd -c "Systemtap 'stapusr' User" -g stapusr -r -s /sbin/nologin stapusr
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
%post server
@ -826,7 +898,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
@ -882,7 +955,8 @@ exit 0
%post initscript
%if %{with_systemd}
/bin/systemctl enable systemtap.service >/dev/null 2>&1 || :
# RHBZ2070857 - use systemd presets instead
# /bin/systemctl enable systemtap.service >/dev/null 2>&1 || :
%else
/sbin/chkconfig --add systemtap
%endif
@ -962,7 +1036,7 @@ if [ "$1" -ge "1" ]; then
fi
exit 0
%if %{with_python3}
%if %{with_python3_probes}
%if %{with_systemd}
%preun exporter
if [ $1 = 0 ] ; then
@ -1027,11 +1101,17 @@ exit 0
%doc README README.unprivileged AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%if %{with_sysusers}
%{_sysusersdir}/systemtap-server.conf
%endif
%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
@ -1096,6 +1176,9 @@ exit 0
%doc README README.security AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%if %{with_sysusers}
%{_sysusersdir}/systemtap-runtime.conf
%endif
%files client -f systemtap.lang
@ -1129,6 +1212,7 @@ exit 0
%files initscript
%if %{with_systemd}
%{_presetdir}/42-systemtap.preset
%{_unitdir}/systemtap.service
%{_sbindir}/systemtap-service
%else
@ -1162,6 +1246,9 @@ exit 0
%files testsuite
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/testsuite
%if %{with_sysusers}
%{_sysusersdir}/systemtap-testsuite.conf
%endif
%if %{with_java}
@ -1203,7 +1290,7 @@ exit 0
%endif
%endif
%if %{with_python3}
%if %{with_python3_probes}
%files exporter
%{_sysconfdir}/stap-exporter
%{_sysconfdir}/sysconfig/stap-exporter
@ -1212,6 +1299,15 @@ exit 0
%{_sbindir}/stap-exporter
%endif
%if %{with_python3} && %{with_monitor}
%files jupyter
%{_bindir}/stap-jupyter-container
%{_bindir}/stap-jupyter-install
%{_mandir}/man1/stap-jupyter.1*
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/interactive-notebook
%endif
# ------------------------------------------------------------------------
# Future new-release entries should be of the form
@ -1221,49 +1317,232 @@ exit 0
# PRERELEASE
%changelog
* Thu Sep 09 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-8
- rhbz1985124: Kernel 5.14 compatibility omnibus cont'd.
* Mon Aug 14 2023 Frank Ch. Eigler <fche@redhat.com> - 4.9-3
- rhbz2231619
- rhbz2095359
* Thu Aug 12 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-7
- rhbz1985124: Kernel 5.14 compatibility omnibus.
* Tue Jul 18 2023 Frank Ch. Eigler <fche@redhat.com> - 4.9-2
- rhbz2223733 = rhbz2211288
- rhbz2223735 = rhbz2223739
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 4.5-5
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* 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
* Mon Jul 26 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-3
- rhbz1982908: Import hardening c*flags from specs/rhel standards
* Fri Dec 23 2022 Frank Ch. Eigler <fche@redhat.com> - 4.8-2
- rhbz2156092 = rhbz1997192
- rhbz2145241 = rhbz2145242
- rhbz2156093 = rhbz2149223
- rhbz2156095 = rhbz2149666
- rhbz2156094 = rhbz2154430
* Tue May 18 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-2
- Respin against newer dyninst.
* Thu Nov 03 2022 Frank Ch. Eigler <fche@redhat.com> - 4.8-1
- Upstream release.
* Mon May 02 2022 Stan Cox <scox@redhat.com> - 4.7-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Tue Dec 07 2021 Stan Cox <scox@redhat.com> - 4.6.4
- sys/sdt.h remove aarch64 and s390 float constraints
* Mon Dec 06 2021 Stan Cox <scox@redhat.com> - 4.6.3
- sys/sdt.h remove float constraints that may cause gcc reload issues.
* Thu Dec 02 2021 Frank Ch. Eigler <fche@redhat.com> - 4.6.2
- sys/sdt.h fixes for glibc ftbfs
* Mon Nov 15 2021 Frank Ch. Eigler <fche@redhat.com> - 4.6-1
- Upstream release.
* Thu Aug 12 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-3
- rhbz1991631 iommu tracepoints break ppc64le
* Tue Jul 27 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-2
- rhbz1986543 rebuild against dyninst 11
* Fri May 07 2021 Frank Ch. Eigler <fche@redhat.com> - 4.5-1
- Upstream release.
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 4.5-0.202102101545git8d5e0abc542c
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Frank Ch. Eigler <fche@redhat.com> - 4.4-9
- rhbz1927497 enable debuginfod client for buildid probing
* Tue Jan 26 2021 Frank Ch. Eigler <fche@redhat.com> - 4.4-8
- rhbz1902696 fix invocation as stapusr with procfs/lockdown
* Wed Jan 20 2021 Martin Cermak <mcermak@redhat.com> - 4.4-7
- rhbz1650594 fix boot time probing feature
* Mon Jan 04 2021 Frank Ch. Eigler <fche@redhat.com> - 4.4-6
- rhbz1906662 backport transport/utrace/locking patches
* Thu Dec 17 2020 Frank Ch. Eigler <fche@redhat.com> - 4.4-5
- rhbz1908904 fix lock-pushdown codegen for conditional probes
* Tue Dec 15 2020 Frank Ch. Eigler <fche@redhat.com> - 4.4-4
- rhbz1902696 fix invocation as stapusr vs. root
* Tue Nov 17 2020 Frank Ch. Eigler <fche@redhat.com> - 4.4-3
- rhbz1873492 related: rhel8 kernel_is_locked_down detection
* Mon Nov 16 2020 Frank Ch. Eigler <fche@redhat.com> - 4.4-2
- rhbz1898288: stability for exhausted UTRACE_TASK_WORK_POOL
- rhbz1873492 related: mokutil parser robustness for RH keys
* Mon Nov 09 2020 Frank Ch. Eigler <fche@redhat.com> - 4.4-1
- Upstream release.
* Thu Jun 11 2020 Frank Ch. Eigler <fche@redhat.com> - 4.3-1
- Upstream release.
* Wed Aug 12 2020 Martin Cermak <mcermak@redhat.com> - 4.3-4
- rhbz1868095: Refix including PR26379.
* Mon Nov 18 2019 Sagar Patel <sapatel@redhat.com> - 4.2-1
- Upstream release.
* Wed Aug 12 2020 Martin Cermak <mcermak@redhat.com> - 4.3-3
- rhbz1868095: byteman-java-methods-probing
* Tue Jul 28 2020 Frank Ch. Eigler <fche@redhat.com> - 4.3-2
- rhbz1857749: uprobes-inode changes
- rhbz1855264: @cast adaptations
* Thu Jun 11 2020 Stan Cox <scox@redhat.com> - 4.3-1
- rhbz1804319: Upstream release.
* Tue Feb 11 2020 Frank Ch. Eigler <fche@redhat.com> - 4.2-6
- rhbz1795196 cont'd: autoconf fix for kernel change to stack_trace_save_regs
* Tue Jan 28 2020 Frank Ch. Eigler <fche@redhat.com> - 4.2-5
- rhbz1795196: kallsyms vs. elfutils/vmlinuz
* Thu Jan 23 2020 Frank Ch. Eigler <fche@redhat.com> - 4.2-4
- rhbz1788662: check for rcu_is_watching() during prologue
* Fri Jan 10 2020 Frank Ch. Eigler <fche@redhat.com> - 4.2-3
- rhbz1788544: stop bytecompiling systemtap-mode.el
* Fri Jan 10 2020 Frank Ch. Eigler <fche@redhat.com> - 4.2-2
- rhbz1788648: aarch64 sdt.h parse [x0, x1]
* Tue Nov 19 2019 Frank Ch. Eigler <fche@redhat.com> - 4.2-1
- rhbz1744989: Upstream release.
* Tue Aug 06 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-6
- rhbz1732514: add java-devel prereq to systemtap-runtime-java
* Wed Jul 31 2019 Serguei Makarov <smakarov@redhat.com> - 4.1-5
- rhbz1734973: Fix possible stapbpf segfault with foreach string key iteration.
* Mon Jul 29 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-4
- rhbz1732173 (arm64 syscall parameters)
* Tue Jun 04 2019 Stan Cox <scox@redhat.com> - 4.1-3
- Rebuilt for dyninst 10.1.0
* Tue May 14 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-2
- Correct GNU_parameter_ref dwarf feature typo.
* Tue May 07 2019 Serguei Makarov <smakarov@redhat.com> - 4.1-1
- Upstream release.
* Mon Dec 17 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-7
- rhbz1657909: vfs tapset fixes for $cred
* Mon Dec 10 2018 William Cohen <wcohen@redhat.com> - 4.0-6
- rhbz1657857: Please, backport periodic.stp from current upstream aacee6563.
* Fri Dec 07 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-5
- rhbz1657186: fix/port nfsd.proc4.[read,commit] tapset aliases
* Thu Dec 06 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-4
- rhbz1656795: support bdflush syscall
* Tue Dec 04 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-3
- rhbz1655631: change kernel-devel* deps to Recommends:
* Wed Nov 14 2018 Serhei Makarov <smakarov@redhat.com> - 4.0-2
- rhbz1643997: backported string tapset functionality and bugfixes
* Sat Oct 13 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-1
- Upstream release.
* Thu Jun 07 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-1
- Upstream release.
* Thu Aug 30 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-0.20180830git
- Enable brp-mangle for python scripts (rhbz1619413).
* Fri Aug 10 2018 Frank Ch. Eigler <fche@redhat.com> - 4.0-0.20180810git
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon May 14 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-0.20180508git9c6ac6cda49e.2
- respin w/ fixed glibc
* Tue May 08 2018 Frank Ch. Eigler <fche@redhat.com> - 3.3-0.20180508git9c6ac6cda49e
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Apr 19 2018 Mark Wielaard <mjw@fedoraproject.org> - 3.2-11
- Add rhbz1549063.patch (/bin/env -> /usr/bin/env)
- Add rhbz1566745.patch (4.15 kernel tapset updates)
- Enable accidentially disabled Suggests: kernel-devel again.
* Wed Apr 18 2018 Mark Wielaard <mjw@fedoraproject.org> - 3.2-10
- Add unwind-fallback.patch
- rhbz1566422.patch
* Tue Apr 17 2018 Mark Wielaard <mjw@fedoraproject.org> - 3.2-9
- Add unwind-fallback.patch.
* Tue Mar 27 2018 Björn Esser <besser82@fedoraproject.org> - 3.2-8
- Rebuilt for libjson-c.so.4 (json-c v0.13.1) on fc28
* Thu Feb 22 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 3.2-7
- rhbz1546563 (backport fix for removed timers in kernel 4.15)
* Tue Feb 13 2018 Stan Cox <scox@redhat.com> - 3.2-6
- rebuilt
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.2-5
- Escape macros in %%changelog
* Wed Feb 07 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 3.2-4
- Fix very old Requires
* Sun Dec 10 2017 Björn Esser <besser82@fedoraproject.org> - 3.2-3
- Rebuilt for libjson-c.so.3
* Fri Oct 20 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-2
- rhbz1504009 (dtrace -G -o /dev/null)
* Wed Oct 18 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-1
- Upstream release.
* Fri Aug 11 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.2-0.20170516gitc67d8f274b21
- Rebuilt after RPM update (№ 3)
* Thu Aug 10 2017 Igor Gnatenko <ignatenko@redhat.com> - 3.2-0.20170515gitc67d8f274b21
- Rebuilt for RPM soname bump
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.2-0.20170514gitc67d8f274b21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.2-0.20170513gitc67d8f274b21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri May 12 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-0.20170512gitc67d8f274b21
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Apr 10 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-0.20170410gitcbf2583808d6
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Apr 06 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-0.20170406git83d186dc7f5c
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Tue Mar 21 2017 Frank Ch. Eigler <fche@redhat.com> - 3.2-0.20170321git272146660f54
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Mar 10 2017 Stan Cox <scox@redhat.com> - 3.1-2
- Rebuild for dyninst 9.3
* Fri Feb 17 2017 Frank Ch. Eigler <fche@redhat.com> - 3.1-1
- Upstream release.
@ -1283,7 +1562,7 @@ exit 0
- Upstream release.
* Mon Jul 07 2014 Josh Stone <jistone@redhat.com>
- Flip with_dyninst to an %%ifarch passlist.
- Flip with_dyninst to an %%ifarch whitelist.
* Wed Apr 30 2014 Jonathan Lebon <jlebon@redhat.com> - 2.5-1
- Upstream release.