# # spec file for package perf # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # A bug in dwz leaves temporary trace-*.debug.#dwz#.* on 64 bits in place # It was long ago fixed in OpenSUSE but somehow is now occuring on SLE15-SP6 # https://sourceware.org/bugzilla/show_bug.cgi?id=26645 # https://bugzilla.suse.com/show_bug.cgi?id=1180984 # perf does not link with LTO %define _lto_cflags %{nil} %define _find_debuginfo_dwz_opts %{nil} Name: perf Version: 6.12.0.git3456.f82da74913 Release: 0 Summary: Performance Monitoring Tools for Linux License: GPL-2.0-only Group: Development/Tools/Debuggers Url: https://perf.wiki.kernel.org/ Source0: %{name}-%{version}.tar.gz BuildRequires: asciidoc BuildRequires: audit-devel BuildRequires: binutils-devel BuildRequires: bison BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: gtk2-devel BuildRequires: libdw-devel BuildRequires: libelf-devel BuildRequires: libtraceevent-devel BuildRequires: llvm BuildRequires: OpenCSD-devel BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: newt-devel BuildRequires: openssl-devel BuildRequires: xmlto BuildRequires: xz-devel BuildRequires: zlib-devel BuildRequires: rubygem(asciidoctor) %ifarch aarch64 ia64 x86_64 ppc64 ppc64le ppc %sparc BuildRequires: libnuma-devel %endif %ifarch s390x s390 %define _perf_unwind NO_LIBUNWIND=1 %else %define _perf_unwind %{nil} BuildRequires: libunwind-devel %endif # dl_open requirement so not autodetected %ifarch ppc64 ppc64le Requires: libebl %endif %{perl_requires} %{?libperl_requires} # upstream patches # non upstream patches BuildRoot: %{_tmppath}/%{name}-%{version}-build %description This package provides a userspace tool 'perf', which monitors performance for either unmodified binaries or the entire system. It requires a Linux kernel which includes the Performance Counters for Linux (PCL) subsystem (>= 2.6.31). This subsystem utilizes the Performance Monitoring Unit (PMU) / hardware counters of the underlying cpu architecture (if supported). %package devel Summary: Development headers for perf Group: Development/Libraries/Other Requires: %{name} = %{version} %description devel Development headers for perf. %package gtk Summary: Gtk browser for perf-report Group: Development/Tools/Other Requires: %{name} = %{version} %description gtk A GTK2 frontend for perf-report. (Use `perf report --gtk`.) %package bash-completion Summary: Bash completion for perf Group: System/Shells Requires: %{name} Requires: bash-completion Supplements: (%{name} and bash-completion) %description bash-completion bash command line completion support for perf. %prep %setup -q chmod +x tools/perf/util/generate-cmdlist.sh # don't error out on deprecated definitions in gtk2.h sed -i 's@ignored "-Wstrict-prototypes"@&\n#pragma GCC diagnostic ignored "-Wdeprecated-declarations"@' tools/build/feature/test-gtk2.c # skip info-from-txt generation (it's the same as man anyway) sed -i.old 's@\(all: .*\)info@\1@' tools/perf/Documentation/Makefile # BPF_SKEL=1 requires clang, enable when we resolve CLANG in SLE issue %define perf_options LIBTRACEEVENT_DYNAMIC=1 CORESIGHT=1 GTK2=1 PYTHON=python3 ASCIIDOC8=1 USE_ASCIIDOCTOR=1 EXTRA_CFLAGS="%{optflags}" prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core tipdir=share/doc/packages/perf %{_perf_unwind} %build cd tools/perf export WERROR=0 # PASS rpm optflags as EXTRA_FLAGS, passing as CFLAGS overrides and breaks build # Specifying "all doc" as one invocation when using -f Makefile.perf doesn't # work and all is deferred to later %install; so seperate into two make %{?_smp_mflags} -f Makefile.perf \ V=0 VF=0 \ %{perf_options} \ all make %{?_smp_mflags} -f Makefile.perf \ V=0 VF=0 \ %{perf_options} \ doc %install cd tools/perf export WERROR=0 make -f Makefile.perf \ %{perf_options} \ DESTDIR=%{buildroot} \ install install-doc mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/ mv %{buildroot}%{_sysconfdir}/bash_completion.d/perf %{buildroot}%{_datadir}/bash-completion/completions/ %fdupes %{buildroot}/%{_prefix}/lib/%{name}-core %files %defattr(-, root, root) %attr(0644, root, root) %doc COPYING CREDITS README tools/perf/design.txt %attr(0644, root, root) %doc %{_docdir}/perf/tips.txt %{_bindir}/perf %{_bindir}/trace %{_prefix}/lib/%{name}-core %{_datadir}/%{name}-core %{_mandir}/man1/perf* %files devel %dir %{_includedir}/perf/ %attr(0644, root, root) %{_includedir}/perf/*.h %files gtk %{_libdir}/libperf-gtk.so %files bash-completion %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/perf %changelog