%{?scl:%scl_package oprofile} Summary: System wide profiler Name: %{?scl_prefix}oprofile Version: 0.9.9 Release: 6%{?dist} License: GPLv2+ and LGPLv2+ Group: Development/System # Source0: http://downloads.sourceforge.net/oprofile/oprofile-%{version}.tar.gz #FIXME a workaround until java-1.6.0-openjdk-devel is available on all archs Source1: openjdk-include.tar.gz Requires: binutils Requires: which Requires(pre): shadow-utils Requires(postun): shadow-utils %{?scl:Requires:%scl_runtime} Patch10: oprofile-0.4-guess2.patch Patch83: oprofile-0.9.7-xen.patch Patch303: oprofile-num_symbolic.patch Patch304: oprofile-xml.patch Patch305: oprofile-rhbz1121205.patch Patch400: oprofile-haswell.patch Patch401: oprofile-silvermont.patch Patch402: oprofile-broadwell.patch Patch500: oprofile-aarch64.patch Patch600: oprofile-power8.patch Patch601: oprofile-ppc64le.patch URL: http://oprofile.sf.net #If oprofile doesn't build on an arch, report it and will add ExcludeArch tag. BuildRequires: qt-devel BuildRequires: libxslt BuildRequires: docbook-style-xsl BuildRequires: docbook-utils BuildRequires: elinks BuildRequires: gtk2-devel BuildRequires: automake BuildRequires: libtool %if 0%{?rhel} >= 7 || 0%{?fedora} >= 15 BuildRequires: binutils-static BuildRequires: libpfm-devel >= 4.3.0 %else BuildRequires: %{?scl_prefix}binutils-devel BuildRequires: binutils-devel %endif %if 0%{?rhel} == 6 BuildRequires: papi-devel %endif %if 0%{?rhel} >= 6 BuildRequires: popt-devel %else BuildRequires: popt %endif #BuildRequires: java-devel #BuildRequires: jpackage-utils #BuildRequires: java-1.6.0-openjdk-devel BuildRoot: %{_tmppath}/%{name}-root %description OProfile is a profiling system for systems running Linux. The profiling runs transparently during the background, and profile data can be collected at any time. OProfile makes use of the hardware performance counters provided on Intel P6, and AMD Athlon family processors, and can use the RTC for profiling on other x86 processor types. See the HTML documentation for further details. %package devel Summary: Header files and libraries for developing apps which will use oprofile Group: Development/Libraries Requires: %{?scl_prefix}oprofile = %{version}-%{release} Provides: %{?scl_prefix}oprofile-static = %{version}-%{release} %description devel Header files and libraries for developing apps which will use oprofile. %package gui Summary: GUI for oprofile Group: Development/System Requires: %{?scl_prefix}oprofile = %{version}-%{release} %description gui The oprof_start GUI for oprofile. %package jit Summary: Libraries required for profiling Java and other JITed code Group: Development/System Requires: %{?scl_prefix}oprofile = %{version}-%{release} #Requires: java >= 1.6 #Requires: jpackage-utils Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig Requires: /etc/ld.so.conf.d %description jit This package includes a base JIT support library, as well as a Java agent library. %prep %setup -q -n %{pkg_name}-%{version} -a1 %patch10 -p1 -b .guess2 %patch83 -p1 -b .xen %patch303 -p1 -b .num_symbolic %patch304 -p1 -b .xml %patch305 -p1 -b .xml %patch400 -p1 -b .haswell %patch401 -p1 -b .silvermont %patch402 -p1 -b .broadwell %patch500 -p1 -b .aarch64 %patch600 -p1 -b .power8 %patch601 -p1 -b .ppc64le ./autogen.sh %build %global qt_ver qt4 #The CXXFLAGS below is temporary to work around # bugzilla #113909 CXXFLAGS=-g; export CXXFLAGS %configure \ --enable-gui=%{qt_ver} \ --with-java=`pwd`/java-1.6.0-openjdk-1.6.0.0 make CFLAGS="$RPM_OPT_FLAGS" #tweak the manual pages find -path "*/doc/*.1" -exec \ sed -i -e \ 's,/doc/oprofile/,/doc/oprofile-%{version}/,g' {} \; %install rm -rf %{buildroot} mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_mandir}/man1 make DESTDIR=%{buildroot} INSTALL="install -p" install # We want the manuals in the special doc dir, not the generic doc install dir. # We build it in place and then move it away so it doesn't get installed # twice. rpm can specify itself where the (versioned) docs go with the # %%doc directive. mkdir docs.installed mv %{buildroot}%{_datadir}/doc/oprofile/* docs.installed/ mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d echo "%{_libdir}/oprofile" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/oprofile-%{_arch}.conf %pre getent group oprofile >/dev/null || groupadd -r -g 16 oprofile getent passwd oprofile >/dev/null || \ useradd -g oprofile -d /var/lib/oprofile -M -r -u 16 -s /sbin/nologin \ -c "Special user account to be used by OProfile" oprofile exit 0 %postun # do not try to remove existing oprofile user or group %files %defattr(-,root,root) %doc docs.installed/* %doc COPYING %{_bindir}/* %{_mandir}/man1/* %{_datadir}/oprofile %files devel %defattr(-,root,root) %{_includedir}/opagent.h %files gui %defattr(-,root,root) %{_bindir}/oprof_start %post jit -p /sbin/ldconfig %postun jit -p /sbin/ldconfig %files jit %defattr(-,root,root) %{_libdir}/oprofile %{_sysconfdir}/ld.so.conf.d/* %changelog * Wed Sep 17 2014 Will Cohen - 0.9.9-6 - Update support for Intel Silvermont (Avoton). - Enable configure for ppc64le. * Mon Aug 18 2014 Will Cohen - 0.9.9-5 - Update Intel Haswell events. - Add support for Intel Silvermont (Avoton). - Add support for Intel Broadwell. - Add support for aarch64. - Update IBM power8 events. * Wed May 28 2014 Will Cohen - 0.9.9-2.1 - Correct xml output. * Fri May 16 2014 Will Cohen - 0.9.9-1.1 - Rebase on oprofile-0.9.9.