%global scl papi60 %{?scl:%scl_package papi} %{!?scl:%global pkg_name %name} %bcond_with bundled_libpfm # rdma is not available %ifarch %{arm} %{!?with_rdma: %global with_rdma 0} %else %{!?with_rdma: %global with_rdma 1} %endif %{!?with_pcp: %global with_pcp 1} # Maybe build with CUDA against an installation in # /usr/local/cuda-%cuda_version. Will require PAPI_CUDA_ROOT defined # at runtime too to use it. %bcond_with cuda %global cuda_version 11.0 %global cuda_pkg %(echo %cuda_version|tr . -) %global __global_ldflags %nil Summary: Performance Application Programming Interface Name: %{?scl_prefix}papi Version: 6.0.0 Release: 2%{?dist} License: BSD Requires: %{?scl_prefix}papi-libs = %{version}-%{release} URL: http://icl.cs.utk.edu/papi/ Source0: http://icl.cs.utk.edu/projects/papi/downloads/papi-%{version}.tar.gz Patch1: papi-python3.patch BuildRequires: autoconf BuildRequires: doxygen BuildRequires: ncurses-devel BuildRequires: gcc-gfortran BuildRequires: kernel-headers >= 2.6.32 BuildRequires: chrpath BuildRequires: lm_sensors-devel %if %{without bundled_libpfm} BuildRequires: libpfm-devel >= 4.7.0-1 BuildRequires: libpfm-static >= 4.7.0-1 %endif # Following required for net component BuildRequires: net-tools %if %{with_rdma} # Following required for inifiband component BuildRequires: rdma-core-devel BuildRequires: infiniband-diags-devel %endif %if %{with_pcp} BuildRequires: pcp-libs-devel %endif BuildRequires: perl-generators #Right now libpfm does not know anything about s390 and will fail ExcludeArch: s390 s390x BuildRequires: scl-utils-build %{?scl:Requires: %scl_runtime} %if %{with cuda} BuildRequires: cuda-cudart-devel-%cuda_pkg cuda-driver-devel-%cuda_pkg BuildRequires: cuda-nvml-devel-%cuda_pkg cuda-nvcc-%cuda_pkg BuildRequires: cuda-cupti-%cuda_pkg %endif %description PAPI provides a programmer interface to monitor the performance of running programs. %package libs Summary: Libraries for PAPI clients # Previous SCLs bundled libpfm and so they can get pulled in otherwise Requires: libpfm %description libs This package contains the run-time libraries for any application that wishes to use PAPI. %package devel Summary: Header files for the compiling programs with PAPI Requires: %{?scl_prefix}papi = %{version}-%{release} Requires: %{?scl_prefix}papi-libs = %{version}-%{release} Requires: pkgconfig %description devel PAPI-devel includes the C header files that specify the PAPI user-space libraries and interfaces. This is required for rebuilding any program that uses PAPI. %package testsuite Summary: Set of tests for checking PAPI functionality Requires: %{?scl_prefix}papi = %{version}-%{release} Requires: %{?scl_prefix}papi-libs = %{version}-%{release} %description testsuite PAPI-testsuite includes compiled versions of papi tests to ensure that PAPI functions on particular hardware. %package static Summary: Static libraries for the compiling programs with PAPI Requires: %{?scl_prefix}papi = %{version}-%{release} %description static PAPI-static includes the static versions of the library files for the PAPI user-space libraries and interfaces. %prep %setup -n papi-%{version} -q %patch1 -p1 -b .python3 %build %if %{without bundled_libpfm} # Build our own copy of libpfm. %global libpfm_config --with-pfm-incdir=%{_root_includedir} --with-pfm-libdir=%{_root_libdir} %endif # set up environment variable for the various components # host_micpower %if %{with_rdma} export PAPI_INFINIBAND_UMAD_ROOT=/usr %endif # lmsensors export PAPI_LMSENSORS_ROOT=/usr #pushd vmware; ./configure; popd %if %{with_pcp} %global pcp_enable pcp export PAPI_PCP_ROOT=/usr %endif # cuda %if %{with cuda} export PAPI_CUDA_ROOT=/usr/local/cuda-%cuda_version %endif cd src autoconf %configure --with-perf-events \ %{?libpfm_config} \ --with-static-lib=yes --with-shared-lib=yes --with-shlib --with-shlib-tools \ --with-components="appio coretemp example infiniband lmsensors lustre micpower mx net %{?pcp_enable} rapl sde stealtime%{?with_cuda: cuda nvml}" # implicit enabled components: perf_event perf_event_uncore #components currently left out because of build configure/build issues # --with-components="bgpm coretemp_freebsd cuda host_micpower nvml vmware" #DBG workaround to make sure libpfm just uses the normal CFLAGS # PAPILIB is because otherwise builing the cuda/nvml falis because # nvcc is passed the libpapi shared object directly, and nvcc doesn't know # what to do with it. DBG="" make %{?_smp_mflags} PAPILIB=$(pwd)/libpapi.a #generate updated versions of the documentation #DBG workaround to make sure libpfm just uses the normal CFLAGS pushd ../doc DBG="" make DBG="" make install popd %install rm -rf $RPM_BUILD_ROOT cd src make DESTDIR=$RPM_BUILD_ROOT LDCONFIG=/bin/true install-all chrpath --delete $RPM_BUILD_ROOT%{_libdir}/*.so* %{?scl:mkdir -p $RPM_BUILD_ROOT%_root_sysconfdir/ld.so.conf.d echo %_libdir >$RPM_BUILD_ROOT%_root_sysconfdir/ld.so.conf.d/%scl.conf} %files %{_bindir}/* %dir %_datadir/papi %_datadir/papi/papi_events.csv %doc INSTALL.txt README.md LICENSE.txt RELEASENOTES.txt %doc %{_mandir}/man1/* %ldconfig_scriptlets libs %files libs %{_libdir}/*.so.* %doc INSTALL.txt README.md LICENSE.txt RELEASENOTES.txt %{?scl:%_root_sysconfdir/ld.so.conf.d/%scl.conf} %files devel %{_includedir}/*.h %if %{with bundled_libpfm} %{_includedir}/perfmon/*.h %endif %{_libdir}/*.so %{_libdir}/pkgconfig/papi*.pc %doc %{_mandir}/man3/* %files testsuite %_datadir/papi/run_tests* %_datadir/papi/ctests %_datadir/papi/ftests %_datadir/papi/validation_tests %_datadir/papi/components %_datadir/papi/testlib %files static %{_libdir}/*.a %changelog * Mon Aug 24 2020 Dave Love - 6.0.0-2 - Maybe build cuda, nvml components * Thu Jun 25 2020 Dave Love - 6.0.0-1 - New version - Sync with Fedora packaging - Require libpfm * Wed Apr 10 2019 Dave Love - 5.7.0-1 - New version * Wed Jan 17 2018 Dave Love - 5.6.0-1 - New version - Add trivial test * Fri Sep 16 2016 Dave Love - 5.5.0-1 - New version * Fri Sep 2 2016 Dave Love - 5.4.3-1 - New version * Thu Jun 25 2015 Dave Love - 5.4.1-2 - scl version * Fri Mar 6 2015 William Cohen - 5.4.1-2 - Make sure using libpfm-4.6.0. * Tue Mar 3 2015 William Cohen - 5.4.1-1 - Rebase to papi-5.4.1. * Wed Feb 11 2015 William Cohen - 5.4.0-3 - Bump version and rebuild. * Thu Dec 18 2014 William Cohen - 5.4.0-2 - Split out papi-libs as separate subpackage. (#1172875) * Mon Nov 17 2014 William Cohen - 5.4.0-1 - Rebase to papi-5.4.0. * Sun Aug 17 2014 Fedora Release Engineering - 5.3.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Mon Aug 4 2014 William Cohen - 5.3.2-1 - Rebase to 5.3.2. * Fri Jun 06 2014 Fedora Release Engineering - 5.3.0-2.16.ga7f6159 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Fri Jan 17 2014 Lukas Berk - 5.3.0-1.16.ga7f6159 - Automated weekly rawhide release * Thu Jan 16 2014 William Cohen - 5.3.0-1 - Rebase to 5.3.0. * Tue Jan 14 2014 William Cohen - 5.2.0-5 - Add presets for Intel Silvermont. * Mon Jan 13 2014 William Cohen - 5.2.0-4 - Add presets for Haswell and Ivy Bridge. * Wed Aug 14 2013 William Cohen - 5.2.0-2 - Enable infiniband and stealtime components. * Wed Aug 07 2013 William Cohen - 5.2.0-1 - Rebase to 5.2.0 * Sat Aug 03 2013 Fedora Release Engineering - 5.1.1-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Wed Jul 24 2013 William Cohen - 5.1.1-7 - rhbz830275 - Add support for POWER8 processor to PAPI * Mon Jul 22 2013 William Cohen - 5.1.1-6 - Add autoconf buildrequires. * Mon Jul 22 2013 William Cohen - 5.1.1-5 - rhbz986673 - /usr/lib64/libpapi.so is unowned - Package files in /usr/share/papi only once. - Avoid dependency problem with parallel make of man pages. * Fri Jul 19 2013 William Cohen - 5.1.1-4 - Correct changelog. * Fri Jul 5 2013 William Cohen - 5.1.1-3 - Add man page corrections/updates. * Fri Jun 28 2013 William Cohen - 5.1.1-2 - Add testsuite subpackage. * Thu May 30 2013 William Cohen - 5.1.1-1 - Rebase to 5.1.1 * Mon Apr 15 2013 William Cohen - 5.1.0.2-2 - Fix arm FTBS rhbz 951806. * Tue Apr 9 2013 William Cohen - 5.1.0.2-1 - Rebase to 5.1.0.2 * Thu Feb 14 2013 Fedora Release Engineering - 5.0.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Mon Jan 14 2013 William Cohen - 5.0.1-5 - Add armv7 cortex a15 presets. * Tue Dec 04 2012 William Cohen - 5.0.1-4 - Disable ldconfig on install. * Thu Nov 08 2012 William Cohen - 5.0.1-3 - Avoid duplicated shared library. * Wed Oct 03 2012 William Cohen - 5.0.1-2 - Make sure using compatible version of libpfm. * Thu Sep 20 2012 William Cohen - 5.0.1-1 - Rebase to 5.0.1. * Mon Sep 10 2012 William Cohen - 5.0.0-6 - Back port fixes for Intel Ivy Bridge event presets. * Thu Aug 30 2012 William Cohen - 5.0.0-5 - Fixes to make papi with unbundled libpfm. * Mon Aug 27 2012 William Cohen - 5.0.0-2 - Keep libpfm unbundled. * Fri Aug 24 2012 William Cohen - 5.0.0-1 - Rebase to 5.0.0. * Fri Jul 20 2012 Fedora Release Engineering - 4.4.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Mon Jun 11 2012 William Cohen - 4.4.0-4 - Use siginfo_t rather than struct siginfo. * Mon Jun 11 2012 William Cohen - 4.4.0-3 - Correct build requires. * Mon Jun 11 2012 William Cohen - 4.4.0-2 - Unbundle libpfm4 from papi. - Correct description spellings. - Remove unused test section. * Fri Apr 20 2012 William Cohen - 4.4.0-1 - Rebase to 4.4.0. * Fri Mar 9 2012 William Cohen - 4.2.1-2 - Fix overrun in lmsensor component. (rhbz797692) * Tue Feb 14 2012 William Cohen - 4.2.1-1 - Rebase to 4.2.1. * Fri Jan 13 2012 Fedora Release Engineering - 4.2.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Wed Nov 02 2011 William Cohen - 4.2.0-3 - Remove unwanted man1/*.c.1 files. (rhbz749725) * Mon Oct 31 2011 William Cohen - 4.2.0-2 - Include appropirate man pages with papi rpm. (rhbz749725) - Rebase to papi-4.2.0, fixup for coretemp component. (rhbz746851) * Thu Oct 27 2011 William Cohen - 4.2.0-1 - Rebase to papi-4.2.0. * Fri Aug 12 2011 William Cohen - 4.1.3-3 - Provide papi-static. * Thu May 12 2011 William Cohen - 4.1.3-2 - Use corrected papi-4.1.3. * Thu May 12 2011 William Cohen - 4.1.3-1 - Rebase to papi-4.1.3 * Tue Feb 08 2011 Fedora Release Engineering - 4.1.2.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Mon Jan 24 2011 William Cohen - 4.1.2.1-1 - Rebase to papi-4.1.2.1 * Fri Oct 1 2010 William Cohen - 4.1.1-1 - Rebase to papi-4.1.1 * Tue Jun 22 2010 William Cohen - 4.1.0-1 - Rebase to papi-4.1.0 * Mon May 17 2010 William Cohen - 4.0.0-5 - Test run with upstream cvs version. * Wed Feb 10 2010 William Cohen - 4.0.0-4 - Resolves: rhbz562935 Rebase to papi-4.0.0 (correct ExcludeArch). * Wed Feb 10 2010 William Cohen - 4.0.0-3 - Resolves: rhbz562935 Rebase to papi-4.0.0 (bump nvr). * Wed Feb 10 2010 William Cohen - 4.0.0-2 - correct the ctests/shlib test - have PAPI_set_multiplex() return proper value - properly handle event unit masks - correct PAPI_name_to_code() to match events - Resolves: rhbz562935 Rebase to papi-4.0.0 * Wed Jan 13 2010 William Cohen - 4.0.0-1 - Generate papi.spec file for papi-4.0.0.