From: Michael Petlan <mpetlan(a)redhat.com>
[redhat] perf: link libtraceevent dynamically
Bugzilla:
https://bugzilla.redhat.com/show_bug.cgi?id=1952426
Due to independent usage of libtraceevent by various users (perf, trace-cmd),
it now exists as a separate package, which provides the library+plugins. Now
perf has to link against it and not install its own libtraceevent, since that
would conflict.
diff a/redhat/kernel.spec.template b/redhat/kernel.spec.template
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -541,6 +541,7 @@ BuildRequires: sparse
BuildRequires: zlib-devel binutils-devel newt-devel perl(ExtUtils::Embed) bison flex
xz-devel
BuildRequires: audit-libs-devel
BuildRequires: java-devel
+BuildRequires: libtraceevent-devel
%ifnarch %{arm} s390x
BuildRequires: numactl-devel
%endif
@@ -869,7 +870,7 @@ This package provides debug information for the perf package.
# symlinks because of the trailing nonmatching alternation and
# the leading .*, because of find-debuginfo.sh's buggy handling
# of matching the pattern against the symlinks file.
-%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p
'.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|.*%%{_libdir}/traceevent/plugins/.*|.*%%{_libdir}/libperf-jvmti.so(\.debug)?|XXX'
-o perf-debuginfo.list}
+%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p
'.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|.*%%{_libdir}/libperf-jvmti.so(\.debug)?|XXX'
-o perf-debuginfo.list}
%package -n python3-perf
Summary: Python bindings for apps which will manipulate perf events
@@ -2053,7 +2054,7 @@ InitBuildVars
%endif
%global perf_make \
- %{__make} -s EXTRA_CFLAGS="${RPM_OPT_FLAGS}"
LDFLAGS="%{__global_ldflags}" %{?cross_opts} -C tools/perf V=1
NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1
NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} PYTHON=%{__python3}
+ %{__make} -s EXTRA_CFLAGS="${RPM_OPT_FLAGS}"
LDFLAGS="%{__global_ldflags}" %{?cross_opts} -C tools/perf V=1
NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1
NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 LIBTRACEEVENT_DYNAMIC=1 prefix=%{_prefix}
PYTHON=%{__python3}
%if %{with_perf}
# perf
# make sure check-headers.sh is executable
@@ -2266,7 +2267,7 @@ tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH
%if %{with_perf}
# perf tool binary and supporting scripts/binaries
-%{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin install-traceevent-plugins
+%{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin
# remove the 'trace' symlink.
rm -f %{buildroot}%{_bindir}/trace
@@ -2584,8 +2585,7 @@ fi
%files -n perf
%{_bindir}/perf
%{_libdir}/libperf-jvmti.so
-%dir %{_libdir}/traceevent/plugins
-%{_libdir}/traceevent/plugins/*
+%exclude %{_libdir}/traceevent
%dir %{_libexecdir}/perf-core
%{_libexecdir}/perf-core/*
%{_datadir}/perf-core/*
--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1147